📗 BOOK/혼자 공부하는 컴퓨터구조+운영체제

혼자 공부하는 컴퓨터 구조+운영체제 9장 정리

미미누 2024. 7. 25. 21:36


 

운영체제의 심장, 커널

  • 운영체제의 핵심 서비스를 담당하는 부분을 커널이라고 하낟.
  • 사용자 인터페이스는 커널에 포함되지 않는다.
    • 그래픽 유저 인터페이스(GUI)
    • 커맨드 라인 인터페이스(CLI)

이중 모드와 시스템 호출

  • 운영체제는 사용자가 실행하는 응용 프로그램이 하드웨어 자원에 직접 접근하는 것을 방지하여 자원을 보호한다.
  • 이중 모드란 CPU가 명령어를 실행하는 모드를 크게 사용자 모드, 커널 모드로 구분하는 방식이다.

사용자 모드

  • 운영체제 서비스를 제공받을 수 없는 실행 모드이다.
  • 커널 영역의 코드를 실행할 수 없는 모드이다.
  • 일반적인 응용 프로그램은 자원에 접근할 수 없다.

커널 모드

  • 운영체제 서비스를 제공받을 수 있는 실행 모드이다.
  • 커널 영역의 코드를 실행할 수 있는 모드이다.

시스템 콜

  • 사용자 모드로 실행되는 프로그램이 자원에 접근하는 운영체제 서비스를 제공받으려면, 운영체제에 요청을 보내 커널 모드로 전환되어야 한다.
  • 운영체제 서비스를 제공받기 위한 요청을 시스템 호출(시스템 콜)이라고 한다.
  • 운영체제 서비스를 제공받기 위해 커널 모드로 전환하는 방법

소프트웨어 인터럽트

  • 인터럽트를 발생시키는 특정 명령어에 의해 발생하기도 하는데, 이를 소프트웨어 인터럽트라고 한다.

CPU가 시스템 호출을 처리하는 순서

시스템 호출을 발생시키는 명령어가 실행되면 CPU는 지금까지의 작업을 백업하고, 커널 영역 내에 시스템 호출을 수행하는 코드(인터럽트 서비스 루틴)을 실행한 뒤, 다시 기존에 실행하던 응용 프로그램으로 복귀하여 실행을 계속한다.

운영체제의 핵심 서비스

  • 프로세스 관리
    • 실행 중인 프로그램을 프로세스라고 한다.
    • 일반적으로 하나의 CPU는 한 번의 하나의 프로세스만 실행 할 수 있기에 CPU는 이 프로세스들을 조금씩 번갈아 가며 실행한다.

자원 접근 및 할당

CPU 스케줄링

  • 어떤 프로세스부터 CPU를 이용하게 할 것인지, 얼마나 오래 CPU를 이용하게 할지를 결정하는 것