版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
操作系统课程报告试验六设备治理学号 姓名 班级 教师 华侨大学电子工程系试验目的1、理解设备治理的概念和任务。2、把握独占设备的安排、回收等主要算法的原理并编程实现。试验内容与根本要求1、 在Windows系统中,编写程序实现对独占设备的安排和回收的模拟,该程序中包括:建立设备类表和设备表、安排设备和回收设备的函数。试验报告内容1、独占设备的安排、回收等主要算法的原理。为了提高操作系统的可适应性和可扩展性,现代操作系统中都毫无例外地实现了设备独立性,又叫做设备无关性。设备独立性的含义是:应用程序独立于具体使用的物理设备。为了实现独占设备的安排,系统设置数据表格的方式也不一样,在试验中只要设计合理即可。这里仅仅是一种方案,承受设备类表和设备〔1〕数据构造设备类总台散空闲台数设备类总台散空闲台数始址1打印机1rr理名001co?mMS占用进稈J1003未安排73T1〔2〕设备安排
设笹表当进程申请某类设备时,系统先查“设备类表”假设该类设备的现存台数可以满足申请要求,则从该类设备的“设备表”始址开头依次查该类设备在设备表中的登记项,找出“未安排”的设备安排给进程。安排后要修改设备类表中的现存台数,把安排给进程的设备标志改为“已安排”且填上占用设备的进程名。然后,把设备确实定号与相对号的对应关系通知用户,以便用户在安排到的设备上装上存储介质。〔3〕设备回收当进程执行完毕撤离时应归还所占设备,系统依据进程名查设备表,找出进程占用设备的登记栏,把标志修改为“未安排”,去除进程名。同时把回收的设备台数加到设备类表中的现存台数中。2、 程序流程图主程序流程图:设备安排:的设备类型设备回收:printf〔本作业没有占用这类资源/n“〕3、 程序及注释。#includevstring.h>#definefalse0#definetrue1#definen4改设备类型数目*/#definem10改设备数目*/
/*宏定义,用于修/*宏定义,用于修struct义设备类表各信息*/{chartype[10];*/intcount;*/intremain;设备台*/intaddress;设备表中的起始地址*/}equiptype[n];型为n*/struct
/*该构造体用于定/*设备类型名/*拥有的设备/*现存的可用/*该类设备在/*/*该构造体用于定
*/{intnumber;编号*/intlnumber;对编*/intstatus;状态*/intremain;已被分*/charjobname[4];*/}
/*设备确定/*设备相/*设备好坏/*设备是否/*占有设equipment[m]; /*系统设备数为m*/子函数:作业设备安排allocate(char*J,char*type,intcc){inti,t,j;i=0;while(i<n&&strcmp(equiptype[i].type,type)!=0) /*查找欲申请安排的设备类型,strcmp函数用于比较equiptype[i].type与type的大小,0*/i++;if(i>=n)/**/{printf(“没有找到欲安排的设备,安排失败!“);return(false);}if(equiptype[i].remain<1)台数缺乏*/
/*欲申请设备现存可用{printf(“!“);return(false);}t=equiptype[i].address; /*取出该类设备在设备表中的起始地址赋给t*/while(!(equipment[t].status==1&&equipment[t].remain==0))t++;址加一*/equiptype[i].remain--;equipment[t].remain=1;strcpy(equipment[t].jobname,J);
/*该设备类型起始地/*剩余设备数减一*//*状态改为已安排*//*strcpy为字符串拷贝函数,把J中的字符串拷贝到equipment[t].jobname中*/equipment[t].lnumber=cc; /*cc*/子函数:作业设备回收reclaim(char*J,char*type){i=0;while(i<n&&strcmp(equiptype[i].type,type)!=0) /*归还的设备类型,strcmp函数用于比较equiptype[i].type与type的大小,0*/i++;if(i>=n)/**/printf(“无该类设备,设备回收失败!“);return(false);t=equiptype[i].address; /*取出该类设备在设备表中的起始地址赋给t*/j=equiptype[i].count;该类设备的数量赋给j*/k=0;nn=t+j;for(;t<nn;t++)
/*取出if(strcmp(equipment[t].jobname,J)==0&&equipment[t].remain==1)/*假设占用某个设备的作业与欲回收的作业一样且状态为已安排*/{equipment[t].remain=0; /*则将其状态改为未安排*/k++;设备计数*/}equiptype[i].remain=equiptype[i].remain+k;该类设备剩余设备数加k*/if(k==0)/*k0,*/printf(“!/n“);/********************** 主函数
/*回收/*voidmain(){charJ[4];inti,mm,a;chartype[10];
***************************for(i=0;i<4;i++)类表初始信息*/
/*输入设备{printf(“请输入相应设备名称:“);scanf(“%s“,&equiptype[i].type);printf(“请输入相应设备的数量:“);scanf(“%d“,&equiptype[i].count);printf(“请输入当前空闲设备数量:“);scanf(“%d“,&equiptype[i].remain);printf(“请输入设备表起始地址:“);scanf(“%d“,&equiptype[i].address);备表*/
}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
/*/*a=0*/exit(0);case1/*a=1*/printf(“\n“);scanf(“%s%s%d“,J,type,&mm);allocate(J,type,mm);/*安排设备*/
break;case2:/*a=2回收设备*/printf(“\n“);scanf(“%s%s“,J,type);入要回收的作业名及对应的设备类*/reclaim(J,type);
/*输/*回收设备*/
break;case3:/*a=3输出设备类表和设备表的内容*/表内容*/
printf(“输出设备类表!\n“);
/*输出设备类printf(“设备类型闲好设备 起始地址\n“);for(i=0;i<n;i++)
设备总量 空printf(“%9s%16d%22d%14d\n“,equiptype[i].type,equiptype[i].count,equiptype[i].remain,equiptype[i].address);printf(“:\n“);*/
/*输出设备表内容printf(“确定号\n“);for(i=0;i<m;i++)
好/坏 已/未安排占用作业printf(“%3d%11d%15d%15s%9d\n“,equipment[i].number,equipment[i].status,equipment[i].remain,equipment[i].jobname,equipment[i].lnumber);}}}4、运行结果以及结论。初始化输入:“ :\AUD\tht5iiLK\DebiLfi\thesia.GCE-科河科■科峙濟鹑耳員科:科托科科躋科科弭躋*** 何文超 *|仆…11151076111 2昇■逋 連电子 MWMMMXXH^WWWWWXWXMMWXlrf设备类初始化谓输人相应设备虫称小谓输入相应设暑的敢量:2I前兰冈设备叢哉始拠址:C清辑入玛应设各主•你,b托旳桜命的蠶百:1b入当前空闲设备数豊b入设备表就1给地址:5请辄入胡应设备■入当前空園设备欧呈:请输入设备表起始他址:«卜退出»1■安排.“回收.3-显示询出设备』设备莫型ac 1
起対地址2 631好/坏 来安排00000>16 07 QGQ
9BQo9s99s旷退出,1-安排2-回收,旷显示诣迓窪功能〔3〕丄设备安排:输入彩亚名、作业所需设备类型和设备相对号b0魁踏灯收亠显示输入彩亚名、作业所需设备类型和设备相对号b0魁踏灯收亠显示输入隹並名、作业所需设备类型和设备相对号退出,1/配/-回收,3-显示输入祜並名、作业所需设备类型和设备相对号看|备数夏缺乏,舎配失败!退出七洌己,23-显示IS了}A所需设备类型和设备相对号黠瞬騒捫攵Z示输入稚亚名.作业所需设备类型和设备相对号请输入作亚名、作业所需设备类型和设备相对号fjorsewvfvf2没肓萍到欲23请输入稚亚名.作业所需设备类型和设备相对号J0a0退岀*疔配,2-回收亠显示选择功能<0-3>:jib0输入隹並名、作业所需设备类型和设备相对号退出,丄为配,2-回收,3-显示孑-退岀丿-安排•孑-退岀丿-安排•2-回收亠显示请
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度广告发布委托协议3篇
- 私企聘用会计合同范例
- 管网检测委托服务合同范例
- 矿产项目并购合同范例
- 委托律师清欠合同范例
- 单位房子招租合同范例
- 工地柴油供油合同 2篇
- 牛肉工厂采购合同模板
- 供暖安装施工合同范例
- 自用吊车转让合同模板
- 国家中长期科技发展规划纲要2021-2035
- 《谁的得分高》(教学设计)二年级上册数学北师大版
- 采血后并发症及护理-课件
- 签订无固定期限劳动合同申请书
- 北京工商大学百事可乐市场营销分析
- 清华大学出版社机械制图习题集参考答案(课堂PPT)
- 清华大学机械原理课件-第8章-组合机构上课讲义
- 校园监控维护记录表
- 劳动保障监察执法课件
- 小学文明礼仪教育中译六年级上册第九课民族礼仪 哈达
- 克拉2气田-爆炸事故案例解读课件
评论
0/150
提交评论