본문 바로가기
컴퓨터공학기초 개념/운영체제

9. 선점형과 비선점형 스케줄러

by devraphy 2021. 4. 5.

1. 개념

a) 선점형 스케줄러(Preemptive Scheduling)

  • 하나의 프로세스가 다른 프로세스 대신에 CPU(프로세서)를 차지할 수 있음
  • 현재 CPU를 사용중인 프로세스를 멈추고 다른 프로세스에 CPU를 할당할 수 있다.

ex) 시분할 시스템

 

 

b) 비선점형 스케줄러(Non-preemptive scheduling)

  • 하나의 프로세스가 끝나지 않으면 다른 프로세스는 CPU를 사용할 수 없음
  • 현재 CPU를 사용중인 프로세스가 자발적으로 block(wait)상태로 전환되거나 실행이 끝나는 상태(terminated)가 아닌 경우,  CPU를 다른 프로세스에 할당할 수 없다.

ex) 배치 처리 시스템

 


2. 스케줄러 정책에 따른 알고리즘 조합

  • FIFO(FCFS), SJF, Priority-based: 어떤 프로세스를 먼저 실행시킬지에 대한 알고리즘으로 비선점형 스케줄링 방식에 가깝다.
  • RoundRobin: 시분할 시스템을 위한 기본 알고리즘으로 선점형 스케줄링 방식이다. 

- 스케줄러 정책에는 선점형, 비선점형 스케줄러가 있다. 그리고 스케줄링 알고리즘에는 여러가지가 존재한다. 

 

- 전체적인 스케줄링은 비선점형으로 하지만, 각 프로세스의 상태를 담는 queue는 시분할 방식인 RoundRobin으로 설정하는 등 다양한 조합방식이 존재한다.

 

- 이해하고 넘어가야 할 부분은 스케줄링 정책과 알고리즘을 종류에 따라 구분하지말고, 필요한 기능과 목적에 따라 유연하게 조합할 수 있다는 것을 인지해야 한다. 

 

 

댓글