當前位置:菜譜大全網 - 菜譜 - 兩個進程間互斥運算中P運算和V運算的物理意義是什麽?

兩個進程間互斥運算中P運算和V運算的物理意義是什麽?

進程管理

程序順序執行和並發執行的比較

順序執行

並行執行

程序順序執行

間歇執行,多個程序以“走走停停”的方式進行。

該程序已關閉。

該計劃失去了它的關閉。

獨家資源

共享資源

具備當下的能力。

失去再現性

有直接和簡單的約束。

l多通道編程概念及其優勢

1.多道程序設計:就是在壹臺計算機上同時運行兩個或多個程序。

2.多道程序設計的特點:多個程序共享系統資源並同時執行。

3.多道程序的優點:提高資源利用率,增加系統吞吐量。

什麽是過程,過程和程序的區別和聯系

1.工藝介紹:

由於多頻道節目的特點,節目具有並行性、限制性和動態性,這使得難以描述和反映系統中的情況。

2.進程:程序在並發環境中的執行過程。

3.過程和程序的主要區別:

1)程序是永久的,過程是暫時的。

2)程序是靜態的,過程是動態的。

3)該過程由三部分組成。

程序

數據

過程控制塊(描述過程活動的數據結構)

4)流程和程序不是壹壹對應的。

壹個程序可以對應多個進程,即多個進程可以執行同壹個程序。

壹個進程可以執行壹個或幾個程序。

4.程序和過程之間的類比

工藝步驟

預先的

歌唱或樂器的樂譜。

性能還是性能

戲劇

履行

菜單

廚師

5.流程特征:動態、並發、調度、異步和結構化。

l過程的基本狀態及其變換

1.流程的基本狀態:

1)正在運行:進程正在占用CPU;

2)就緒狀態:進程具備運行條件,但尚未占用CPU;

3)阻塞狀態:進程不能享受CPU,因為它在等待壹個事件。

2.流程狀態轉換:

l過程的組成部分和過程控制塊的功能是什麽?

1.工藝組成:由程序、數據集、PCB三部分組成。

2.過程控制塊的作用:過程控制塊是過程組成中最關鍵的部分。

1)每道工序都有獨特的PCB。

2)操作系統根據PCB控制和管理進程。

3)過程的動態性和並發性用PCB表示。

4) PCB是工藝存在的唯壹標誌。

L PCB組織模式

線性隊列、鏈接表、索引表

L UNIX進程管理命令:

L UNIX進程管理命令:

1.PS-顯示流程狀態

功能:檢查系統中當前的流程狀態。

例如

$ ps顯示與控制中斷相關的進程的基本信息

2.休眠——讓進程休眠

函數:暫停進程執行壹段時間,其參數單位為秒。

例如

$ sleep 60將等待60秒,然後返回到$提示符。

3.& amp-後臺命令字符

功能:添加&;在命令行的末尾。字符,這個命令過程將在後臺執行。

例如

$ ls–l/usr & amp;創建壹個顯示目錄命令的進程,該進程在後臺執行,即只有在沒有前臺進程運行時才能運行。

4.等待-等待後臺進程結束。

功能:等待後臺進程結束。

例如

$ wait 2080等待PID為2080的後臺進程終止。

5.終止-終止進程

功能:終止壹個進程的執行。

例如(在超級用戶模式下)

# kill 678停止PID為678的進程。

6.很好-設置優先級

功能:就是執行壹個不同優先級的命令。

例如

普通用戶只能降低優先級:

$ nice–n 10cc f 1 . c執行命令cc f1.c時,nice值為30(即20+10)。

超級用戶(root)可以提高進程的優先級(即增量值可以是不小於-20的負數)。

# nice -n -10 vi abc執行vi abc(編輯命令)的nice值為10(即20-10)。

l進程的同步和互斥

1.同步:是指流程之間在共同完成壹項任務時的直接交互。

2.互斥:獨占訪問是指對同壹物理資源的競爭,相互制約。

什麽是關鍵資源和關鍵領域?

1.關鍵資源:壹次只允許壹個進程使用的資源。

2.關鍵區域:在每個進程中訪問關鍵資源的程序。

3.互斥進入關鍵區域的標準:

1)如果多個進程請求進入空閑臨界區,壹次只允許壹個進程進入。

2)在任何時候,關鍵區域都不能有壹個以上的過程。如果壹個現有的進程進入它自己的臨界區,所有其他試圖進入臨界區的進程都必須等待。

3)進入臨界區的進程要在限定時間內退出,以便其他進程及時進入自己的臨界區。

4)如果進程不能進入自己的臨界區,就應該放棄CPU,避免進程“忙”。

l旗語

1.信號量定義:

信號量(信號燈)= <信號量值,指向PCB的指針>

2.旗語的物理意義:

大於0:表示當前資源的可用數量。

1)信號的值

小於0:其絕對值表示等待使用資源的進程數。

