日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

操作系统原理:进程 PV 操作如何计算?全网最全三种前驱图计算类型总结

發(fā)布時間:2025/3/8 windows 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 操作系统原理:进程 PV 操作如何计算?全网最全三种前驱图计算类型总结 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

  • 前言
  • 一、PV 操作定義
    • 1.1、P 操作定義
    • 1.2、V 操作定義
  • 二、串聯(lián)進(jìn)程(單線前驅(qū)圖)
    • 2.1、什么是單線前驅(qū)圖?
    • 2.2、如何計算單線前驅(qū)圖的 PV?
      • 2.2.1、計算前驅(qū)節(jié)點 PV
      • 2.2.2、計算中間節(jié)點 PV
      • 2.2.3、計算尾節(jié)點 PV
  • 三、并聯(lián)進(jìn)程(多線前驅(qū)圖)
    • 3.1、什么是多線前驅(qū)圖?
    • 3.2、并聯(lián)進(jìn)程趨于合并
      • 3.2.1、計算前驅(qū)節(jié)點 PV
      • 3.2.2、計算中間節(jié)點 PV
      • 3.2.3、計算尾節(jié)點 PV
    • 3.3、并聯(lián)進(jìn)程趨于展開
      • 3.3.1、計算前驅(qū)節(jié)點 PV
      • 3.3.2、計算中間節(jié)點 PV
      • 3.3.3、計算尾節(jié)點 PV
  • 總結(jié)


前言

關(guān)于 PV 操作基本都是結(jié)合進(jìn)程管理的前驅(qū)圖來進(jìn)行考察,歷年以來,無論是軟考還是操作系統(tǒng)的單獨考試,占有很大的比重。今天我們總結(jié)兩種在考試中常考的類型。一種是單線前驅(qū)圖,即串聯(lián)進(jìn)程,另一種是多線前驅(qū)圖,即并聯(lián)進(jìn)程。并聯(lián)進(jìn)程下又細(xì)分為兩類:一種逐漸向后合并(進(jìn)程趨于合并),另一種是前驅(qū)圖逐漸向后展開。兩種類型你都掌握了應(yīng)試也就毫無問題了。


一、PV 操作定義

本文中的 S 為信號量。關(guān)于前驅(qū)圖以及信號量的基礎(chǔ)知識本篇不作詳細(xì)介紹。

1.1、P 操作定義

S:=S-1,若 S≥0,則執(zhí)行 P 操作的進(jìn)程繼續(xù)執(zhí)行;若 S<0,則置該進(jìn)程為阻塞狀態(tài)(因為無可用資源),并將其插入阻塞隊列。

定義這么長,我們只需要謹(jǐn)記:執(zhí)行 P 操作的進(jìn)程將進(jìn)入等待隊列

1.2、V 操作定義

S:=S+1,若 S>0,則執(zhí)行 V 操作的進(jìn)程繼續(xù)執(zhí)行;若 S≤0,則從阻塞狀態(tài)喚醒一個進(jìn)程,并將其插入就緒隊列,然后執(zhí)行 V 操作的進(jìn)程繼續(xù)。

定義這么長,我們只需要謹(jǐn)記:執(zhí)行 V 操作的進(jìn)程將從阻塞隊列中喚醒一個進(jìn)程

二、串聯(lián)進(jìn)程(單線前驅(qū)圖)

2.1、什么是單線前驅(qū)圖?

串聯(lián)進(jìn)程(單線前驅(qū)圖)是計算 PV 操作中最為簡單的。那什么是單線前驅(qū)圖呢?舉例前驅(qū)圖如下:

題干信息:使用 PV 操作控制進(jìn)程 P1、P2、P3 執(zhí)行的過程,設(shè)置 2 個信號量分別為 S1、S2 且初值均為零。分別列出 3 個進(jìn)程的進(jìn)程執(zhí)行圖來計算每個進(jìn)程的 PV 操作。

