Operation SystemChapter 4.ppt

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Operation SystemChapter 4

Operation System Chapter 4 行程(Process)與執行緒(Thread) 行程(Process) 行程指的是正在執行的程式 行程和程式有何不同? 程式是靜止地存在於儲存設備中, 一般而言是硬碟, 而行程則是核心自硬碟中, 將程式載入記憶體中, 予以排入執行周期來處理。 換言之,程式是一種死的(Passive)狀態,行程是活的(Active)狀態, 它具備程式計數器來指明下一個要執行的指令。 整批系統環境,行程稱為工作(jobs)。 分時系統環境,行程稱為使用者程式(user progams)或任務(tasks)。 在多數情況,工作與行程是同義詞,但行程(process)已較為人接受 狀態 行程在執行時,狀態(state)會改變。所謂狀態,就是指行程目前的動作: 新生(new):行程新產生中。 執行(running):正在執行。 等待(wating):等待某事發生,例如等待使用者輸入完成。 就緒(ready):排班中,等待CPU。 結束(terminated):完成執行。 各狀態名稱可能隨不同作業系統而相異;任何時間可能有多個行程為等待、就緒,但必定僅有一個行程在執行。 行程狀態圖 行程狀態控制表 每個行程再OS中都會對應一個行程狀態控制表 (Process Control Block, PCB) PCB含有行程的許多內部資訊,包含 行程狀態 程式計數器 CPU 暫存器 記憶體管理資訊 CPU 排班法則和相關資訊 CPU 會計資訊 輸入/輸出狀態資訊 Process Control Block (1/2) 行程狀態﹕可以是new、ready、running、waiting 或terminated。 程式計數器(Program counter)﹕指明該行程下次要執行的指令位置。 CPU 暫存器﹕其數量和類別依不同形式CPU 而有不同。有 累加器(accumulators) 索引暫存器(index register) 堆疊指標(stack pointer) 位址暫存器(address register) Process Control Block (2/2) 記憶體管理資訊﹕包括存取記憶體的基底暫存器(base register)和限制暫存器(limit register)、分頁表(page table)或記憶體系統的分段表(segment table)的資訊。 CPU 排班法則和相關資訊﹕包括行程的優先順序、排班法則。 CPU帳號資訊﹕CPU 的使用時間、帳號、工作和行程的編號。 輸入/輸出狀態資訊﹕這包括了行程的輸入/輸出裝置、開啟檔案的串列。 CPU 暫存器 PCB記載CPU 暫存器的資訊目的: 當中斷發生時,狀態資訊與程式執行計數器的資料必須儲存起來,以便中斷結束之後能繼續執行。 執行緒(Thread) 一個執行緒是Process中的一個執行流程,一個行程中可以同時包括多個執行緒,CPU會分配時間片段來處理這些子行程,這使得一個程式可以像是同時間處理多個事務。 多執行緒(Multithread)(1/2) 多執行緒是指從軟體或者硬體上實現多個任務併發執行的技術 軟體多執行緒 作業系統也可以通過快速的在不同執行緒之間進行切換,由於時間間隔很小,來給用戶造成一種多個執行緒同時運行的假象。 如Windows和Linux就是在各個不同的執行緒間來回切換,單人多工作業系統。 多執行緒(Multithread)(2/2) 硬體多執行緒 具有多個處理器的對稱多處理機(SMP)系統 靠硬體執行執行緒切換來獲得多執行緒能力,作業系統不再負責執行緒切換 Sun的UltraSPARC T1有4個、6個、8個CPU核心,且每個核心最多可同時執掌、處理4個執行緒,最理想狀態下可同時執行32個執行緒。 Intel? 四核心和雙核心處理器 單執行緒與多執行緒的差別 多執行緒程式的好處(1/4) 應答:將交談式的應用程式多執行緒化,可以在一個程式某一部份被暫停,或程式在執行冗長操作時,依然桂續執行,因此增加了對使用者的應答。 多執行緒程式的好處(2/4) 資源分享:執行緒間將共用它們所屬行程的記憶體和資源。程式碼和資料共用的好處是讓應用程式有數個不同的執行緒在同一位址空間活動。 多執行緒程式的好處(3/4) 經濟:對於行程產生所配置的記憶體和資源耗費很大。反之,因為執行緒共用它們所屬行程的資源,所以執行緒的產生和內容交換就比較經濟。憑經驗去測量出產生和維護行程比執行緒多出多少時間可能很困難,但通常產生和維護行程會比執行緒更費時。 多執行緒程式的好處(4/4) 使用多處理器架構:在多處理器的架構下,多執行緒的利益可以大幅提升,因為每一執行緒可以並行地在不同的處理器上執行。不論有

文档评论(0)

sh4125733 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档