본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

Preemption 또는 Preemptive Scheduling

한 프로세스가 CPU를 차지하고 있을 때 다른 프로세스가 현재 프로세스를 중지시키고 자신이 CPU를 차지할 수 있는 스케줄링 방식
  • 우선순위가 높은 프로세스가 먼저 수행될 때 유리하다.
  • 빠른 응답시간을 요구하는 시분할 시스템에 유용하다.
  • 선점 때문에 많은 오버헤드를 초래한다.

스케줄링이 일어나는 시점

편집 원본 편집

CPU 스케줄링 결정은 프로세스가 다음 상태로 바뀔 때 일어날 수 있다.[1]

  1. 실행 → 대기 (입출력 요청 등)
  2. 실행 → 준비 (타이머 인터럽트로 할당 시간이 끝남)
  3. 대기 → 준비 (입출력 완료)
  4. 종료
  • 1과 4에서만 스케줄링하면 비선점, 2·3 에서도 스케줄링하면 선점이다.[1] 그래서 "실행 중인 프로세스가 종료하거나 대기 상태로 바뀔 때만 스케줄링한다"는 것은 비선점 스케줄링의 설명이다
  • 선점 방식은 할당 시간이 끝날 때나 더 높은 우선순위 프로세스가 준비 상태가 될 때마다 CPU 를 바꾸므로 비선점 방식보다 문맥 교환이 더 잦다. 할당 시간이 너무 짧으면 문맥 교환 오버헤드가 커진다[1]
  • 라운드 로빈은 할당 시간이 끝나면 프로세스를 준비 큐 끝으로 보내는 대표적인 선점 방식이다
  • RR(Round Robin)
  • SRT(Shortest Remaining Time)
  • MLQ(Multi Level Queue)
  • MFQ(Multi Level Feedback Queue)
  1. ↑ 1.0 1.1 1.2 Silberschatz, Galvin, Gagne, 「Operating System Concepts 9th Edition - Chapter 6: CPU Scheduling」 강의 슬라이드, https://www.os-book.com/OS9/slide-dir/PDF-dir/ch6.pdf, 확인일: 2026-11-04.