ImageVerifierCode 换一换
格式:DOCX , 页数:7 ,大小:14.49KB ,
资源ID:37371      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/37371.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(完整word版实验二独占设备分配与回收.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

完整word版实验二独占设备分配与回收.docx

1、完整word版实验二独占设备分配与回收实验二 独占设备分配与回收一、 实验目的: 加深对设备管理的理解。 深入了解如何分配和回收独占设备。二、 实验预备知识: 设备独立性。 独占设备的特性。 系统设备表和物理设备表。三、 实验内容:设计一种独占设备分配和回收的方案,要求满足设备独立性。编写程序实现这个方案并进行测试。四、 提示与讲解:为了提高操作系统的可适应性和可扩展性,现代操作系统中都毫无例外地实现了设备独立性,又叫做设备无关性。设备独立性的含义是:应用程序独立于具体使用的物理设备。为了实现独占设备的分配,系统设置数据表格的方式也不相同,在实验中只要设计合理即可。这里仅仅是一种方案,采用设备

2、类表和设备表。(1) 数据结构操作系统设置“设备分配表”,用来记录计算机系统所配置的独占设备类型、台数以及分配情况。设备分配表可由“设备类表”和“设备表”两部分组成,如下图:设备类总台数空闲台数设备表始址输入机21打印机11设备物理名是否分配占用进程001未分配002已分配J1003未分配设备类表 设备表(2) 设备分配1) 当进程申请某类设备时,系统先查“设备类表”。2) 如果该类设备的现存台数可以满足申请要求,则从该类设备的“设备表”始址开始依次查该类设备在设备表中的登记项,找出“未分配”的设备分配给进程。3) 分配后要修改设备类表中的现存台数,把分配给进程的设备标志改为“已分配”且填上占

3、用设备的进程名。4) 然后,把设备的绝对号与相对号的对应关系通知用户,以便用户在分配到的设备上装上存储介质。(3) 设备回收当进程执行结束撤离时应归还所占设备,系统根据进程名查设备表,找出进程占用设备的登记栏,把标志修改为“未分配”,清除进程名。同时把回收的设备台数加到设备类表中的现存台数中。五、 参考程序:#define False 0#define true 1#define n 4#define m 10struct char type10;/设备类名 int count;/拥有设备台数 int remain;/空闲台数,现存的可用设备台数 int address;/该类设备在设备表中的

4、起始地址equiptypen;/设备类表定义,假定系统有n个设备类型structint number;/设备绝对号int status;int remain;/设备是否已分配 char jobname4;/占有设备的进程名 int lnumber;/设备相对号equipmentm;/设备表定义,假定系统有m个设备allocate(J,type,mm)char *J,*type;int mm;int i,t,j; i=0;while(i=n)cout”无该类设备,设备分配失败”endl; return False;if(equiptypei.remain1) cout”该类设备不足,分配失败”e

5、ndl; return False;t=equiptypei.address;while(!(equipmentt.remain=0)t+;equiptypei.remain-;equipmentt.remain=1;strcpy(equipmentt.jobname,J);equipmentt.lnumber=mm;return 1;reclaim(J,type)char J,type;int i,t,j,k,nn; i=0;while(i=n)cout”无该类设备,设备分配失败”endl; return False; t=equiptypei.address; j=equiptypei.c

6、ount; k=0; nn=t+j; for(;tnn;t+) if(strcmp(equipmentt.jobname,J)=0&equipmentt.remain=1) equipmentt.remain=0; k+; equiptypei.remain=equiptypei.remain+k; if(k=0) cout”该进程没有使用该类设备”endl; return 1;main()char J4;int i,mm,a;char type10;strcpy(equiptype0.type,”input”);equiptype0.count=2;equiptype0.remain=2;e

7、quiptype0.address=0;strcpy(equiptype1.type,”printer”);equiptype1.count=3;equiptype1.remain=3;equiptype1.address=2;strcpy(equiptype2.type,”disk”);equiptype2.count=4;equiptype2.remain=4;equiptype2.address=5;strcpy(equiptype3.type,”tape”);equiptype3.count=1;equiptype3.remain=1;equiptype3.address=9;for(

8、i=0;i10;i+) equipmenti.number=i; equipmenti.remain=0; while(1) coutendl”0-退出,1-分配,2-回收,3-显示”endl; couta; switch(a) case 0: exit(0); case 1: coutJtypemm; allocate(J,type,mm); break; case 2: coutJtype; reclaim(J,type); break; case 3: coutendl”输出设备类表”endl; cout”设备类型 设备总量 空闲设备台数”endl; for(i=0;in;i+) coutequiptypei.typeequiptypei.countequiptypei.remainendl; cout”输出设备表:”endl; cout”绝对号 好/坏 已/未分配 占用进程名 相对号”endl; for(i=0;im;i+) coutequipmenti.numberequipmenti.statusequipmenti.remain,equipmenti.jobnameequipmenti.lnumberendl;return 1;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1