亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? safs.c

?? 主要實現銀行家算法,有取款,存款,查詢,注銷修改密碼等功能
?? C
字號:
/* 銀行家算法,操作系統概念(OS concepts Six Edition)
 作者:ctu_85
*/
#include "malloc.h"
#include "stdio.h"
#define alloclen sizeof(struct allocation)
#define maxlen sizeof(struct max)
#define avalen sizeof(struct available)
#define needlen sizeof(struct need)
#define finilen sizeof(struct finish)
#define pathlen sizeof(struct path)
struct allocation
{
int value;
struct allocation *next;
};
struct max
{
int value;
struct max *next;
};
struct available
{
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 value;
};
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,*availabletemp,*workhead,*work1,*work2,*worktemp,*worktemp1;
struct need *needhead,*need1,*need2,*needtemp;
struct finish *finihead,*finish1,*finish2,*finishtemp;
struct path *pathhead,*path1,*path2,*pathtemp;
char c;
printf("\nPlease enter the type of sources the system has:\n");
scanf("%d",&colum);
printf("Please enter the number of processes now in the memory:\n");
scanf("%d",&row);
printf("Please enter the allocation array:\n");
for(i=0;i<row;i++)
{
printf("The allocation for process p%d:\n",i);
for (j=0;j<colum;j++)
{
printf("The type %c system resource allocated:\n",'A'+j);
if(status==0)
{
allochead=alloc1=alloc2=(struct allocation*)malloc(alloclen);
alloc1->next=alloc2->next=NULL;
scanf("%d",&allochead->value);
status++;
}
else
{
alloc2=(struct allocation *)malloc(alloclen);
scanf("%d,%d",&alloc2->value);
if(status==1)
{
allochead->next=alloc2;
status++;
}
alloc1->next=alloc2;
alloc1=alloc2;
}
}
}
alloc2->next=NULL;
status=0;
printf("Please enter the max array:\n");
for(i=0;i<row;i++)
{
printf("The max needed from process p%d:\n",i);
for (j=0;j<colum;j++)
{
printf("The type %c maxium system resource may needed:\n",'A'+j);
if(status==0)
{
maxhead=maxium1=maxium2=(struct max*)malloc(maxlen);
maxium1->next=maxium2->next=NULL;
scanf("%d",&maxium1->value);
status++;
}
else
{
maxium2=(struct max *)malloc(maxlen);
scanf("%d,%d",&maxium2->value);
if(status==1)
{
maxhead->next=maxium2;
status++;
}
maxium1->next=maxium2;
maxium1=maxium2;
}
}
}
maxium2->next=NULL;
status=0;
printf("Please enter the available array now exists in the system:\n");
for (j=0;j<colum;j++)
{
printf("The type %c available system resource number:\n",'A'+j);
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("%d",&available1->value);
work1->value=available1->value;
status++;
}
else
{
available2=(struct available*)malloc(avalen);
work2=(struct available*)malloc(avalen);
scanf("%d,%d",&available2->value);
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<row;i++)
for (j=0;j<colum;j++)
{
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<row;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)
{
finihead->next=finish2;
status++;
}
finish1->next=finish2;
finish1=finish2;
}
}
finish2->next=NULL;                     /*Initialization compleated*/
status=0;
processtest=0;
for(temp=0;temp<row;temp++)
{
alloctemp=allochead;
needtemp=needhead;
finishtemp=finihead;
worktemp=workhead;
for(i=0;i<row;i++)
{
worktemp1=worktemp;
if(finishtemp->stat==0)
{
for(j=0;j<colum;j++,needtemp=needtemp->next,worktemp=worktemp->next)
if(needtemp->value<=worktemp->value)
processtest++;
if(processtest==colum)
{
for(j=0;j<colum;j++)
{
worktemp1->value+=alloctemp->value;
worktemp1=worktemp1->next;
alloctemp=alloctemp->next;
}
if(status==0)
{
pathhead=path1=path2=(struct path*)malloc(pathlen);
path1->next=path2->next=NULL;
path1->value=i;
status++;
}
else
{
path2=(struct path*)malloc(pathlen);
path2->value=i;
if(status==1)
{
pathhead->next=path2;
status++;
}
path1->next=path2;
path1=path2;
}
finishtemp->stat=1;
}
else
{
for(t=0;t<colum;t++)
alloctemp=alloctemp->next;
finishtemp->stat=0;
}
}
else
for(t=0;t<colum;t++)
{
needtemp=needtemp->next;
alloctemp=alloctemp->next;
}
processtest=0;
worktemp=workhead;
finishtemp=finishtemp->next;
}
}
path2->next=NULL;
finishtemp=finihead;
for(temp=0;temp<row;temp++)
{
if(finishtemp->value==0)
{
printf("\nWARNING,the system is in nonsafe status!\n");
getch();
exit(0);
}
finishtemp=finishtemp->next;
}
printf("\nThe system is in safe status!\n");
printf("\nThe safe sequence is:  \n");
getch();
do
{
printf("p%d ",pathhead->value);
}
while(pathhead=pathhead->next);
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
黄页网站大全一区二区| 极品美女销魂一区二区三区| 亚洲图片欧美激情| 亚洲日本电影在线| 一区二区免费看| 天天操天天综合网| 久久国产精品露脸对白| 国产盗摄一区二区| 久久精品999| av中文一区二区三区| 91精品国产91综合久久蜜臀| 亚洲精品在线一区二区| 中文字幕中文在线不卡住| 午夜一区二区三区在线观看| 六月丁香综合在线视频| 91麻豆123| 久久夜色精品一区| 亚洲成av人片在www色猫咪| 久久精品久久精品| 欧美性大战久久久久久久蜜臀 | 久久久久国产精品人| 亚洲女人小视频在线观看| 国产精品久久久久久亚洲毛片| 精品一区二区免费| 韩国欧美一区二区| 国产欧美一区二区在线| 成人中文字幕合集| 一区二区三区国产精华| 5月丁香婷婷综合| 国产二区国产一区在线观看| 中文字幕一区二区三| 欧美日韩一区二区三区四区五区| 天天操天天干天天综合网| 久久久亚洲国产美女国产盗摄| www.日韩av| 日本不卡在线视频| 91精选在线观看| aa级大片欧美| 午夜伊人狠狠久久| 国产精品成人免费| 91精品国产麻豆国产自产在线 | 精品国产青草久久久久福利| 福利电影一区二区三区| 男人操女人的视频在线观看欧美| 国产精品久久久久久久久图文区 | 蜜臂av日日欢夜夜爽一区| 久久中文字幕电影| 91麻豆免费在线观看| 亚洲大片一区二区三区| 日韩一区二区在线免费观看| 久久精品国产网站| 中文字幕一区二区不卡| 欧美群妇大交群的观看方式| 卡一卡二国产精品| 亚洲高清免费观看高清完整版在线观看| 欧美一区二区女人| 欧美日韩在线直播| 亚洲444eee在线观看| 久久久久国产精品麻豆| 欧洲av一区二区嗯嗯嗯啊| 捆绑调教美女网站视频一区| 亚洲欧洲精品成人久久奇米网 | 视频在线观看国产精品| 国产欧美一区二区精品性| 在线不卡中文字幕播放| av在线不卡免费看| 国产高清精品网站| 日韩在线a电影| 一区二区三区在线高清| 国产清纯美女被跳蛋高潮一区二区久久w| 欧美唯美清纯偷拍| 色婷婷av一区二区三区大白胸| 91香蕉视频污在线| 欧美影院午夜播放| www国产成人免费观看视频 深夜成人网| 久久你懂得1024| 337p粉嫩大胆色噜噜噜噜亚洲| 精品欧美乱码久久久久久1区2区| 7777精品久久久大香线蕉| 在线精品视频一区二区三四| 亚洲国产另类av| 亚洲成人av一区二区三区| 午夜欧美视频在线观看| 三级精品在线观看| 国产资源在线一区| aaa亚洲精品| 日韩欧美亚洲国产另类| 3751色影院一区二区三区| 九九久久精品视频| 东方欧美亚洲色图在线| 欧美群妇大交群中文字幕| 国产网红主播福利一区二区| 亚洲 欧美综合在线网络| 国产精品综合在线视频| 91精品国产综合久久久久久| 欧美日韩国产大片| 69p69国产精品| 91麻豆国产香蕉久久精品| 一区二区在线免费观看| 亚洲欧美另类小说视频| 中文字幕精品三区| 国产婷婷色一区二区三区| 欧美一级日韩不卡播放免费| xvideos.蜜桃一区二区| 国产不卡在线一区| 欧美一级黄色录像| 国产夫妻精品视频| 91精品91久久久中77777| 欧美亚洲一区二区在线观看| 欧美一区二区人人喊爽| 久久免费精品国产久精品久久久久| 久久精品亚洲一区二区三区浴池| 国产精品护士白丝一区av| 一区二区三区欧美日韩| 蜜桃视频一区二区| 99精品偷自拍| 日韩久久久精品| 国产精品不卡在线观看| 天堂午夜影视日韩欧美一区二区| 久久99国产精品免费| 91日韩一区二区三区| 欧美zozozo| 亚洲精品国产无天堂网2021| 久久国产精品免费| 制服丝袜成人动漫| 中文字幕免费不卡| 日本欧美肥老太交大片| 9i看片成人免费高清| 日韩欧美中文一区| 亚洲美女电影在线| 国产麻豆精品在线| 337p亚洲精品色噜噜噜| 亚洲三级久久久| 国产乱妇无码大片在线观看| 欧美日韩另类国产亚洲欧美一级| 国产精品网站在线播放| 日韩影院精彩在线| 91丨国产丨九色丨pron| 精品国产123| 视频在线观看一区| 色国产综合视频| 国产精品久久久久精k8| 国产综合色精品一区二区三区| 91成人国产精品| 国产精品久久久久久久久图文区| 久久精品噜噜噜成人av农村| 欧美日韩精品一区二区三区蜜桃| 国产精品情趣视频| 国产精品系列在线观看| 欧美区视频在线观看| 国产一区二区调教| 精品剧情v国产在线观看在线| 亚洲成a人在线观看| 欧美亚洲愉拍一区二区| 亚洲成人午夜影院| 欧美一级国产精品| 日本大胆欧美人术艺术动态| 欧美一区午夜视频在线观看| 久久精品国内一区二区三区| 精品久久久网站| 国内精品国产三级国产a久久| 精品免费国产一区二区三区四区| 激情综合亚洲精品| 亚洲欧洲国产专区| 色婷婷综合久久久中文字幕| 亚洲va韩国va欧美va精品| 日韩一区二区三区电影在线观看 | 777久久久精品| 首页亚洲欧美制服丝腿| 日韩激情中文字幕| 亚洲女同ⅹxx女同tv| 中文字幕久久午夜不卡| 色偷偷成人一区二区三区91| 国产精品理论在线观看| 国产不卡免费视频| 中文字幕欧美一| 精品国产欧美一区二区| 97久久精品人人做人人爽| 成人福利电影精品一区二区在线观看 | 色噜噜久久综合| 日本一区二区三区高清不卡| 国产成人在线影院| 国产精品日韩成人| heyzo一本久久综合| 亚洲精品自拍动漫在线| 欧美午夜免费电影| 毛片av中文字幕一区二区| www久久精品| av在线不卡电影| 亚洲国产精品一区二区www在线| 欧美视频中文一区二区三区在线观看| 午夜久久福利影院| 337p日本欧洲亚洲大胆色噜噜| 国产高清无密码一区二区三区| 成人欧美一区二区三区1314| 在线看一区二区| 久久99精品久久久久| 亚洲国产精品黑人久久久| 日本道免费精品一区二区三区| 午夜精品一区二区三区电影天堂 |