- 1、本文档共50页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
905-作业系统
作業系統 第四章 行程與執行緒 教學目標 行程的概念 行程的操作 執行緒 行程間的通訊 (IPC) 行程的概念 行程 v.s. 程式 行程的狀態 行程控制表 本文切換(Context Switch) 行程 v.s. 程式 程式(program) 被動的觀念 一堆程式碼,定義要執行的任務 行程(process) 主動的觀念 主動執行被賦予的任務 執行的基本單位 行程的狀態 剛產生(new) 作業系統正在產生這個行程,包括從硬碟將程式碼載入到記憶體中,和配置使該行程能夠執行所需要的系統資源等 執行中(running) 該行程正在使用CPU做某些運算中 等待(waiting) 該行程正等待某件事情的發生而暫停執行,例如:等待某次I/O運算的完成或等待其他行程送訊號過來等 就緒(ready) 該行程目前只有在等待使用CPU的機會,而CPU正被其他的行程使用中 結束(terminated) 該行程目前已經完成了任務,並且結束了執行 行程狀態之間的轉移 行程控制表(PCB) 目的 方便管理各個行程 每一個行程會有一個相對應的行程控制表 依據各平台,記錄該行程的相關資訊 行程狀態 CPU排班 CPU暫存器狀態 記憶體管理 輸入輸出 Linux的行程控制表範例 本文切換(Context Switch) 目的 多工、增加CPU的使用效率 方法 先釋放出CPU使用權的行程,儲存其執行時的狀態,包括CPU內暫存器的內含值,以及所屬記憶體的內容等 將整個系統的狀態,回復成下個要執行的行程被系統儲存下來的狀態 行程的觀點與CPU的觀點 本文切換的範例 本文切換的問題 缺點 整體系統的額外負擔 解決策略 調整本文切換的頻率 另外增加硬體(e.g. 多CPU暫存器組、多CPU) 使用執行緒(thread) 行程的操作 行程的產生 行程的結束 行程的產生 配置新行程在執行時所需的系統資源 PCB、記憶體、檔案、輸入輸出裝置、…. 行程樹 通常除了系統的第一個行程外,其餘的所有行程都是由該行程產生 被產生的行程也可以產生另外的新行程 產生的行程為父行程,被產生的為子行程 產生的方式--系統呼叫 POSIX API的fork(),Unix/Linux Win32 API的CreateProcess(),Windows 行程樹示意圖 行程的產生與替換之範例 行程的結束 釋放該行程擁有的系統資源 時機 該行程的父行程呼叫行程結束的系統呼叫,以結束該行程的執行 該行程已經執行完畢 分類 串接式結束 非串接式結束 執行緒(thread) 概念 層級與對應模式 執行緒的概念 Why? 行程的產生、結束和本文切換的負擔大 What? 執行的基本單位 輕量型行程 同個行程內的所有執行緒,共用相同的位址空間(程式碼、資料、….) 行程 v.s. 執行緒 執行緒的優點(相較於行程) 加快反應速度 資源分享 經濟性 本文切換(1/5 in Solaris) 產生與結束執行緒(1/3 in Solaris) 執行緒的層級 核心層級 完全由作業系統操作、管理 在執行(running)狀態下,表示正佔據CPU時間 所有此層級的執行緒,可看成屬於同一行程(核心) 使用者層級 屬於某個使用者模式的行程 若全由使用者模式執行緒函式庫來管理 在執行(running)狀態下,不見得一定正佔據CPU時間 具有較高的可攜性(e.g. POSIX PThreads) 依實作方式不同,和核心層級執行緒有不同的對應方式: 兩個層級間執行緒的對應 1:1對應模式 N:1對應模式 M:N對應模式 1:1對應模式 1:1對應模式的優缺點 優點 每增加一個使用者層級的執行緒,就可以有多一個搶到的CPU執行機會,執行緒的並行性(concurrency)比較好 當一個執行緒呼叫系統呼叫而被卡住時(如等待I/O),其他執行緒還有執行機會,而且只透過一層的核心層級排班,執行效率比較高 缺點 比較耗核心層級的資源,產生過多的核心層級執行緒,會降低整個系統的執行效率 多數支援這種模式的作業系統會限制執行緒的總數 範例 Windows系列的CreateThread() N:1對應模式 N:1對應模式的優缺點 優點 減少核心的負擔 方便移植到各個平台的作業系統 缺點 同個行程內的任何一個執行緒,只要呼叫系統呼叫而被暫停(如等待I/O),則整個行程內的所有執行緒就都必須一起等待,沒有另外取得CPU執行權的機會 範例 Solaris的Green threads GNU的POSIX PThreads M:N對應模式 M:N對應模式的優缺點 優點 具有較大的彈性 可以避免前兩種對應模式的缺點,例如,某一使用者層級執行緒被卡住時,可以安排別的核心層級執行緒處理同一行程中的其他執行緒,避免同個行程中的
文档评论(0)