程序首先申請一整塊空閑區,其首址為0,大小為;然後,提示用戶使用哪種分配算法,再提示是分配還是迴收;分配時要求輸入申請區的大小,迴收時要求輸入釋放區的首址,並進行合理合並。程序需要保證以每次都能以最快的速度找到分配空間,即保證空閑空間鏈表始終按對應的分配算法進行合理排序存儲。待釋放區保存所有的被占用node節點,排序方法根據待釋放結點的查找策略進行合理排序。


    (四)輸出


    要求每執行一次,輸出一次空閑區隊列情況和待釋放區隊列,內容包括:


    空閑區: 編號 首址 終址 大小


    待釋放區: 編號 首址


    注:輸出空閑區隊列的排序,應符合所用分配算法的要求。待釋放區也應該按釋放輸入要求項進行排序,偏於快速定位。


    b. 綜合實驗


    (一)實驗目的


    合並實驗一和實驗二基礎實驗,形成一個相對完成的進程執行過程,以理解進程執行過程中為什麽會發生死鎖現象。


    (二)實驗過程提示


    1.輸入:(1)進行全局設置:內存的最大容量、處理機分配算法、內存分配算法(2)修改進程控製塊內存運行需求相關參數,在出現新進程創建進程控製塊時一次性輸入一個進程的處理機和內存需求。


    2.執行:首次從就緒態進入執行態時分配內存空間,若滿足則該進程進入執行態並始終占有此空間,即在pcb中記錄該空間首地址,同時修改存儲器空閑隊列,若不滿足則迴到就緒態的末尾,等待下次進入執行態。當進程從執行態轉為就緒態時,保持已分配空間記錄,不做存儲器相關參數修改。當進程進入完成狀態時才釋放存儲器空間,修改空閑隊列,其他處理器相關參數的設定不變。


    3.輸出:同時顯示空閑隊列列表信息和三個狀態的進程信息


    、實驗目的


    進程調度是處理機管理的核心內容。本實驗要求用高級語言編寫模擬進程調度程序,以便加深理解有關進程控製塊、進程隊列等概念,並體會和了解優先數算法(包括搶占式和非搶占式)和時間片輪轉算法的具體實施辦法。


    二、實驗內容和要求


    1. 設計進程控製塊pcb的結構,通常應包括如下信息:


    進程名、進程優先數(時間片輪轉算法中本次輪轉需要的剩餘時間片數)、進程已占用的cpu時間、進程到完成還需要的時間、進程的狀態、當前隊列指針等。


    2. 編寫兩種調度算法程序:


    優先數調度算法程序(包括搶占式和非搶占式)


    循環輪轉調度算法程序


    3. 將程序源代碼和運行截圖寫入實驗報告並提交。


    三、實驗步驟


    1. 實驗準備


    (1) 查閱相關資料;


    (2) 初步編寫程序;


    (3) 準備測試數據;


    2.準備知識:


    分別用兩種調度算法對多個進程進行調度。每個進程可有三種狀態;執行狀態(run)、就緒狀態(ready,包括等待狀態)和完成狀態(finish),並假定初始狀態為就緒狀態。


    (一)進程控製塊結構如下:


    name——進程標示符


    prio\/round——進程優先數\/進程每次輪轉的時間片數(設為常數2)


    cputime——進程累計占用cpu的時間片數


    needtime——進程到完成還需要的時間片數


    state——進程狀態

章節目錄

閱讀記錄

破落天堂 · 地衡篇所有內容均來自互聯網,繁體小說網隻為原作者封織雲的小說進行宣傳。歡迎各位書友支持封織雲並收藏破落天堂 · 地衡篇最新章節