- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第三章 處理程序的說明及控制Process Description and Control 所有多重程式(multi-programmed)作業系統都建立在process的概念 大部分作業系統需滿足的需求 交錯多個process的執行,在理想反應時間下達到最大的處理器使用率。 遵從特定的政策(例如,高優先權)來配置資源給process,且避免死結的發生。 支援process間的相互通訊(inter-process communication)、使用者process的建立。 從了解process的表示與控制,開始學習作業系統! 3.1 處理程序的狀態 從處理器的觀點看process交錯執行 處理器藉由改變程式計數器(Program Counter, PC)的數值,依序執行指令。 追蹤process的軌跡(trace):列出每個process執行指令的順序。 處理程序A, B, C的軌跡 5000 8000 12000 5001 8001 12001 5002 8002 12002 5003 8003 12003 5004 12004 5005 12005 5006 12006 5007 12007 5008 12008 5009 12009 5010 12010 5011 12011 (a) (b) (c) 所有處理程序結合的軌跡 ?5000 ?5001 ?5002 ?5003 ?5004 ?5005 時間到 100 101 102 103 104 105 8000 8001 雙狀態(two-state)處理程序模型 Process的兩種狀態: 執行(Running) 未執行(Not Running) 。 中斷的process被移至等待佇列中。 分派程式由佇列中選擇一個process執行。 建立處理程序的原因 新的批次工作:讀入下一個工作控制命令(Job Control Command) 。 互動式登入:使用者在終端機登入到系統。 被作業系統建立來提供服務:產生新process以進行特定功能,避免使用者等待。 由現有的process產生:為了模組化或平行處理,使用者程式可建立其他process。 Process產生另一Process時,彼此為親子關係 (Parent and Child)。 處理程序終止的原因 正常完成 (Normal completion) 批次工作下達停止(Halt)指令或系統呼叫。 使用者登出。 Process發出終止執行的請求。 執行時發生錯誤: 超過時間限制(Time limit exceeded)、記憶體不足(Memory unavailable)、違反記憶體邊界(Memory bounds violation) 保護錯誤(Protection error):write to read-only file 算術錯誤(Arithmetic error):除以0,或超出最大值。 時間超過(Time overrun) :process waited longer than a specified maximum for an event 管理者或作業系統介入(如發生deadlock) 、輸出入失敗(I/O failure)、不合法指令(Invalid instruction)、特權指令(Privileged instruction)、資料誤用、parent process要求、parent process終止。 五狀態(five-state)處理程序模型 雙狀態模型不完備之處 未執行狀態的process有兩種情形:(1)可以執行;(2)等待I/O動作的完成而被懸置(blocked) 。 分派程式必須掃描整個佇列,找出未被懸置且等待最久的process。 擴充雙狀態模型成為五種狀態 執行中(Running) 未執行狀態再區分為: 備妥(Ready);懸置(Blocked) 另為方便管理process,新增二種狀態: 新建(New):剛被系統建立,尚未允許進入執行區。(尚未載入主記憶體,僅建立表格) 離開(Exit):因停止或取消,被系統由執行區離開。(釋放佔用的主記憶體,但保留相關表格) 五狀態處理程序模型(續) 圖3.7(a)有兩個佇列:備妥佇列與懸置佇列 圖3.7(b)對每一事件分別有一佇列 置換的需要 The need for swapping 在未使用虛擬記憶體的系統,每個process必須完全地載入記憶體中才能執行。 由於處理器比I/O動作快太多,即使在多工環境下,處理器大部分時間仍處於閒置狀態。 解決方法:容納更多的process 擴充主記憶體:如此會增加成本。 置換(swapping) :將process的部分或全部由主記憶體移至磁碟上,本身也是I/O動作
文档评论(0)