xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

資源簡介

操作系統 課程設計任務書 銀行家算法 1)了解多道程序系統中,多個進程并發執行的資源分配。 2)掌握銀行家算法,了解資源在進程并發執行中的資源分配情況。 3)掌握預防死鎖的方法,系統安全狀態的基本概念。 設計一個n個并發進程共享m個系統資源的程序以實現銀行家算法。要求: 1) 簡單的選擇界面; 2) 能顯示當前系統資源的占用和剩余情況。 3) 為進程分配資源,如果進程要求的資源大于系統剩余的資源,不與分配并且提示分配不成功; 4) 撤銷作業,釋放資源。 編寫和調試一個系統動態分配資源的簡單模擬程序,觀察死鎖產生的條件,并采用適當的算法,有效地防止和避免死鎖的發生。

資源截圖

代碼片段和文件信息

#include?
#include?

int??m=3;//m個系統資源
int??n=0;//n個并發進程
int?Max[20][20];//={{753}{322}{902}{222}{433}};????????????//最大需求矩陣???
int?Available[20];//={1032};????????????????????????????????????????????//可利用資源向量?
int?Allocation[20][20];//={{010}{200}{302}{211}{002}};?????//分配矩陣
int?Need[20][20];//={{743}{122}{600}{011}{431}};???????????//需求矩陣
int?Request[20];??
int?queue[20];????//進程Pi的請求向量

//*******************************************************************************
int?output()??//顯示各個矩陣資源分配情況
{
?int?klt;t=65;
?printf(“\n**********************************************************\n“);

???printf(“ ???MAX?“);
???for(l=0;l???printf(“Allocation?“);
???for(l=0;l????printf(“Need?“);
???for(l=0;l??printf(“Available?“);
???for(l=0;l???printf(“\n“);
???
?//printf(“????????A???B???C????A???B???C????A???B???C????A???B???C??“);
?printf(“????????“);
?for(l=0;l<4;l++)
?{for(k=0;k????printf(“%c???“65+k);
????printf(“??“);}
?for(k=0;k?{
??printf(“\nP%d??????“k);
??for(l=0;l????printf(“%d???“Max[k][l]);printf(“??“);
??for(l=0;l????printf(“%d???“Allocation[k][l]);printf(“??“);
??for(l=0;l??printf(“%d???“Need[k][l]);printf(“??“);
??if(k==0)?{
??for(l=0;l??printf(“%d???“Available[l]);
??}
?}
?return?1;
}
//*****************************************************************************
int?input()??//資源分配情況的錄入。
{
?int?ij;int?t=65;
?????//printf(“\n請輸入系統的未分配資源數:“);
?//?scanf(“%d%d%d“AvailableAvailable+1Available+2);
?//for(i=0;i<5;i++)
?????printf(“\n????????????????資源名稱:“);
?for(i=0;i ?printf(“\n請輸入p%d的最大需求資源數:“n);
?for(i=0;i ??
?printf(“\n????????????????資源名稱:“);
?for(i=0;i ?printf(“\n請輸入p%d的已分配的資源數:“n);
?for(i=0;i ?//for(i=0;i ??for(j=0;j ?
??Need[n][j]=Max[n][j]-Allocation[n][j];
?????for(i=0;i ?{
?????Available[i]-=Allocation[n][i];
?}
??
????n++;
?return?1;
}
//*****************************************************************************
int?safe(){//安全性檢查?返回1?表示安全?有安全隊列?queue?返回0表示不安全
int?doneapply=0;int?t;
????int?ij;int?work[20];
int?finish[20]={0};
????for(j=0;j ?while(apply {
??t=0;
for(i=0;i {
?done=0;
?if(finish[i]!=false)?{continue;}
???for(j=0;j ???{?
???if(Need[i][j]?>work[j])?{done=1;?break;?}
???}?
?if(done==0)
?{
?for(j=0;j ???finish[i]=true;
???queue[apply]=i;apply++;t=1;
?}
}
if(t==0)??return?false;
}??
??return?1;
}

//***************************************************************
int?dijkstra(in

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件?????839168??2013-06-29?15:40??操作系統課程設計\操作系統-課程設計報告.doc

?????文件???????6313??2013-01-14?22:00??操作系統課程設計\源代碼及運行程序\dijkstra.cpp

?????文件?????200781??2013-01-14?22:00??操作系統課程設計\源代碼及運行程序\dijkstra.exe

?????目錄??????????0??2013-06-29?15:40??操作系統課程設計\源代碼及運行程序

?????目錄??????????0??2013-06-29?15:41??操作系統課程設計

-----------?---------??----------?-----??----

??????????????1046262????????????????????5


評論

共有 條評論