執行緒
程序是資源分配的基本單位,執行緒是任務排程的基本單位。引入程序是為了使多道程式有條不紊的併發執行,提高資源利用率和系統吞吐量;引入程序是為了減少程式在併發執行時所付出的時空開銷。
執行緒間的同步和通訊
1、互斥鎖:共享多個資源時導致死鎖。
2、互斥鎖+條件變數:解決共享乙個臨界資源時的死鎖問題。
3、訊號量:①私用訊號量:存放於應用程式的位址空間中,os並不知道其存在,用於同一程序中各執行緒之間的同步;②公用訊號量:存放於受保護的系統儲存區中,由os為它分配空間並進行管理,用於不同程序間或不同程序的執行緒之間的同步。
執行緒的實現方式
1、核心支援執行緒kst:無論是使用者程序中的執行緒,還是系統程序中的執行緒,他們的建立、撤消、切換以及要求由系統裝置完成的i/o操作,都是在核心空間中實現的。
2、使用者級執行緒ult:建立、撤消、切換以及同步和通訊,都無需核心的支援。核心完全不知道使用者級執行緒的存在。
3、kst/ult組合方式
執行緒的實現
1、核心支援執行緒的實現:系統在建立乙個新程序時,便為它分配乙個任務資料區pdta,其中包含若干個執行緒控制塊tcb空間。在每乙個tcb中可儲存執行緒識別符號、優先順序、執行緒執行的cpu狀態資訊等。雖然這些資訊與使用者級執行緒tcb中的資訊相同,但現在卻是被儲存在核心空間中。
2、使用者級執行緒的實現:採用中間系統①執行時系統;②核心支援執行緒(如下圖)
計算機作業系統 程序管理(2)
程序的狀態 就緒 ready 狀態 當程序已分配到除cpu以外的所有必要資源後,只要再獲得cpu,便可立即執行,程序這時的狀態稱為就緒狀態。在乙個系統中處於就緒狀態的程序可能有多個,通常將它們排成乙個佇列,稱為就緒佇列。執行狀態 程序已獲得cpu,其程式正在執行。在單處理機系統中,只有乙個程序處於執...
計算機作業系統之程序管理
程序和執行緒的聯絡和區別 定義 程序 具有一定獨立功能的程式關於某個資料集合上的一次執行活動,是系統進行資源分配和排程的乙個獨立單位。執行緒 程序的乙個實體,是cpu排程和分派的基本單位,他是比程序更小的能獨立執行的基本單位,執行緒自己基本上不擁有系統資源,只擁有一點在執行中必不可少的資源 如程式計...
計算機與作業系統 程序
作業系統中最核心的概念是程序,程序是對正在進行的程式的抽象。因為有了程序這個概念的存在,才讓cpu有了 偽 併發操作的能力。在任何多道程式設計系統中,cpu在多個程序中不斷的切換,每個程序執行幾十至幾百毫秒。嚴格來說,在某乙個瞬間,cpu只能執行乙個程序,而在1秒內,它可能執行多個程序,這就給人了一...