본문 바로가기
Computer Science/Operating System

운영체제의 구조

by BenKangKang 2020. 9. 6.

1. 커널

- 운영체제의 성능을 좌우

- 운영체제의 핵심적인 기능을 모아놓은 것

- 운영체제의 엔진과 같다. 운영체제는 사용자가 자원에 바로 접근하는 것을 막고,방법(시스템 호출)을 제공한다. 

 

구성

- 프로세스 관리: 프로세스에 CPU 배분

- 메모리 관리: 프로세스가 작업 배치, 가상공간 제공

- 파일 시스템 관리: 데이터 접근 저장 인터페이스 제공

- 입출력 관리; 필요한 입 출력 서비스 제공

- 프로세스 통신 관리: 공동 작업을 위한 프로세스 간 통신 환경 제공

 

종류

1. 단일형(Monolithic architecture)

- 초창기 운영체제 구조

- 모듈이 구분 없이 구성

- main에 모든 기능을 구현한 형태

- 모듈 간 통신 비용이 없어 오버헤드가 없고 효율적이다. 

- 상호 의존성이 높아 기능상 작은 결함이 시스템 전체로 확대된다. 

 

2 계층형(Layered architecture)

- 비슷한 기능을 모아 모듈화

- 계층간의 통신을 통해 운영체제 구현 (입출력, 메모리, 프로세스)

- 윈도우 비롯한 대부분의 운영체제는 이 구조

 

3. 마이크로 구조(Micro architecture)

- 각 모듈이 세분화 되어 존재하고 모듈 간 정보 교환은 프로세스 간 통신을 통해 이루어짐

- 운영체제 마하(OS X, iOS 의 커널)

 

 

 

2. 인터페이스

- 커널에 사용자의 명령을 전달하고 결과를 사용자에게 알려주는 역할

- 운영체제는 커널과 인터페이스를 분리하여, 같은 커널을 사용하더라도 다른 인터페이스를 가진 형태로 제작할 수 있다.

- 같은 커널이라도 다른 인터페이스가 장착되면 사용자에게 다른 운영체제 처럼 보인다.

- 맥 OS 또한 유닉스 계열의 커널을 이용해서 만든 것이며, 인터페이스로 인해 사용자들이 더 선호하는 것

 

3. 시스템 호출(System Call)

- 응용프로그램과 커널의 인터페이스

- 커널이 자신을 보호하기 위해 만든 인터페이스

- 사용자가 자원에 직접 접근하는 것을 막고 시스템 관련 서비스들을 모아 제공한다

- 커널이 제공하는 시스템 자원의 사용과 연관된 함수이다.

- 응용프로그램이 하드웨어 자원에 접근하거나 운영체제가 제공하는 서비스를 이용하려고 할때 필요하다

 

* API (Application Programing Interaface) : 응용 프로그램이 자신과 연관된 프로그램을 만들 수 있도록 제공하는 인터페이스

* SDK (System Developer's Kit): 개발자를 위한 종합 선물세트 (Android SDK -> Android Stdio)

 

4. 드라이버

- 하드웨어와 커널의 인터페이스

- 필수 드라이버를 제외하고, 하드웨어를 추가적으로 사용할때 드라이버를 설치하는 이유가 이것이다.

- 커널이 제공하는 드라이버도 있고, 하드웨어 제작자가 제공하는 드라이버도 있다.

- 디바이스 드라이버: 하드웨어 제작자가 만든 프로그램

'Computer Science > Operating System' 카테고리의 다른 글

운영체제의 역사  (0) 2020.09.05
운영체제 개요  (0) 2020.09.05

댓글