11. 1 CPU 스케줄링 개요

운영체제가 CPU 자원을 알맞게 배분하는 것을 CPU 스케줄링이라고 한다.

프로세스 우선순위

운영체제는 각 프로세스의 PCB에 우선순위를 명시하고 우선순위이 높은 프로세스는 더 빨리 더 자주 실행된다.

스케줄링 큐

운영체제가 매번 일일이 모든 PCB를 검사하여 먼저 자원을 이용할 프로세스를 결정하는건 오래걸리니 CPU를 쓰고 싶은 프로세스, 하드 디스크를 쓰고 싶은 프로세스, 프린터를 쓰고 싶은 프로세스 를 나누어 큐에 삽입하여 줄을 세운다.

준비큐는 CPU를 이용하고 싶은 프로세스들이 서는 줄을 의미하고 대기큐는 입출력장치를 이용하기 위해 대기 상태에 접어든 프로세스들이 서는 줄을 의미한다.

선점형과 비선점형 스케줄링

선점형 스케줄링

비선점형 스케줄링

11.2 CPU 스케줄링 알고리즘

스케줄링 알고리즘의 종류

  1. 선입 선처리 스케줄링
    1. 단순히 준비 큐에 삽입된 순서대로 프로세스들을 처리하는 비선점형 스케줄링 방식
  2. 최단 작업 우선 스케줄링
    1. cpu 이용 시간의 길이가 가장 짧은 프로세스부터 실행하는 스케줄링 방식
  3. 라운드 로빈 스케줄링
    1. 선입 선처리 스케줄링에 타임 슬라이스라는 개념이 더해진 스케줄링 방식
  4. 최소 잔여 시간 우선 스케줄링
    1. 최단 작업 우선 스케줄링 알고리즘과 라운드 로빈 알고리즘을 합친 스케줄링 방식
  5. 우선순위 스케줄링
    1. 프로세스들에 우선순위를 부여하고, 가장 높은 우선순위를 가진 프로세스부터 실행하는 스케줄링 알고리즘