[혼자 공부하는 컴퓨터구조+운영체제]09장 운영체제 시작하기
09-1 운영체제를 알아야 하는 이유
운영체제란
- 시스템 자원(자원): 프로그램 실행에 필요한 요소
- 운영체제: 실행할 프로그램에 필요한 자원을 할당하고, 프로그램의 올바른 실행을 돕는 프로그램
- 실행할 프로그램을 메모리에 적재 및 실행되지 않는 프로그램을 메모리에서 삭제
- 여러 프로그램에 CPU 자원 할당
- 하드웨어 조작 및 관리 기능 제공
- 커널 영역(kernel space): 운영체제가 따로 적재된 메모리 공간
- 사용자 영역(user space): 사용자가 사용하는 응용 프로그램(application software)이 적재되는 영역
- 메모리에서 커널 영역을 제외한 나머지 영역 ⇒ 사용자 영역
09-2 운영체제의 큰 그림
운영체제의 심장, 커널
- 커널: 운영 체제의 핵심 기능 담당
- 사용자 인터페이스(UI)
- 운영체제가 제공하면서 커널에 포함되지 않는 서비스
- 윈도우 바탕화면과 같은 그래픽 유저 인터페이스(GUI)와 커맨드 라인 인터페이스(CLI) 존재
이중 모드와 시스템 호출
- 이중 모드(dual mode): CPU가 명령어를 실행하는 모드를 사용자 모드와 커널 모드로 구분하는 방식
- 플래그 레지스터의 슈퍼바이저 플래그를 통해 구분
- 사용자 모드: 운영체제 서비스를 제공받을 수 없는 실행 모드
- 커널 영역의 코드 실행 불가 ⇒ 하드웨어 자원 접근 명령어 실행 불가 ⇒ 자원 접근 불가
- 일반적인 응용 프로그램의 실행 모드
- 시스템 호출(system call): 운영체제 서비스를 제공받기 위해 커널 모드로 전환하는 방법
- 일종의 소프트웨어적 인터럽트
- 시스템 호출 발생 → 커널 모드로 전환 → 운영체제 코드 실행 → 사용자 모드로 복귀
운영체제의 핵심 서비스
프로세스 관리
- 프로세스: 실행 중인 프로그램
- 일반적으로 하나의 CPU는 한 번에 하나의 프로세스만 실행 ⇒ 여러 프로세스를 번갈아 실행
- 만약 여러 프로세스가 동시에 실행되면 프로세스 동기화와 교착 상태 해결 필요
자원 접근 및 할당
운영체제는 프로세스에 필요한 자원을 할당한다.
- CPU
- 프로세스에 CPU를 적절하게 할당하는 방법을 CPU 스케줄링이라 한다.
- 메모리
- 운영체제는 프로세스에 적절히 메모리를 할당하고 메모리가 부족한 경우를 해결해야 한다.
- 입출력장치
- 운영체제는 인터럽트 서비스 루틴을 제공하여 입출력 작업을 수행한다.
- 입출력장치가 하드웨어 인터럽트 발생 → 커널 영역의 인터럽트 서비스 루틴 실행
파일 시스템 관리
파일 시스템 관리도 운영체제가 한다.
가상 머신과 이중 모드의 발전
- 가상 머신을 통한 가상화를 지원하는 CPU는 이중 모드 외에 하이퍼바이저 모드 제공
- 하이퍼바이저 모드가 필요한 이유
- 가상 머신 ⇒ 응용 프로그램 ⇒ 사용자 모드로 작동 ⇒ 운영체제 서비스 제공 어려움
- 가상 머신 상에 작동하는 응용 프로그램 ⇒ 하이퍼바이저 모드 ⇒ 가상 머신의 운영체제 서비스 이용 가능
This post is licensed under CC BY 4.0 by the author.