一、课程设计目的和任务.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一、课程设计目的和任务

一、课程设计目的和任务 课程设计题目:独占设备的分配与回收 问题描述:为了使系统有条不紊地工作,系统在分配设备是,应考虑这样几个因素:①设备的固有属性;②设备分配算法;③设备分配时的安全性④设备独立性;系统也要通过回收,实现设备的再分配。 要求:设备分配在计算机系统中,设备、控制器和通道等资源是有限的,并不是每个进程随时都可以得到这些资源。进程首先要向设备管理程序提出申请,然后由设备管理程序按照一定的分配算法给进程分配必要的资源。如果进程的申请没有成功,就要在资源的等待队列中排队等待,直到获得所需的资源。考虑设备的特性和安全性。设备的特性是设备本身固有的属性,一般分为独占、共享和虚拟设备等独占设备的分配与虚拟设备独占设备每次只能分配给一个进程使用,这种使用特性隐含着死锁的必要条件,所以在考虑独占设备的分配时,一定要结合有关防止和避免死锁的安全算法。#define false 0 #define true 1 #define n 4 #define m 10 struct { char type[10]; /*设备类名*/ int count; /*拥有设备台数*/ int remain; /*现存的可用设备台数*/ int address; /*该类设备在设备表中的起始地址*/ }equiptype[n]; /*设备类表定义,假定系统有n个设备类型*/ struct { int number; /*设备绝对号*/ int status; /*设备好坏状态*/ int remain; /*设备是否已分配*/ char jobname[4];/*占有设备的作业名*/ int lnumber; /*设备相对号*/ }equipment[m]; /*设备表定义,假定系统有m个设备*/ allocate(J,type,mm) char *J,*type; int mm; { int i,t,j; /*查询该类设备*/ i=0; while(instrcmp(equiptype[i].type,type)!=0) i++; if(i=n)/*没有找到该类设备*/ { printf(无该类设备,设备分配失败); return(false); } if(equiptype[i].remain1)/*所需设备现存可用台数不足*/ { printf(该类设备不足,分配失败); return(false); } t=equiptype[i].address;/* 取出该类设备在设备表中的起始地址*/ while(!(equipment[t].status==1 equipment[t].remain==0)) t++; /*填写作业名、相对号,状态改为已分配*/ equiptype[i].remain--; equipment[t].remain=1; strcpy(equipment[t].jobname,J); equipment[t].lnumber=mm; }/*设备分配函数结束*/ reclaim (J,type) char J,type; { int i,t,j,k,nn; i=0; while(instrcmp(equiptype[i].type,type)!=0) i++; if(i=n)/*没有找到该类设备*/ { printf(无该类设备,设备回收失败); return(false); } t=equiptype[i].address; /*取出该类设备在设备表中的起始地址*/ j=equiptype[i].count; /*取出该类设备的数量*/ k=0; nn=t+j; for(;tnn;t++) if(strcmp(equipment[t].jobname,J)==0equipment[t].remain==1) { equipment[t].remain=0; k++; } equiptype[i].remain= equiptype[i].remain+k; if(k==0) printf(该作业没有使用该类设备\n); }/*设备回收函数结束*/ main( ) { char J[4]; int i,mm,a; char type[10]; /*设备类表初始化:*/ strcpy(equiptype[0].type,input);/*输入机*/ equiptype[0].count=2; equiptype[0].remain=2; equiptype[0].address=0; strcpy(equiptype[1].type,printer);/*打印机 */ equiptype[1].count=3; equiptype[1].remain=3; equiptype[1].address=2; s

您可能关注的文档

文档评论(0)

book1986 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档