5장 연습문제
Process Scheduling
- Dispatcher: CPU에 의해 선택된 프로세스가 실행될 수 있도록 세팅.
프로세스 선택 규칙
기존 프로세스가 종료 되거나 실행이 중단되면 CPU에서 다음으로 실행할 프로세스를 선택한다.
- ready queue 삽입 순서: ready queue에 가장 오래 전에 삽입되어 맨 앞에 위치한 프로세스 선택
- next CPU burst의 길이
- 우선순위
Preemptive Scheduling
nonpreemptive scheduling에서는 프로세스가 종료되지 않는 이상 running state를 벗어나지 않는다. 즉, running state에서 ready state로 이동하지 않는다.
preemptive scheduling에서는 여러 요인에 의해, 실행되던 프로세스가 ready queue로 돌아가고 다른 프로세스가 선택되어 실행된다.
Preemptive 요인
- CPU burst가 현재 프로세스의 remaining time보다 짧은 프로세스가 ready queue에 삽입됨
- 현재 프로세스의 실행 시간이 time quantum(slice)을 초과함
- 현재 프로세스보다 우선순위가 높은 프로세스가 ready queue에 삽입됨
preemptive 요인 간 우선순위는 구현마다 다를 수 있다.
CPU Scheduling Algorithm
- FCFS: 큐 삽입 순서
- RR: 큐 삽입 순서 / time slice