色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

用PV操作可實(shí)現(xiàn)并發(fā)進(jìn)程的互斥

嵌入式應(yīng)用開(kāi)發(fā) ? 來(lái)源:嵌入式應(yīng)用開(kāi)發(fā) ? 作者:嵌入式應(yīng)用開(kāi)發(fā) ? 2022-05-23 08:55 ? 次閱讀

最近在準(zhǔn)備軟考的時(shí)候看到關(guān)于PV操作的相關(guān)指示點(diǎn),這里就做個(gè)記錄,希望對(duì)大家有一定的幫助。最開(kāi)始我很好奇這個(gè)PV名字來(lái)源,問(wèn)了好多大佬都不是很清楚,上網(wǎng)一查還覺(jué)得挺好玩,它是由老外提出來(lái)的狄克斯特拉用荷蘭文定義的,因?yàn)樵诤商m文中,通過(guò)叫passeren,釋放叫vrijgeven,PV操作因此得名。

為了在單處理機(jī)的情況下確定進(jìn)程(process)能否占有處理機(jī),狄克斯特拉將每個(gè)進(jìn)程分為“就緒”(ready)、“運(yùn)行”(running)和“阻塞”(blocking)三個(gè)工作狀態(tài)。由于在任一時(shí)刻最多只有一個(gè)進(jìn)程可以使用處理機(jī),正占用著處理機(jī)的進(jìn)程稱(chēng)為“運(yùn)行”進(jìn)程。當(dāng)某進(jìn)程已具備了使用處理機(jī)的條件,而當(dāng)前又沒(méi)有處理機(jī)供其使用,則使該進(jìn)程處于“就緒”狀態(tài)。當(dāng)運(yùn)行進(jìn)程由于某種原因無(wú)法繼續(xù)運(yùn)行下去時(shí),就停止其占用處理機(jī),使之進(jìn)入“阻塞”狀態(tài),待造成其退出運(yùn)行的條件解除,再進(jìn)入“就緒”狀態(tài)。而對(duì)系統(tǒng)中所有同時(shí)運(yùn)行的進(jìn)程之間所存在的相互制約的同步(synchronization,指為了避免錯(cuò)誤,在一個(gè)進(jìn)程訪問(wèn)共享數(shù)據(jù)時(shí),另一個(gè)進(jìn)程不訪問(wèn)該數(shù)據(jù))和互斥(mutually-exclusive,指兩個(gè)進(jìn)程不能同時(shí)在一個(gè)臨界區(qū)中使用同一個(gè)可重復(fù)使用的資源,諸如讀寫(xiě)緩沖區(qū))兩個(gè)關(guān)系,狄克斯特拉巧妙地利用火車(chē)運(yùn)行控制系統(tǒng)中的“信號(hào)燈”(semaphore,或叫“信號(hào)量”)概念加以解決。

用PV操作來(lái)管理共享資源時(shí),首先要確保PV操作自身執(zhí)行的正確性。由于P(S)和V(S)都是在同一個(gè)信號(hào)量S上操作,為了使得它們?cè)趫?zhí)行時(shí)不發(fā)生因交叉訪問(wèn)信號(hào)量S而可能出現(xiàn)的錯(cuò)誤,約定P(S)和V(S)必須是兩個(gè)不可被中斷的過(guò)程,即讓它們?cè)谄帘沃袛嘞聢?zhí)行。把不可被中斷的過(guò)程稱(chēng)為原語(yǔ)。于是,P操作和V操作實(shí)際上應(yīng)該是P操作原語(yǔ)和V操作原語(yǔ)。

P操作的主要?jiǎng)幼魇牵?/p>

①S減1;

②若S減1后仍大于或等于0,則進(jìn)程繼續(xù)執(zhí)行;

③若S減1后小于0,則該進(jìn)程被阻塞后放入等待該信號(hào)量的等待隊(duì)列中,然后轉(zhuǎn)進(jìn)程調(diào)度。

V操作的主要?jiǎng)幼魇牵?/p>

①S加1;

②若相加后結(jié)果大于0,則進(jìn)程繼續(xù)執(zhí)行;

③若相加后結(jié)果小于或等于0,則從該信號(hào)的等待隊(duì)列中釋放一個(gè)等待進(jìn)程,然后再返回原進(jìn)程繼續(xù)執(zhí)行或轉(zhuǎn)進(jìn)程調(diào)度。

