- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话: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)