欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    操作系统课程设计(设备管理)10008.docx

    • 资源ID:62433738       资源大小:226.49KB        全文页数:18页
    • 资源格式: DOCX        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    操作系统课程设计(设备管理)10008.docx

    河北大学工商学院操作系统课程设计操作系统统课程设设计(设设备管理理)目录一引言111.1课课程设计计题目111.2课课程设计计的目的的11.3小小组人数数11.4编编程语言言11.5课课程设计计内容111.6界界面设计计如图11二课程设设计任务务及要求求22.1设设计任务务22.2设设计要求求2三算法及及数据结结构23.1算算法的总总体思想想(流程程)23.2 Equuipmmentt模块33.2.1 功功能33.2.2 数数据结构构33.3 cpuu模块43.3.1 功功能43.3.2 数数据结构构43.3.3 算算法43.4 forrm1模模块43.4.1 功功能43.4.2 算算法5四程序设设计与实实现54.1 程序流流程图554.2 基本思思想64.3 定义的的公共变变量或数数据结构构74.4 实验部部分代码码74.5 运行截截图1224.6使使用说明明15五总结115六参考文文献1517一引言1.1课课程设计计题目实现一个个模拟操操作系统统。1.2课课程设计计的目的的通过模拟拟操作系系统原理理的实现现,加深深对操作作系统工工作原理理理解,进进一步了了解操作作系统的的实现方方法,并并可练习习合作完完成系统统的团队队精神和和提高程程序设计计能力。1.3小小组人数数建议34人一一组共同同完成模模拟系统统的实现现。1.4编编程语言言建议使用用VC、VVB、CC#、JJavaa等Wiindoows环环境下的的程序设设计语言言,以借借助这些些语言环环境来模模拟硬件件的一些些并行工工作。1.5课课程设计计内容模拟采用用多道程程序设计计方法的的单用户户操作系系统,该该操作系系统包括括进程管管理、存存储管理理、设备备管理、文文件管理理和用户户接口四四部分。1.6界界面设计计如图图1.11二 课程程设计任任务及要要求2.1设设计任务务设计一个个设备管管理分配配程序,按按先来先先服务的的算法,对对设备进进行分配配。2.2设设计要求求 设备管管理主要要包括设设备的分分配和回回收。(1)模模拟系统统中有AA、B、C三种独独占型设设备,AA设备33个,BB设备22个,CC设备11个。(2)因因为模拟拟系统比比较小,因因此只要要设备表表设计合合理即可可。(3)采采用先来来先服务务分配策策略,采采用设备备的安全全分配方方式。(4)屏屏幕显示示每个设备备是否被被使用,哪哪个进程程在使用用该设备备,哪些些进程在在等待使使用该设设备。三 算法法及数据据结构3.1算算法的总总体思想想(流程程)设备管理理的功能能是按照照设备的的类型和和系统采采用的分分配策略略,为请请求I/O进程程分配一一条传输输信息的的完整通通路。合合理的控控制I/O的控控制过程程,可最最大限度度的实现现CPUU与设备备、设备备与设备备之间的的并行工工作。1.监视视所有设设备。为为了能对对设备实实施有效效的分配配和控制制,系统统能获取取设备的的状态。设设备状态态保存在在设备控控制表(DDeviiceTTablle)中中,并动动态的记记录状态态的变化化及有关关信息。2.制定定分配策策略。按按先来先先服务的的算法,进进行设备备分配。3.设备的的分配。把把设备分分配给进进程。4.设备回回收。当当进程运运行完毕毕后,要要释放设设备,则则系统必必须回收收,一边边其他进进程使用用。图3.113.2EEquiipmeent模模块3.2.1功能能记录设备备的状态态及相关关信息检查设备备是否被被调用对设备进进行分配配进程结束束对设备备进行回回收3.2.2数据据结构一个DeevicceTaablee类、一个DeevicceTaablee函数。DeviiceTTablle是设设备分配配表,说说明设备备的分配配状况,是是否被占占用。Deviice类类说明了了设备是是如何使使用的。每个设备是否被使用,哪个进程在使用该设备,哪些进程在等待使用该设备。3.3ccpu模模块3.3.1功能能进程对设设备的调调用,当当进程使使用设备备时,检检查设备备是否空空闲。如如果空闲闲,则调调用该设设备;如如果设备备正被使使用,则则将该进进程阻塞塞到该设设备的阻阻塞队列列中,等等到设备备空闲时时,再被被唤醒,调调用设备备。3.3.2数据据结构一个设备备的枚举举类型DDeviiceTTypee,一个个cpuu函数。Cpu函函数中调调用Eqquippmennt模块块中的函函数对设设备进行行检测。如果设备空闲,就调用该设备;如果设备真在被使用,则该进程被阻塞到该设备的阻塞队列中。3.3.3算法法通过调用用Equuipmmentt模块中中的函数数对设背背进行检检测:如如果设备备空闲,则则使用该该设备;如果设设备正在在工作,则则进程被被阻塞。3.4fformm1模块块3.4.1功能能界界面管理理图3-22启动进程程,如果果要使用用设备,按先来先服务的算法调用设备。此模块中有一个设备调用函数public int Allocate(DeviceType type),根据设备的物理名调用设备,并将信息显示显示到界面中。3.4.2算法法先来来先服务务(FCCFS, Fiirstt Coome Firrst Serrvicce)分分配算法法:每一设备备有一队队列管理理,当多多个作业业或任务务对同一一设备提提出I/O请求求时,该该算法把把请求的的先后次次序排成成一个等等待该设设备的队队列,设设备分配配程序把把设备分分配给队队列中的的第一各各作业。四程序设设计与实实现4.1 程序流流程图YNNNY执行的进程根据设备的物理名调用设备设备a是否空闲设备b是否空闲设备c是否空闲进程结束,回收设备Y将该进程放到设备a的阻塞队列中将该进程放到设备b的阻塞队列中将该进程放到设备c的阻塞队列中图4-114.2 基本思思想进程程调用设设备。先先调用AA类设备备, AA类设备备一共有有三个,如如果有空空闲的设设备,则则进程就就可调用用;否则则将进程程阻塞到到设备AA的阻塞塞队列中中,等待待设备,等等到A类设备备有空闲闲设备时时,就唤唤醒该进进程,在在断点处处继续进进行程序序。再调调用B类设备备, BB类设备备一共有有两个,如如果有空空闲的设设备,则则进程就就可调用用;否则则将进程程阻塞到到设备BB的阻塞塞队列中中,等待待设备,等等到B类设备备有空闲闲设备时时,就唤唤醒该进进程,在在断点处处继续进进行程序序。最后后调用CC类设备备, CC类设备备只有一一个,CC设备是是临界资资源,如如果C设备空闲闲,则进进程就可可调用;否则将将进程阻阻塞到设设备C的阻塞塞队列中中,等待待设备,等等到C设备空空闲,就就唤醒该该进程,在在断点处处继续进进行程序序。4.3定定义的公公共变量量或数据据结构Anumm,Bnnum,CCnumm分别表表示设备备A,BB,C空空闲数目目publlic enuum DDeviiceTTypee 枚举型型的数据据类型 列举举出三种种设备publlic strructt DeevicceTaablee 定义一一个设备备表的结结构体 pubblicc cllasss Deevicce 设备备类publlic boool JJudggeDeevicce(DDeviiceTTypee tyype) 检查查类型为为typpe的设设备是否否可用publlic intt Allloccatee(DeevicceTyype typpe) 分配设设备,返回第第几个设设备被占占用publlic voiid DDeAllloccatee(DeevicceTyype typpe, intt a) 回收收设备4.4实实验部分分代码nameespaace WinndowwsApppliicattionn2pubblicc paartiial claass Forrm1 : FFormm puubliic sstattic intt Annum = 33, BBnumm = 2, Cnuum = 1; puubliic eenumm DeevicceTyype A,B, CC, puubliic sstruuct DevviceeTabble ppubllic DevviceeTyppe ddeviiceTTypee; ppubllic intt tootall; ppubllic intt useeStaate; /00空空闲,11占占用 ppubllic DevviceeTabble(DevviceeTyppe ttypee, iint tottal) /定义一一个构造造函数 tthiss.tootall = tottal; devviceeTyppe = tyype; useeStaate = nnew intttootall; forr (iint i = 0; i < ttotaal; i+) /初初始化每每个设备备 usseSttateei = 0; puubliic cclasss DDeviice pprivvatee DeevicceTaablee tabble = nnew DevviceeTabble3;/三三种设备备 pprivvatee sttatiic DDeviice devvicee = neww Deevicce(); ppubllic Devvicee() IniitDeevicce();/初始化化设备 pprivvatee vooid IniitDeevicce() /设备初初始化,AA设备33个,BB设备22个,CC设备11个 tabble0 = nnew DevviceeTabble(DevviceeTyppe.AA, 33); tabble1 = nnew DevviceeTabble(DevviceeTyppe.BB, 22); tabble2 = nnew DevviceeTabble(DevviceeTyppe.CC, 11); / /检检查类型型为tyype的的设备是是否可用用/ ppubllic boool JJudggeDeevicce(DDeviiceTTypee tyype) boool sstr = ffalsse; swiitchh (ttypee) caase DevviceeTyppe.AA: if (taablee0.tootall > 0) sstr = ttruee; breeak; caase DevviceeTyppe.BB: iff (ttablle11.ttotaal >> 0) sstr = ttruee; breeak; caase DevviceeTyppe.CC: iff (ttablle22.ttotaal >> 0) sttr = trrue; breeak; retturnn sttr; /分分配设备备,返回回第几个个设备被被占用/ / ppubllic intt Allloccatee(DeevicceTyype typpe) innt kk = 0; swiitchh (ttypee)/使用sswittch语语句选择择分配设设备不同同函数 caase DevviceeTyppe.AA: taablee0.tootall-; forr (iint i = 0; i < 33; ii+) iif (tabble0.useeStaatei = 0) ttablle00.uuseSStatteii = 1; kk = i; bbreaak; breeak; caase DevviceeTyppe.BB: tabble1.tottal-; forr (iint i = 0; i < 22; ii+) iff (ttablle00.uuseSStatteii = 00) tabble0.useeStaatei = 11; kk = i; bbreaak; breeak; caase DevviceeTyppe.CC: tabble2.tottal-; breeak; retturnn k; / /回收收设备/ / ppubllic voiid DDeAllloccatee(DeevicceTyype typpe, intt a) swiitchh (ttypee) ccasee DeevicceTyype.A: taablee0.tootall+; tabble0.useeStaatea = 00; breeak; caase DevviceeTyppe.BB: taablee1.tootall+; tabble1.useeStaatea = 00; breeak; caase DevviceeTyppe.CC: taablee2.tootall+; tabble2.useeStaatea = 00; breeak; puubliic FFormm1() IInittiallizeeCommponnentt(); / / 分配设设备时的的颜色变变化/ / prrivaate voiid bbuttton77_Cllickk(obbjecct ssendder, EvventtArggs ee) Anuum-; sstriing ressultt1 = """ DDeviice d1 = nnew Devvicee(); iint m1 = dd1.AAlloocatte(DDeviiceTTypee.A); rresuult11 = Connverrt.TToSttrinng(mm1); sswittch (Annum) casse 22: thhis.butttonn1.BBackkCollor = CColoor.RRed; brreakk; casse 11: thhis.butttonn2.BBackkCollor = CColoor.RRed; brreakk; casse 00: thhis.butttonn3.BBackkCollor = CColoor.RRed; brreakk; deffaullt: MeessaageBBox.Shoow(""无设备备可分配配"); brreakk; prrivaate voiid bbuttton88_Cllickk(obbjecct ssendder, EvventtArggs ee) Bnnum-; sstriing ressultt2 = """ DDeviice d2 = nnew Devvicee(); iint m2 = dd2.AAlloocatte(DDeviiceTTypee.B); sswittch (Bnnum) casse 11: thhis.butttonn4.BBackkCollor = CColoor.RRed; brreakk; casse 00: thhis.butttonn5.BBackkCollor = CColoor.RRed; brreakk; deffaullt: MeessaageBBox.Shoow(""无设备备可分配配"); brreakk; rresuult22 = Connverrt.TToSttrinng(mm2); prrivaate voiid bbuttton99_Cllickk(obbjecct ssendder, EvventtArggs ee) CCnumm-; sstriing ressultt3 = """ DDeviice d1 = nnew Devvicee(); iint m3 = dd1.AAlloocatte(DDeviiceTTypee.C); iif (Cnuum = 00) thiis.bbuttton66.BaackCColoor = Coolorr.Reed; eelsee MesssaggeBoox.SShoww("无无设备可可分配""); rresuult33 = Connverrt.TToSttrinng(mm3); 4.5运运行截图图屏幕幕显示主存使用用情况示示意图,哪哪些主存存块已分分配,哪哪些主存存块未分分配,以以不同的的颜色表表示,灰灰色表示示设备空空闲,红红色表示示设备已已分配初始化为为所有设设备都是是空闲状状态,如如下图所所示图4-22分配设设备A正正常情况况下,如如图所示示:图4-33分配设备备A非正正常情况况下,例例如需要要设备数数超过实实际有的的设备数数时,如如图所示示:图4-443个设备备A都被被分配出出去,回回收设备备A时正正常情况况如下图图所示:图4-554.6使使用说明明设备管理理主要包包括设备备的分配配和回收收。1. 设设备的模模拟 模拟系系统中有有A、BB、C三三种独占占型设备备,A设设备3个个,B设设备2个个,C设设备1个个。2. 数据结构构 因为模模拟系统统比较小小,因此此只要设设备表设设计合理理既可。3. 设备分配配 采用用先来先先服务策策略。4. 设备回收收 回收收设备后后,要注注意唤醒醒等待设设备的进进程。5. 屏幕显示示 屏幕显显示要求求包括:每个设设备是否否被使用用,哪个个进程在在使用该该设备,哪哪些进程程在等待待使用该该设备。其其中灰色色表示设设备空闲闲,红色色表示设设备已被被分配。五总结设备管理理主要监监视所有有设备的的状态,制制定分配配策略,完完成设备备的分配配和回收收,合理理的控制制I/OO的控制制过程,最最大限度度的实现现CPUU与设备备、设备备与设备备之间的的把并行行工作。通过对这这次操作作系统课课程设计计的亲自自参与和和操作,使使我深刻刻体会到到了:只只要你想想做只要要你想学学没有弄弄不懂得得事情,工工程里面面也不能能不在乎乎细节,等等等。感感觉很受受益匪浅浅。懂得得了操作作系统包包括的四四部分内内容:文文件管理理和用户户接口、存存储管理理、设备备管理、进进程管理理之间的的内在联联系。加加深了我我对这门门课程的的理解。锻炼了自己在考虑全局也不是细节的能力。通过这次实验,再一次熟悉并深入掌握了程序设计语言和界面设计。同时,我也深深体会到了团队的重要性,如果没有同组人的互相鼓励和督促我跟本不能很快的完成任务。一滴水的力量是有限的,但汇聚成溪流将是美丽的。虽然我们每个人的力量都是有限的,但是激烈的讨论、相互的鼓励使我们在实践中成长。感谢和我一起面对的同伴们,因为有你们我才变得勤奋。更感谢给予我们谆谆教导的老师,在我们犹豫困惑时给予我们指导,谢谢您!六参考文文献刘振鹏、王王煜、张张明 操作作系统(第第三版)北京:中国铁道出版社

    注意事项

    本文(操作系统课程设计(设备管理)10008.docx)为本站会员(you****now)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开