2)信號量的初始值是壹個非負整數變量,代表資源的數量。

3)信號幅度是可變的,但只能通過P和V操作來改變。

操作原語

1.操作原語:

1) P操作壹次,S的值減1,即S = S-1(請求分配壹個資源);

2)如果S≥0,流程繼續執行;

如果s < 0表示沒有資源,則進程的狀態設置為阻塞狀態,對應的PCB連接到信號量隊列的末尾,處理器放棄等待(直到另壹個進程執行V(S)操作)。

2.V操作原語(荷蘭等待)V(S):

1) V操作壹次,S的值加到1,即S = S+1(釋放壹個單位資源);

2)如果s > 0,說明有資源,那麽進程繼續執行;

如果S≤0,信號量隊列上第壹個PCB對應的進程被釋放(阻塞狀態改為就緒狀態),執行V操作的進程繼續執行。

L個進程間簡單同步和互斥的實現

1.P和V原語互斥的壹般模型:

將互斥體的初始值設置為1。

2.壹個簡單的P和V原語操作同步的例子。

供應商和用戶使用緩沖器的關系如下:

S1緩沖區為空(0表示非空,1表示空),初始值為s 1 = 0;

S2緩沖區是否滿(0表示不滿意,1表示滿),初始值S2 = 0;

3.生產者-消費者問題(操作系統的典型例子)

互斥互斥信號量,初始值1;滿緩沖區的數量,初始值為0;空緩沖區的空數量,初始值為n;

4.應用示例

【例1】假設系統中只有壹臺打印機,三個用戶的所有程序在執行時都會使用打印機輸出計算結果。讓每個用戶程序對應壹個進程。問:這三個過程之間的制約因素是什麽?使用P和V運算寫出這些進程使用打印機的算法。

[解決方案]

因為打印機是關鍵資源,三個進程只能互斥使用這臺打印機。設三個進程分別為PA、PB、PC,互斥量初始值為1。執行過程如下:

【例2】判斷下列同步問題的算法是否正確?如有錯誤,請指出原因並改正。

1)讓A和B兩個進程共享壹個緩沖區Q,A向Q寫入信息,B從Q讀取信息,算法框圖如圖所示。

註意:信號量S的初始值是0。

【解決方法】此算法不正確。因為A和B兩個進程共用壹個緩沖區Q,如果A先運行,並且有足夠的信息,那麽緩沖區Q中的信息會在後面被洗出,導致信息丟失,B無法從Q中讀取完整的信息,修正方法如下:

a和B進程同步使用緩沖區Q,應該設置兩個信號量:

Empty表示緩沖區q為空,初始值為1;Full表示緩沖區Q已滿,初始值為0。

算法框圖如下:

2)設A和B是兩個並發進程,它們共享壹個關鍵資源。其運行臨界區的算法框圖如圖所示。

【解決方法】此算法不正確。因為A和B兩個進程並發執行,共享壹個關鍵資源,所以A和B應該互斥使用該關鍵資源,即在某壹時刻只允許壹個進程進入該關鍵資源,沒有時序關系。

修正算法:A和B進程要互斥進入臨界區,設置壹個信號量互斥體,初始值為1。

【例2】有壹臺計算機有兩個I/O通道,分別連接到壹臺卡片輸入機和壹臺打印機。卡機將壹疊卡片壹張壹張地輸入緩沖器B1,處理後移至緩沖器B2,並在打印機上打印。問:

1)系統要設置多少個流程才能完成這個任務?他們的工作是什麽?

2)這些過程之間的相互制約是什麽?

3)用P和V運算寫出這些進程的同步算法。

[解決方案]

1)系統可以設置三個進程來完成這個任務:Read進程負責從卡片輸入機讀取卡片信息並輸入到緩沖區b 1;Get進程負責從buffer B1中取出信息,進行處理,然後將結果發送給buffer B2;打印進程負責從緩沖區B2獲取信息,並在打印機上打印輸出。

2)操作流程:

讀取過程受獲取過程的影響。B1緩沖區充滿信息後,讀取進程無法讀取信息,直到get進程取走所有信息。

Get進程受到Read進程和Print進程的約束:Get進程只能在滿的時候從B1緩沖區取信息,Get進程只能在空的時候把處理結果送入B2緩沖區;

打印進程受到Get進程的約束,只有在B2緩沖區滿了之後,打印進程才能取出信息進行打印輸出。

3)信號量的含義和初始值:

B1滿-緩沖區B1已滿,初始值為0。

B1空-緩沖區B1為空,初始值為0。

B2 full-緩沖區B2已滿,初始值為0。

B2 empty-緩沖區B2為空,初始值為0。

4)操作框圖如下:

l處理簡單的溝通

分類

低級通信機制

高級通信組織

特性

傳輸的信息量非常有限。

溝通效率低

方便高效地交換大量信息。

app應用

互斥同步機制

共用存儲器

信息傳遞

管道文件