일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 카프카
- 데이터엔지니어
- docker
- 취뽀
- Kafka
- zookeeper
- 의존성주입
- spring boot
- 회고
- CPU
- POJO
- OS
- 스프링
- 부팅
- 제어의역전
- Context Switching
- CNS
- fork()
- 도커
- Pub/Sub
- 시스템호출
- Data Engineering
- 커널
- 컴퓨터 구조
- 코테
- 스프링빈
- 자바빈
- PCB
- 합격
- 운영체제
- Today
- Total
모래성 말고 철옹성
Chapter1. 운영체제의 개요 (2) 본문
운영체제의 구조***
1. 커널과 인터페이스**
- 커널 : 프로세스 관리, 메모리 관리, 파일 관리 등과 같은 운영체제의 핵심적인 기능을 모아놓은 것이다. 즉 커널의 성능 = 운영체제의 성능. 컴퓨터 부팅 후 메모리에 올라가 역할 수행.
- 인터페이스 : 사용자와 커널 사이에서 사용자의 명령을 받고 커널의 응답을 사용자에게 돌려주는 역할을 한다.
그림(a)과 같이 운영체제를 커널과 인터페이스로 크게 두 부분으로 나눌 수 있다.
2. 시스템 호출과 디바이스 드라이버
시스템 호출(System Call) 이란*
시스템 호출이란 커널 기능 사용을 위한 응용 프로그램의 요청에 대해 커널 접근을 위한 인터페이스이다. 이는 커널 자기 자신을 보호하고 자원에 직접접근을 막기 위해 만들었다.
- 시스템 호출은 커널이 제공하는 시스템 관련 서비스의 집합이며, 함수 형태로 제공된다. ex) read(), printf(), fork() etc..
- 시스템 호출을 사용함으로써 시스템 관련 서비스 사용을 제한해 컴퓨터 자원을 보호하는 역할을 한다.
- 커널에 접근하기 위한 유일한 수단이다.
드라이버란
응용 프로그램(사용자)와 커널의 인터페이스가 커널이라면, HW와 커널의 인터페이스가 드라이버이다.
도식으로 표현하게 된다면 위 그림(a)과 같이 표현할 수 있다.
3. 커널의 구성
커널의 기능은 크게 다음과 같다.
기능 | 설명 |
프로세스 관리 | CPU에 프로세스를 어떻게 할당할 것인지에 대한 환경 제공한다. |
메모리 관리 | 프로세스를 작업 공간에 배치하고 실제 메모리보다 큰 가상공간을 제공한다. |
파일 시스템 관리 | 데이터를 read, write 할 수 있는 서비스를 제공한다. |
입출력 관리 | I/O 서비스를 제공한다. |
프로세스간 통신 관리 | 프로세스간 통신 환경을 제공한다. |
커널은 이러한 기능들을 유기적으로 복잡하게 얽혀 구현된다. 커널은 이 기능들을 어떻게 구현하는지에 세 가지 방법이 있다.
1) 단일형 구조 커널
커널의 핵심 기능을 그림(b)와 같이 하나의 모듈에 구성해놓았다.
이러한 구조는 프로세스간 통신 비용/오버헤드가 들지 않는다는 장점이 있지만, 모듈 간 의존성이 높기 때문에 장애 발생 시 전체 커널에 영향을 미친다. 현대의 OS는 다양한 기능을 제공하기에 해당 구조로 구현 시 크기가 너무 커서 현대의 OS에는 맞지 않는 구조이다.
2) 계층형 구조 커널
비슷한 기능을 가진 모듈을 묶어 하나의 계층으로 만든 구조의 커널이다. 계층간의 통신을 통해 운영체제를 구성한다. Linux, Unix와 같은 현대의 OS는 이와 같은 구조를 채택하고 있다.
3) 마이크로 구조 커널
커널 영역에서 가장 기본적인 프로세스 관리, 메모리 관리, 프로세스 간 통신 관리 같은 기능만 제공하고 나머지 기능을 사용자 영역에서 처리한다. 해당 방식을 사용함으로써 파일 시스템에 장애가 나더라도 커널 전체 시스템이 죽지 않는다는 장점을 갖는다. 또한 최소한의 기능으로 가벼운 커널로 CPU 용량이 작은 임베디드에 많이 쓰인다고 한다. 대표적으로 애플 OS X, IOS 커널로 유명하다.
'Computer Science > 운영체제' 카테고리의 다른 글
Chapter3. 프로세스와 스레드 (1) (0) | 2022.09.06 |
---|---|
Chapter2. 컴퓨터 구조와 성능 향상 (2) (1) | 2022.08.23 |
Chapter2. 컴퓨터 구조와 성능 향상 (1) (0) | 2022.08.22 |
Chapter 1. 운영체제의 개요 (1) (0) | 2022.08.04 |
운영체제 스터디 2022-07-31~ (0) | 2022.07.31 |