반응형

이어서 패스트캠퍼스의 [컴퓨터공학 - 운영체제] 수강 내용을 작성해보겠습니다.

 

운영체제는 자세히 그려보면 아래와 같은 구조를 하고 있습니다.

 

컴퓨터 아키텍쳐에서 배운 CPU, Memory, Storage, Network로 이루어진 Hardware 위에 운영체제(OS)가 탑재되어 있고, 이 운영체제는 시스템 콜을 바탕으로 작동합니다. 이 위에는 각 프로그래밍 언어를 컴파일하는 컴파일러와 라이브러리/API가 있으며, 그 위에 사용자와 컴퓨터의 Interaction을 담당하는 Shell 및 Editor가 있습니다. 

 

즉, 사용자가 Shell이나 Editor를 통해 작성한 응용프로그램은, 컴파일러를 통해 번역되어 필요한 작업을 시스템 콜을 통하여 OS에 요청하게 됩니다. 

 

그럼 구성요소 각각에 대해서 조금 더 알아보겠습니다.

 

1. Shell : 사용자가 운영체제 기능과 서비스를 조작할 수 있도록 하는 인터페이스

*CLI / GUI 두가지 방식이 있다.

2. API : 라이브러리 혹은 함수의 모음집

3. 컴파일러 : 사용자가 작성한 코드를 컴퓨터가 이해할 수 있는 언어로 번역하는 시스템

4. 시스템 콜(시스템 호출 인터페이스): 사용자가 원하는 작업을 OS에 요청하는 방식

5. 운영체제 : 리눅스, 윈도우 같은 컴퓨터 자원 관리 및 사용자 요청 작업을 수행하는 프로그램

 

이제 본격적으로 운영체제에 대하여 알아보겠습니다.

 

사용자가 작성한 응용 프로그램은 CPU에서 원하는 작업을 수행하게 되는데, 이 때 직접 수행 가능한 것이 있고 반드시 시스템 콜을 거쳐서 작업을 수행해야만 하는 것이 있습니다. 시스템 콜을 통해서만 수행할 수 있는 영역은 커널 영역(모드)라고 하고, 그렇지 않은 영역을 사용자 영역(모드)라고 합니다. 이러한 영역은 CPU Protection Ring으로 아래와 같이 구체화되어 있습니다. 사용자 모드/커널 모드로 구분하여 권한을 부여함으로써, 컴퓨터는 임의의 사용자가 함부로 컴퓨터의 운영체제를 손상하는 것을 막을 수 있습니다.

다음 글에서는 컴퓨터 구조의 구성요소들을 컴퓨터가 어떻게 활용하고 분배하는지, 프로세스와 스케쥴링에 대해 알아보도록 하겠습니다 -!

 

반응형

+ Recent posts