Please enable JavaScript.
Coggle requires JavaScript to display documents.
05CPU排程 (排程方法 (1.先進先出(FCFS) (發出要求的行程可以先取得CPU的使用權。, 需要一個FIFO佇列,…
05CPU排程
排程方法
1.先進先出(FCFS)
發出要求的行程可以先取得CPU的使用權。
需要一個FIFO佇列
CPU閒置時才會把第一個行程取出,再把CPU使用權交給分派器
護航現象(Convoy effect) : 若系統中存在一個CPU爆衝時間很長的行程,其他行程必須等待此行程結束
因不可搶先,使用者可能無法在預定時間內取得CPU使用權,不適合在"分時系統"使用
2.最短工作優先(SJF)
下一次 CPU 暴衝最短的行程優先
若下次CPU 暴衝時間相等,可用FCFS排程
缺點 : 不易知道下個行程的CPU爆衝時間確切長度
若有新的行程進入,該CPU爆衝時間更短,可以插隊
3.優先權排程
CPU暴衝愈短的行程優先權愈高
可搶先/不可搶先
4.循環分時排程(RR)
為分時系統所設計
每一個時間切片則為每個行程每次得到 CPU 使用權後可執行的時間
須注意內文切換對效能的影響
一般來說,80%行程的CPU暴衝時間應比一個時間切片要來得短
5.多層佇列排程
相同類型的行程分在同一佇列,而每一佇列都有自己的排程方法
分類
前景(互動)行程 - RR 排程法
背景(批次)行程 - FCFS 排程法
需要另一個整體排程方法
6.多層反饋佇列排程
CPU 暴衝時間愈長的行程就移到優先權比較低佇列中
7.執行緒排程
8.多程序排程
9.即時應用排程
基本概念
CPU排程器
從記憶體中選出一個已經準備就緒的行程,並且將CPU分配給它
排程時機
1.running 到 waiting(發生I/O要求)
2.running 到 ready
3.waiting 到 ready
4.程序終止
2、3須考慮 :
(1)是否有用到shared data
(2)是不是在kernel mode
(3)是否能接受interrupts
指Short-term scheduler
Dispatcher(分派器)
定義 : 真正把CPU控制權交給短程scheduler選定的process。
當排程器選出下一個行程後,就把工作交給分派器
包含
switching context(register和program counter內容的交換)
切換回使用者模式(排程是在管理者或核心模式進
行)
重新回到使用者的程式,並且從適當位址重新開
始執行
執行狀況
當每次行程切換動作產生時,分派程式都會
執行一次,故其效率很重要
[分派器停止一個行程]到[開始執行另一個行程]的這段時間稱為分派延遲
行程行為
I/O暴衝(burst):行程在等待I/O的期間
CPU暴衝(burst) : 行程在CPU執行的期間
行程就在這兩個狀態間一直循環
排程準則
方法
CPU utilization(使用率):讓CPU盡量保持忙碌
[越多越好]
Throughput(產量) : 在單位時間之內能夠完成的工作量。
[越多越好]
Turnaround time(回覆時間):對每一個process,從他進入到完成所需要花費的時間,通常時間受限於輸出裝置的速度
[越短越好]
Waiting time:被Scheduing load裡面準備要用cpu得時間開始算,到執行結束的時間。
[越短越好]
Response time(反應):在time sharing的環境中,計算當使用者送出一個要求,需經多少時間才會產生第一個反應
[越短越好]