第二章 進程管理

程序順序執(zhí)行時的特征 ?

1.順序性?處理機的操作嚴格按程序規(guī)定順序執(zhí)行

2.封閉性 ?程序一旦開始執(zhí)行,其計算結果不受外界因素影響

3.可再現性?程序執(zhí)行只要初始條件一樣,不論如何停頓,重復執(zhí)行多少次結果都一樣。

程序的并發(fā)執(zhí)行 ?? 符合前驅關系

間斷性? 失去封閉性? 不可再現性

多道程序在間斷性運行中的“相互影響”造成了失去封閉性。

進程

進程的定義: 進程是進程實體的運行過程,是系統進行資源分配和調度的一個獨立單位

進程的特征:1.結構性? 特征 ,進程的根本——PCB

? ? ? ? ? ? ? ? ? ? ? ? ? ?? 2.動態(tài)性 3 .并發(fā)性? 4.獨立性 5.異步性

? ? ? ? ? ? ? ??進程的三種基本狀態(tài)

(1)就緒狀態(tài)(Ready) ? ? ? 進程獲得除CPU之外的所有必需資源,一旦得到CPU控制權,可立即運行。

(2)運行狀態(tài)(Running) ? ? 進程已獲得所有運行必需的資源,正在處理機上執(zhí)行。

(3)阻塞狀態(tài)(Blocked) ? ? ? 正在執(zhí)行的進程由于發(fā)生某事件(請求I/O、申請緩沖、時間片到)而暫時無法執(zhí)行時,便放棄CPU后暫停

時間片完,進程從執(zhí)行狀態(tài)變?yōu)榫途w狀態(tài)

? ? ? ? ? ? 各種狀態(tài)下的進程隊列

單處理機系統,執(zhí)行態(tài)的進程只有一個;

就緒態(tài)、阻塞態(tài)的進程可有多個。一般講它們分別排稱一個隊列,稱就緒隊列、阻塞隊列。

阻塞隊列有的會根據不同原因再排成多個隊列。

進程控制塊 PCB ? ? ? ? ? ?? 進程實體:代碼段+數據段+PCB

進程控制塊定義:存放進程的管理和控制信息的數據結構稱為進程控制塊。

進程控制塊是進程存在的唯一標志

2.2進程控制

進程控制的基本過程:進程的創(chuàng)建、終止、阻塞與喚醒、掛起和激活

進程的創(chuàng)建過程:1.申請空白PCB 2.為新進程分配資源 3.初始化進程控制塊 4.將新進程插入就緒隊列 ?

2.3 進程同步 ?

進程間有什么相互影響?

兩種制約關系:

間接相互制約關系:主要源于資源共享,表現為

進程A---打印機資源---進程B(互斥)

直接相互制約關系:主要源于進程合作,表現為

進程A寫緩沖---進程B讀緩沖(有序)

進程同步的主要任務:

使并發(fā)執(zhí)行的諸進程之間能有效地共享資源和相互合作,從而使程序的執(zhí)行具有可再現性。

臨界資源:一次僅允許一個進程使用的資源

? ? ? ? ? ?? 生產者——消費者問題

一群生產者進程生產產品供給消費者進程消費,在兩者之間設置具有n個緩沖區(qū)的緩沖池,生產者進程所生產的產品放入一個緩沖區(qū)中,消費者進程可從一個緩沖區(qū)中取走產品去消費。

生產者和消費者都以異步方式運行,但它們之間必須保持同步:沒有產品不能取,沒有空間不能放。也不能同時對一個空間進行取和放

in加1表示為in:=(in+1)mod n;out加1表示為out:=(out+1)mod n;當(in+1)mod n=out時表示緩沖池滿;in=out表示緩沖池空。



對于生產者和消費者而言 ,counter應作為臨界資源,應對其互斥訪問? ;生產者之間共同要影響的變量in要互斥,消費者間的out也一樣

互斥與同步

互斥:在操作系統中,當一個進程進入臨界區(qū)使用臨界資源時,另一個進程必須等待,知道占用臨界資源的進程退出臨界區(qū),我們稱進程之間的這種相互制約關系為“互斥”。

同步:多個互相合作的進程,在一些關鍵點上可能需要互相等待或互相交換信息,這種相互制約關系稱為進程同步關系??衫斫鉃椤庇行?.

臨界區(qū)

每個進程中訪問臨界資源的那段代碼叫臨界區(qū)。為了正確同步,對臨界區(qū)的代碼要增加控制

同步機制應遵循的規(guī)則

空閑讓進:資源使用最基本原則

忙則等待:保證互斥

有限等待:合適時被喚醒防止忙等

讓權等待:能主動釋放CPU防止忙等

硬件同步機制?

①關中斷

進入鎖測試前關閉中斷,知道完成鎖測試并上鎖后才能打開中斷。進程在臨界區(qū)執(zhí)行期間,系統不響應中斷,從而不引發(fā)調度。

缺點: 濫用風險;關中斷時間過長會影響效率,限制CPU交叉執(zhí)行能力;不適用于多CPU系統

2.信號量機制

1)整型信號量


兩個原子操作

記錄型信號量

整型信號量符合“有限等待”原則但不符合“讓權等待”原則: ? ? ? 整型信號量的wait操作,當s ≤0時,當前進程會占著CPU不斷測試;信號量原語不能被打斷,這個占有CPU的進程會一直不斷的占據CPU循環(huán)下去,陷入忙等。

整型變量value(代表資源數目),大于0時表示當前可用資源的數量;小于等于0時表示等待使用該資源的進程數,即在該信號量隊列上排隊的PCB個數。

互斥信號量mutex初值為1;每個進程中將臨界區(qū)代碼置于P(mutex)和v(mutex)原語之間;必須成對使用P和V原語(遺漏P原語不能保證互斥訪問,遺漏V原語不能在使用臨界資源之后將其釋放)

4.AND型信號量

進程往往需要兩個及以上共享資源,死鎖可能性大; ? ? ? ? ? ? ?? 一次性分配給進程所需資源,用完一起釋放。Wait操作時對它所有需要的資源都要判斷,有AND條件,故稱“AND同步”


?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 2.1進程的基本概念 一、程序順序執(zhí)行時的特征 (一)、順序性:處理機的操作嚴格按程序規(guī)定順序執(zhí)行 (二)、封閉性...
    山隹金易錫閱讀 2,716評論 0 2
  • 2.1進程的基本概念 1.程序順序執(zhí)行時的特征: (1)順序性 處理機的操作嚴格按程序規(guī)定順序執(zhí)行。 (2) ...
    可以對瓶吹的男人閱讀 1,255評論 0 0
  • 第二章 進程管理 單項選擇題 1、順序程序和并發(fā)程序的執(zhí)行相比,( C )。 A.基本相同 B.有點不同 C.并發(fā)...
    黃一倚閱讀 5,043評論 0 4
  • 為了描述個和控制進程的運行,系統為每個進程定義了一數據結構——進程控制塊PCB(Process Control B...
    傻傻傻瓜_d432閱讀 522評論 0 0
  • 本來對換物業(yè)的事,不怎么上心的,反正每戶一票,大家行使好自己的權利,最后少數服從多數,完美收官! ...
    魚兒飛11閱讀 265評論 0 0

友情鏈接更多精彩內容