日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

操作系统之进程管理:10、信号量机制(整形、记录型)

發布時間:2025/3/15 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 操作系统之进程管理:10、信号量机制(整形、记录型) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

10、信號量機制

  • 思維導圖
  • 信號量機制的引入
  • 什么是信號量機制
  • 信號量的分類
    • 整形信號量
    • 記錄型信號量

思維導圖

信號量機制的引入

來看幾個問題。
1、在用軟件實現進程互斥的時候,雙標志先檢查算法由于 “上鎖”“檢查”操作無法一氣呵成 而導致多個程序進入臨界區的問題

2、無論是硬件還是軟件實現進程互斥都無法實現“讓權等待”
為了解決上述的問題,Dijkstra提出了卓有成效的方法----------信號量機制

什么是信號量機制

信號量的分類

整形信號量

由于任然無法解決讓權等待的問題,所以整型信號量也不是優選方案
為了解決讓權等待的問題,又提出了記錄型信號量

記錄型信號量


看個例子:

場景:兩臺打印機、四個進程
初始值:S.values = 2,S.L = 0
1、進程A使用打印機,執行P(S)操作:S.values = 1,使用資源
2、進程A執行同時進程B也使用打印機,執行P(S)操作:S.values = 0,使用資源
3、進程AB執行同時進程C也使用打印機,執行P(S)操作:S.values = -1,進程C進入阻塞狀態,進入等待隊列
4、進程ABC執行同時進程D也使用打印機,執行P(S)操作:S.values = -2,進程D進入阻塞狀態,進入等待隊列
5、當進程A運行結束后,執行V(S)操作:S.values = -1,釋放資源等待隊列中的進程C被喚醒,使用資源
6、當進程B運行結束后,執行V(S)操作:S.values = 0,釋放資源等待隊列中的進程D被喚醒,使用資源
7、當進程C運行結束后,執行V(S)操作:S.values = 1 ,釋放資源
8、當進程D運行結束后,執行V(S)操作:S.values = 2 ,釋放資源
PS:S.values的值改變是因為執行PV操作的自加或自減,不是直接賦值操作
PS:資源數目為負,即S.values為負的含義是:等待隊列中進程的個數;S.values=-1說明等待隊列中有一個進程



信號量介紹完了,下一篇:用信號量實現進程互斥、同步

總結

以上是生活随笔為你收集整理的操作系统之进程管理:10、信号量机制(整形、记录型)的全部內容,希望文章能夠幫你解決所遇到的問題。

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