1. Preemptive(선점) VS Non-Preemptive(비선점)
선점 스케줄링(preemptive scheduling)은 더 높은 우선 순위 프로세스가 발생 되었음을 알았을 때, 현 실행 프로세스로부터 강제로 CPU를 회수할 수 있는 스케줄링 기법을 의미한다. 반대로 비선점 스케줄링은 현재 진행 중인 프로세스가 끝나기 전까지 강제로 CPU를 회수할 수 없는 스케줄링 기법을 의미한다.
2. Scheduling Criteria
스케줄링 기법을 평가할 수 있는 기준(메트릭)은 아래와 같다.
1) CPU Utilization (CPU 이용률) :
현재 CPU가 얼마나 사용되고 있는지를 나타낸다. 단위는 %이다. CPU Utilization이 높을 수록 CPU를 잘 활용하고 있다는 것이므로 높을수록 좋은 스케줄링 기법이라고 할 수 있다.
2) Throughput (처리율) :
컴퓨터구조에서 배웠던 처리율의 개념과 동일하다. 동일하며 단위 시간당 수행한 프로세스의 수를 의미한다. 단위는 Job / Sec이다. 처리율이 높을 수록 시간당 많은 업무를 수행할 수 있다는 것으로 높을수록 좋은 스케줄링 기법이라고 할 수 있다.
3) Turnaround Time (반환 시간) :
한 프로세스가 New 상태에서 Terminated 상태에 도달할때 까지의 시간을 나타낸다. 단위는 Sec이다. 반환시간이 짧아야 프로세스를 실행하는데 필요한 시간이 짧다는 것으로 짧을수록 좋은 스케줄링이다.
4) Waiting Time (대기 시간) :
프로세스가 Ready Queue (CPU의 서비스를 기다리는 큐)에서 대기한 총 시간을 나타낸다. 단위는 Sec이다. Ready Queue에서 대기한 시간이 짧을 수록 프로세스들이 대기 없이 빠르게 실행되었다는 것으로 짧을수록 좋은 스케줄링이다.
5) Response Time (응답 시간) :
컴퓨터 구조에서 배웠던 것과 동일하다. 하나의 프로세스를 수행하는데 걸린 시간을 의미한다. 단위는 Sec이다. 응답시간이 짧을수록 프로세스를 빨리 수행했다는 것으로 짧을수록 좋은 스케줄링이다.
3. CPU Scheduling Algorithms
CPU 스케줄링은 Ready Queue (CPU의 서비스를 기다리는 큐)에 프로세스들을 어떻게 배치할지 결정하는 스케줄링 기법이다. 아래와 같이 많은 스케줄링 기법이 있는데 이제부터 하나하나 알아볼 예정이다.
- FCFS (First Come, First Served) 스케줄링
- SJF (Short Job First) 스케줄링
- Priority (우선순위 기반) 스케줄링
- Round Robin (회전 기반) 스케줄링
- Multilevel Queue (큐 여러개) 스케줄링
- Multilevel Feedback Queue (큐 여러개) 스케줄링
4. Reference
'운영체제' 카테고리의 다른 글
CPU 스케줄링 (3) - 우선순위 스케줄링 (0) | 2020.03.05 |
---|---|
CPU Scheduling (2) - SJF (Shortest Job First) (0) | 2020.03.05 |
CPU Scheduling (1) - FCFS (First Come, First Served) (0) | 2020.02.04 |
Process Management (0) | 2020.01.29 |
O/S Service (0) | 2020.01.21 |
Dual Mode & H/W Protection (2) | 2020.01.21 |
High Level OS & Interrupt based OS (0) | 2020.01.08 |