实验七 设管理.doc

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验七 设管理

实验七 设备管理 (四课时) 一 实验目的: 模拟实现包括设备的添加和删除,设备的分配和回收,体现设备分配中的设备独立性。 二 内容要求: 1、 设备管理模拟计算机系统的外围设备的系统结构,可以创建2个通道、3个控制器和四个外设(键盘、鼠标、显示器、打印机),键盘和鼠标使用一个控制器。 2、 设备管理有添加和删除设备的功能,同时完成控制器的维护功能。 3、 设备管理还包括设备的分配和回收。使学生掌握外围设备的体系结构和管理方法。成功分配的时候,用户进程使用设备,否则将被阻塞到一个级别的控制表上,等待被唤醒。 设备分配必须满足设备的独立性要求。为了实现设备独立性,要求在驱动程序之上设计一层设备无关软件,其主要功能可分为执行所有设备的公有操作,主要包括:(a)独占设备的分配与回收;(b)将逻辑设备名映射为物理设备,进一步可以找到相应物理设备的驱动程序。 三 实现功能: 1、增加设备 2、删除设备 3、申请设备 4、回收设备 5、显示当前所有设备的状态 四 实现过程: [cpp] view plaincopy 01.#includeiostream 02.#includestring.h 03.#includewindows.h 04.using namespace std; 05.struct BLOCK /*阻塞*/ 06.{ 07. char name[100]; /*阻塞态进程名称*/ 08. char from[100]; 09. BLOCK *next; 10.}; 11.struct DCT /*设备控制表*/ 12.{ 13. char name[100]; /*设备名称*/ 14. char type; /*设备类型:I/O*/ 15. int stage; /*设备状态:1/0*/ 16. int coct; /*连接相应控制器的控制器号*/ 17. BLOCK *BLOCK,*rear; /*阻塞队列指针*/ /*阻塞队列尾指针*/ 18.}; 19.struct SDT /*系统设备表*/ 20.{ 21. char name[100]; /*系统设备名称*/ 22. DCT DCT; /*绑定的相应设备*/ 23.}SDT[100]; 24.struct COCT /*控制器控制表*/ 25.{ 26. char name[100]; /*控制器名称*/ 27. int stage; /*控制器状态:1/0*/ 28. int chct; /*连接相应通道的通道号*/ 29. BLOCK *BLOCK,*rear; /*阻塞队列*/ /*阻塞队列尾指针*/ 30.}COCT[100]; 31.struct CHCT /*通道控制表*/ 32.{ 33. char name[100]; /*通道名称*/ 34. int stage; /*通道的状态:1/0*/ 35. BLOCK *BLOCK,*rear; /*阻塞队列*/ /*阻塞队列尾指针*/ 36.}CHCT[2]; 37. 38.int SDT_N=4; 39.int COCT_N=3; 40.void init() /*初始化*/ 41.{ 42./* 43.初始化SDT和DCT 系统原有4个设备:K M T P 44. */ 45. strcpy(SDT[0].name,K); 46. strcpy(SDT

您可能关注的文档

文档评论(0)

1444168621 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档