선점형과 비선점형 스케줄러
선점형 스케줄러 (Preemptive Scheduling)
: 하나의 프로세스가 다른 프로세스 대신에 프로세서(CPU)를 차지할 수 있음
비선점형 스케줄러 (Non-preemptive Scheduling)
: 하나의 프로세스가 끝나지 않으면 다른 프로세스는 CPU를 사용할 수 없음
선점형과 비선점형 스케줄러 차이
선점형 : 프로세스 running(실행)중에 스케줄러가 이를 중단시키고, 다른 프로세스로 교체 가능
비선점형 : 프로세스가 자발적으로 blocking상태로 들어가거나, 실행이 끝났을 때만 다른 프로세스로 교체 가능 (exit, I/O or event wait 상태일 때만 또다른 스케줄을 running 상태로 바꿀 수 있다)
Waiting = blocking
스케줄러 구분 (정책, policy)
FIFO(FCFS), SJF, Priority-based는 어떤 프로세스를 먼저 실행시킬지에 대한 알고리즘
RoundRobin은 시분할 시스템을 위한 기본 알고리즘 (선점형 스케줄러)
렉? 마우스/키보드 반응이 느린 경우?
> 스케줄러가 해결해야 하는 이슈이다.
다양하고 복잡한 스케줄링 알고리즘이 필요하다
리눅스 스케줄러 : O(1), CFS와 같이 다양한 방식으로 변경시도 중
인터렉티브, IO, CPU 중심 프로세스로 미리 구분할 수 있다면 보다 개선된
스케줄링이 가능하다
출처 : 제로베이스
'공부 Note > 운영체제' 카테고리의 다른 글
Chapter 03 프로세스 & 스케쥴러 (5) (0) | 2021.12.27 |
---|---|
Chapter 03 프로세스 & 스케쥴러 (4) (0) | 2021.12.24 |
Chapter 03 프로세스 & 스케쥴러 (2) (0) | 2021.12.23 |
Chapter 03 프로세스 & 스케쥴러 (1) (0) | 2021.12.23 |
Chapter 02 운영체제 개념잡기 (3) (0) | 2021.12.22 |