訊號量機制是誰提出來的?

2025-03-20 16:10:14 字數 3202 閱讀 8041

1樓:銘刻

‍訊號量(semaphore),有時被稱為訊號燈,是在多執行緒環境下使用的一種設施,是可以用來保證兩個或多個關鍵**段不被併發呼叫。在進入乙個關鍵**段之前,執行緒必須獲取乙個訊號量;一旦該關鍵**段完成了,那麼該執行緒必須釋放訊號量。其它想進入該關鍵**段的執行緒必須等待直到第乙個執行緒釋放訊號量。

為了完成這個過程,需要建立乙個訊號量vi,然後將acquire semaphore vi以及型陪歲release semaphore vi分別放置在每個亂襪關鍵**段的首末端。確認這些訊號量vi引用的是初始建立的訊號量。以乙個停車場的運作為例。

簡單起見,假設停車場只有三個車位,一開始三個車位都是空的。這時如果同時來了五輛車,看門人允許其中三輛直接進入,然後放落車攔,剩下的車則必須在入口等待,此後來的車也都卜睜不得不在入口處等待。這時,有一輛車離開停車場,看門人得知後,開啟車攔,放入外面的一輛進去,如果又離開兩輛,則又可以放入兩輛,如此往復。

在這個停車場系統中,車位是公共資源,每輛車好比乙個執行緒,看門人起的就是訊號量的作用。

2樓:雷王春意濃

‍訊號量用於執行緒的同步。這是互斥量和訊號量的根本區別,也就是互斥和同步之間的區別。互斥:

是指某一資源同時只允許乙個訪問者對其進行訪問,具有唯一性和排它性。但互斥無法限制訪問者對資源的訪問順序,即訪問是無序的。同步:

是指在互斥的基礎上(大多數情況),通過其它機制實現訪問者對資源的有序訪問。在大多數情況下,同步已經實現了互斥,特別是所有寫入資源的情況必定是互斥的。少數情況是指可以允許多個訪問者同時訪問資源,訊號量可以用來實現互斥量的或耐功能,互斥量值只能為0/1,訊號量值可以為非負整數。

也就是說,乙個互斥量只能用於乙個資源的互斥訪問,它不能實現多個資源的多執行緒互斥問題。訊號量可以槐瞎實現多個同類資源的多執行緒互斥和同步。當訊號量為單值訊號量是,也可以完成乙個資源的互斥訪問。

互斥量的加鎖和解衫明春鎖必須由同一執行緒分別對應使用,訊號量可以由乙個執行緒釋放,另乙個執行緒得到。

3樓:養含絲

差純‍1965年,荷蘭學者dijkstra提出的訊號量(semaphores)機制是一種卓有成效的程序同步工具。在長期且廣泛的應用中,訊號量機制又得到了很大的發展,它從整型訊號量經記錄型訊號量,進而發展為"訊號量集"機制。現在,訊號量機制已經被廣泛地應用於單處理機和多處理機系統以及計算機網路中。

訊號量s是乙個整數,s大於等於零是代表可供併發程序使用的資源實體數,當s小於零時則表示正在等待使用臨界區的程序數。

dijkstra同時提出了對訊號量操作的pv原語。p原語操作的動作是:s減1;若s減1後仍大於或等於零,則程序繼續執行;若s減1後小於零,則該程序被阻塞後進入與該訊號相對應的佇列中,然後轉程序排程。

v原語操作虛悔咐的動作是:s加1;若相加結果大於零,則程序繼續執行;若相加結果小於或等於零則從該訊號的等待佇列中喚醒一等待程序,然後再前昌返回原程序繼續執行或轉程序排程。pv操作對於每乙個程序來說,都只能進行一次,而且必須成對使用。

在pv原語執行期間不允許有中斷的發生。訊號量機制分 整型訊號量機制、記錄型訊號量機制、and型訊號量機制、訊號量集。整型訊號量是一種最簡單的訊號量,主要用於解決併發程式互斥訪問臨界資源問題。

記號訊號量在整型訊號量的舉出上進行了改進,讓不能進入臨界區的程序"讓權等待",即程序狀態由執行轉換為阻塞狀態,程序進入阻塞佇列中等待。and型訊號量集是將程序在執行中所需要的臨界資源全部一次性分配給程序,等程序用完後再全部一次釋放。

訊號量機制怎麼理解

4樓:科仔又要補

