專業:嵌入式(軟體)
學號:541013090210
姓名:郝春玲
實驗日期:2023年12月27日
一、實驗目的
通過對程序排程演算法的模擬加深對程序概念和程序排程演算法的理解。
二、實驗要求
編寫程式實現對5個程序的排程模擬,採用優先權的排程演算法分別進行模擬排程。
三、實驗方法內容
1. 演算法設計思路
(1) 用c語言實現對m個程序採用優先權程序排程演算法(高度優先權排程)的排程。
(2)每個用來標識程序的程序控制塊pcb可用結構來描述,包括以下字段:
1>程序號pid。
2>程序優先數pri,並規定優先數越大的程序,其優先權越高。
3>程序執行還需要的時間ptime。
(3) 優先數改變的原則:
1>程序每執行乙個時間片後,其還需時間減1。
2>程序每執行乙個時間片,優先數減3。
(4)為了能清楚地觀察每個程序的排程過程,程式應將每個時間片內的程序的運**況顯示出來,包括正在執行,處於就緒狀態和已經完成的程序的程序。
(5)分析程式執行的結果,談一下自己的認識。
四、實驗結果及分析
1.實驗步驟
(1)用c語言實現對m個程序採用優先權程序排程演算法(高度優先權排程)的排程。
(2)分析程式執行的結果,談一下自己的認識。
2:實驗**如下:
#include<>
#include<>
#include<>
#include<>
char sta[3][9]=;
struct pcb;
struct pcb pcb[1024];//程序塊pcb表示乙個程序,並用結構體表示
int flk[1024]=;//記錄程序狀態
void initpcb(int m)//初始化程序塊,m為建立程序的個數
}int sortpcb(int m)//對各程序排序
;//預設最大優先權的程序
int j,i;
for(j=0;j
return i;//返回最大優先權的程序的座標號
}void print(int m)//列印出程序執行狀態
}void pcbrun(int p)//執行程序
int main()
return 0;
}2:執行結果如下:
3:結果分析
優先權排程演算法就是根據程序優先權數的高低為依據,本程式設計中先設定乙個系統預設的最高優先權的程序,將該預設的程序依次與新建的m個程序的優先權相比較。最後採用哪乙個程序的優先權數值越大,那麼該程序就會先執行,執行後,該程序的優先值減3,還需時間減1。最高優先權的程序執行完以後,繼續比較,找出次優先權執行,執行與上相同的情況,直至m個程序完全結束。
程序結束後,程序優先權值恢復為預設優先權值。以上就是本次程序排程實驗的依據。
五:實驗心得
通過本次作業系統綜合實驗我更好地掌握了作業系統中程序的概念、程序控制塊的概念以及程序的三種基本狀態等概念。從而培養和提高了編寫合理的系統程式的能力,進一步加深了對作業系統課程的進一步深入理解,鍛鍊了我的實踐技能。
作業系統實驗報告實驗一程序管理
程序排程是處理機管理的核心內容。本實驗要求編寫和除錯乙個簡單的程序排程程式。通過本實驗加深理解有關程序控制塊 程序佇列的概念,並體會和了解程序排程演算法的具體實施辦法。1 設計程序控制塊pcb的結構 pcb結構通常包括以下資訊 程序名 程序id 程序優先數 輪轉時間片 程序所占用的cpu時間 程序的...
核心實驗一程序管理
實驗1 程序管理 一 實驗目的 1 加深對程序概念的理解,明確程序和程式的區別。2 進一步認識併發執行的實質。3 分析程序爭用資源的現象,學習解決程序互斥的方法。4 了解linux系統中程序通訊的基本原理。二 實驗預備知識 1 閱讀linux的sched.h原始碼檔案,加深對程序管理概念的理解。2 ...
作業系統程序排程實驗報告
實驗一程序排程實驗 專業 xx 學號 xx 姓名 實驗日期 20xx年xx月xx日 一 實驗目的 通過對程序排程演算法的模擬加深對程序概念和程序排程演算法的理解。二 實驗要求 編寫程式實現對5個程序的排程模擬,要求至少採用兩種不同的排程演算法分別進行模擬排程。三 實驗方法內容 1.演算法設計思路 將...