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

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统课程设计(设备管理) 目 录 TOC \o 1-3 \h \z \u 一 引言 1 1.1课程设计题目 1 1.2课程设计的目的 1 1.3小组人数 1 1.4编程语言 1 1.5课程设计内容 1 1.6界面设计如图 1 二 课程设计任务及要求 2 2.1设计任务 2 2.2设计要求 2 三 算法及数据结构 2 3.1算法的总体思想(流程) 2 3.2 Equipment模块 3 3.2.1 功能 3 3.2.2 数据结构 3 3.3 cpu模块 4 3.3.1 功能 4 3.3.2 数据结构 4 3.3.3 算法 4 3.4 form1模块 4 3.4.1 功能 4 3.4.2 算法 5 四 程序设计与实现 5 4.1 程序流程图 5 4.2 基本思想 6 4.3 定义的公共变量或数据结构 7 4.4 实验部分代码 7 4.5 运行截图 12 4.6 使用说明 15 五 总结 15 六 参考文献 15 一 引言 1.1课程设计题目 实现一个模拟操作系统。 1.2课程设计的目的 通过模拟操作系统原理的实现,加深对操作系统工作原理理解,进一步了解操作系统的实现方法,并可练习合作完成系统的团队精神和提高程序设计能力。 1.3小组人数 建议3~4人一组共同完成模拟系统的实现。 1.4编程语言 建议使用VC、VB、C#、Java等Windows环境下的程序设计语言,以借助这些语言环境来模拟硬件的一些并行工作。 1.5课程设计内容 模拟采用多道程序设计方法的单用户操作系统,该操作系统包括进程管理、存储管理、设备管理、文件管理和用户接口四部分。 1.6界面设计如图 图1.1 二 课程设计任务及要求 2.1设计任务 设计一个设备管理分配程序,按先来先服务的算法,对设备进行分配。 2.2设计要求 设备管理主要包括设备的分配和回收。 (1)模拟系统中有A、B、C三种独占型设备,A设备3个,B设备2个,C设备1个。 (2)因为模拟系统比较小,因此只要设备表设计合理即可。 (3)采用先来先服务分配策略,采用设备的安全分配方式。 (4)屏幕显示 每个设备是否被使用,哪个进程在使用该设备,哪些进程在等待使用该设备。 三 算法及数据结构 3.1算法的总体思想(流程) 设备管理的功能是按照设备的类型和系统采用的分配策略,为请求I/O进程分配一条传输信息的完整通路。合理的控制I/O的控制过程,可最大限度的实现CPU与设备、设备与设备之间的并行工作。 1.监视所有设备。为了能对设备实施有效的分配和控制,系统能获取设备的状态。设备状态保存在设备控制表(DeviceTable)中,并动态的记录状态的变化及有关信息。 2.制定分配策略。按先来先服务的算法,进行设备分配。 3.设备的分配。把设备分配给进程。 4.设备回收。当进程运行完毕后,要释放设备,则系统必须回收,一边其他进程使用。 图3.1 3.2 Equipment模块 3.2.1 功能 记录设备的状态及相关信息 检查设备是否被调用 对设备进行分配 进程结束对设备进行回收 3.2.2 数据结构 一个DeviceTable类、一个DeviceTable函数。 DeviceTable是设备分配表,说明设备的分配状况,是否被占用。 Device类说明了设备是如何使用的。每个设备是否被使用,哪个进程在使用该设备,哪些进程在等待使用该设备。 3.3 cpu模块 3.3.1 功能 进程对设备的调用,当进程使用设备时,检查设备是否空闲。如果空闲,则调用该设备;如果设备正被使用,则将该进程阻塞到该设备的阻塞队列中,等到设备空闲时,再被唤醒,调用设备。 3.3.2 数据结构 一个设备的枚举类型DeviceType,一个cpu函数。 Cpu函数中调用Equipment模块中的函数对设备进行检测。如果设备空闲,就调用该设备;如果设备真在被使用,则该进程被阻塞到该设备的阻塞队列中。 3.3.3 算法 通过调用Equipment模块中的函数对设背进行检测:如果设备空闲,则使用该设备;如果设备正在工作,则进程被阻塞。 3.4 form1模块 3.4.1 功能 界面管理 图3-2 启动进程,如果要使用设备,按先来先服务的算法调用设备。此模块中有一个设备调用函数public int Allocate(DeviceType type),根据设备的物理名调用设备,并将信息显示显示到界面中。 3.4.2 算法 先来先服务(FCFS, First Come First Service)分配算法: 每一设备有一队列管理,当多个作业或任务对同一设备提出I/O请求时,该算

文档评论(0)

181****2496 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档