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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

操作系统-进程同步与互斥易混点

發布時間:2025/3/15 windows 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 操作系统-进程同步与互斥易混点 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

解惑1:

為使多個進程能互斥的訪問某臨界資源,只須為該資源設置

?? 一個互斥信號量 mutex初值為 1(代表臨界資源只有一個)

mutex初值為1.取值范圍為[-1,0,1]

mutex=1時,表示兩個進程皆未進入需要互斥訪問的臨界區;

mutex=0時,表示有一個進程進入臨界區運行,另一個必須等待,掛入阻塞隊列

mutex=-1時,表示有一個進程正在臨界區運行,而另一個進程因等待而阻塞在信號量隊列中,需要被當前已在臨界區運行的進程在退出時喚醒。

mutex為0和為1的區別是:為0的時候等待的進程沒有申請該資源,為-1的時候申請了,即進行了P操作,所以阻塞了。

解惑2:

信號量的初值表示系統中資源的數目。

解惑3:

empty代表空閑緩沖區的數量;full代表產品的數量。

根據進程同步的前V后P。

緩沖區沒滿,生產者才可以生產

緩沖區沒空,消費者才可消費。設置同步信號量:full=0,empty=N。

從而畫出下面的圖:

?

?消費者消費產品,非空閑緩沖區個數減一,所以針對full是P操作。空閑緩沖區加一,所以針對empty是V操作。

生產者生產產品,使用一個空閑緩沖區,所以空閑緩沖區減一,所以針對empty是P操作,但是非空閑緩沖區個數加一,所以針對full是V操作。

那么,為什么生產者消費者問題,為什么不能用一個信號量實現同步?

解釋一:

如果緩沖區滿,生產者是不能生產的,所以生產者進程受到消費者進程的制約;

如果緩沖區空,消費者是不能消費的,所以消費者進程受到生產者進程的制約

所以 需要兩個同步信號量

解釋二:

首先,假設只有一個同步信號量empty=5,也就是緩沖區有5個空位;

生產者每次生產就申請一個空位,即p(empty)。

假設5次生產之后,滿了,臨界區滿了=生產者不生產了,現在生產者被阻塞,cpu切換到消費者;

消費者在每次消費成功后,執行v(buffer),但是在消費前并沒有受到任何制約!這時候的效果就是,消費者可以無限消費,然后empty的值會無限增加,消費者已經消費了剛才生產的5個產品之后都還可以繼續消費。

或者假設現在有另一個同步信號量full=0,也就是,緩沖區有0個產品,但是不知道緩沖區有多大的限制。現在每次生產都在生產之后執行v(full),也就是full++,然而full可以一直增加,因為沒有上限,也就是消費者被制約但是生產者沒被制約。

2個信號量,一個限制生產者,一個限制消費者;1個信號量無法同事限制他們2個。

解惑4

實現寫優先代碼:

?

當順序為:讀者1-寫者1-讀者2時:

讀者進程在讀文件時,發生進程調度,寫者進程執行,此時,寫者進程阻塞在P(rw)中,當再有讀者進程2執行時,會阻塞到P(W)中,此時,讀者進程釋放rw后,寫者進程最先被喚醒,然后執行,實現了先來先服務。

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的操作系统-进程同步与互斥易混点的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。