CPU Scheduling
Scheduling, Dispatching
- scheduling : ready 상태의 프로세스들 중에 선택하고, 선택된 프로세스에게 CPU를 할당하는 것
- dispatching : 선택된 process를 실제로 실행하는 것
Scheduling Decision이 일어나는 경우
현재 실행 중인 프로세스의 상태가 바뀌었을 때만 schduling을 하는 것을 non-preemptive schduling(비선점형) 이라 한다.
모든 경우에 scheduling을 하는 것을 preemptive scheduling(선점형) 이라 한다.
일반적으로 preemptive schduling은 non-preemptive scheduling 보다 성능이 좋다.
- 현재 실행 중인 프로세스의 상태가 바뀌는 경우
- running → waiting : I/O request
- terminate
- 운영체제가 강제하는 경우
- running → ready : interrupt
- waiting → ready : I/O 작업 완료 시
Scheduling 성능 기준
- CPU Utilization : CPU의 활용도
- throughput : 일정 시간 당 작업을 완료하는 프로세스의 수
- turnaround time : 어떤 프로세스가 실행을 요청한 시점 ~ 실행이 완료된 시점 까지의 시간
- waiting time : 프로세스가 ready queue에 들어가서 기다린 시간의 총 합
- response time : 어떤 프로세스가 실행을 요청한 시점 ~ 실제 CPU를 얻어서 실행한 시점 까지의 시간
Optimization Criteria
좋은 scheduling은 다음과 같아야 한다.
- CPU utilization 최대화
- throughput 최대화
- turnaround time 최소화
- waiting time 최소화
- response time 최소화
'Computer Science > Operating System' 카테고리의 다른 글
Synchronization (0) | 2021.06.19 |
---|---|
CPU Scheduling Algorithm (0) | 2021.06.19 |
Multi-threading (0) | 2021.06.18 |
Thread (0) | 2021.06.18 |
Cooperating Processes (0) | 2021.06.17 |
댓글