作業系統實驗四

2022-09-09 04:24:11 字數 1262 閱讀 7673

題目

利用銀行家演算法寫乙個系統安全性檢測程式(要求對關鍵步驟進行注釋),判定如下系統的安全性。已知系統有5個程序p0、p1、p2、p3、p4,三類資源a、b、c,當前時刻可用資源向量a=(0,0,0),各程序對資源的需求和占用情況如表所示,請問此時系統是否處於安全狀態?

表1 程序需求資源情況表

**如下:

#include #include #include #define re 100

int flag_need = 1;//標誌程序請求資源數量是否出錯

int row,col;

int max[re][re],allocation[re][re],need[re][re],finish[re] = ,**ailable[re],work[re],p[re];//定義最大需求矩陣、已獲得資源矩陣等

void init()

}printf("輸入每個程序已經分配的資源數按照%d x %d矩陣輸入:\n",row,col);//已分配資源矩陣allocation[i][j]

for(i = 0;i < row;i ++)

}

}printf("請輸入現有各資源數:\n");//現有資源:乙個一維向量 **ailabe

for(i = 0;i < col;i ++) }

void print(bool x)

printf("%d\n",p[k]);

}else

printf("系統不安全\n"); }

bool issafe()

if (k == col)

len ++; //統計程序個數

break;

} }}

/*len 控制對每個程序的訪問,len=row,證明所有程序都被訪問完畢,存在乙個安全序列

finish[i]

k控制對程序對需求每乙個資源的訪問 */

if (lastlen == len)else

}if(len == row)

else

}int main ()

執行截圖如下:

此次實驗有參考他人演算法,安全性的計算有點取巧

作業系統實驗四

學習如何利用管道機制 訊息緩衝佇列 共享儲存區機制進行程序間的通訊,並加深對上述通訊機制的理解。1 了解系統呼叫pipe 的功能和實現過程。2 編寫一c語言程式,使其用管道來實現父子程序間通訊。子程序向父程序傳送字串 is sending a message to parent 父程序則從管道中讀出...

作業系統 實驗四

include stdio.h include stdlib.h struct used table 10 已分配區表 struct temp,free table 10 空閒區表 void allocate char str 8 float leg void sort void reclaim c...

作業系統 實驗四

實驗四主存空間的分配和 1.1.實驗目的 用高階語言完成乙個主存空間的分配和 程式,以加深對動態分割槽分配方式及其演算法的理解。1.2.實驗要求 採用連續分配方式之動態分割槽分配儲存管理,使用首次適應演算法 迴圈首次適應演算法 最佳適應演算法和最壞適應演算法4種演算法完成設計。1 設計乙個作業申請佇...