《作業系統導論》實驗一 模擬程序狀態轉換

2021-10-03 13:16:58 字數 1661 閱讀 3757

1.作業包:process-run.py

2.作業說明:

3.作業要求:

(1)使用引數-l 5:100,5:100執行 process-run.py

引數-l process_list:逗號分隔的程序列表,形式是x1:y1,x2:y2,...,其中x代表程序指令數,y(0~100)代表執行指令還是宣告i/o請求

該命令執行程序0,執行5條指令,且每條指令的cpu佔用率為100%,此時程序1處於就緒狀態,程序0執行完畢,cpu執行程序1,執行同樣操作,總用時10單位時間。

(2)使用引數-l 4:100,1:0執行 process-run.py

該命令執行程序0,執行4條指令,且每條指令的cpu佔用率為100%,之後程序1發出i/o請求,cpu阻塞該程序,i/o執行3單位時間,cpu解除程序1的阻塞狀態,程序1執行完成操作,總用時10單位時間。

(3) 切換程序順序:-l 1:0,4:100

該命令執行程序0發出i/o請求,cpu阻塞該程序,並執行i/o操作,同時cpu執行程序1,執行4條指令,且每條指令的cpu佔用率為100%,4個單位時間後i/o操作和程序1均執行完成,程序0執行完成操作,總用時6個單位時間。

(4)switch_on_end引數會使得cpu等待i/o操作的完成

switch_on_end引數會使得cpu等待i/o操作的完成。

該命令執行程序0發出i/o請求,cpu阻塞該程序,並執行i/o操作4個單位時間,然後程序0執行完成操作,同時cpu執行程序1的指令,執行4個單位時間,總用時9個單位時間。

(5)switch_on_io引數會使得cpu在i/o操作時同時執行程序,為該模擬器的預設操作,結果與(3)一致

(6)(7) io_run_immediate引數 vs io_run_later引數

為增強對比,減少i/o請求為2條,cpu程序為1個。

兩者的區別在於i/o操作執行完是cpu先接受下乙個i/o請求,還是執行程序指令。由於採用預設模式switch_on_io,cpu執行指令與i/o操作同時進行,因而 io_run_immediate快乙個單位時間。

(8)題為上述命令綜合運用,提高不大,不做。

作業系統 程序狀態轉換(實驗一)

sdibt 計科181 用陣列模擬的 我的 有些bug,望大家提出寶貴意見 include includeusing namespace std 就緒 執行 執行 就緒 時間片完 阻塞 等待 阻塞 就緒 struct pcb 程序結構體 t int sumrun 0 最多可以同時執行多少程序 int...

作業系統 程序狀態

程序從建立到執行,再到執行完畢銷毀的過程中,經歷了不同的程序狀態,程序狀態部分取決於程序當前的活動,可以將程序狀態分為 1 三狀態模型 2 五狀態模型 3 七狀態模型。包含程序三個最基本的狀態 就緒態 程序具備執行條件,等待分配處理器 執行態 程序占有處理器,正在執行 等待態 程序等待發生某個事件。...

作業系統 程序排程實驗 模擬 C 版

一 實驗目的 編寫並除錯乙個模擬的程序排程程式,以加深對程序的概念及程序排程演算法的理解 二 實驗內容 除錯執行 動態優先順序 排程演算法,給出執行結果。採用 短程序優先 排程演算法對五個程序進行排程。每個程序有乙個程序控制塊 pcb 表示。程序控制塊可以包含如下資訊 程序名 到達時間 需要執行時間...