我們可以看到 P1、P2、P3 三個進(jìn)程是串聯(lián)關(guān)系,一一執(zhí)行,只有前面的進(jìn)程執(zhí)行了后面的才可以執(zhí)行,我們將這類前驅(qū)圖歸類為單線前驅(qū)圖。

2.2、如何計算單線前驅(qū)圖的 PV?

那我們計算該進(jìn)程的 PV 操作呢?我們將節(jié)點分為前驅(qū)節(jié)點(即首節(jié)點),中間節(jié)點,尾節(jié)點分別計算 PV。

2.2.1、計算前驅(qū)節(jié)點 PV

對于前驅(qū)的首結(jié)點 P1 進(jìn)程,進(jìn)程 P1 從初始狀態(tài)執(zhí)行操作的結(jié)果就是從阻塞隊列中喚醒一個進(jìn)程,即喚醒 P2,故其只有 V 操作,占用一個信號量 S1,進(jìn)程 P1 執(zhí)行 V(S1)操作。P1 進(jìn)程執(zhí)行圖如下圖所示:

2.2.2、計算中間節(jié)點 PV

對于中間節(jié)點 P2 進(jìn)程,只有在前驅(qū)進(jìn)程 P1 完成之后才可以執(zhí)行,如果進(jìn)程 P1 阻塞 P2 就無法正常執(zhí)行,處于等待狀態(tài),故 P2 進(jìn)程是從等待 S1 的信號量,運行本進(jìn)程,結(jié)果就是喚醒另一個進(jìn)程即 P3 進(jìn)程,并占用一個信號量 S2。P2 進(jìn)程執(zhí)行圖如下圖所示:

2.2.3、計算尾節(jié)點 PV

對于 P3 進(jìn)程,同理,只有在前驅(qū)節(jié)點 P2 執(zhí)行完成將信號量 S2 傳過來之后才可以執(zhí)行,然后進(jìn)程結(jié)束。P3 進(jìn)程執(zhí)行圖如下圖所示:

三、并聯(lián)進(jìn)程(多線前驅(qū)圖)

3.1、什么是多線前驅(qū)圖?

多線前驅(qū)圖即并聯(lián)進(jìn)程,多個進(jìn)程趨于合并或者單個進(jìn)程展開為多個進(jìn)程,類似于初中我們所學(xué)的串并聯(lián)電路知識。下面我們分別從并聯(lián)進(jìn)程趨于合并并聯(lián)進(jìn)程趨于展開兩個方向來討論不同情況如何計算 PV 操作。

3.2、并聯(lián)進(jìn)程趨于合并

并聯(lián)進(jìn)程趨于合并是并聯(lián)進(jìn)程中較為簡單的,我在這里舉一例較為經(jīng)典的例題。進(jìn)程前驅(qū)圖如下:

題干信息:使用 PV 操作控制進(jìn)程 P1、P2、P3、P4 并發(fā)執(zhí)行的過程,設(shè)置 4 個信號量分別為 S1、S2、S3、S4 且初值均為零。分別列出 5 個進(jìn)程的進(jìn)程執(zhí)行圖來計算每個進(jìn)程的 PV 操作。

3.2.1、計算前驅(qū)節(jié)點 PV

對于前驅(qū)的首結(jié)點,以 P1 進(jìn)程為例,進(jìn)程 P1 從初始狀態(tài)執(zhí)行操作的結(jié)果就是從阻塞隊列中喚醒一個進(jìn)程,即喚醒 P4,故其只有 V 操作,并占用一個信號量 S1,故進(jìn)程 P1 執(zhí)行 V(S1)操作。P1 進(jìn)程執(zhí)行圖如下圖所示:


同理,P2、P3 進(jìn)程與 P1 相同,三個進(jìn)程分別各占三個信號量S1、S2、S3,進(jìn)程執(zhí)行圖如下圖所示:

3.2.2、計算中間節(jié)點 PV

