作業系統 Semaphore處理讀者 寫者問題

2021-10-18 04:44:40 字數 401 閱讀 8862

問題解決

有讀者和寫者兩組併發程序,共享乙個檔案,當兩個或以上的讀程序同時訪問共享資料時不會衝突,但如果某個寫程序和其他程序同時訪問共享資料時可能會導致資料不一致的錯誤。

此問題的描述中可以分析出4條要求:

多個讀者可以同時不衝突地讀取檔案內容

寫者只能單個向檔案中寫資訊

任一寫者在完成寫操作之前不允許其他讀者或寫者工作

寫者執行寫操作之前,必須等待其他讀者或寫者退出

因此,直觀分析一下可知,讀者和寫者之間是互斥的,寫者之間也是互斥的,讀者之間不存在互斥但有同步關係。

讀者和寫者兩類程序。

寫者程序和任何程序互斥。

讀者必須實現與寫者的互斥和其他讀者的同步。

針對讀者的情況,需要設計乙個計數器,判斷當前是否有讀者讀檔案。

作業系統的中斷處理

pushq rax n t pushq rax n t pushq es,rax n t pushq rax n t pushq 上面的這段彙編 的巨集定義就是在執行中斷程式的時候呼叫的現場保留的操作,和異常的現場保留是類似的 不同的是,在異常中是處理器產生的任務暫停,而在中斷中是外部裝置產生的任務...

作業系統異常處理集錦

重啟或者關機時部分程式無法響應windows registry editor version 5.00 hkey current user control panel desktop autoendtasks 1 hkey local machine software microsoft windo...

作業系統 作業系統介面

介面表現為函式呼叫,由作業系統提供,連線作業系統和應用軟體。出於安全性考慮,應用程式不能直接在記憶體中任意訪問 將核心程式和使用者程式隔離 通過比較訪問資料段cpl和rpl的特權級和當前段dpl的特權級之間的關係 應用程式呼叫庫函式printf printf呼叫庫中的write函式 write將函式...