訊號量:訊號量(semaphores)的資料結構由乙個值value和乙個程序連結串列指標l組成,訊號量爛團胡的值代表了資源的數目,連結串列指標鏈結了所有等待訪問該資源的程序。

pv操作:通過對訊號量s進行兩個標準的原子操作(不可中斷的操作)wait(s)和signa(s),可以實現程序的同步和互斥。這兩個操作又常被稱為p、v操作,其定義如下:

p(s):①將訊號量s的值減1,即;

如果,則該程序繼續執行;否則該程序置為等待狀態,排入等待佇列。

v(s):①將訊號量s的值加1,即;

如果》0,或跡則該程序繼續執行;否則釋放中第乙個的飢攔等待程序。

說明:代表可用的資源數目,當它的值大於0時,表示當前可用資源的數量;當它的值小於0時,其絕對值表示等待使用該資源的程序個數。

一次p操作意味著請求分配乙個單位資源,因此減1,當<0時,表示已經沒有可用資源,請求者必須等待別的程序釋放該類資源,它才能執行下去。

而執行一次v操作意味著釋放乙個單位資源,因此加1;若s≤0,表示有某些程序正在等待該資源,因此要喚醒乙個等待狀態的程序,使之執行下去。

訊號量機制可以總結為三個要素,應該是哪些

5樓:ms帽兒

operating systems design and implementation》中andrew s. tanenbaum對訊號量。

的描述和以前看過的教材有區別。但其核心思想是類似的。

以前的書上(包括網上不少帖子)是這麼敘述的:

訊號量s是乙個整數,s大於等於零時代表可供併發程序使用的資源實體數,但s小於零時則表示正在等待使用臨界區。

的程序數。dijkstra同時提出了對訊號量操作的pv原語。

p原語操作的動作是:

1)s減1;

2)若s減1後仍大於或等於零,則程序繼續執行;

3)若s減1後小於零,則該程序被阻塞後進入與該訊號相對應的佇列中,然後轉程序排程。

v原語操作的動作是:

1)s加1;

2)若相加結果大於零,則程序繼續執行;

3)若相加結果小於或等於零,則從該訊號的等待佇列中喚醒一等待程序,然後再返回原程序繼續執行或轉程序排程。

pv操作。對於每乙個程序來說,都只能進行一次,而且必須成對使用。在pv原語執行期間不允許有中斷的發生。

說明:要保證pv是原子操作,對於作業系統,只須在操作過程中關中斷即可。

andrew s. tanenbaum對訊號量的定義有所不同,其pv操作也有區別。

訊號量是乙個整數,其值不小於0。它表示被積累下來的喚醒運算元。

p原語操作的動作是:

1) 檢查s是否大於0。

2) 若s>0,則s = s – 1;否則,執行p操作的程序將睡眠,並且此時p操作並未結束。

v原語操作的動作是:

1)s = s + 1。

2)如果乙個或多個程序在該訊號量上睡眠,無法完成先前的p操作,則有系統選擇其中乙個並允許它完成p操作。

帕累託優勢是誰提出來的?

帕累託優勢是博弈論中乙個非常有名的定理,它是由義大利經濟學家帕累託提出來的,其內容為 社會資源如何配置才能改變人們的境況,只有資源配置已經達到這樣一種狀態,也就是在不使其中乙個變得更壞的情況下,另乙個也不能變得更好。帕累託優勢有乙個準則,即帕累託效率準則 經濟的效率體現於配置社會資源以改善人們的境況...

8020法則是誰提出來的

80 20效率法則 the 80 20 principle 又稱為帕累托法則 帕累託定律 最省力法則或不平衡原則。早在19世紀末,帕累託研究英國人的收入分配問題時發現,大部分財富流向小部分人一邊。還發現某一部分人口占總人口的比例,與這一部分人所擁有的財富的份額,具有比較確定的不平衡的數量關係。而且,...

「天人感應」最早是誰提出來的,天人感應提出的背景是?對這一思想進行評價

天人感應 最早是我國漢朝董仲舒提出來的。天人感應 的基本內容是把天人格化,把人比附於天,天有什麼人有什麼,天和人是相通的,把人間的一切都說成是上天的旨意,是上天有目的安排的。這是一種唯心主義神學論。笨,是董仲舒,漢武帝時董仲舒創立 天人感應 君權神授 以次豐富儒學,從而,形成新儒學,符合了統治者的要...