cpu 排程 (cpu scheduling)

18
CPU 排排 (CPU Scheduling)

Upload: jalen

Post on 05-Jan-2016

64 views

Category:

Documents


0 download

DESCRIPTION

CPU 排程 (CPU Scheduling). 影印機管理. 多人 ( 多程式 ) 搶用一台影印機 ( 單一 CPU) 各人抵達 ( 程式的啟動 ) 的時間點不同 影印張數 ( 執行時間 ) 各不同 影印途中經常須返家更換資料 (I/O) 須考慮公平性 、 等待時間. 排隊看醫生. 多人 ( 多程式 ) 等待唯一的醫生 ( 單一 CPU) 看病 各人掛號 ( 程式的啟動 ) 的時間點不同 診療時間 ( 執行時間 ) 各不同 診療途中經常須做各項抽血、 X 光等檢查 (I/O) 須考慮公平性 、 等待時間. 程序排程 (Process Scheduling). - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: CPU 排程 (CPU Scheduling)

CPU 排程(CPU Scheduling)

Page 2: CPU 排程 (CPU Scheduling)

影印機管理 多人 ( 多程式 ) 搶用一台影印機 ( 單一 CPU) 各人抵達 ( 程式的啟動 ) 的時間點不同 影印張數 ( 執行時間 ) 各不同 影印途中經常須返家更換資料 (I/O) 須考慮公平性、等待時間

Page 3: CPU 排程 (CPU Scheduling)

排隊看醫生 多人 ( 多程式 ) 等待唯一的醫生 ( 單一 CPU) 看病 各人掛號 ( 程式的啟動 ) 的時間點不同 診療時間 ( 執行時間 ) 各不同 診療途中經常須做各項抽血、 X 光等檢查 (I/O) 須考慮公平性、等待時間

Page 4: CPU 排程 (CPU Scheduling)

程序排程 (Process Scheduling)

CPU

硬碟

主記憶體

長程排程

(Long-Term Scheduling)

或 (Job Scheduling)

短程排程

(Short-Term Scheduling)

或 (CPU Scheduling)

中程排程

(Medium-Term Scheduling)

Swap out

Swap in

Swapper

Page 5: CPU 排程 (CPU Scheduling)

程序的排程 (Process Scheduling) 被啟動的程式 (program) 叫程序 (process) 長程排程:或工作排程 (Job Scheduling)

不急迫的程序,以背景 (background) 處理的方式先放在硬碟,等 CPU 有空時 ( 晚上離峯時段 ) 再載入主記憶執行。

機械速度電子速度 中程排程:

CPU 欲處理的程序片段在硬碟,但主記憶已塞滿其他程序片段時,須移出 (swap out) 部分程序片段

被移出的片段再次被 CPU 參照時,須再由硬碟載入 (swap in) 主記憶體

負責中程排程的程式稱置換程式 (swapper) 短程排程:又稱 CPU 排程 ( 本章內容 )

Page 6: CPU 排程 (CPU Scheduling)

程序狀態遷移圖(Process State Transition Diagram)

就緒Ready

執行Running

暫停Blocked

開始結束

I/OI/O 完成

CPU 閒置

Time out

Page 7: CPU 排程 (CPU Scheduling)

病患在診療過程中的狀態遷移(1) 目前的診療結束時,醫生 (CPU) 由診療室外的病

人 (Ready list) 中挑一個病患 (process) 來診療 診療中碰到需要檢查時 (I/O) :

目前的診療暫停 (CPU 有空 ) 病患至檢驗室檢查,成為 blocked 狀態 醫生由診療室外的病人中挑一個新病患來診療 檢查完畢後,原病患回到診療室排隊 (ready list) ,再

度成為 ready 狀態

Page 8: CPU 排程 (CPU Scheduling)

病患在診療過程中的狀態遷移(2) 循環分配方式:每個病患每次分配 5 分鐘,輪流

接受診療直到完畢為止 診療時間用完時 (time out) :

目前的診療暫停 (CPU 有空 ) 醫生由診療室外的病人中挑一個新病患來診療 原病患回診療室外 (ready list) 排隊 ,再度成為 ready

狀態,等待下一輪

Page 9: CPU 排程 (CPU Scheduling)

CPU 排程法的評比指標 回報時間 (Turnaround Time) = 完成時刻 – 開

始時刻 等待時間 (Waiting Time) = 回報時間 – 執行時

間 反應時間 (Response Time) = 畫面出現時刻 –

按 ENTER 時刻 ( 限 interactive) 公平性 (Fairness) :等待時間,平均等待時間,

相對等待時間 = 等待時間 / 執行時間,平均相對等待時間

Page 10: CPU 排程 (CPU Scheduling)

先到先做 (First Come First Service) 挑選程序的時機:程序執行完畢時 挑進入時刻最早的程序來執行 程序只要抓住 CPU 就執行到完畢,不會被插隊

A( 先 ) 要影印 100 張, B( 後 ) 只印 1 張 A 印完後,才換 B

Page 11: CPU 排程 (CPU Scheduling)

