Post

[혼자 공부하는 컴퓨터구조+운영체제]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.