ch5_part1(modified) 중간부터 시작
Turnaround / Wait Time
Running단계에 들어가지 않고 Ready단계에 있는 것을 Wait time이라고 합니다
Ready부터 다음 Running단계까지의 시간을 Turnaround Time(Response Time)이라고 합니다
즉, Wait time = Turnaround Time - Running Time
Examples of Exponential Averaging
RR and Time Quantums
요즘은 사용자와 빈번한 상호작용이 프로그램 내에서 발생하기 때문에, RR with short-quantum방식이 좋
Context Switch라는게, 쉬운게 아니라 어렵다
RR방식은 공정성을 위해서 사용하는 스케쥴링 알고리즘
Multilevel Queue
프로세스 타입에 따른 우선수위 결정 스케쥴링 알고리즘
프로세스마다 응답시간 요구사항이 다름 → 스케쥴링 알고리즘이 다를 수 있음
•
배치 프로세스 : FCFS
•
포그라운드 : RR
Multilevel Feedback Queue
1.
프로세스가 큐
큐 사이 이동가능
2.
시간을 많이 사용하는 프로세스 → 낮은 순위 큐로 이동
3.
I/O중심 및 대화형 중심 프로세스(짧은 CPU Burst) → 높은 우선순위 큐로 이동
4.
오래 대기한 프로세스(낮은 우선순우 큐에 위치한 프로세스) → 높은 우선순위 큐로 이동(Starvation 방지)
Example of Multilevel Feedback Queue
Thread Scheduling
MultiLevel Feedback Queue(MLFQ)
•
기존의 SJF, SRTF 등 → BurstTime에 대한 정보가 필요
그러나, 실제로는 미리 알기가 어렵다!
•
짧은 작업을 먼저 실행시켜서 반환시간을 최적화 가능
응답시간을 최적화
•
여러 개의 큐를 두고, 큐마다 우선순위를 배정
◦
같은 큐에 있는 프로세스들은 같은 우선순위를 가짐 → RR
◦
작업 특성에 따라 동적 우선순위 부여
▪
어떤 작업이 키보드 입력을 기다리면서 반복적으로 CPU를 양보하면, MLFQ는 해당 작업의 우선수위를 높임 == 대화형 프로세스의 패턴
▪
한 작업이 CPU를 집중적으로 사용하면 → MLFQ는 해당 작업의 우선순위를 낮춤
▪
MLFQ는 해당 작업의 정보를 얻으면서 미래 행동을 예측한다!
•
작업의 우선순위 변경
◦
작업이 존재할 큐 결정
◦
대화형 작업 VS CPU(프로세서) 위주 작업
•
규칙
◦
작업 우선순위가 높을 경우, 해당 작업 실행
◦
두 작업의 우선순위가 같으면, RR
Multicore Processors
최근, 다수의 프로세서 코어들은 동일 물리적 칩에 넣는 추세
•
더 빠르고, 파워소비는 더 적게 가능
•
코어 당 프로세스 사용률은 증가중
