操作系统【信号量集机制、“读者-写者”问题】
- 0、信號量機制應用引導篇.flv
- 1、信號量集機制解決讀寫問題深入分析.flv? ?03:00
- 2、“讀者-寫者”問題之“順序執行”.flv? ?07:32
- 3、信號量集機制解決讀者寫者問題分析.flv? ?12:07
- 4、“讀者-寫者”問題之“寫者優先”.flv? ?14:54
- 5、信號量機制應用總結.flv
- 6、信號量機制總結.flv
目錄
0、信號量機制應用引導篇.flv
例1分析解答
例2分析解答
例3分析解答
1、信號量集機制解決讀寫問題深入分析.flv
2、“讀者-寫者”問題之“順序執行”.flv
3、信號量集機制解決讀者寫者問題分析.flv
4、“讀者-寫者”問題之“寫者優先”.flv
5、信號量機制應用總結.flv
6、信號量機制總結.flv
0、信號量機制應用引導篇.flv
3個補充例題
- 問題1:嚴格的互斥問題。——統一資源的不同使用方式問題。
- 問題2:P1、P2之間有合作關系。——統一資源的不同使用方式問題。
- 問題3:在問題2的基礎上,增加難度。
例1分析解答
P1、P2都需要使用緩沖區B1,需要分析每一個進程使用緩沖區的前提與結果。
P1使用緩沖區,就是存放臨時數據的,P1使用緩沖區前,要先得到緩沖區的使用權,執行后,釋放B1的使用權。
兩個進程形成各自的前提結果對。只要B1中無數據,就可以被使用。
兩個前提結果對 相同,因此只需設置一個信號量s(s代表B1使用權)。
B1一次只能容納一個暑假,因此將B1初始值設置為1。
P1執行wait(s)通過的時候,進程P1可以使用緩沖區,s的值 將變為0。P2執行wait(s)的時候,s的值 將變為-1,P2陷入阻塞!
P1用完緩沖區,執行signal(s),喚醒進程P2,保證P2能夠繼續執行。保證臨界區的互斥使用。
例2分析解答
P1執行的操作:送數據到B1;P2從B1中取數據。
P1把數據送到B1緩沖區的前提是:B1為空(P1在B1為空的時候,才能送數據!)。執行結果:數據送入B1,B1變為非空(有數據)。
P2從B1中取數據的前提:B1非空且B1有數據。數據被取走后,B1將再次變為空。
前提結果對:綠線、紫線。
?
初始時,B1為空,s1為真,即:將s1設置為1、s2設置為0。
在嚴格的互斥問題中,在一個進程實體內部,wait()與signal()是成對出現的;在復雜的進程同步問題中,將使用同一種資源的不同狀態——需要為資源的每一種狀態單獨設置信號量,信號量初值根據題目,只有一種狀態為真,剩下為假。
在題目中,最直觀的體現是:使用到的是“同一種資源的不同狀態”的時候,在同一個進程實體內部,wait()與signal()不會成對出現;在多個進程實體之間,wait()與signal()是成對出現的。
例3分析解答
問題3:問題2的延伸。
存在4個前提結果對。設置4個信號量,每個資源都有2種不同的狀態。
s1:空B1;? ? ? s2:非空B1;? ? ? s3:空B2;? ? ? s4:非空B2。
進程C改進——資源什么時候使用,什么時候申請,使用過后,立刻釋放!
嚴格的互斥(對資源設置一個信號量,在進程內部申請/釋放資源,前提結果對成對出現)與 復雜的同步(存在次序關系,統一資源使用的是不同的狀態,分別設置信號量,在同一個進程實體內部 wait()與signal()不會成對出現),使用過程完全不同。
1、信號量集機制解決讀寫問題深入分析.flv
2、“讀者-寫者”問題之“順序執行”.flv
讀者優先的實現:后邊的讀進程 不需要 申請 文件的使用權,而每一個寫進程需要申請文件的使用權,所以讀進程越過了寫進程來執行。
寫進程與其它進程互斥!
3、信號量集機制解決讀者寫者問題分析.flv
4、“讀者-寫者”問題之“寫者優先”.flv
5、信號量機制應用總結.flv
6、信號量機制總結.flv
總結
以上是生活随笔為你收集整理的操作系统【信号量集机制、“读者-写者”问题】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2021年 第12届 蓝桥杯【备赛直播公
- 下一篇: GIS创新实践【课堂笔记】