资源简介
包括实验题目,代码及运行结果
实验4 设备管理(2学时)
一、实验目的
理解设备管理的概念和任务,掌握独占设备的分配、回收等主要算法的原理并编程实现。
二、实验内容
编写程序实现对独占设备的分配与回收的模拟。
三、实验要求
1、实现设备分配、回收、显示系统中设备信息的功能。
2、通过设备类表和设备表记录系统中设备信息、以便进行设备分配。
3、设备类表记录系统中全部设备的情况,每个设备类占一个表目,设备类表的数据结构如表1所示。
设备类
拥有设备数量
可分配设备数量
设备起始地址
图1 设备类表
4、为每一个设备配置一张设备控制表,用于记录本设备的情况。设备控制表的数据结构如图2所示。
绝对号
设备状态(好/坏)
是否分配(是/否)
占有作业名
相对号
图2 设备控制表
5、程序中建立分配设备和回收设备函数。
6、设系统有3类设备,每类设备的设备数分别为2、3、4。
7、要求键盘输入作业名、作业所需设备类和设备相对号。
实验4 设备管理(2学时)
一、实验目的
理解设备管理的概念和任务,掌握独占设备的分配、回收等主要算法的原理并编程实现。
二、实验内容
编写程序实现对独占设备的分配与回收的模拟。
三、实验要求
1、实现设备分配、回收、显示系统中设备信息的功能。
2、通过设备类表和设备表记录系统中设备信息、以便进行设备分配。
3、设备类表记录系统中全部设备的情况,每个设备类占一个表目,设备类表的数据结构如表1所示。
设备类
拥有设备数量
可分配设备数量
设备起始地址
图1 设备类表
4、为每一个设备配置一张设备控制表,用于记录本设备的情况。设备控制表的数据结构如图2所示。
绝对号
设备状态(好/坏)
是否分配(是/否)
占有作业名
相对号
图2 设备控制表
5、程序中建立分配设备和回收设备函数。
6、设系统有3类设备,每类设备的设备数分别为2、3、4。
7、要求键盘输入作业名、作业所需设备类和设备相对号。
代码片段和文件信息
#include
#include
#include
using namespace std;
/**** 设备类表 ****/
struct equipclass{
char type[10]; // 设备类名
int have; // 拥有设备数量
int available; // 可分配设备数量
int add; // 设备起始地址
}ec[100];
/**** 设备控制表 ****/
struct equipreglate{
char type[10]; // 设备类名
int abs_num; // 绝对号
bool state; // 设备状态 1表示好,0表示坏
bool alloc; // 是否分配 1表示已经分配, 0表示未分配
char name[10]; // 占有作业名
int rel_num; // 相对号
}er[10000];
/**** 作业 ****/
struct project{
char name[10]; // 作业名称
char need[10]; // 作业需要的设备类别
int rel_num; // 作业需要的设备相对号
int finish; // 作业是否完成, -1表示没有该作业, 0表示未完成,1表示已经完成
}work[100];
int n;
void input(){
cout << “请输入设备类别数: “; cin >> n;
for(int i=0; i cout << “请输入第“ << i+1 << “类设备的名称拥有设备数量设备起始地址: “;
cin >> ec[i].type >> ec[i].have >> ec[i].add;
ec[i].available = ec[i].have;
int add = ec[i].add;
bool sta[10000];
cout << “请输入第“ << i+1 << “类设备的各台设备的好坏(1表示好,0表示坏): “;
for(int j=add; j cin >> sta[j];
if(sta[j] == 0) ec[i].available--;
}
for(int j=add; j strcpy(er[j].typeec[i].type);
er[j].abs_num = j;
er[j].state = sta[j];
er[j].alloc = 0;
strcpy(er[j].name“NULL“);
er[j].rel_num = j-add;
}
}
for(int i=0; i<100; i++)
work[i].finish = -1;
}
void allocation(int id){
cout << “请输入作业名称作业所需设备类设备相对号: “;
char name[10]need[10]; int rel_num;
cin >> name >> need >> rel_num;
char type[10]; strcpy(typeneed);
int cnt = -1;
for(int i=0; i if(strcmp(typeec[i].type) == 0){
cnt = i;
break;
}
}
if(cnt == -1) { cout << “分配失败 没有您所需要的设备“ << endl; return ; }
int add = ec[cnt].add have = ec[cnt].have ava = ec[cnt].available;
int t_add = add+rel_num;
if(er[t_add].alloc == 1) { cout << “分配失败 您所需要的设备被作业“ << er[t_add].name << “所占有“ << endl; return ;}
if(rel_num >= have) { cout << “分配失败 不存在该相对号的设备“ << endl; return ;}
if(er[t_add].state == 0) { cout << “分配失败 您所需要的设备处于坏状态 无法工作“ << endl; return ;}
if(ava == 0) { cout << “分配失败 您所需要的设备已经分配完了“ << endl; return ;}
strcpy(work[id].namename); strcpy(work[id].needneed); work[id].rel_num = rel_num;
er[t_add].alloc = 1; strcpy(er[t_add].namework[id].name);
ec[cnt].available--;
work[id].finish = 0;
cout << “分配成功! 设备类别: “ << type << “\t设备绝对号: “ << er[t_add].abs_num << “\t设备相对号: “ << er[t_add].rel_num << endl;
}
void eback(){
char name[10];
cout << “请输入已完成的作业名称: “; cin >> name;
for(int i=0; i<100; i++)
if(strcmp(namework[i].name) == 0){
work[i].finish = 1; break;
}
int id = -1;
for(int i=0; i<10000; i++)
if(strcmp(nameer[i].name) == 0){
id =
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4866 2018-05-23 15:11 main.cpp
文件 34304 2018-05-16 15:28 实验题目4.doc
文件 54816 2018-05-14 20:51 新建 Microsoft Word 文档.docx
- 上一篇:操作系统实验一: 进程调度
- 下一篇:操作系统实验五 内存管理
相关资源
- 操作系统实验五 内存管理
- 操作系统实验一: 进程调度
- CODESYS之创建一个库.docx
- CODESYS运动控制之SMC_Interpolator.docx
- 一个shellcode作用是添加Windows用户
- Codecs33-Sunblime Text
- 字符编码转换,utf16 utf8 ascii unicode
- SAP FICO 常用事务代码TCODE
- Helix AAC Decoder源码及官方文档
- 基于OpenCV的多种条形码识别算法
- FPGA JPEG Verilog Source code 源代码
- codewarrior V6.2全功能license
- codejock Demo
- arduino_code.rar
- Qt条码生成器
- RS485芯片ESD ±20kV 速率高达10MBPS 性价
- PB版 code128 条形码 图片生成
- microchip PIC24F Code Examples
- 非局部均值滤波器
- GB∕T 38662-2020 物联网标识体系 Ecode标
- Qt Thread code
- xilinx vivado xadc IP core code
- Code Alignment
- CodeSnitch破解版,支持WINCE6.0
- 汇编做模拟计算器ASM文件
- codelock指纹门禁系统.rar
- code.zip
- QRCODE 单片机实现二维码显示60539
- stm32f103zet6液晶显示实验
- TIJ4-code.zip
评论
共有 条评论