行程的状态-系统程式.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
行程的状态-系统程式.ppt

行程的概念 大綱 行程定義 執行中的程式 相關概念 電腦的架構 CPU+記憶體結構 ? 機器語言 ?組合語言 ? 高階語言 行程控制區塊 (Process Control Block) 內文切換 行程的行為 行程的狀態 排程 行程的概念 行程的定義 : 執行中的程式 多工 Multi-Tasking 很多個程式共同執行 解決辦法 每次仍然只有一個程式真正佔用 CPU 執行。 要切換程式時,使用上述的 Task-Switching 程序 其他程式處於等待狀態 等甚麼 ? (I/O, 排程) 電腦的架構 CPU+記憶體結構 機器語言 組合語言 高階語言 行程 – 高階語言 行程 – 組合語言 行程 – 機器語言 行程 – 硬體狀態 行程的基本元素 相對應的程式碼 資料區段 + 行程堆疊 CPU 中各暫存器的值 行程的基本元素 – 程式 行程的基本元素 – 資料 行程的基本元素 – 堆疊 main() f1(p1) f2(p2) sum(ary, size) 堆疊的範例 行程的基本元素 – 暫存器 CPU 中各暫存器的值 (包含程式計數器 PC) 行程的組成 作業系統應該記載哪些行程資訊? 這個資訊稱為 PCB 行程控制區塊(PCB) 儲存行程在執行時相關的資訊。 PCB 中通常包括了 行程狀態 CPU 暫存器 排程資訊 I/O 狀態 行程的資料結構 行程的狀態 (Process State) 紀錄行程目前所處的狀態 暫存器 (Registers) 程式計數器 Program Counter 狀態暫存器 Status Register 記憶體 (Memory) 程式區 資料區 堆疊區 資源 (Resource) 開啟的檔案 使用的裝置 行程控制區塊 行程控制區塊 - PCB (Process Control Block) 作業系統所儲存的行程資料結構 行程的狀態 Linux 的行程狀態欄位 Linux 的行程狀態 可執行狀態 TASK_RUNNING: 行程正在執行或是等待被執行時。 可中斷狀態 TASK_INTERRUPTIBLE: 等待某些事件發生時,如等待信號的傳遞。 不可中斷狀態 TASK_UNINTERRUPTIBLE: 與TASK_INTERRUPTIBLE 一樣,不同的是信號傳遞時並不會造成狀態的改變。 停止狀態 TASK_STOPPED: 收到 SIGSTOP、SIGTSTP、SIGTTIN 或SIGTTOU 信號時。 彊死狀態 TASK_ZOMBIE: 當子行程結束時,父行程尚未呼叫類似 wait() 的系統呼叫來得知子行程的狀態並作適當處理,於是子行程就會處於這個狀態。 內文切換 內文切換 - 作業系統如何切換執行程式? 當 CPU 的使用權由一個行程轉到另一個行程時需進行內文切換。 切換的功能通常稱為 Context Switch. Context-Switch 時必須把所有暫存器的值儲存起來。 等到該程式又被執行時才再度將這些暫存器取回來,放入 CPU 的對應暫存器中。 程式計數器在儲存時應該儲存下一個執行指令的位址。 內文切換的過程 Linux 的內文切換(1) Linux 的內文切換(2) Linux 的內文切換(3) Linux 的內文切換(4) Linux 的內文切換(5) Linux 的內文切換(6) 多工執行 多工 Multi-Tasking 很多個程式共同執行 解決辦法 每次仍然只有一個程式真正佔用 CPU 執行。 要切換程式時,使用上述的 Task-Switching 程序 其他程式處於等待狀態 等甚麼 ? (I/O, 排程) 行程的行為 行程的執行會在兩個狀態間不停的切換 CPU 暴衝 I/O 暴衝 行程一開始都是 CPU 暴衝,接著是 I/O 暴衝,然後再回到 CPU 暴衝和 I/O 暴衝。 在正常的狀況下,行程就在這兩個狀態間一直循環,最後以 CPU 暴衝作為結束。 CPU 暴衝與 I/O 暴衝 CPU 暴衝時間統計示意圖 行程排程 為了增加 CPU 的使用效率而提出多個行程的觀念。 一個單 CPU 的系統來說,隨時只能有一個行程在執行。 其他行程則必須等待 CPU 空閒下來,然後再經由排程器選出,才能取得 CPU 的使用權。 如何排程是影響作業系統效能最重要的因素。 排程佇列 一個行程在執行期間會在各種不同的佇列中進出。 一個系統中通常有 工作佇列 就緒佇列 等待佇列 裝置佇列 就緒佇列與裝置佇列 結語 行程就是執行中的程式 要了解電腦的架構才能理解行程概念 行程控制區塊 PCB 是作業器統用來儲存行程資料的結構 內文切換作業系統切換行程時必做的動作 行程的行為是由 – CPU 暴衝與 IO

您可能关注的文档

文档评论(0)

busuanzi + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档