經典IPC問題(讀者寫者問題)

讀者寫者問題是建立在數據庫訪問模型上的:
例如飛機訂票系統
其中多個進程想讀寫數據庫
爲了保證不出錯需要滿足一條:
當一個進程寫的時候,所有的其它進程都不能再讀和寫
實現方法一:
當一個寫進程到來的時候,如果有讀或者寫進程就不進入
當一個讀進程到來的時候,如果沒有讀進程,就進入
也就是讀可以同時,寫是排它的。
問題:試想每個讀進程持續5秒,每2秒進來一個讀進程,這樣寫進程就永遠進不來了
實現方法二:
當一個寫進程來的時候,它只等待現在正在執行的讀進程
當一個讀進程進來的時候,如果有一個寫進程等待,讀進程不進入
也就是寫進程優先,這樣解決了問題,但是效率低下。

相關的還有理髮師問題;
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章