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

歡迎訪問 生活随笔!

生活随笔

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

windows

操作系统之进程管理:14、读者-写者问题

發(fā)布時間:2025/3/15 windows 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 操作系统之进程管理:14、读者-写者问题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

14、讀者-寫者問題

  • 問題描述
  • 解題思路
  • 注意

問題描述

解題思路

分析:
無論是寫寫還是讀寫互斥都是對文件的互斥訪問,需要一個互斥信號量rw,在讀和寫的前后加入互斥訪問

問題1:但是這樣的話無法實現(xiàn)多個讀者訪問文件的操作;當reader1讀時,rw=0;在reader1讀的過程中切換到reader2讀時,因為rw=0而阻塞。
解決1:用一個計數(shù)變量count=0來對讀者進程計數(shù),當?shù)谝粋€讀者進程開始時加鎖,最后一個讀者進程結束時解鎖

問題2:當倆個讀者進程并發(fā)執(zhí)行時,r1判斷完count=0后切換到r2,此時r2認為count=0,加鎖;在切換回r1繼續(xù)執(zhí)行加鎖,這樣r1進程就會被阻塞
解決2:產(chǎn)生該問題的原因是由于原因在于對count 變量的檢查和賦值無法一氣呵成;為了實現(xiàn)一氣呵成的操作,需要設置一個互斥的信號量mutex=1來互斥的訪問count變量

問題3:當一直有讀者進程到來時,寫進程就會“餓死”
解決3:在設置一個互斥的信號量w=1用于實現(xiàn)“讀寫公平”(或者說“寫優(yōu)先”’)

分析:
1、讀者1–>讀者2:r1讀執(zhí)行p(w)后r2阻塞;當r1執(zhí)行完V(w),后r1讀,r2喚醒;倆個進程并發(fā)讀
2、寫者1–>寫者2:w1寫,w=0,w2在P(w)阻塞
3、寫者1–>讀者1:w1執(zhí)行,w=0;讀者阻塞在P(w)
4、讀者1–>寫者1–>讀者2:r1讀,rw=0,w=1;w1寫,w=0,p(rw)阻塞;r2讀,P(w)阻塞;當r1結束后,w1喚醒;但r2依舊阻塞;這樣就實現(xiàn)了寫進程到來后,讀完立即執(zhí)行寫進程。
5、寫者1–>讀者1–>寫者2:w1寫,w=0;r1讀,在p(w)阻塞;w2寫,p(w)阻塞;w1寫,由于讀1先入隊,所以執(zhí)行r1讀,w2依舊阻塞;因此,其實他應該叫做“讀寫公平”比“寫優(yōu)先”更合適。

注意

總結

以上是生活随笔為你收集整理的操作系统之进程管理:14、读者-写者问题的全部內容,希望文章能夠幫你解決所遇到的問題。

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