设备管理

2019-04-13 22:45

实验五设备管理 一、实验目的

1、理解设备管理的概念和任务。

2、掌握独占设备的分配、回收等主要算法的原理并编程实现。 二、实验内容与基本要求

1、在Windows系统中,编写程序实现对独占设备的分配和回收的模拟,该程序中包括:建立设备类表和设备表、分配设备和回收设备的函数。 三、实验报告内容

1、独占设备的分配、回收等主要算法的原理。 2、程序流程图。 3、程序及注释。

4、运行结果以及结论。 四、实验报告

1、独占设备的分配、回收等主要算法的原理。 为了提高操作系统的可适应性和可扩展性,现代操作系统中都毫无例外地实现了设备独立性,又叫做设备无关性。设备独立性的含义是:应用程序独立于具体使用的物理设备。 为了实现独占设备的分配,系统设置数据表格的方式也不相同,在实验中只要设计合理即可。这里仅仅是一种方案,采用设备类表和设备表。 (1) 数据结构

操作系统设置“设备分配表”,用来记录计算机系统所配置的独占设备类型、台数以及分配情况。设备分配表可由“设备类表”和“设备表”两部分组成。 (2)设备分配

1) 当进程申请某类设备时,系统先查“设备类表”。

2) 如果该类设备的现存台数可以满足申请要求,则从该类设备的“设备表”始址开始依次查该类设备在设备表中的登记项,找出“未分配”的设备分配给进程。

3) 分配后要修改设备类表中的现存台数,把分配给进程的设备标志改为“已分配”且填上占用设备的进程名。

4) 然后,把设备的绝对号与相对号的对应关系通知用户,以便用户在分配到的设备上装上存储介质。 (3)设备回收

当进程执行结束撤离时应归还所占设备,系统根据进程名查设备表,找出进程占用设备的登记栏,把标志修改为“未分配”,清除进程名。同时把回收的设备台数加到设备类表中的现存台数中。 2、程序流程图。 1)申请设备

2)删除设备

3)释放设备

4 )添加设备

3、程序及注释。(增加一个功能:显示当前正在使用的设备。一个进程申请多个设备?一个设备多个进程申请?) #include \#include \#include %using namespace std; typedefstruct node {

string ID; //进程名

string equipment; //申请的设备名 struct node *next;

}PCB;

typedefstruct

{

string channelID; //通道标识符 bool state; //通道状态

PCB *use; //正在使用该通道的进程 PCB *blockqueue; //阻塞队首 }CHCT;

typedefstruct {

string controllerID; //控制器标示 bool state; //控制器状态 CHCT *front; //通道表指针

PCB *use; //正在使用该控制器的进程 PCB *blockqueue; //阻塞队首 }COCT;

typedefstruct {

char type; //设备类型

string equipmentID; //设备名 bool state; //设备状态 COCT *front; //控制器指针

PCB *use; //正在使用该设备的进程 PCB *blockqueue; //阻塞队首 }DCT;

typedefstruct {

char type; //设备类型

string equipmentID; //设备名 DCT *dct; //设备的DCT }SDT;

DCT *k=new DCT; //键盘的DCT DCT *m=new DCT; //mouse DCT *p=new DCT; //printer DCT *t=new DCT; // 显示 COCT *c1=new COCT; //control COCT *c2=new COCT; COCT *c3=new COCT;

CHCT *h1=new CHCT; //channel CHCT *h2=new CHCT; CHCT *h3=new CHCT;

int check(char cmd) {

switch(cmd) {


设备管理.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2012年初级护士资格证考试《专业实践能力》模拟试卷及答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: