版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、操作系统课程设计(设备管理)河北大学工商学院操作系统课程设计操作系统课程设计(设备管理)目录一引言11.1 课程设计题目11.2 课程设计的目的11.3 小组人数11.4 编程语言11.5 课程设计内容11.6 界面设计如图1二课程设计任务及要求22.1 设计任务22.2 设计要求2三算法及数据结构23.1 算法的总体思想(流程)23.2 Equipment模块33.2.1 功能33.2.2 数据结构33.3 cpu模块43.3.1 功能43.3.2 数据结构43.3.3 算法423.4 forml模块43.4.1 功能43.4.2 算法5四程序设计与实现54.1 程序流程图54.2 基本思想
2、64.3 定义的公共变量或数据结构74.4 实验部分代码74.5 运行截图124.6 使用说明15五总结15六参考文献15河北大学工商学院操作系统课程设计引言1.1 课程设计题目实现一个模拟操作系统。1.2 课程设计的目的通过模拟操作系统原理的实现,加深对操作系统工作原理理解,进一步了解操作系统的实现方法,并可练习合作完成系统的团队精神和提高程序设计能力。1.3 小组人数建议34人一组共同完成模拟系统的实现1.4 编程语言建议使用VC、VB、C#、Java等Windows环境下的程序设计语言,以借助这些语言环境来模拟硬件的一些并行工作。1.5 课程设计内容模拟采用多道程序设计方法的单用户操作系
3、统,该操作系统包括进程管理、存储管理、设备管理、文件管理和用户接口四部分。1.6 界面设计如图时间片*正在区行遴程,用户命令接口*王后用户区使用情况祓备使用情况:是否分鸵:占用退 程,等待进程号目录后唐遍使用唱了图1.1fiff,示都 进拉完S春二课程设计任务及要求2.1 设计任务设计一个设备管理分配程序,按先来先服务的算法,对设备进行分配。2.2 设计要求设备管理主要包括设备的分配和回收。(1)模拟系统中有A、B、C三种独占型设备,A设备3个,B设备2个,C设备1个。(2)因为模拟系统比较小,因此只要设备表设计合理即可。(3)采用先来先服务分配策略,采用设备的安全分配方式。(4)屏幕显示每个
4、设备是否被使用,哪个进程在使用该设备,哪些进程在等待使用该设备。三算法及数据结构3.1 算法的总体思想(流程)设备管理的功能是按照设备的类型和系统采用的分配策略,为请求I/O进程分配一条传输信息的完整通路。合理的控制I/O的控制过程,可最大限度的实现CPU与设备、设备与设备之间的并行工作。1 .监视所有设备。为了能对设备实施有效的分配和控制,系统能获取设备的状态。设备状态保存在设备控制表(DeviceTable)中,并动态的记录状态的变化及有关信息。2 .制定分配策略。按先来先服务的算法,进行设备分配。3 .设备的分配。把设备分配给进程。4 .设备回收。当进程运行完毕后,要释放设备,则系统必须
5、回收,一边其他进程使用。6图3.13.2 Equipment模块3.2.1 功能记录设备的状态及相关信息检查设备是否被调用对设备进行分配进程结束对设备进行回收3.2.2 数据结构一个DeviceTable类、一个DeviceTable函数。DeviceTable是设备分配表,说明设备的分配状况,是否被占用。Device类说明了设备是如何使用的。每个设备是否被使用,哪个进程在使用该设备,哪些进程在等待使用该设备。3.3 cpu模块3.3.1 功能进程对设备的调用,当进程使用设备时,检查设备是否空闲。如果空闲,则调用该设备;如果设备正被使用,则将该进程阻塞到该设备的阻塞队列中,等到设备空闲时,再被
6、唤醒,调用设备。3.3.2 数据结构一个设备的枚举类型DeviceType,一个cpu函数。Cpu函数中调用Equipment模块中的函数对设备进行检测。如果设备空闲,就调用该设备;如果设备真在被使用,则该进程被阻塞到该设备的阻塞队列中。3.3.3 算法通过调用Equipment模块中的函数对设背进行检测:如果设备空闲,则使用该设备;如果设备正在工作,则进程被阻塞。3.4 form1模块3.4.1 功能界面管理图3-2启动进程,如果要使用设备,按先来先服务的算法调用设备。此模块中有一个设备调用函数publicintAllocate(DeviceTypetype),根据设备的物理名调用设备,并将
7、信息显示显示到界面中。3.4.2 算法先来先服务(FCFS,FirstComeFirstService)分配算法:每一设备有一队列管理,当多个作业或任务对同一设备提出I/O请求时,该算法把请求的先后次序排成一个等待该设备的队列,设备分配程序把设备分配给队列中的第一各作业。河北大学工商学院操作系统课程设计7四程序设计与实现4.1程序流程图河北大学工商学院操作系统课程设计4.2 基本思想进程调用设备。先调用A类设备,A类设备一共有三个,如果有空闲的设备,则进程就可调用;否则将进程阻塞到设备A的阻塞队列中,等待设备,等到A类设备有空闲设备时,就唤醒该进程,在断点处继续进行程序。再调用B类设备,B类设
8、备一共有两个,如果有空闲的设备,则进程就可调用;否则将进程阻塞到设备B的阻塞队列中,等待设备,等到B类设备有空闲设备时,就唤醒该进程,在断点处继续进行程序。最后调用C类设备,C类设备只有一个,C设备是临界资源,如果C设备空闲,则进程就可调用;否则将进程阻塞到设备C的阻塞队列中,等待设备,等到C设备空闲,就唤醒该进程,在断点处继续进行程序。4.3 定义的公共变量或数据结构Anum,Bnum,Cnum分别表示设备A,B,C空闲数目publicenumDeviceType枚举型的数据类型列举出三种设备publicstructDeviceTable定义一个设备表的结构体publicclassDevic
9、e设备类publicboolJudgeDevice(DeviceTypetype)检查类型为type的设备是否可用publicintAllocate(DeviceTypetype)分配设备,返回第几个设备被占用publicvoidDeAllocate(DeviceTypetype,inta)回收设备4.4 实验部分代码namespaceWindowsApplication2publicpartialclassForm1:FormpublicstaticintAnum=3,Bnum=2,Cnum=1;publicenumDeviceTypeA,B,C,publicstructDeviceTabl
10、epublicDeviceTypedeviceType;publicinttotal;publicintuseState;/0空闲,1占用publicDeviceTable(DeviceTypetype,inttotal)/定义一个构造函数this.total=total;deviceType=type;useState=newinttotal;for(inti=0;i<total;i+)/初始化每个设备useStatei=0;publicclassDeviceprivateDeviceTabletable=newDeviceTable3;/三种设备privatestaticDevice
11、device=newDevice();publicDevice()InitDevice();/初始化设备privatevoidInitDevice()/设备初始化,AiS备3个,B设备2个,C设备1个table0=newDeviceTable(DeviceType.A,3);table1 =newDeviceTable(DeviceType.B,2);table2 =newDeviceTable(DeviceType.C,1);/检查类型为type的设备是否可用/publicboolJudgeDevice(DeviceTypetype)boolstr=false;switch(type)cas
12、eDeviceType.A:if(table0.total>0)str=true;break;caseDeviceType.B:if(table1.total>0)str=true;break;caseDeviceType.C:if(table2.total>0)str=true;break;returnstr;/分配设备,返回第几个设备被占用/publicintAllocate(DeviceTypetype)intk=0;switch(type)/使用switch语句选择分配设备不同函数caseDeviceType.A:table0.total-;for(inti=0;i&
13、lt;3;i+)if(table0.useStatei=0)table0.useStatei=1;k=i;break;break;caseDeviceType.B:table1.total-;for(inti=0;i<2;i+)if(table0.useStatei=0)table0.useStatei=1;k=i;break;break;caseDeviceType.C:table2.total-;break;returnk;/回收设备/publicvoidDeAllocate(DeviceTypetype,inta)switch(type)caseDeviceType.A:table
14、0.total+;table0.useStatea=0;break;caseDeviceType.B:table1.total+;table1 useStatea=0;break;caseDeviceType.C:table2.total+;table2 useStatea=0;break;publicForm1()InitializeComponent();/分配设备时的颜色变化/privatevoidbutton7_Click(objectsender,EventArgse)Anum-;stringresult1=""Deviced1=newDevice();intm1
15、=d1.Allocate(DeviceType.A);result1=Convert.ToString(m1);switch(Anum)case2:this.button1.BackColor=Color.Red;break;case1:this.button2.BackColor=Color.Red;break;case0:this.button3.BackColor=Color.Red;break;default:MessageBox.Show("无设备可分配");break;privatevoidbutton8_Click(objectsender,EventArgs
16、e)Bnum-;stringresult2=""Deviced2=newDevice();intm2=d2.Allocate(DeviceType.B);switch(Bnum)case1:this.button4.BackColor=Color.Red;break;case0:this.button5.BackColor=Color.Red;break;default:MessageBox.Show("无设备可分配");break;result2=Convert.ToString(m2);privatevoidbutton9_Click(objects
17、ender,EventArgse)Cnum-;stringresult3=""Deviced1=newDevice();intm3=d1.Allocate(DeviceType.C);if(Cnum=0)this.button6.BackColor=Color.Red;elseMessageBox.Show("无设备可分配");result3=Convert.ToString(m3);4.5运行截图屏幕显示主存使用情况示意图,哪些主存块已分配,哪些主存块未分配,以不同的颜色表示,灰色表示设备空闲,红色表示设备已分配初始化为所有设备都是空闲状态,如下图所示
18、图4-2分配设备A正常情况下,如图所示:16图4-3分配设备A非正常情况下,例如需要设备数超过实际有的设备数时,如图所示:图4-43个设备A都被分配出去,回收设备A时正常情况如下图所示:图4-54.6使用说明设备管理主要包括设备的分配和回收。1. 设备的模拟模拟系统中有A、B、C三种独占型设备,A设备3个,B设备2个,C设备1个。2. 数据结构因为模拟系统比较小,因此只要设备表设计合理既可。3. 设备分配采用先来先服务策略。4. 设备回收回收设备后,要注意唤醒等待设备的进程。5. 屏幕显示屏幕显示要求包括:每个设备是否被使用,哪个进程在使用该设备,哪些进程在等待使用该设备。其中灰色表示设备空闲,红色表示设备已被分配。五总结设备管理主要监视所有设备的状态,制定分配策略,完成设备的分配和回收,合理的控制I/O的控制过程,最大限度的实现CPUt设备、设备与设备之间的把并行工作。通过对这次操作系统课程设计的亲自参与和操作,使我深刻体会到了:只要你想做只要你想学没有弄不懂得事情,工程里面也不能不在乎细节,等等。感觉很受益匪浅。懂得了操作系统包括的四部分内容:文
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 单位临时用车合同范例
- 陕西航空职业技术学院《操作系统原理实验课》2023-2024学年第一学期期末试卷
- 陕西国防工业职业技术学院《交互设计概论》2023-2024学年第一学期期末试卷
- 燃气公司 合同范例
- 医院承包运营合同范例
- 夜市摊位转让合同范例
- 个人装修木工合同范例
- 2024年瓶装水品牌合作框架3篇
- 2024年智能桶装水配送与售后服务合同3篇
- 2024年度传媒企业派遣员工劳务服务协议3篇
- 法院特别委托书授权模板
- 安徽工程大学《自然语言处理及应用》2022-2023学年第一学期期末试卷
- 2024年室内设计协议书
- 中储粮西安分公司招聘真题
- 大学人工智能期末考试题库
- 2024土方开挖工程合同范本
- 企业绿色供应链管理咨询服务合同
- 食品安全事故专项应急预案演练记录6篇汇编(表格式)
- 2025年会计基础知识考试题库附答案
- 《资治通鉴》导读学习通超星期末考试答案章节答案2024年
- 2024年统编版新教材语文小学一年级上册全册单元测试题及答案(共8单元)
评论
0/150
提交评论