Linux 0.11 是一個支持多行程并發的現代作業系統,在其內核部分已經通過關中斷、開中斷的方式實作了鎖機制,從而支持執行原子操作,即在多個行程訪問共享的內核資料時用來實作互斥和同步。通過使用Linux 0.11 內核提供的鎖機制,實作信號量。參考Linux0.11內核教程提供的信號量機制相關代碼,分析實作信號量機制各個函式功能、資料結構和函式之間的呼叫關系,完成以下作業:
(1)學習分析Linux0.11內核教程給出的生產者消費者問題代碼;
(2)在Linux0.11內核中實作信號量的系統呼叫,然后利用信號量機制實作在多個并發程式環境下的讀者寫者問題。讀者寫者問題規則:①允許多個讀者可以同時對檔案執行讀操作;②只允許一個寫者往檔案中寫資訊;③任一寫者在完成寫操作之前不允許其他讀者或寫者作業;④寫者執行寫操作前,應讓已有的讀者和寫者全部退出;
(3)利用Linux0.11內核提供的sleep_on函式和wake_up函式實作信號量的阻塞與喚醒;
(4)對上述兩種信號量實作方法的結果進行測驗和比較;
要求:
1、學習分析Linux0.11內核源代碼,設計和修改中指定功能模塊的演算法和代碼,并通過測驗程式對設計結果加以驗證。
2、課設使用Engintime Linux Lab 實驗平臺編輯、編譯和除錯Linux0.11內核。
3、學生以小組形式完成軟體專案的分析、設計、實作等多個環節,并書寫規范的報告。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/114803.html
標籤:非技術區