PV操作對(duì)于每一個(gè)進(jìn)程來(lái)說(shuō),都只能進(jìn)行一次,而且必須成對(duì)使用。在PV原語(yǔ)執(zhí)行期間不允許有中斷發(fā)生。原語(yǔ)不能被中斷執(zhí)行,因?yàn)樵Z(yǔ)對(duì)變量的操作過(guò)程如果被打斷,可能會(huì)去運(yùn)行另一個(gè)對(duì)同一變量的操作過(guò)程,從而出現(xiàn)臨界段問(wèn)題。如果能夠找到一種解決臨界段問(wèn)題的元方法,就可以實(shí)現(xiàn)對(duì)共享變量操作的原子性。

事實(shí)上,PV操作不僅是實(shí)現(xiàn)進(jìn)程互斥的有效工具,而且還是一個(gè)簡(jiǎn)單而方便的同步工具。用一個(gè)信號(hào)量與一個(gè)消息聯(lián)系起來(lái),信號(hào)量的值為0表示期望的消息尚未產(chǎn)生;信號(hào)量的值為非0表示期望的消息已經(jīng)存在。假定用信號(hào)量S表示某個(gè)消息,現(xiàn)在來(lái)看看怎樣用PV操作達(dá)到進(jìn)程同步的目的。

(1)調(diào)用P操作測(cè)試消息是否到達(dá)

任何進(jìn)程調(diào)用P操作可測(cè)試到自己所期望的消息是否已經(jīng)到達(dá)。若消息尚未產(chǎn)生,則S=0,調(diào)用P(s)后,P(S)一定讓調(diào)用者成為等待信號(hào)量S的狀態(tài),即調(diào)用者此時(shí)必定等待直到消息到達(dá);若消息已經(jīng)存在,則S≠0,調(diào)用P(S)后,進(jìn)程不會(huì)成為等待狀態(tài)而可繼續(xù)執(zhí)行,即進(jìn)程測(cè)試到自己期望的消息已經(jīng)存在。

(2)調(diào)用V操作發(fā)送消息

任何進(jìn)程要向其他進(jìn)程發(fā)送消息時(shí)可調(diào)用V操作。若調(diào)用V操作之前S=0,表示消息尚未產(chǎn)生且無(wú)等待消息的進(jìn)程,則調(diào)用V(S)后,V(s)執(zhí)行S:=S+1使S≠0,即意味著消息已存在;若調(diào)用V操作之前S<0,表示消息未產(chǎn)生前已有進(jìn)程在等待消息,則調(diào)用V(S)后將釋放一個(gè)等待消息者,即表示該進(jìn)程等待的消息已經(jīng)到達(dá),可以繼續(xù)執(zhí)行。 [1]?

在用PV操作實(shí)現(xiàn)同步時(shí),一定要根據(jù)具體的問(wèn)題來(lái)定義信號(hào)量和調(diào)用P操作或V操作。一個(gè)信號(hào)量與一個(gè)消息聯(lián)系在一起,當(dāng)有多個(gè)消息時(shí)必須定義多個(gè)信號(hào)量;測(cè)試不同的消息是否到達(dá)或發(fā)送不同的消息時(shí),應(yīng)對(duì)不同的信號(hào)量調(diào)用P操作或V操作。

實(shí)現(xiàn)進(jìn)程互斥

用PV操作可實(shí)現(xiàn)并發(fā)進(jìn)程的互斥,其步驟如下:

(1)設(shè)立一個(gè)互斥信號(hào)量S,表示臨界區(qū),其取值為1,0,-1,…其中,S=1表示無(wú)并發(fā)進(jìn)程進(jìn)入S臨界區(qū);S=0表示已有一個(gè)并發(fā)進(jìn)程進(jìn)入了S臨界區(qū);S等于負(fù)數(shù)表示已有一個(gè)并發(fā)進(jìn)程進(jìn)入S臨界區(qū),且有|S|個(gè)進(jìn)程等待進(jìn)入S臨界區(qū),S的初值為1。

(2)用PV操作表示對(duì)S臨界區(qū)的申請(qǐng)和釋放。在進(jìn)入臨界區(qū)之前,通過(guò)P操作進(jìn)行申請(qǐng),在退出臨界區(qū)之后,通過(guò)V操作釋放。

