<aside> 💡 “운영체제 : 아주 쉬운 세가지 이야기”를 읽으면서 핵심 내용을 정리하였습니다. 이화여대 반효경 교수님의 운영체제 강의를 듣고 복습 차원에서 책 한권을 완독해보고자 합니다. 잘못된 정보가 있다면 댓글 남겨주시면 감사하겠습니다!

</aside>

스케줄링 정책

지금까지는 CPU 가상화를 구현하는 저수준의 기법인 “제한적 직접 실행”에 대해 알아 보았다. 제한적 직접실행을 통해 프로세스간 전환이 되는 과정(문맥 교환)을 이해하고 어떻게 운영체제의 주도하에 시스템(물리 장치들)을 관리 할 수 있는지 알 수 있었다. 그렇다면 운영체제는 어떤 원칙을 통해 프로세스를 전환할까?

운영체제는 특정한 원칙을 가지고 있고 이를 “스케쥴링 정책” 이라고 한다. 아래의 질문을 통해 어떻게 정책들이 발전해 왔는지 알아보고자 한다.

핵심 가정

아래의 가정들은 비현실적이긴 하지만 차차 가정을 줄여 나가면서 최종적으로 제대로 동작하는 스케쥴링 정책을 만들 수 있다.

  1. 모든 작업은 같은 시간동안 실행된다.
  2. 모든 작업은 동시에 도착한다.
  3. 각 작업은 시작되면 완료될 때 까지 실행된다.
  4. 모든 작업은 CPU만 사용한다.(입출력 등등 안함)
  5. 각 작업의 실행 시간은 사전에 알려져있다.

평가 항목

→ 성능과 공정성은 trade-off 관계에 있음

여러 스케쥴링 정책들

선입 선출 (FIFO)