
참고 서적: 혼자 공부하는 컴퓨터 구조 + 운영체제 (강민철, 한빛미디어)
I. 운영체제
1. 운영체제
1) 운영체제란
- 모든 프로그램은 실행을 위해
자원을 필요로 한다.
자원에는 컴퓨터의 네 가지 핵심 부품이 포함된다.
- 메모리의
커널 영역에 적재되는 프로그램이다.
메모리 관리: 운영체제는 실행해야 할 프로그램을 메모리에 적재시키며, 종료되는 프로세스는 메모리에서 삭제한다.
CPU 관리: 메모리에 적재된 프로세스 중 무엇을 우선적으로 실행할지, 얼마나 오랫동안 실행할지 등을 결정하는 역할을 한다.
2) 운영체제를 알아야 하는 이유
- 운영체제는 프로그램을 위한 프로그램이다.
- 프로그램을 만드는 개발자는 운영체제를 알아야 한다.
II. Kernel
1. 운영체제가 제공하는 핵심적인 서비스
- 자원에 접근하고 조작하는 기능
- 프로그램이 올바르고 안전하게 실행되도록 하는 기능
2. Kernel
III. System Call, Dual Mode
1. 자원 보호
- 사용자가 자원에 직접 접근하는 것은 매우 위험하다.
- 따라서 운영체제는 사용자가 오직 운영체제 자신을 통하여만 접근할 수 있도록 하여 자원을 보호한다.
- 즉, 응용 프로그램이 자원에 접근하기 위해서는 운영체제의 코드를 실행하여야 한다.
2. 이중 모드
- CPU가 명령어를 실행하는 모드이며,
사용자 모드와 커널 모드로 구분된다.
1) 사용자 모드
- 운영체제의 서비스를 제공받을 수 없는 실행 모드
- 커널 영역의 코드를 실행할 수 없는 실행 모드
- 자원 접근 불가
2) 커널 모드
- 운영체제의 서비스를 제공받을 수 있는 실행 모드
- 자원 접근을 비롯한 모든 명령어를 실행할 수 있는 실행 모드
3) Flag Register
supervisor 플래그: 1일 경우 커널 모드, 0일 경우 사용자 모드로 실행 중임을 나타낸다.
- Flag Register
| 부호 플래그 |
zero 플래그 |
carry 플래그 |
overflow 플래그 |
interrupt 플래그 |
supervisor 플래그 |
3. 시스템 호출
- SW 인터럽트의 일종으로, 운영체제의 서비스를 제공받기 위해 사용자 모드에서 커널 모드로 전환하는 방법이다.
IV. 운영체제의 핵심 서비스
1. 프로세스 관리
1) 프로세스
- 프로세스는 Memory에 적재되어 실행 중인 프로그램이다.
- 운영체제는 동시다발적으로 생성, 실행, 삭제되는 다수의 프로세스를 관리한다.
2. 자원 접근 및 할당
1) CPU 접근 및 할당
- 모든 프로세스는 CPU를 할당 받아야 한다.
- CPU 스케줄링: 어떤 프로세스를 먼저, 얼마나 오래 실행할지를 결정한다.
- 프로세스와 스레드, 프로세스 동기화, 교착 상태 해결에 대하여 학습할 예정이다.
2) 메모리 접근 및 할당
3) 입출력 장치 접근 및 할당
- 응용 프로그램이 입출력 장치에 접근하려 할 때 운영체제는 ISR을 제공함으로써
3. 파일 시스템 관리
1) 파일과 디렉터리
- 파일들을 디렉터리 단위로 묶어 저장 장치에 보관한다.