pYYBAGKKD_WALqNMAAPvs0AKxYU358.png

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 操作
    +關(guān)注

    關(guān)注

    0

    文章

    43

    瀏覽量

    18872
  • 處理機(jī)
    +關(guān)注

    關(guān)注

    0

    文章

    12

    瀏覽量

    7872
  • 信號(hào)量
    +關(guān)注

    關(guān)注

    0

    文章

    53

    瀏覽量

    8333
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Linux Shell多進(jìn)程并發(fā)以及并發(fā)數(shù)控制

    linux后臺(tái)并發(fā)執(zhí)行,365個(gè)后臺(tái)任務(wù),系統(tǒng)承受不住哦!既然不能一次性把365個(gè)任務(wù)放到linux后臺(tái)執(zhí)行,那么,能不能實(shí)現(xiàn)自動(dòng)地每次將N個(gè)任務(wù)放到后臺(tái)并發(fā)執(zhí)行呢?當(dāng)然是可以的啦。
    發(fā)表于 08-28 15:53

    信號(hào)量、互斥鎖、自旋鎖

    區(qū))信號(hào)量:是用來(lái)解決進(jìn)程/線程之間的同步和互斥問(wèn)題的一種通信機(jī)制,是用來(lái)保證兩個(gè)或多個(gè)關(guān)鍵代碼不被并發(fā)調(diào)用。信號(hào)量(Saphore)由一個(gè)值和一個(gè)指針組成,指針指向等待該信號(hào)量的進(jìn)程
    發(fā)表于 08-29 09:48

    進(jìn)程和線程的區(qū)別和聯(lián)系介紹

    的好處 (1)易于調(diào)度。 (2)提高并發(fā)性。通過(guò)線程方便有效地實(shí)現(xiàn)并發(fā)性。進(jìn)程創(chuàng)建多個(gè)線程來(lái)
    發(fā)表于 07-04 00:18

    進(jìn)程同步機(jī)制應(yīng)遵循的規(guī)則與信號(hào)量的應(yīng)用

    一次只允許一個(gè)進(jìn)程使用的共享資源稱(chēng)為臨界資源,如打印機(jī),繪圖機(jī),變量,數(shù)據(jù)等,各進(jìn)程間采取互斥方式實(shí)現(xiàn)對(duì)這種臨界資源的共享,從而實(shí)現(xiàn)
    發(fā)表于 08-05 08:05

    進(jìn)程互斥與同步介紹

      程之間互相競(jìng)爭(zhēng)某一個(gè)資源,這種關(guān)系就稱(chēng)為進(jìn)程互斥,也就是說(shuō)對(duì)于某個(gè)系統(tǒng)資源,如果一個(gè)進(jìn)程正在使用,其他的進(jìn)程就必須等待其用完,不能同時(shí)使用。
    發(fā)表于 08-06 08:28

    操作系統(tǒng)的進(jìn)程同步

    互相協(xié)作的進(jìn)程之間有共享的數(shù)據(jù),于是這里就有一個(gè)并發(fā)情況下,如何確保有序操作這些數(shù)據(jù)、維護(hù)一致性的問(wèn)題,即進(jìn)程同步。
    發(fā)表于 08-07 06:35

    操作系統(tǒng) : 進(jìn)程與線程

    本文為《現(xiàn)代操作系統(tǒng)》的讀書(shū)筆記目錄程序順序執(zhí)行與并發(fā)執(zhí)行進(jìn)程的定義進(jìn)程的狀態(tài)轉(zhuǎn)換進(jìn)程控制塊進(jìn)程
    發(fā)表于 07-01 10:49

    進(jìn)程管理的同步與互斥有何區(qū)別以及聯(lián)系

    進(jìn)程管理的同步與互斥有何區(qū)別?進(jìn)程管理的同步與互斥有何聯(lián)系?
    發(fā)表于 12-23 06:15

    Linux線程實(shí)現(xiàn)與線程控制步驟簡(jiǎn)析

    廣泛用于進(jìn)程或線程間的同步與互斥,它本質(zhì)上是一個(gè)非負(fù)的整數(shù)計(jì)數(shù)器。PV 原語(yǔ)是對(duì)整數(shù)計(jì)數(shù)器信號(hào)量 sem 的操作。一次 P 操作使 sem
    發(fā)表于 04-25 09:29

    操作系統(tǒng)講解(操作系統(tǒng)課件)

    操作系統(tǒng)講解(操作系統(tǒng)課件) 第五章 文件管理.doc第六章 設(shè)備管理(部分).doc第二章 進(jìn)程管理.doc第3章 并發(fā)控制——互斥與同
    發(fā)表于 05-16 18:06 ?0次下載

    Linux 多線程互斥互斥

    的。如果操作是原子操作,那么天然的具有互斥同步:是指在互斥的基礎(chǔ)上(大多數(shù)情況),通過(guò)其它機(jī)制實(shí)現(xiàn)訪問(wèn)者對(duì)資源的有序訪問(wèn)。在大多數(shù)情況下,同
    發(fā)表于 04-02 14:47 ?270次閱讀

    軟、硬件方法解決進(jìn)程互斥問(wèn)題

    1.臨界資源(critical resource):系統(tǒng)中某些資源一次只允許一個(gè)進(jìn)程使用,稱(chēng)這樣的資源為臨界資源(或互斥資源)。
    的頭像 發(fā)表于 05-10 15:11 ?1681次閱讀
    軟、硬件方法解決<b class='flag-5'>進(jìn)程</b><b class='flag-5'>互斥</b>問(wèn)題

    使用Linux互斥實(shí)現(xiàn)互斥點(diǎn)燈

    互斥訪問(wèn)是指一次只有一個(gè)線程可以訪問(wèn)共享資源,不能遞歸申請(qǐng)互斥體。使用互斥體時(shí)要注意如下幾點(diǎn)。
    的頭像 發(fā)表于 04-13 15:13 ?857次閱讀
    使用Linux<b class='flag-5'>互斥</b>體<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>互斥</b>點(diǎn)燈

    shell腳本實(shí)現(xiàn)并發(fā)進(jìn)程

    在Shell腳本中實(shí)現(xiàn)并發(fā)進(jìn)程可以使用以下方法: 使用符號(hào)來(lái)將其放入后臺(tái)執(zhí)行,從而實(shí)現(xiàn)并發(fā)進(jìn)程
    的頭像 發(fā)表于 11-08 10:20 ?1317次閱讀

    互斥鎖和自旋鎖的實(shí)現(xiàn)原理

    互斥鎖和自旋鎖是操作系統(tǒng)中常用的同步機(jī)制,用于控制對(duì)共享資源的訪問(wèn),以避免多個(gè)線程或進(jìn)程同時(shí)訪問(wèn)同一資源,從而引發(fā)數(shù)據(jù)不一致或競(jìng)爭(zhēng)條件等問(wèn)題。 互斥鎖(Mutex)
    的頭像 發(fā)表于 07-10 10:07 ?488次閱讀
    主站蜘蛛池模板: 亚洲无遮挡无码A片在线| 国产系列在线亚洲视频| 欧美高清一区二区三| 伊人久久大香线蕉综合影| 国产亚洲精品久久7777777| 无罩看奶禁18| 丰满大屁俄罗斯肥女| 人体内射精一区二区三区| aaa级黄影片| 琉璃美人煞在线观看| 中国女人逼| 久久毛片视频| 永久免费在线视频| 久久re视频这里精品免费1| 亚洲人成无码久久久AAA片| 国产亚洲精品线观看不卡| 午夜一级免费视频| 国产人妻人伦精品熟女麻豆| 网友自拍成人在线视频 | 国产ts在线| 日韩精品在线看| 成人综合在线观看| 色屁屁影院| 国产成人刺激视频在线观看| 手机在线观看mv网址| 青青青草国产| 成人免费在线| 四房色播手机版| 国产看黄网站又黄又爽又色| 香蕉久久夜色精品国产小优| 国产九色在线| 亚洲精品一二三| 精品亚洲永久免费精品| 伊在香蕉国产在线视频| 久久亚洲欧美国产综合| 91久久综合精品国产丝袜长腿| 男女后进式猛烈xx00动态图片| AV国产乱码一区二区三视频| 奇米狠狠一区二区三区| 国产91综合| 亚洲国产成人久久精品影视|