欢迎来到天天文库
浏览记录
ID:58663296
大小:79.50 KB
页数:8页
时间:2020-10-15
《实验六:设备管理---device.c.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验六:设备管理---device.c实验目的:1、对理论课中学习的设备管理中的概念作进一步的理解;2、明白设备管理的主要任务;3、了解设备管理任务的主要实现方法;4、通过编程,学会独占设备的分配、回收等主要算法的原理;实验内容:1、编写程序,由必要的数据结构、主函数、设备分配函数及设备回收函数构成,实现对独占设备的分配与回收的模拟。2、模拟实验的程序包括建立设备类表和设备表的程序段,分配设备和回收设备的函数,分配设备要求输入作业名、设备类名和相对号;回收设备要求输入作业名和设备类名。#include#include#incl
2、ude#include#include#definefalse0#definetrue1#definen3#definem5struct{chartype[10];intcount;intremain;intaddress;}equip_type[n];struct{intnumber;intstatus;intremain;charjobname[10];intlnumber;}equipment[m];allocate(char*job,char*type,intmm){inti,t,j;i=0;while
3、(i=n){printf("Nothedevice,deviceallocateerrno");return(false);}if(equip_type[i].remain<1){printf("thereisnomuchdevice,therequestofdeviceisfailure");return(false);}t=equip_type[i].address;while(!(equipment[t].status==1&&equipment[t].remain==
4、0))t++;equip_type[i].remain--;equipment[t].remain=1;strcpy(equipment[t].jobname,job);equipment[t].lnumber=mm;}reclaim(char*job,char*type){inti,t,j,k,nn;i=0;while(i=n){printf("thereisnothisdevice,thedevicereclaimisfailure");return(false);}t=
5、equip_type[i].address;j=equip_type[i].count;k=0;nn=t+j;for(;t6、trcpy(equip_type[0].type,"input");equip_type[0].count=2;equip_type[0].remain=2;equip_type[0].address=0;strcpy(equip_type[1].type,"printer");equip_type[1].count=3;equip_type[1].remain=3;equip_type[1].address=2;strcpy(equip_type[2].type,"disk");equip_type[2].count=4;equip_type[2].remain=4;7、equip_type[2].address=5;for(i=0;i<10;i++){equipment[i].number=i;equipment[i].status=1;equipment[i].remain=0;}while(1){printf("0---exit,1---allocate,2---recycle,3---display");printf("pleaseselectthefunction:");scanf("%d",&a);switch(a){case0:exit(0);case1:printf("please
6、trcpy(equip_type[0].type,"input");equip_type[0].count=2;equip_type[0].remain=2;equip_type[0].address=0;strcpy(equip_type[1].type,"printer");equip_type[1].count=3;equip_type[1].remain=3;equip_type[1].address=2;strcpy(equip_type[2].type,"disk");equip_type[2].count=4;equip_type[2].remain=4;
7、equip_type[2].address=5;for(i=0;i<10;i++){equipment[i].number=i;equipment[i].status=1;equipment[i].remain=0;}while(1){printf("0---exit,1---allocate,2---recycle,3---display");printf("pleaseselectthefunction:");scanf("%d",&a);switch(a){case0:exit(0);case1:printf("please
此文档下载收益归作者所有