作業系統第三次實驗 程序排程

2021-10-12 04:52:22 字數 2143 閱讀 4695

四、實驗程式清單

實驗結果(含分析)

實驗總結

無論是批處理系統、分時系統還是實時系統,使用者程序數一般情況下使用者程序數都大於處理機數,這將導致使用者程序互相爭奪處理機。這就要求程序排程程式按一定的策略,動態地把處理及分配給處於就緒佇列中的某一程序,以使之執行。程序排程是處理機管理的核心內容。本實驗要求採用最高優先順序優先的排程演算法(即把處理機分配給優先數最高的程序)和先來先服務演算法編寫和除錯乙個簡單的程序排程程式。通過本實驗可以加深理解有關程序控制塊、程序佇列的概念。並體會了優先數和先來先服務排程演算法的具體實施辦法。

實驗機房軟體ubuntu和在vmware虛擬機上安裝的linux作業系統。

採用最高優先數優先的排程演算法(即把處理機分配給優先數最高的程序)和先來先服務演算法(將使用者作業和就緒程序按提交順序或變為就緒狀態的先後排成佇列,並按照先來先服務的方式進行排程處理)。

每個程序有乙個程序控制塊(pcb)表示。程序控制塊可以包含如下資訊:程序名、優先數、到達時間、需要執行時間、已用cpu時間、程序狀態等等。

程序的優先數及需要的執行時間可以事先人為地指定(也可以由隨機數產生)。程序的到達時間為程序輸入的時間。

程序的執行時間以時間片為單位進行計算。

每個程序的狀態可以是就緒 w(wait)、執行r(run)、或完成f(finish)三種狀態之一。

資源包括資源id、資源狀態(是否被占用)、使用資源的程序id、程序指標以及使用時間。

程式規定cpu資源數為1,既所有程序只能請求同一資源,如果所請求資源已被占用,則程序進入阻塞佇列等待資源。

cpu包括執行中的程序指標、就緒佇列、阻塞佇列、cpu資源、程序數、阻塞程序數以及cpu執行時間。

就緒程序獲得 cpu後都只能執行乙個時間片。用已占用cpu時間加1來表示。 如果執行乙個時間片後,程序的已占用 cpu時間已達到所需要的執行時間,則撤消該程序,如果執行乙個時間片後程序的已占用cpu時間還未達所需要的執行時間,也就是程序還需要繼續執行,此時應將程序的優先數減1(即降低一級),然後把它插入就緒佇列等待cpu。

每進行一次排程程式都列印一次執行程序、就緒佇列、以及各個程序的 pcb,以便進行檢查。 重複以上過程,直到所要程序都完成為止。

分析和完善下面的程序排程程式,寫出執行結果並作分析,以加深對程序的概念及程序排程演算法的理解。

附**:

#include "stdio.h" 

#include

#define getpch(type) (type*)malloc(sizeof(type))

struct pcb

*ready = null, *p;

typedef struct pcb pcb;

void sort(

)else

else}if

(insert == 0) first->link = p;}}

void input()}

int space(

) return(l);}

void disp(pcb* pr)

void check()}

void destroy(

)void running()}

void main(

) printf(

"\n\n 程序已經完成.\n");

首先輸入被排程的程序數,然後分別輸入程序名、程序優先數、程序執行時間。

通過比較各程式的優先數super進行排序,優先處理優先數super大的程序,使super-1,其他程序停留在就緒佇列中,然後重新將修改過的super進行排序。

當super減至super程序優先數減去ndtime程序執行時間時(即runtime執行時間=ndtime程序執行時間時),程序執行完成。

執行時,state指示框下為r(run,執行狀態),否則為w(wait,等待狀態)。

本實驗使用的是程序優先數高者優先作業排程演算法。程序優先數高者優先既考慮到短作業又考慮到長作業,按照使用者指令的程序優先度依次序呼叫,使得每種作業都有被呼叫的可能,是一種折中的作業排程演算法。

作業系統第三次實驗

include include include include include define m 10 緩衝區容量為10 void productor void ptr 消費者執行緒 void customer void ptr 生產者執行緒 void produce 生產過程 void consu...

第三次實驗

姓名 陳裕坤 學號 120705213 班級 12電信2班 目標 1.掌握c語言基本運算子和表示式用法 2.預習選擇和重複控制語句的用法.任務1 假設整型變數 a 的值是 1,b 的值是 2,c 的值是 3,請判斷各語句的值,寫出執行結果,並作簡短分析.1 x a b c 2 y a 2 b a c...

第三次實驗

一.問題及 02.檔名稱 第三次實驗 03.作 者 梁一意 04.完成日期 2017 年 4 月 6 日 05.版 本 號 v1.0 06.對任務及求解方法的描述部分 07.輸入描述 無 08.問題描述 個人所得稅計算器 09.程式輸出 個人所得稅及稅後收入 10.問題分析 略 11.演算法設計 略...