FCFS 範例程序 A B C

進入時刻 0 1 2

CPU 時間 7 20 3

A A A A A A A B B B B B B B B B B B B B B B B B B B B C C C00

1 2 3 4 5 6 7 8 9 01

1 2 3 4 5 6 7 8 9 02

1 2 3 4 5 6 7 8 9

回報時間

TA=7-0=7

TB=27-1=26

TC=30-2=28

CPU 時間配置圖

公平性:有護應現象 (Convoy Effect) ,後到的小程序須苦等先到的大程序優點: Simple is good !缺點:平均等待時間長

等待時間

WA=7-7=0

WB=26-20=6

WC=28-3=25

相對等待時間

RWA=0/7

RWB=6/20

RWC=25/3

Page 12: CPU 排程 (CPU Scheduling)

最短工作優先 (Shortest Job First) 挑選程序的時機:程序執行完畢時 挑 CPU 時間最短的程序來執行 程序只要抓住 CPU 就執行到完畢,不會被插隊

A 要影印 100 張,當 A 印 5 張後 ( 剰 95 張 ) , B( 只印 1 張 ) 進入, B 不可插隊

Page 13: CPU 排程 (CPU Scheduling)

SJF 範例程序 A B C

進入時刻 0 1 2

CPU 時間 7 20 3

A A A A A A A C C C B B B B B B B B B B B B B B B B B B B B00

1 2 3 4 5 6 7 8 9 01

1 2 3 4 5 6 7 8 9 02

1 2 3 4 5 6 7 8 9

CPU 時間配置圖

公平性:有餓殍現象 (Starvation Effect) ,先到的大程序一直被後到的小程序插隊優點:平均等待時間較短缺點: CPU 時間無法預知,不實用 !不可奪取 (Non-preemptive) ,程序只要一抓到 CPU 就不會被插隊

回報時間

TA=7-0=7

TB=30-1=29

TC=10-2=8

等待時間

WA=7-7=0

WB=29-20=9

WC=8-3=5

相對等待時間

RWA=0/7

RWB=9/20

RWC=5/3

Page 14: CPU 排程 (CPU Scheduling)

最短剩餘時間工作優先(Shortest Remaining Time First) 挑選程序的時機:

新程序進入 ( 啟動 ) 時 程序執行完畢時

挑剩餘 CPU 時間最短的程序來執行 CPU 目前執行中的程序可能被剛進來的程序插隊

A 要影印 100 張,當 A 印 5 張後 ( 剰 95 張 ) , B( 只印 1 張 ) 進入, A 必須讓 B 插隊

A 要影印 100 張,當 A 印 99 張後 ( 剰 1 張 ) , B( 只印 1 張 ) 進入, ???

Page 15: CPU 排程 (CPU Scheduling)

SRTF 範例程序 A B C

進入時刻 0 1 2

CPU 時間 7 20 3

A A C C C A A A A A B B B B B B B B B B B B B B B B B B B B00

1 2 3 4 5 6 7 8 9 01

1 2 3 4 5 6 7 8 9 02

1 2 3 4 5 6 7 8 9

CPU 時間配置圖

公平性:有餓殍現象 (Starvation Effect) ,先到的大程序一直被後到的小程序插隊優點:平均等待時間較短缺點: CPU 時間無法預知,不實用 !可奪取 (Preemptive) ,程序即使已抓到 CPU 仍會被其他小程序插隊

回報時間

TA=10-0=10

TB=30-1=29

TC=5-2=3

等待時間

WA=10-7=3

WB=29-20=9

WC=3-3=0

相對等待時間

RWA=3/7

RWB=9/20

RWC=0/3

Page 16: CPU 排程 (CPU Scheduling)

循環分配 (Round-Robin) 挑選程序的時機:時間配額用完時 新程序啟動時立即加入排隊行列 所有的排隊中的程序循環輪流執行到完畢為止

A 要影印 100 張, B 印 1 張, C 印 30 張。 以 A->B->C->A->B->C->… 順序輪流影印 每人每次限印 5 張 (time slice) ,印完為止

各程序的時間配額可設定不同 -> 設定優先等級

Page 17: CPU 排程 (CPU Scheduling)

RR 範例程序 A B C

進入時刻 0 1 2

CPU 時間 7 20 3

A A A A B B B B C C C A A A B B B B B B B B B B B B B B B B00

1 2 3 4 5 6 7 8 9 01

1 2 3 4 5 6 7 8 9 02

1 2 3 4 5 6 7 8 9

CPU 時間配置圖

公平性:最公平優點:實用、公平、等待的總合評比最佳缺點:時間配額 (Time Slice) 難決定。太大則如 FCFS ,太小則費時的程序切換 (context switch) 會太頻繁

Time Slice = 4

回報時間

TA=14-0=14

TB=30-1=29

TC=11-2=9

等待時間

WA=14-7=7

WB=29-20=9

WC=9-3=6

相對等待時間

RWA=7/7

RWB=9/20

RWC=6/3

Page 18: CPU 排程 (CPU Scheduling)

おわり