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 |
댓글