91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

設計內容: 1、參考操作系統有關設備分配的分配策略,模擬給出設備請求到分配的過程,對于外部存儲器設備,分配后要模擬出它的的I/O過程,調用磁盤調度算法。 2、設備分配的過程中,要給設備分配設備控制器,通道都要有。 3、系統的設備最少要有3種,控制器每臺設備最少對應1個和通道系統最少有3個。 3、磁盤調度算法要用先來先服務,電梯調度和循環掃描算法(算法可以選擇) 4、設備管理要有設備控制表,設備分配表,通道控制表,控制器控制表等。 設計要求: 要求在屏幕上輸出各設備的分配過程及信息,如果用到磁盤調度算法時,輸出磁盤調度算法的調度順序及平均尋道長度等,I/O時的尋道內容(磁道號)可手工給出。..

資源截圖

代碼片段和文件信息

#?include?
#?include??
#?include?
#?include?
#?include?

using?namespace?std;
const?int?maxn?=?100;
const?int?size?=?1000;
const?int?p_size?=?10000;
int?pass[p_size];?
int?flag;
int?flag1;
int?nnow;
int?ssum;
int?nnoweverage;
int?p[maxn]b[maxn]sp[maxn]lenp[maxn];

struct?node{
int?cnum;?????//控制器號?
int?cstate;???//控制器狀態?0空閑?1占用?
int?connum;???//連接設備號
int?conpass[5];??//連接通道號?
}controller[size];?//控制器?

struct?node1{
char?name[100];
int?dnum;?????//設備號
int?conc;?????//連接控制器號?
}device[size];?//設備?

int?sc()
{
printf(“\n->請輸入選擇:?“);
int?a;
scanf(“%d“&a);
printf(“\n“);?
return?a;
}

void?ask()
{
printf(“請輸入分配設備信息:\n“);
int?n;
printf(“->設備號:“);
scanf(“%d“&n);
while(device[n].dnum)?
{
printf(“該設備號已存在!\n“);
printf(“->設備號:“);
scanf(“%d“&n);
}
device[n].dnum?=?n;
printf(“->設備名:“);
scanf(“%s“device[n].name);
printf(“->連接的控制器號:“);
int?p?a?b?c;
scanf(“%d“&p);
while(controller[p].cstate)
{
printf(“該控制器已被占用,請重新選擇!\n“);
printf(“->連接的控制器號:“);
scanf(“%d“&p);
}
device[n].conc?=?p;
controller[p].cstate?=?1;
controller[p].connum?=?n;
printf(“->連接通道號(3個通道):“);
scanf(“%d%d%d“&a&b&c);
while(pass[a]?||?pass[b]?||?pass[c])
{
if(pass[a])?printf(“%d通道已被占用,請重新選擇!\n“a);
if(pass[b])?printf(“%d通道已被占用,請重新選擇!\n“b);
if(pass[c])?printf(“%d通道已被占用,請重新選擇!\n“c);
printf(“->連接通道號(3個):“);
scanf(“%d%d%d“&a&b&c);
}
controller[p].conpass[0]?=?a;
controller[p].conpass[1]?=?b;
controller[p].conpass[2]?=?c;
pass[a]?=?p;
pass[b]?=?p;
pass[c]?=?p;
flag++;
flag1++;
printf(“分配成功!\n\n“);?
}

void?rid()
{
printf(“->請輸入釋放設備號:“);
int?n;
scanf(“%d“&n);
int?m?=?1;
if(!device[n].dnum)?printf(“不存在設備!\n\n“);
else?if(!device[n].conc)?printf(“該設備空閑!\n\n“);?
else?
{
int?a?=?device[n].conc;
device[n].conc?=?0;
controller[a].cstate?=?0;
controller[a].connum?=?0;
pass[controller[a].conpass[0]]?=?0;
pass[controller[a].conpass[1]]?=?0;
pass[controller[a].conpass[2]]?=?0;
flag1--;
printf(“釋放成功!\n\n“);
}
}

void?del()
{
printf(“->請輸入刪除設備號:“);
int?n;
scanf(“%d“&n);
if(!device[n].dnum)?printf(“不存在設備!\n\n“);
else?
{
if(device[n].conc)?flag1--;
int?a?=?device[n].conc;
device[n].dnum?=?0;
device[n].conc?=?0;
controller[a].cstate?=?0;
controller[a].connum?=?0;
pass[controller[a].conpass[0]]?=?0;
pass[controller[a].conpass[1]]?=?0;
pass[controller[a].conpass[2]]?=?0;
flag--;
printf(“刪除成功!\n\n“);
}
}

void?allot()??//設備管理?
{
printf(“---------------------------------\n“);
printf(“--------設備管理-----------------\n“);
printf(“--------1、請求分配--------------\n“);
printf(“--------2、釋放------------------\n“);
printf(“--------3、刪除------------------\n“);
printf(“--------0、返回------------------\n“);
printf(“---------------------------------\n“);
int?n?=?sc();
while(n<0?||?n>3)
{
printf(“輸入錯誤,請重

評論

共有 條評論