实验二独占设备分配与回收

本文由用户“keithgong”分享发布 更新时间:2022-06-10 07:45:01 举报文档

以下为《实验二独占设备分配与回收》的无排版文字预览,完整格式请下载

下载前请仔细阅读文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。



操作系统

实验二 独占设备的分配和回收



姓  名: 陈某某

学  号: ***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

以上为《实验二独占设备分配与回收》的无排版文字预览,完整格式请下载

下载前请仔细阅读上面文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。

图片预览