訊號量習題

2021-09-28 14:29:27 字數 652 閱讀 2586

1.設有n個程序共享乙個互斥段,對於如下兩種情況使用訊號量,訊號量的值應該怎樣變化

(1)如果每次只允許乙個程序進入互斥段

(2)如果每次最多允許m個程序(m(1)訊號量的初值是1,變化量範圍是1,0,-1,-2,1-n

(2)訊號量的初值是m,變化量範圍是m,m-1,m-2,m-n

2.桌子上有乙個盤子,每次只能放乙個水果,爸爸專門向裡面放蘋果,媽媽專門向裡面放橘子,乙個兒子專門

吃橘子,乙個女兒專門吃蘋果,用訊號量實現他們間的同步機制

分析:爸爸和媽媽向裡面放水果的時候要判斷盤中是否空,是否有人在用盤子

女兒和兒子在吃水果之前要判斷盤中是否有水果,以及是否有人在用盤子

判斷使用wait

這兩類人判斷完之後在做自己應該做的事情,做完之後在signal,表示通知別人自己做完了

3.某業務要先取資料在向緩衝區存資料,另一業務要先從緩衝區取資料在計算

gathering date

wait(buffer)

put data to buffer

signal(date)

wait(date)

take date from buffer

signal(buffer)

complete

訊號量習題

題目 三個程序分別列印a,b,c,要求輸出的結果必須是 abcabc 順序執行 設定三個訊號量 sem1 初始值設定為1,保證程序可以執行,對sem1執行p操作,程序3輸出c後,對sem1進行v操作 sem2 初始值設為0,程序2執行後對sem2進行p操作,程序1輸出a後對sem2進行v操作 sem...

訊號量 二值訊號量

訊號量 二值訊號量 訊號量是作業系統的重要部分,訊號量一般用來進行資源管理和任務同步。freertos中訊號量分為二值訊號量 互斥訊號量 計數訊號量和遞迴互斥訊號量,應用場景各不同。二值訊號量通常用於互斥訪問或同步,二值訊號量和互斥訊號量非常相似,但互斥訊號量有優先順序,二值訊號量沒有。因此二值訊號...

python訊號量 Python訊號量

python訊號量教程 訊號量是由作業系統管理的一種抽象資料型別,用於在多執行緒中同步對共享資源的使用。本質上說,訊號量是乙個內部資料,用於標明當前的共享資源可以有多少併發讀取。也可以簡單的理解為,訊號量是多把鎖,同時允許多個執行緒來更改資料,而 python訊號量與互斥鎖的關係 訊號量的乙個特殊用...