操作系统实验题目及实验报告要求 - 图文 联系客服

发布时间 : 星期一 文章操作系统实验题目及实验报告要求 - 图文更新完毕开始阅读a671c7375a8102d276a22f1e

int value;

struct available *next; };

struct need /*需求资源数*/ { int value; struct need *next; };

struct path { int value; struct path *next; };

struct finish { int stat;

struct finish *next; }; int main() {

int row,colum,status=0,i,j,t,temp,processtest; struct allocation *allochead,*alloc1,*alloc2,*alloctemp; struct max *maxhead,*maxium1,*maxium2,*maxtemp; struct available

*avahead,*available1,*available2,*workhead,*work1,*work2,*worktemp,*worktemp1; struct need *needhead,*need1,*need2,*needtemp; struct finish *finihead,*finish1,*finish2,*finishtemp; struct path *pathhead,*path1,*path2; printf(\请输入系统资源的种类数:\ scanf(\

printf(\请输入现时内存中的进程数:\ scanf(\

printf(\请输入已分配资源矩阵:\\n\ for(i=0;i

for (j=0;j

printf(\请输入已分配给进程 p%d 的 %c 种系统资源:\ if(status==0) {

allochead=alloc1=alloc2=(struct allocation*)malloc(alloclen); alloc1->next=alloc2->next=NULL;

scanf(\ status++; } else {

alloc2=(struct allocation *)malloc(alloclen); scanf(\ if(status==1) {

allochead->next=alloc2; status++; }

alloc1->next=alloc2; alloc1=alloc2; } } }

alloc2->next=NULL; status=0;

printf(\请输入最大需求矩阵:\\n\ for(i=0;i

for (j=0;j

{

printf(\请输入进程 p%d 种类 %c 系统资源最大需求:\ if(status==0) {

maxhead=maxium1=maxium2=(struct max*)malloc(maxlen); maxium1->next=maxium2->next=NULL; scanf(\ status++; } else {

maxium2=(struct max *)malloc(maxlen); scanf(\ if(status==1) {

maxhead->next=maxium2; status++; }

maxium1->next=maxium2;

maxium1=maxium2; } } }

maxium2->next=NULL; status=0;

printf(\请输入现时系统剩余的资源矩阵:\\n\ for (j=0;j

printf(\种类 %c 的系统资源剩余:\ if(status==0) {

avahead=available1=available2=(struct available*)malloc(avalen); workhead=work1=work2=(struct available*)malloc(avalen); available1->next=available2->next=NULL; work1->next=work2->next=NULL; scanf(\ work1->value=available1->value; status++; } else {

available2=(struct available*)malloc(avalen); work2=(struct available*)malloc(avalen); scanf(\ work2->value=available2->value; if(status==1) {

avahead->next=available2; workhead->next=work2; status++; }

available1->next=available2; available1=available2; work1->next=work2; work1=work2; } }

available2->next=NULL; work2->next=NULL; status=0;

alloctemp=allochead;

maxtemp=maxhead; for(i=0;i

if(status==0) {

needhead=need1=need2=(struct need*)malloc(needlen); need1->next=need2->next=NULL;

need1->value=maxtemp->value-alloctemp->value; status++; } else {

need2=(struct need *)malloc(needlen);

need2->value=(maxtemp->value)-(alloctemp->value); if(status==1) {

needhead->next=need2; status++; }

need1->next=need2; need1=need2; }

maxtemp=maxtemp->next; alloctemp=alloctemp->next; }

need2->next=NULL; status=0; for(i=0;i

if(status==0) {

finihead=finish1=finish2=(struct finish*)malloc(finilen); finish1->next=finish2->next=NULL; finish1->stat=0; status++; } else {

finish2=(struct finish*)malloc(finilen); finish2->stat=0; if(status==1)