freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

操作系統課程設計——哲學家進餐問題(編輯修改稿)

2025-07-13 06:21 本頁面
 

【文章內容簡介】 是硬件臨界資源,還是軟件臨界資源,多個進程必須互斥地對它進行訪問。每個進程中訪問臨界資源的那段代碼稱為臨界區(qū)( Critical Section)。 每個進程中訪問臨界資源的那段程序稱為臨界區(qū)( Critical Section)(臨界資源是一次僅允許一個進程使用的共享資源)。每次只準許一個進程進入臨界區(qū), 4 進 入后不允許其他進程進入。不論是硬件臨界資源,還是軟件臨界資源,多個進程必須互斥地對它進行訪問。 本程序主要使用了 EnterCriticalSection (amp。cs)和 LeaveCriticalSection (amp。cs)兩個函數實現臨界區(qū)互斥。 EnterCriticalSection (amp。cs)用來進入臨界區(qū), LeaveCriticalSection (amp。cs)用來離開臨界區(qū)。 開發(fā)環(huán)境與工具 系統平臺: WINDOW 環(huán)境 實現語言: C++ 開發(fā)工具: VC++ 3 數據結構與模塊說明 數據結構 Philosopher number:int status:int +Philosopher(in num:int) +find() const:int +getinfo() const:int +Change():void 圖 31 哲學家類的 UML 圖 程序中定義一個哲學家類,包含兩個私有對象和四個公有對象。 Number 對象:哲學家的編號。 Status 對象:用于保存當前該哲學家的狀態(tài), 0 表示正在等待(即處于饑餓狀態(tài))1 表示得到餐具正在吃飯, 2 表示正在思考 5 Philosopher(int num)方法:哲學家類構造函數,參數 num 表示哲學家編號 find() const 方法:返回該哲學家編號 getinfo() const 方法:返回哲學家當前狀態(tài) Change()方法:根據題目要求改變哲學家的狀態(tài)(等待 進餐 思考 等待????) 另外,程序中包含一個公有對象, bool 類型數組 tools[6],用來保存 6 把餐具當前狀態(tài): true 表示該餐具當前空閑, false 表示該餐具當前正被使用。 程序中還包含兩個公有函數: print 和 toolstatus。 Print 用來返回一個哲學家的 狀態(tài), toolstatus 用來返回一個餐具的狀態(tài)。 6 程序 各 模塊 流程圖 主程序模塊 圖 32 主程序模塊流程圖 7 狀態(tài)改變模塊 圖 33 狀態(tài)改變模塊 Change()流程圖 8 返回哲學家狀態(tài)模塊 圖 34 返回哲學家狀態(tài)模塊 print()流程圖 9 返回餐具狀態(tài)模塊 圖 35 返回餐具狀態(tài)模塊 toolstatus(bool a)流程圖 10 4. 源程序代碼 //實驗目的:通過實現哲學家進餐問題的同步深入了解和掌握進程同步和互斥的原理。 //設計要求:哲學家有 N 個,也定全體到達后開始討論:在討論的間隙哲學家進餐, //每人進餐時都需使用刀、叉各一把,所有哲學家刀和叉都拿到后才能進餐。哲學家的人數、 //餐桌上的布置自行設定,實現刀和叉的互斥使用算法的程序實現。 include include include string include iostream include
點擊復制文檔內容
畢業(yè)設計相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1