對于中間節(jié)點進(jìn)程 P4,只有在前驅(qū)進(jìn)程 P1、P2、P3 都已經(jīng)完成之后才可以執(zhí)行,而進(jìn)程 P1、P2、P3 均有可能在阻塞隊列中,故進(jìn)程 P4 需要先等待 P1、P2、P3 進(jìn)程的執(zhí)行(即 P 操作)接收信號量,然后執(zhí)行 P4 自身進(jìn)程喚醒 P5 操作(即 V 操作)占用一條信號量 S4。P4 進(jìn)程執(zhí)行圖如下圖所示:

3.2.3、計算尾節(jié)點 PV

對于 P5 進(jìn)程,同理,需要接收到 P4 進(jìn)程的信號量才可以運行,然后進(jìn)程結(jié)束。P5 進(jìn)程執(zhí)行圖如下圖所示:

3.3、并聯(lián)進(jìn)程趨于展開

并聯(lián)進(jìn)程趨于展開是并聯(lián)進(jìn)程中較為難的一種,但是理清了思緒還是得心應(yīng)手的。舉例題如下:

題干信息:使用 PV 操作控制進(jìn)程 P1、P2、P3、P4、P5 執(zhí)行的過程,設(shè)置 5 個信號量分別為 S1、S2、S3、S4、S5 且初值均為零。分別列出 5 個進(jìn)程的進(jìn)程執(zhí)行圖來計算每個進(jìn)程的 PV 操作。

分析:對于本前驅(qū)圖,我們應(yīng)該注意 P2、P3、P4 進(jìn)程,信號量的判別根據(jù)進(jìn)程標(biāo)識順序走

3.3.1、計算前驅(qū)節(jié)點 PV

前驅(qū)節(jié)點進(jìn)程 P1跟之前我們講到的一樣,這里不再贅述。P1 進(jìn)程執(zhí)行圖如下圖所示:

3.3.2、計算中間節(jié)點 PV

對于進(jìn)程 P2,需要等到 P1 的信號量 S1,并喚醒 P3、P4 進(jìn)程分別占用信號量 S1、S2。P2 進(jìn)程執(zhí)行圖如下圖所示:


對于進(jìn)程 P3,需要等到進(jìn)程 P2 的信號量 S2 才可以執(zhí)行,然后激活進(jìn)行 P4,占用一個信號量 S4。P3 進(jìn)程執(zhí)行圖如下圖所示:


對于進(jìn)程 P4,需要等到進(jìn)程 P2、P3 的信號量 S3、S4 才可以執(zhí)行,然后激活進(jìn)程 P5,并占用一個信號量 S5。P4 進(jìn)程執(zhí)行圖如下圖所示:

3.3.3、計算尾節(jié)點 PV

對于尾節(jié)點進(jìn)程 P5,需要等到進(jìn)程 P4 的信號量 S5 才可以執(zhí)行,直到進(jìn)程結(jié)束。P5 進(jìn)程執(zhí)行圖如下圖所示:


總結(jié)

本文給大家介紹了操作系統(tǒng)基本原理中的一個重要知識點,進(jìn)程管理之 PV 操作。我們通過對不同的前驅(qū)圖進(jìn)行分類,總結(jié)了兩大類最為常見的前驅(qū)圖類型,在不同的情境下設(shè)置不同的處理思路。循序漸進(jìn),從單進(jìn)程到多進(jìn)程,處理思路跟著題目給出的前驅(qū)圖表示順序走(跟著順序走你會發(fā)現(xiàn)都是單進(jìn)程的計算方式)。相信本篇文章更能讓你在計算過程中起到事半功倍的效果。


我是白鹿,一個不懈奮斗的程序猿。望本文能對你有所裨益,歡迎大家的一鍵三連!若有其他問題、建議或者補(bǔ)充可以留言在文章下方,感謝大家的支持!

總結(jié)

以上是生活随笔為你收集整理的操作系统原理:进程 PV 操作如何计算?全网最全三种前驱图计算类型总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。