http://www.kocw.net/home/m/search/kemView.do?kemId=1046323
운영체제 강의를 듣고 정리한 내용입니다
Priority Scheduling
우선순위 스케줄링
우선순위가 높은 프로세스에게 CPU를 할당한다
우선순위는 정수값으로 표현된다 (작은숫자가 높다)
- preemptive
- nonpreemptive
SJF 스케줄링도 일종의 우선순위 스케줄링이다
문제점 : 경우에따라 영원히 할당받을 수 없을정도로 우선순위가 밀릴 수 있다
해결 : Aging을 사용한다
Aging(에이징)
아무리 우선순위가 낮은 프로세스여도 기다리는 시간이 길어질수록 우선순위를 앞당겨준다
Round Robin 스케줄링
각 프로세스는 동일한 크기의 할당시간을 가진다 (time quantum)
할당 시간이 지나면 프로세스는 preempted되고
ready queue의 제일 뒤에 가서 다시 줄을 선다.
어떤 프로세스도 (n-1)q time unit이상 기다리지 않는다
-> 응답 시간이 빠르다는 장점이 있다
CPU를 길게 사용하는 프로세스는 기다리는 시간이 길고,
짧게 쓰는 프로세스는 기다리는 시간이 짧다 -> 비례한다
q large -> FCFS
q small -> context switch //오버헤드가 커진다
일반적으로 SJF보다 평균 timearound 시간이 길지만 응답 시간은 짧다
Multilevel Queue
프로세스가 줄을 서게 될 때 줄마다 우선순위가 존재한다
- System processes
- interactive processes
- interactive editing processes
- batch processess
- student processes
Ready queue를 여러 개로 분할한다
- foreground(interactive)
- background(batch – no human interaction)
각 큐는 독립적인 스케줄링 알고리즘을 가졌다
foreground – RR
background – FCFS
큐에 대한 스케줄링이 필요하다
- Fixed priority scheduling
우선순위가 높은 프로세스에 할당한다
time slice
각 큐에 CPU time을 적절한 비율로 할당한다
-> Round Robin에 비교하면 할당에 차별이 있는 방식이다
Multilevel Feedback Queue
프로세스가 다른 큐로 이동 가능하다
-> 에이징(aging)을 이와 같은 방식으로 구현할 수 있다
Multilevel-feedback-queue 스케줄러를 정의하는 파라미터들
- Queue의 수
- 각 큐의 scheduling algorithm
- Process를 상위 큐로 보내는 기준
- Process를 하위 큐로 내쫓는 기준
- 프로세스가 CPU 서비스를 받으려 할 대 들어갈 큐를 결정하는 기준