이설아
Chap11

11-1. CPU 스케줄링 개요

프로세스 우선순위

  • 운영체제는 CPU 스케줄링을 통해 프로세스에 공정하게 CPU를 배분

  • 입출력 집중 프로세스 : 입출력 작업(=입출력 버스트)이 많은 프로세스

  • CPU 집중 프로세스 : CPU 작업(=CPU 버스트)이 많은 프로세스

  • 이 2가지 프로세스를 효율적으로 처리하기 위해선 시간이 비교적 짧게 걸리는 CPU 집중 프로세스를 가능한 빨리 실행시킨 뒤, 시간이 비교적 오래 걸리는 입출력 집중 프로세스를 실행시켜야 함

  • 프로세스 저마다의 중요도가 다를 것

    ⇒ 중요도에 따른 우선순위도 CPU를 효율적으로 쓰는 방법에 영향을 줌(우선순위는 PCB에 저장)

스케줄링 큐

  • 운영체제가 저마다의 프로세스의 PCB를 보면서 우선순위를 하나하나 따져보는 건 비효율적

    ⇒ 따라서 스케줄링 큐를 통해 프로세스를 줄 세워 관리

  • 준비 큐 : CPU 할당을 기다리는(=준비 상태인) 큐

  • 대기 큐 :입출력장치의 실행 종료를 기다리는(=대기 상태인) 큐대기 큐의 경우는 장치 별로 큐가 구현되어 있는 경우가 많음 (ex: 프린터 대기 큐, 보조기억장치 대기 큐 등)

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

선점형 스케줄링

  • 운영체제가 프로세스의 자원을 강제로 빼앗아 다른 프로세스에게 넘길 수 있는 스케줄링 방법 (비독점형)
  • 타이머 인터럽트를 통해 순서를 바꾸는 스케줄링 방법이 이에 해당
  • 문맥교환이 자주 발생해 오버헤드가 발생할 수 있음

비선점형 스케줄링

  • 운영체제가 프로세스의 자원을 강제로 빼앗을 수 없고, 프로세스가 실행이 종료되기까지 기다려야하는 스케줄링 방법 (독점형)
  • 단점: 골고루 자원을 사용할 수 없음

11-2. CPU 스케줄링 알고리즘

스케줄링 알고리즘 종류

선입 선처리 스케줄링

  • 비선점형 스케줄링
  • 삽입된 순서대로 실행 (선착순)
  • 호위효과 발생

최단 작업 우선 스케줄링

  • 비선점형 스케줄링
  • 작업 시간이 짧은 프로세스를 먼저 실행

라운드 로빈 스케줄링

  • 선점형 스케줄링
  • 선입 선처리 스케줄링 + 타임슬라이스
  • 시간이 끝나면 문맥 교환이 발생하고 큐의 맨 뒤에 삽입

최소 잔여 시간 우선 스케줄링

  • 선점형 스케줄링
  • 최단 작업 우선 스케줄링 + 라운드 로빈 스케줄링
  • 정해진 타임 슬라이스만큼 CPU를 이용하되, CPU를 사용할 다음 프로세스는 잔여 시간이 가장 짧은 프로세스

우선순위 스케줄링

  • 선점형 스케줄링
  • 우선 순위가 가장 높은 프로세스를 먼저 실행
  • 기아 현상 -> 에이징 기법으로 해결 (차차 우선순위를 높임)

다단계 큐 스케줄링

  • 우선 순위 스케줄링의 발전 버전
  • 여러 개의 큐를 만들고 큐 자체에 우선순위를 매김
  • 단, 큐 간 프로세스 이동은 불가능
  • 다단계 피드백 큐 스케줄링
    • 다단계 큐 스케줄링의 발전 버전큐 간 프로세스 이동이 가능

      ⇒ 프로세스의 우선순위를 높이거나 낮추면서 유연하게 관리 가능