본문 바로가기
Lecture/OS

운영체제의 구성

by YUNZEE 2023. 9. 21.
728x90
커널과 인터페이스

커널(kernel)은 프로세스 관리, 메모리 관리, 저장장치 관리와 같은 운영체제의 핵심 기능을 구현한 프로그래밍이다.

예를 들면 자동차 '엔진'이다.

인터페이스(interface)는 사용자와 응용 프로그램에 인접하여 커널에 명령을 전달하고 실행 결과를 사용자와 응용 프로그램에 돌려준다.

그림_1 컴퓨터 시스템의 구조

[그림_1]를 보면 운영체제에는 커널과 인터페이스가 분리되어 있다.

시스템 호출과 디바이스 드라이버

그리고 내부에 시스템 호출과 드라이브가 있는데 시스템 호출(system call)은 커널이 자신을 보호하기 위해 만든 인터페이스다.

사용자가 직접 접근하는 것을 차단한다. 따라서 자원을 이용하려면 시스템 호출이라는 인터페이스를 이용하여 접근해야 한다.

시스템 호출을 통한 접근은 커널이 제공하는 write() 함수를 사용하여 데이터를 저장해 달라고 요청한다. 만약에 자신이 저장한 데이터를 읽고 싶다면 read() 함수로 시스템 호출을 이용하면 된다.

 

커널과 하드웨어의 인터페이스를 디바이스 드라이버(device driver) 라고 부른다.  [그림_1]을 보면 시스템 호출 부분은 커널 앞부분 전체를 감싸고 있다. 이는 시스템 호출을 거치지 않으면 커널에 진입할 수 없다는 의미이다. 반면에 드라이버는 커널 전체를 감싸고 있지 않다. 즉, 커널이 제공하는 드라이버와 하드웨어 제작자가 제공하는 드라이버가 있기 때문이다. 그래서 주변장치는 컴퓨터에 꽂기만 하면 바로 사용할 수 있다. 예를 들어 그래픽 카드와 프린터가 있다.

 

커널의 역할과 종류

커널의 가장 중요한 작업은 여러 응용 프로그램을 실행하는 것이다. 따라서 다양한 종류의 프로세스에 CPU를 배분하고 작업할 수 있는 환경을 들어주는 것이 커널의 주요 역할이다.

 

프로세스 관리: 프로세스에 CPU를 배분하고 작업에 필요한 제반 환경을 제공한다.

매모리 관리: 프로세스에 작업 공간을 배치하고 실제 메모리보다 큰 가상공간을 제공한다.

파일 시스템 관리: 데이터를 저장하고 접근할 수 있는 인터페이스를 제공한다.

입출력 관리: 필요한 입력과 출력 서비스를 제공한다.

프로세스 간 통신 관리: 공동 작업을 위한 각 프로세스 간 통신 환경을 지원한다.

728x90

'Lecture > OS' 카테고리의 다른 글

컴퓨터 성능 향상 기술  (2) 2023.10.14
CPU와 메모리  (0) 2023.10.12
컴퓨터의 기본 구성  (0) 2023.10.10
운영체제의 발전  (2) 2023.09.20
운영체제와 컴퓨터  (0) 2023.09.18