equiptype[2].address=5;
strcpy(equiptype[3].type,"tape");/*磁带机*/
equiptype[3].count=1;
equiptype[3].remain=1;
equiptype[3].address=9;
/*设备表初始化:*/
for(i=0;i<10;i++)
{
equipment[i].number=i;
equipment[i].status=1;
equipment[i].remain=0;
}
while(1)
{
printf("\n0-退出,1-分配,2-回收,3-显示");
printf("\n 选择功能项(0~3):");
scanf("%d",&a);
switch(a)
{
case 0 : /*a=0 程序结束*/
exit(0);
case 1 : /*a=1 分配设备*/
printf("输入作业名、作业所需设备类和设备相对号");
scanf("%s%s%d",J,type,&mm);
allocate(J,type,mm);/*分配设备*/
break;
case 2: /*a=2 回收设备*/
printf("输入作业名和作业归还的设备类");
scanf("%s%s",J,type);
reclaim(J,type);/*回收设备*/
break;
case 3: /*a=3 输出设备类表和设备表的内容*/
printf("\n 输出设备类表\n");
printf(" 设备类型 设备总量 空闲好设备\n");
for(i=0;i
printf("绝对号 好/坏 已/未分配 占用作业名 相对号\n");
for(i=0;i
程序运行后可以看到如下要求:
0-退出,1-分配,2-回收,3-显示
选择功能项(0~3):
此时要求输入相应的功能选项,此处我使用 disk(磁盘机)分配和回收做演示:
(以下为程序调试结果页面)
0-退出,1-分配,2-回收,3-显示
选择功能项(0~3):1
输入作业名,作业所需设备类和设备相对号 xyz
Disk
2
(注:设备类只能是程序所提供的四种独占设备,当输入不合法或不存在的设备
类后,会提示“无该类设备,设备分配失败”。
输入时使用回车分隔,设备相对号只是一种逻辑上的划分,可以重复,前
提是该类独占设备还有空闲资源)
0-退出,1-分配,2-回收,3-显示
选择功能项(0~3):3
输出设备类表:
设备类型
设备总量
空闲好设备
Input
Printer
Disk
tape
输出设备表:
绝对号
0
1
2
3
4
5
6
2
3
4
1
2
3
0
1
好/坏
1
1
1
1
1
1
1
已/未分配
0
0
0
0
0
1
0
占用作业名
相对号
0
0
0
0
0
Ccy
Tt
0
0
0
0
0
2
1