- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
各種cpu排程演算法之探討
Chap4 各種CPU 排程演算法之探討
一、先進先出排程法(First in First out ;FIFO)
按進入 Ready Queue 的順序而決定使用 CPU 的先後次序而完成此方式是採用
FIFO Queue 。
特點有三:
(1) 此種排班程式最容易設計。
(2) 此種排班程式的效益最差,即平均等待時間較差。
(3) 可能會造成護送效應 (Convoy Effect): 很多短時間的process ,都在等一個
長時間的process 時,所產生的效應。(因為等待時間很長) 。
FIFO 排班程式是不可插隊 (Non-preemptive) ,一旦一個process 佔用了CPU ,它
就會一直使用直到終止或請求I/O 動作,如果允許某process 長時間佔用CPU ,
使用者會無法忍受,故不適用於Time-sharing system 。
二、最短程式優先排班法(Shortest Job First Scheduling; SJF)
此排班法會在CPU 空閒時選擇具最小的CPU
Burst Time 的process ,並使之取得CPU 控制權。
特點:
(1) SJF 是效益最佳的排班法。
(2) 由於各process 的下一個CPU burst time 較難預
測,因此SJF 很難被用在Process Scheduler 。
(註) SJF 又分為可插隊(Preemptive)及不可插隊(Non- Preemptive)
(1) Preemptive Scheduling
意義: 當process 獲得CPU 後,雖然該process 尚未執行完畢時,卻允許被移走
(離開CPU) 。
適用: Real-time 及Interactive system 。
缺點: Context Switch 可能頻繁,浪費時間;可能會造成Starvation 。
(2) Non-Preemptive Scheduling
意義: 當一process 獲得CPU 後,除非該process 已經執行完畢,否則不允許被
移走。
優點: 對所有的process 較公平。
缺點: 平均等待時間可能會提高,易造成Convoy Effect 。
三、優先等級(Priority)排班法
優先等級排班法會將CPU 指定給具有最高優先等級的process 。若同時間有多個
相等優先等級的process 欲使用CPU 時,則採用FIFO 方式。
Priority Scheduling 的一些問題: 飢餓現象(Starvation) :
優先等級排班法有可能使某些較低優先權的 process 限於無限期等待 CPU 的地
步。一些高優先權process 可能讓某些低優先權的process 永遠得不到CPU 。
解決方式: Aging Technique 。
對於低優先權process 無限停滯問題的解決方法是老化(Aging)而此技術可將
在系統中等待了很長時間的process 的優先權逐漸提高。
四、巡迴式排程法(Round-Robin Scheduling; R.R.)
R.R.排程演算法是特別為Time-sharing 設計的。在這種設計中,把一小段時間定
義為時間配額(Time Quantum)或時間分槽(Time Slice) ,每個process 皆有固定時
間量來使用CPU ,當process 使用CPU 超過一個Time Slice 時,則計數器(Timer)
會產生中斷促使此process 從Running state 回到 Ready state 。
註 R.R. Scheduling 是preemptive 的。R.R.演算法的效率與Time Slice 的大小有
很大的關係。
若Time Slice 無限大,則R.R.策略約等於FIFO 。
若Time Slice 無限小,則R.R.策略約等於Time- Sharing System 。
五、多重佇列排程法(Multiple-Level Queues Scheduling)
多重佇列排程法,是將ready queue 進一步分成幾個不同queue ,根據process 的
某些特性,如process 的型態,固定地將process 分配到queue 之中,每個queue
又有各自的排班法則;例如,佇列可以用前景(foreground)與
文档评论(0)