以下为《实验二独占设备分配与回收》的无排版文字预览,完整格式请下载
下载前请仔细阅读文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。
操作系统
实验二 独占设备的分配和回收
姓 名: 陈某某
学 号: ***32048
学 院: 应用***
专 业: 计算机科学与技术
指 导 教 师: 赵某某
2022年 5月 27日
目 录
1 实验目的 2
2 实验内容 2
3 实验原理 2
4 流程图 3
5程序代码 3
6 程序截图 3
1 实验目的
(1)加深对设备管理的理解
(2)深入了解如何分配和回收独占设备
2 实验内容
设计一种独占设备分配和回收的方案,要求满足设备独立性。在Visual C++ 6.0 集成开发环境下,使用C语言编写程序实现这个方案并进行测试。
3 实验原理
为了提高操作系统的可适应性和可扩展性,现代操作系统中都毫无例外地实现了设备独立性,又叫做设备无关性。设备独立性的含义是:应用程序独立于具体使用的物理设备。
为了实现独占设备的分配,系统设置数据表格的方法也不相同,在实验中只要设计合理即可。这里仅仅是一种方案,采用设备类表和设备表。
数据结构
操作系统设置”设备分配表”,用来记录计算机系统所配置的独占设备类型,台数以及分配情况,设备分配表可由”设备类表”和”设备表”两部分组成,在设备类表中,每类设备对应一行,内容通常包括设备类、总台数、空闲台数和设备表起始地址。设备表中,每台设备对应一行,包括设备物理名,设备逻辑名、占用设备的进程号、是否分配等,在设备表中,同类设备登记在连续的行中。
设备分配
当进程申请某类设备时,系统先查”设备类表”。
如果该类设备的现存台数可以满足申请要求,则从该类设备的”设备表”始址开始依次查该类设备在设备表中的登记项,找出”未分配”的设备分配给进程。
分配后要修改设备类表中的现存台数,把分配给进程的设备标志改为”已分配”且填上占用设备的进程名。
然后,把设备的绝对号与相对号的对应关系通知用户,以便用户在分配到的设备上装上存储介质。
设备回收
当进程执行结束撤离时应归还所占的设备,系统根据进程名查设备表,找出进程占用设备的登记栏,把标志修改成”未分配”,清除进程名,同时把回收的设备台数加到设备类表中的空闲台数中。
4 流程图
5程序代码
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
#define False 0
#define True 1
#define n 3
#define m 8
struct{
char type[10];
int count;
int remain;
int address;
}equipType[n];
struct{
int equipID;
int remain;
char jobName[5];
int relNumber;
}equipment[m];
int allocate(char *J, char *type, int mm){
int i,t;
i = 0;
while(i= n){
printf("无该类设备,设备分配失败!\n");
return False;
}
if(equipType[i].remain
以上为《实验二独占设备分配与回收》的无排版文字预览,完整格式请下载
下载前请仔细阅读上面文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。