꾸준한 개발자

계속적인 성장을 추구하는 개발자입니다. 꾸준함을 추구합니다.

계속 쓰는 개발 노트

운영체제 (OS)

프로세스와 스케줄러의 이해 (1) - 선점형과 비선점형 스케줄러

gold_dragon 2021. 4. 16. 23:08

선점형 스케줄러

하나의 프로세스가 다른 프로세스 대신에 CPU를 차지할 수 있습니다.

비선점형 스케줄러

하나의 프로세스가 끝나지 않으면 다른 프로세스는 CPU를 사용할 수 없습니다.

선점형과 비선점형 스케줄러 차이

비선점형은 프로세스가 자발적으로 blocking 상태로 들어가거나, 실행이 끝났을 때만, 다른 프로세스로 교체 가능합니다.

선점형의 경우, 프로세스 running 중에 스케줄러가 중단시키고, 다른 프로세스로 교체 가능합니다.

 

비선점형보다 선점형이 쾌적의 스케줄링을 할 수 있습니다. 최근에는 대부분 선점형 스케줄러를 사용하고 있습니다.

 

알아본 FIFO, SJF, Priority-based는 어떤 프로세스를 먼저 실행시킬지에 대한 알고리즘입니다. 비선점형 스케줄러에 가깝습니다.

 

RoundRobin은 시분할 시스템을 위한 기본 알고리즘입니다. 선점형 스케줄러에 가깝습니다.