实验二独占设备分配与回收
![实验二独占设备分配与回收_第1页](https://file3.zhuangpeitu.com/fileroot3/2022-5/19/64bd590d-42fd-4151-96e8-74d663b4879a/64bd590d-42fd-4151-96e8-74d663b4879a1.gif)
![实验二独占设备分配与回收_第2页](/images/s.gif)
![实验二独占设备分配与回收_第3页](/images/s.gif)
《实验二独占设备分配与回收》由会员分享,可在线阅读,更多相关《实验二独占设备分配与回收(8页珍藏版)》请在装配图网上搜索。
1、实验二 独占设备分配与回收一、实验目的:加深对设备管理的理解。深入了解如何分配和回收独占设备。二、实验预备知识:设备独立性。独占设备的特性。系统设备表和物理设备表。三、实验内容:设计一种独占设备分配和回收的方案, 要求满足设备独立性。 编 写程序实现这个方案并进行测试。四、提示与讲解:为了提高操作系统的可适应性和可扩展性, 现代操作系统中都毫 无例外地实现了设备独立性, 又叫做设备无关性。 设备独立性的含义 是:应用程序独立于具体使用的物理设备。为了实现独占设备的分配,系统设置数据表格的方式也不相同, 在实验中只要设计合理即可。 这里仅仅是一种方案, 采用设备类表和 设备表。(1)数据结构操作
2、系统设置“设备分配表” ,用来记录计算机系统所配置的独 占设备类型、台数以及分配情况。 设备分配表可由 “设备类表”和“设 备表”两部分组成,如下图:设备类总台数空闲台数设备表始址输入机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;ype,type)!=0)i+;if(i=n)endl;endl;cout ”无该类设备,设备分配失败”return False;if(equiptype
4、i.remain1) cout ”该类设备不足,分配失败”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=equiptype
5、i.address;j=equiptypei.count;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;equ
6、iptype0.remain=2;equiptype0.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;equi
7、ptype3.address=9;for(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.status equipmenti.remain,equipmenti.jobnameequipm enti.lnumberendl;return 1;
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。