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

歡迎訪問 生活随笔!

生活随笔

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

windows

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

發布時間:2025/3/15 windows 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 操作系统之进程管理: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、信号量机制(整形、记录型)的全部內容,希望文章能夠幫你解決所遇到的問題。

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