한빛 아카데미 - 쉽게 배우는 운영체제 책 내용 정리입니다
01 운영체제 소개
- 운영체제는 각각의 응용 프로그램이 활동할 수 있는 환경을 제공하고, 응용 프로그램이 필요로 하는 컴퓨터 자원을 나눠주며, 응용 프로그램으로부터 컴퓨터 자원을 보호하는 강력한 통치자 역할을 한다
- 운영체제의 정의
- 사용자에게 편리한 인터페이스 환경을 제공하고 컴퓨터 시스템의 자원을 효율적으로 관리하는 소프트웨어
- 운영체제의 역할
- 자원관리(효율성), 자원보호(안정성), 하드웨어 인터페이스 제공(확장성), 사용자 인터페이스 제공(편리성)
02 운영체제의 역사
- 일괄작업 시스템(천공카드, 라인프린터) → 대화형 시스템 → 시분할 시스템(반대개념 real time system) → 분산시스템 → 클라이언트/서버 시스템 → P2P → Grid Computing, Cloud, IOT
03 운영체제의 구조
- Kernel(시스템호출, 드라이버) : 프로세스 관리, 메모리 관리, 저장장치 관리 같은 운영체제의 핵심적인 기능을 모아놓은것
- System call : 커널이 자신을 보호하기 위해 만든 인터페이스
- 커널은 사용자나 응용프로그램으로부터 컴퓨터 자원을 보호하기 위해 직접 접근하는 것을 차단, 따라서 자원을 이용하려면 시스템호출이라는 인터페이스를 통해 접근해야함
- 커널이 제공하는 시스템 관련 서비스를 모아놓은것
- 커널이 제공하는 시스템 자원의 사용과 연관된 함수
- 응용 프로그램이 하드웨어 자원에 접근하거나 운영체제가 제공하는 서비스를 이용하려 할때는 시스템 호출을 사용해야함
- Driver : 커널과 하드웨어의 인터페이스를 담당
- 커널의 구성
- 프로세스 관리 : 프로세스에 CPU를 배분하고 작업에 필요한 제반 환경을 제공
- 메모리 관리 : 프로세스에 작업 공간을 배치하고 실제 메모리보다 큰 가상공간을 제공
- 파일 시스템 관리 : 데이터를 저장하고 접근할 수 있는 인터페이스 제공
- 입출력 관리 : 필요한 입력과 출력 서비스를 제공
- 프로세스간 통신 관리 : 공동 작업을 위한 각 프로세스 간 통신 환경을 지원
- 단일형 구조 커널(Monolithic)
- 모든 서브시스템이 커널과 같은 메모리 공간에 적재, 실행되는 커널의 구조로 이루어져 있다
- 커널의 핵심 기능을 구현하는 모듈들이 구분 없이 하나로 구성
- 장점
- 모듈이 거의 분리되지 않았기 떄문에 모듈 간의 통신비용이 줄어들어 효율적인 운영이 가능
- 단점
- 모든 모듈이 하나로 묶여있기 때문에 버그나 오류를 처리하기 힘듬
- 운영체제의 여러 기능이 서로 연결되어있어 상호 의존성이 높아 기능상의 작은 결함이 시스템 전체로 확산될수있음
- 다양한 환경의 시스템에 적용하기 어렵다
- 현대의 크고 복잡한 운영체제에 구현하기 어렵다
- 커널내의 모든 서브시스템이 ring 0레벨에서 동작
- 계층형 구조 커널(Layered)
- 단일형 구조 커널이 발전된 형태
- 비슷한 기능을 가진 모듈을 묶어서 하나의 계층으로 만들고 계층간의 통신을 통해 운영체제를 구현
- 비슷한 기능을 모아 모듈화했기 때문에 단일현 구조보다 버그나 오류를 쉽게처리
- 오류 발생시 해당 계층만 수정하기때문에 디버깅하기 쉬움
- 마이크로 구조 커널(micro architecture)
- 메모리 관리, 프로세스 관리, 장치 관리, 파일시스템, 네트워크 스택 등 각 서브시스템을 커널과 분리하여 별도의 메모리공간에 적재, 실행
- 프로세스관리, 메모리관리, 프로세스간 통신관리 등 가장 기본적인 기능만 제공
- 운영체제의 많은 부분이 사용자 영역에 구현, 따라서 각 프로세스마다 보호 영역을 갖게됨
- 디바이스 드라이버 하나가 다운되더라도 다른 서브시스템은 영향을 받지 않게됨
- 커널은 메모리 관리와 프로세스 간의 동기화 서비스를 제공, 메모리 관리자와 동기화 모듈은 프로세스간 통신 모듈로 연결되어있음
- 각 모듈은 세분화되어 존재하고 모듈 간의 정보교환은 프로세스간 통신을 이용하여 이루어짐
- 메모리 관리, 프로세스 관리, 장치 관리, 파일시스템, 네트워크 스택 등 각 서브시스템을 커널과 분리하여 별도의 메모리공간에 적재, 실행
- 커널을 제외한 나머지 서브시스템은 ring 3레벨에서 동작
- 가상머신 : 운영체제 위에 가상머신을 만들고 그 위에서 응용프로그램이 작동하게함
'CS Study > OS' 카테고리의 다른 글
정리정리 (0) | 2022.01.26 |
---|---|
2. Chapter 3. Processes (0) | 2021.10.22 |
1. Chapter 1-2. Introduction & O/S Structures (0) | 2021.10.09 |