1 / 18

CPU 排程 (CPU Scheduling)

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

jalen
Télécharger la présentation

CPU 排程 (CPU Scheduling)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CPU排程(CPU Scheduling)

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

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

  4. 程序排程(Process Scheduling) 中程排程 (Medium-Term Scheduling) 主記憶體 Swap out 硬碟 Swapper CPU Swap in 短程排程 (Short-Term Scheduling) 或 (CPU Scheduling) 長程排程 (Long-Term Scheduling) 或 (Job Scheduling)

  5. 程序的排程(Process Scheduling) • 被啟動的程式(program)叫程序(process) • 長程排程:或工作排程(Job Scheduling) • 不急迫的程序,以背景(background)處理的方式先放在硬碟,等CPU有空時(晚上離峯時段)再載入主記憶執行。 • 機械速度電子速度 • 中程排程: • CPU欲處理的程序片段在硬碟,但主記憶已塞滿其他程序片段時,須移出(swap out)部分程序片段 • 被移出的片段再次被CPU參照時,須再由硬碟載入(swap in)主記憶體 • 負責中程排程的程式稱置換程式(swapper) • 短程排程:又稱CPU排程 (本章內容)

  6. 程序狀態遷移圖(Process State Transition Diagram) CPU閒置 執行 Running 開始 就緒 Ready 結束 Time out I/O I/O 完成 暫停 Blocked

  7. 病患在診療過程中的狀態遷移(1) • 目前的診療結束時,醫生(CPU)由診療室外的病人(Ready list)中挑一個病患(process)來診療 • 診療中碰到需要檢查時(I/O) : • 目前的診療暫停(CPU有空) • 病患至檢驗室檢查,成為blocked狀態 • 醫生由診療室外的病人中挑一個新病患來診療 • 檢查完畢後,原病患回到診療室排隊(ready list) ,再度成為ready狀態

  8. 病患在診療過程中的狀態遷移(2) • 循環分配方式:每個病患每次分配5分鐘,輪流接受診療直到完畢為止 • 診療時間用完時(time out): • 目前的診療暫停(CPU有空) • 醫生由診療室外的病人中挑一個新病患來診療 • 原病患回診療室外(ready list)排隊 ,再度成為ready狀態,等待下一輪

  9. CPU排程法的評比指標 • 回報時間(Turnaround Time) = 完成時刻 –開始時刻 • 等待時間(Waiting Time) = 回報時間 –執行時間 • 反應時間(Response Time) = 畫面出現時刻 –按ENTER時刻(限interactive) • 公平性(Fairness):等待時間,平均等待時間,相對等待時間 = 等待時間 / 執行時間,平均相對等待時間

  10. 先到先做 (First Come First Service) • 挑選程序的時機:程序執行完畢時 • 挑進入時刻最早的程序來執行 • 程序只要抓住CPU就執行到完畢,不會被插隊 • A(先)要影印100張,B(後)只印1張 • A印完後,才換B

  11. FCFS範例 相對等待時間 RWA=0/7 RWB=6/20 RWC=25/3 等待時間 WA=7-7=0 WB=26-20=6 WC=28-3=25 回報時間 TA=7-0=7 TB=27-1=26 TC=30-2=28 CPU時間配置圖 • 公平性:有護應現象(Convoy Effect),後到的小程序須苦等先到的大程序 • 優點:Simple is good ! • 缺點:平均等待時間長

  12. 最短工作優先 (Shortest Job First) • 挑選程序的時機:程序執行完畢時 • 挑CPU時間最短的程序來執行 • 程序只要抓住CPU就執行到完畢,不會被插隊 • A要影印100張,當A印5張後(剰95張) ,B(只印1張)進入,B不可插隊

  13. SJF範例 回報時間 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 CPU時間配置圖 • 公平性:有餓殍現象(Starvation Effect),先到的大程序一直被後到的小程序插隊 • 優點:平均等待時間較短 • 缺點:CPU時間無法預知,不實用! • 不可奪取(Non-preemptive),程序只要一抓到CPU就不會被插隊

  14. 最短剩餘時間工作優先(Shortest Remaining Time First) • 挑選程序的時機: • 新程序進入(啟動)時 • 程序執行完畢時 • 挑剩餘CPU時間最短的程序來執行 • CPU目前執行中的程序可能被剛進來的程序插隊 • A要影印100張,當A印5張後(剰95張),B(只印1張)進入,A必須讓B插隊 • A要影印100張,當A印99張後(剰1張),B(只印1張)進入,???

  15. SRTF範例 回報時間 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 CPU時間配置圖 • 公平性:有餓殍現象(Starvation Effect),先到的大程序一直被後到的小程序插隊 • 優點:平均等待時間較短 • 缺點:CPU時間無法預知,不實用! • 可奪取(Preemptive),程序即使已抓到CPU仍會被其他小程序插隊

  16. 循環分配 (Round-Robin) • 挑選程序的時機:時間配額用完時 • 新程序啟動時立即加入排隊行列 • 所有的排隊中的程序循環輪流執行到完畢為止 • A要影印100張,B印1張,C印30張。 • 以A->B->C->A->B->C->…順序輪流影印 • 每人每次限印5張(time slice),印完為止 • 各程序的時間配額可設定不同->設定優先等級

  17. RR範例 回報時間 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 Time Slice = 4 CPU時間配置圖 • 公平性:最公平 • 優點:實用、公平、等待的總合評比最佳 • 缺點:時間配額(Time Slice)難決定。太大則如FCFS,太小則費時的程序切換(context switch)會太頻繁

  18. おわり

More Related