4장 CPU 스케줄링 - 02(1) 선점형, 비선점형 스케줄링

 

해당 내용은 쉽게 배우는 운영체제을 기반으로 작성되었습니다.


2. 스케줄링 시 고려 사항

02(1) 선점형 스케줄링과 비선점형 스케줄링 

선점형 스케줄링 (preemptive scheduling)

   - '선점' = 빼앗을 수 있음

   - 어떤 프로세스가 CPU를 할당받아 실행 중이더라도 운영체제가 CPU를 강제로 빼앗은 수 있는 스케줄링 방식

   - 운영체제가 필요하다고 판단 시, 실행 상태에 있는 프로세스의 작업을 중단시키고 새로운 작업 시작

   - 하나의 프로세스가 CPU를 독점할 수 없기 때문에 빠른 응답 시간을 요구하는 대화형 시스템이나 시분한 시스템에 적합

   - 대부분의 저수준 스케줄러는 선점형 스케줄링 방식을 사용

   - 단점 : 문맥 교환같은 부가적인 작업으로 인해 낭비가 생김

 

   - 선점형 스케줄링의 대표적인 예시 : 인터럽트 처리 

인터럽트 처리 방식
1. CPU가 인터럽트 받으면
2. 현재 실행 중인 작업중단
2. 커널 깨우기
3. 인터럽트 처리
4. 기존 작업으로 돌아감


비선점형 스케줄링 (non-preemptive scheduling)

   - '비선점' = 빼앗을 수 없음

   - 어떤 프로세스가 CPU를 점유하면 다른 프로세스가 이를 빼앗을 수 없는 스케줄링 방식

   - 어떤 프로세스가 실행 상태에 들어가 CPU를 사용하면 그 프로세스가 종료되거나 자발적으로 대기 상태에 들어가기 전까지는 계속 실행된다.