第四章执行绪对称式多重处理及微核心4.1 .pptVIP

  • 0
  • 0
  • 约8.63千字
  • 约 42页
  • 2019-11-12 发布于湖北
  • 举报

第四章执行绪对称式多重处理及微核心4.1 .ppt

第四章 執行緒、對稱式多重處理及微核心 4.1 處理程序與執行緒(Process and thread) 更進階的Process觀念,應分開為二個獨立的概念: 資源擁有權單位(resource ownership): Process會分配到虛擬位址空間,放置process的image; 被配置主記憶體及其他資源的控制權,例如:I/O裝置及檔案。 排程/執行 (scheduling/execution): Process是單一或多個程式的執行路徑。(process is an execution path through one or more programs) 此執行可被插入其他process的執行路徑中。(execution may be interleaved with other process) Process具備執行狀態及分派優先權(dispatching priority)。 目前發展的作業系統中,均已區別這兩個概念: 資源擁有權單位:process或task 分派單位:thread或輕量級process (lightweight process) Multithreading Multithreading vs. Single threading Multithreading: 一個單一process中執行多個thread。(multiple threads of execution within a single process) Single threading:一個process中執行單一thread。 四種情形及其作業系統 MS-DOS支援單一使用者process及單一thread。 傳統UNIX支援多個使用者process但僅支援每一process單一thread。 Java虛擬機器是單一process多個thread的系統。 Windows 2000, Solaris, Linux, Mach及OS/2支援多個process多個thread。 在multithreaded環境中 process的定義:資源分配及保護的單位。 thread包括:執行狀態、thread context(序文)、儲存thread環境的空間、執行堆疊、可和此process中其他thread共享的記憶體及資源。 Thread的特點 Process的所有thread 共享此process的狀態及資源。 存在於相同位址空間,存取相同的資料。 舉例:某一thread改變記憶體的資料或以讀取權打開檔案。 thread同步(synchronization):使共用資料或資源的thread,彼此間不會相互干擾。(見第5、6章) thread的關鍵優點:效能 在已存在的process建立新的thread,比建立新的process花費較少的時間。(Mach的設計者發現與沒有thread的Unix相比,建立thread與建立process,效率相差10倍。) 終止一個thread比終止一個process,花費的時間較少。 同一process的兩個thread的切換,僅需較少的時間。 在SMP機器上,數個thread可分配在不同處理器上執行。 提高process間通訊(IPC)的效率: IPC通常需要核心的介入;同一process中的thread則不需核心即可溝通。 Thread的使用及狀態 Thread的使用,在單一處理器上也很有用,以單一使用者多process系統為例: 前景及背景工作(foreground and background work):例如:試算表軟體,前景(輸入資料)、背景(更新試算表) 。 非同步的處理(asynchronous processing): process中非同步的部分,以thread執行。例如:文書處理軟體,將定期備份由一thread執行,由系統自行排定。 加速執行(speed execution):在讀入下一筆資料時,同時計算目前這筆資料。 模組化程式結構(modular program structure):包含數個行為或數個I/O來源及目的的程式,使用thread可以較容易的設計。 Thread狀態: 主要為:執行中(Running)、備妥(Ready)、懸置(Blocked) thread狀態不包括暫停(Suspend),暫停為process層次的觀念。 一個thread被懸置,不會影響到其他thread。 改變執行緒狀態的基本動作: 產生(spawn)、懸置(block)、解除懸置(unblock)、完成(finish)。 Thread用於RPC 對兩個不同主機做兩個遠端程序呼叫(Remote Procedure Call, RPC) 。 (a) 依序等待伺服器回應。 (b) 每個RPC使用一個th

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档