http://www.kocw.net/home/m/search/kemView.do?kemId=1046323
운영체제 강의를 듣고 정리한 내용입니다
CPU scheduling
Scheduling Criteria
CPU utilization (이용률)
CPU를 가능한 바쁘게 일을 시켜야 한다
-> 사용률을 의미
Throughput(처리량)
주어진 시간내에 CPU가 일을 많이 처리해야한다
-> 처리량을 의미
Waiting time(대기 시간)
CPU를 기다리는 시간을 말한다
Response time(응답 시간)
처음으로 CPU를 얻기까지 걸린 시간을 말한다
-> 총 수행시간
FCFS(First-Come-First-Served)
프로세스의 도착 순서가 순차적이다
SJF(Shortest-Job-First)
CPU를 짧게 쓰는 프로그램에 CPU를 할당시킨다
각 프로세스와 다음번 CPU burst time을 가지고 스케줄링에 활용한다
Two schemes
Nonpreemptive
밑단 CPU를 잡으면 이번 CPU burst가 완료될 때까지 CPU를 선점 당하지 않는다
Preemptive
현재 수행중인 프로세스의 남은 burst time보다 더 짧은 CPU burst time을 가지는 새로운 프로세스가 도착하면 CPU를 빼앗긴다
-> Shortest-Remaining-Time-First(SRTF)라고도 부른다
SJF is optimal
주어진 프로세스들에 대해 minimum average waiting time을 보장한다
-> 평균적으로 기다리는 시간이 짧아진다
SJF 방식의 문제점
시간이 오래걸리는 경우 순서가 계속 뒤로 밀려 할당받지 못하기도 한다
어느 시점에 cpu를 할당받아 사용하고 나갈지 예측 불가하다
다음 CPU Burst Time의 예측
추정만 가능하다
과거의 CPU Burst Time을 이용해서 추정한다