操作系统实验五虚拟存储器管理

操作系统实验五虚拟存储器管理
操作系统实验五虚拟存储器管理

操作系统实验

实验五虚拟存储器管理

学号1115102015

姓名方茹

班级11 电子A

华侨大学电子工程系

实验五虚拟存储器管理

实验目的

1、理解虚拟存储器概念。

2、掌握分页式存储管理地址转换盒缺页中断。

实验内容与基本要求

1、模拟分页式存储管理中硬件的地址转换和产生缺页中断。

分页式虚拟存储系统是把作业信息的副本存放在磁盘上,当作业被选中时,可把作业的开始几页先装入主存且启动执行。为此,在为作业建立页表时,应说

明哪些页已在主存,哪些页尚未装入主存。作业执行

时,指令中的逻辑地址指出了参加运算的操作存放的页号和单元号,硬件的地址转

换机构按页号查页表,若该页对应标志为“ 1”,则表示该页

已在主存,这时根据关系式“绝对地址 =块号×块长 +单元号”计算出欲访问的主

存单元地址。如果块长为 2 的幂次,则可把块号作为高地址部分,把单元号作为低

地址部分,两者拼接而成绝对地址。若访问的页对

应标志为“ 0”,则表示该页不在主存,这时硬件发“缺页中断”信号,

有操作系统按该页在磁盘上的位置,把该页信息从磁盘读出装入主存后

再重新执行这条指令。设计一个“地址转换”程序来模拟硬件的地址转

换工作。当访问的页在主存时,则形成绝对地址,但不去模拟指令的执

行,而用输出转换后的地址来代替一条指令的执行。当访问的页不在主

存时,则输出“ * 该页页号”,表示产生了一次缺页中断。

2、用先进先出页面调度算法处理缺页中断。

FIFO 页面调度算法总是淘汰该作业中最先进入主存的那一页,因此可以用一个数组来表示该作业已在主存的页面。假定作业被选中时,

把开始的 m 个页面装入主存,则数组的元素可定为m 个。

实验报告内容

1、分页式存储管理和先进先出页面调度算法原理。

分页式存储管理的基本思想是把内存空间分成大小相等、位置固定

的若干个小分区,每个小分区称为一个存储块,简称块,并依次编号为

0,1,2,3,,, ,n 块,每个存储块的大小由不同的系统决定,一般为

2 的 n 次幂,如 1KB ,2 KB ,4 KB 等,一般不超过 4 KB 。而把用户的逻辑地址空间分成与存储块大小相等的若干页,依次为 0,1,2,3,,, ,m页。当作业提出存储分配请求时,系统首先根据存储块大小把作业分成若干页。每一页可存储在内存的任意一个空白块内。此时,只要建立起程序的逻辑页

和内存的存储块之间的对应关系,借助动态地址重定位技术,原本连续的用户作

业在分散的不连续存储块中,就能够正常投入运行。

先进先出页面调度算法根据页面进入内存的时间先后选择淘汰页

面,先进入内存的页面先淘汰,后进入内存的后淘汰。本算法实现时需

要将页面按进入内存的时间先后组成一个队列,每次调度队首页面予以

淘汰。

程序流程图。

1、地址转换程序流程图

开始

取一条指令

取指令中访问的页号

查页表

Y N

该页标志 =1?

形成绝对地址

输出“ * ”页号表示

发生缺页中断

输出绝对地址

Y

有后续指令?

取下一条指令

N

结束

2、FIFO页面置换算法程序流程图

开始

取一条指令

取指令中访问的页号

查页表

Y N(产生缺页中断)

该页标志 =1 ?

形成绝对地址

Y

是内存指令?

置该页修改标志为 1 N 模拟

硬件

地址输出绝对地址转换

N

有后继指令?

N 当前页是否

被更新?

Y

结束

取下一条指令

Y

将该页更新标志置为

模拟

FIFO

页面调置换出当前页

输出被置换出去的页面

显示被调入的页面

修改页表设置被调入页面的相关属性

程序及其注释

#include

#include

#define SizeOfPage 100

#define SizeOfBlock 128

#define M 4// 主存中放 4 个页面

struct info// 页表信息结构体

{

bool flag;// 页标志, 1 表示该页已在主存,0 表示该页不在主存long block;// 块号

long disk;// 在磁盘上的位置

bool dirty;// 更新标志

}pagelist[SizeOfPage];

long po;// 队列标记

long P[M];// 假设内存中最多允许M 个页面

void init_ex1()

{

memset(pagelist,0,sizeof(pagelist));// 内存空间初始化

/* 分页式虚拟存储系统初始化*/

pagelist[0].flag=1;

pagelist[0].block=5;

pagelist[0].disk=011;

pagelist[1].flag=1;

pagelist[1].block=8;

pagelist[1].disk=012;

pagelist[2].flag=1;

pagelist[2].block=9;

pagelist[2].disk=013;

pagelist[3].flag=1;

pagelist[3].block=1;

pagelist[3].disk=021;

}

void work_ex1()// 模拟分页式存储管理中硬件的地址转换和产生缺页中断过程

{

bool stop=0;

long p,q;// 页号,单元号

char s[128];// 初始定义块长

do

{

printf(" 请输入指令的页号和单元号:\n");

if(scanf("%ld%ld",&p,&q)!=2)

{

scanf("%s",s);

if(strcmp(s,"exit")==0)// 如果输入的为“exit ”那么就退出,进入重选页面

{

stop=1;

}

}

else

{

if(pagelist[p]. flag)// 如果该页标

fla

g

为 1,说明该页已在主存中

{

址,绝对地址

printf(" 绝对

地址

=块号 x 块长(默认

}

else

{

=%ld\n",pagelist[p].block*SizeOfBlo

ck+q);// 128)+单元号

计算出绝对地

printf("*%ld\n" ,p);// 如果该页标

fla

g

为0,说明该页不在主存,则产生了

一次缺页中断

}

}

}while(!stop);

}

void init_ex2()

{

/* 以下部分为先进先出( FIFO)页面调度算法处理缺页中断的初始化,其中也包含了对于当

前的存储器内容的初始化 */

po=0;

P[0]=0;P[1]=1;P[2]=2;P[3]=3;// 对内存中的 4 个页面进行初始化,并且使目前排在第一位

的为 0

memset(pagelist,0,sizeof(pagelist));// 内存空间初始化

pagelist[0].flag=1;

pagelist[0].block=5;

pagelist[0].disk=011;

pagelist[1].flag=1;

pagelist[1].block=8;

pagelist[1].disk=012;

pagelist[2].flag=1;

pagelist[2].block=9;

pagelist[2].disk=013;

pagelist[3].flag=1;

pagelist[3].block=1;

pagelist[3].disk=021;

}

void work_ex2()// 模拟 FIFO 算法的工作过程

{

long p,q,i;

char s[100]; bool stop=0;

do

{

printf(" 请输入指令的页号、单元号,以及是否为内存指令:\n");

if(scanf("%ld%ld",&p,&q)!=2)

{

scanf("%s",s);

if(strcmp(s,"exit")==0)// 如果输入的为“exit ”就退出,进入重选界面

{

stop=1;

}

}

else

{

scanf("%s",s);

if(pagelist[p]. flag)// 如果该页标

fla

g

为1,说明该页已在主存中

{

print f(" 绝对地

=%ld\n",pagelist[p].block*SizeOfBlo

ck+q);//

计算绝对

地址

if(s[0]=='Y'||s[0]=='y')// 内存指令

{

pagelist[p].dirty=1;// 修改标志为 1

}

}

else

{

if(pagelist[P[po]].dirty)// 当前的页面被更新过,需把更新后的内容写回外存

{

pagelist[P[po]].dirty=0; }

pagelist[P[po]].flag=0;// 将 flag 置 0,表明当前页面已被置换出去

printf("out%ld\n",P[po]);// 显示根据FIFO 算法被置换出去的页面

printf("in%ld\n",p);// 显示根据FIFO 算法被调入的页面

pagelist[p].block=pagelist[P[po]].block;// 块号相同

pagelist[p].flag=1;// 将当前页面 flag 置 1,表明已在主存中

P[po]=p;// 保存当前页面所在的位置

po=(po+1)%M;

}

}

}while(!stop);

printf(" 数组 P 的值为 :\n");

for(i=0;i

{

printf("P[%ld]=%ld\n",i,P[i]);

}

}

void select()// 选择哪种方法进行

{

long se;

char s[128];

do

{

printf(" 请选择题号 (1/2):");

if(scanf("%ld",&se)!=1)

{

scanf("%s",&s);

if(strcmp(s,"exit")==0)// 如果输入为exit 则退出整个程序

{

return;

}

}

else

{

if(se==1)// 如果 se=1 说明选择的模拟分页式存储管理中硬件的地址转换和产生缺页中断

{

init_ex1(

);//

初始化

work_ex1()

;//

进行模拟

}

if(se==2 )// 如

se=2 说明选择的

FIFO 算法来实现页面的置换

{

init_ex2(

);//

初始化

work_ex2()

;//

进行模拟

}

}

}while(1);

}

int main()

{

select();//选择题号

return 0;

}

程序运行结果及结论

通过这次虚拟存储器管理的实验,我基本的了解了分页式存储管理和先进先出页面调度算法原理,和操作的方法,还有许多方面不足,有待改进!

段式虚拟存储管理

学号: 课程设计 题目段页式虚拟存储管理 学院计算机科学与技术 专业 班级 姓名 指导教师吴利军 2013 年 1 月16 日

课程设计任务书 学生姓名: 指导教师:吴利军工作单位:计算机科学与技术学院题目: 模拟设计段页式虚拟存储管理中地址转换 初始条件: 1.预备内容:阅读操作系统的内存管理章节内容,理解段页式存储管理的思想及相应的分配主存的过程。 2.实践准备:掌握一种计算机高级语言的使用。 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写 等具体要求) 1.实现段页式存储管理中逻辑地址到物理地址的转换。能够处理以下的情形: ⑴能指定内存的大小,内存块的大小,进程的个数,每个进程的段数及段内 页的个数; ⑵能检查地址的合法性,如果合法进行转换,否则显示地址非法的原因。 2.设计报告内容应说明: ⑴需求分析; ⑵功能设计(数据结构及模块说明); ⑶开发平台及源程序的主要部分; ⑷测试用例,运行结果与运行情况分析; ⑸自我评价与总结: i)你认为你完成的设计哪些地方做得比较好或比较出色; ii)什么地方做得不太好,以后如何改正; iii)从本设计得到的收获(在编写,调试,执行过程中的经验和教训); iv)完成本题是否有其他方法(如果有,简要说明该方法); 时间安排: 设计安排一周:周1、周2:完成程序分析及设计。 周2、周3:完成程序调试及测试。 周4、周5:验收、撰写课程设计报告。 (注意事项:严禁抄袭,一旦发现,一律按0分记) 指导教师签名:年月日 系主任(或责任教师)签名:年月日

一、需求分析: 页式管理基本原理: 各个进程的虚拟空间被划分成若干个长度相等的页。页长的划分和内存与外存之间的数据传输速度及内存大小等有关。一般每个页长大约为1----4K,经过页划分之后,进程的虚拟地址变为页号p与页内地址w所组成。 除了将进程的虚拟空间划分为大小相等的页之外,页式管理还把内存空间也按页的大小划分为片或者页面。这些页面为系统中的任一进程所共享。从而与分区管理不一样,分页管理时,用户进程在内存空间内除了在每个页面内地址连续之外,每个页面之间不再连续。第一是实现了内存中碎片的减少,因为任意碎片都会小于一个页面。第二是实现了由连续存储到非连续存储的这个飞跃,为在内存中局部地、动态地存储那些反复执行或即将执行的程序和数据段打下了基础。 怎样由页式虚拟地址转变为内存页面物理地址?页式管理把页式虚拟地址与内存页面物理地址建立一一对应页表,并用相应的硬件地址变换机构,来解决离散地址变换问题。 静态页面管理: 静态页面管理方法是在作业或进程开始执行之前,把该作业或进程的程序段和数据全部装入内存的各个页面,并通过页表和硬件地址变换机构实现虚拟地址到内存物理地址的地址映射。 1、内存页面的分配与回收 静态分页管理的第一步是为要求内存的作业或进程分配足够的页面。系统依靠存储页面表、请求页面表以及页表来完成内存的分配。 (1)页表 最简单的页表由页号与页面号组成,页表在内存中占有一块固定的存储区。页表的大小有进程或作业的长度决定。 每个进程至少要拥有一个页表。 (2)请求表 用来确定作业或进程的虚拟空间的各页在内存中的实际对应位置。系统必须知道每个作业或进程的页表起始地址和长度,以进行内存的分配和地址变换,另外请求表中还应包括每个作业或进程所要求的页面数。 (3)存储页面 存储页面表也是整个系统一张,存储页面表指出内存各个页面是否已被分配出去,以及未被分配页面总数。存储页面表也有两种构成方法,一种是在内存中划分一块固定区域,每个单元的每个比特代表一个页面,如果该页面已被分配,则对应比特位置置1,否则置0。 另一种方法空闲页面链,不占内存空间。 2、分配算法 3、地址变换 在程序执行过程中,执行的是虚拟空间中的代码,代码中的指令是相对于虚拟空间的,需要到内存的实际空间中寻找对应的要执行的指令。 静态页式管理的缺陷: 虽然解决了分区管理时的碎片问题,但是由于静态页式管理要求进程或作业在执行前全部装入内存,如果可用页面数小于用户要求时,改作业或进程只好等待。而且,作业或进程的大小仍受内存可用空间的限制。

《实用操作系统》实验报告五linux设备管理

《实用操作系统》实验报告 实验报告: 5 实验项目名称:设备管理 班级:学号:姓名: 地点:时间:2013 年11 月13 日 一、实验内容 1、添加硬盘,创建二个主分区、一个扩展分区,二个逻辑分区 注意:ide、scsi 提示:分区、格式化、挂载(fdisk,mkfs,mount) 2、查看常见的设备文件有哪些?(ls /dev ) 常见的设备文件:/dev/hd* IDE接口的硬盘(IDE接口的设备) /dev/sd* SCSI/USB设备/dev/cua* 串口设备/dev/lp* 并口设备/dev/tty* 终端设备/dev/consol 控制台设备/dev/eth* 以太网设备/dev/cdrom IDE光驱/dev/fd* 软驱/dev/audio 音频设备/dev/scd SCSI的光驱/dev/ppp PPP设备/dev/isdn* ISDN设备 3、挂载光盘,查看光盘内容创建挂载点要求:以本人姓名缩写为目录mkdir / 目录/设备挂载mount 空格源设备空格挂载点 4、显示管理System-config-display 5、声卡管理System-config-soundcard 6、打印机管理System-config-printer 7、网卡管理System-config-network 二、实验步骤及结果 1.添加硬盘,创建分区; 在启动虚拟机前,在工具栏中点击“虚拟机”,找到“设置”选项,在左面的硬件中找到硬盘,进行硬盘设备添加,这里有IDE和SCSI两种硬盘类型可供选择添加。完成硬盘添加后即可启动虚拟机进入linux系统。在这我添加了容量相同的硬盘设备类型各一;

四川大学 操作系统上机实验 实验五 Windows虚拟存储器管理

实验报告 实验名称:Windows虚拟存储器管理 实验时间:2013年5月27日 实验人员:____郑笑凡___(姓名)__1143041243__(学号)____2011____(年级) 实验目的:1、了解Windows 2000/XP的内存管理机制,掌握页式虚拟存储技术。 2、理解内存分配原理,特别是以页面为单位的虚拟内存分配方法。 3、学会使用Windows 2000/XP下内存管理的基本API函数 实验环境:windows xp 实验步骤: 1、下载virtumem.cpp; 2、建立工程,将virtumen.cpp加入; 3、编译工程,观察结果,确信六种状态都出现至少一次,必要时可改程 序,方便观察结果; 4、看懂程序,按要求另写一段小程序; 5、编译,执行,观察结果。 6,总结。 实验陈述: 1、基础知识: pagefile.sys文件的位置在:__安装的系统盘根目录下____________________________________此文件的作用:____实现物理内存的扩展__________________________________________________ 改变此文件大小的方法:右击”我的电脑”,依次选择”属性”—“高级”—“性能选项”— “更改”_______________________________________ 虚拟地址空间中的页面分为:提交页面,保留页面,空闲页面 页面的操作可以分为:保留、提交、回收、释放、加锁 2、编程准备. 页面属性是在结构体MEMORY_BASIC_INFORMATION_的字段AllocationProtect 和字段中Protect体现出来的。 简述VirtualFree,VirtualPtotect,VirtualLock,VirtualUnlock,VirtualQuery的作用:_ VirtualFree:__释放虚存___________________________________________________ VirtualPtotect:_保留虚存_________________________________________________ VirtualLock:___加锁虚存_________________________________________________ VirtualUnlock:_解锁虚存________________________________________________ VirtualQuery:____查询虚存_______________________________________________ 3、编程 1)将virtumem.cpp加入工程,编译,执行。 是否能编译成功?是 请描述运行结果:

实验室设备管理系统的设计与实现开题报告

辽宁工程技术大学 本科毕业设计(论文)开题报告 题目大学生实验室设备管理系统设计与实现指导教师孙宁 院(系、部) 软件学院 专业班级计HR 07-6 学号0720010602 姓名韩冰 日期2011年3月28日教务处印制

一、选题的目的、意义和研究现状 (一)选题的目的和意义 在学校实验室的设备管理工作中,设备的编排是一项十分复杂、棘手的工作。在编排过程中,由于数量多容易出错。利用计算机辅助进行设备编排工作,既提高了编排的科学性,又可大大减轻管理人员的工作强度,提高工作效率,从而教学设备管理现代化迈上了一个新台阶。又因为现在各个高校内教学设备众多但自动管理水平相比过低,很多高校管理设备都采用在设备购进以后将设备的基本情况和相关信息登记存档。存档以后档案基本就没人记录与维护,至于以后设备的变迁或损坏都不会记录在设备档案中,即不能体现设备的即时状态。而有些即使有设备管理系统的单位,就算是能把设备的即时信息体现在设备档案上,但设备的缺陷处理及设备缺陷等功能没有实施,设备检修的备品备件情况和检修成本核算没有实现,整个学校教学设备管理信息化仍处于较低水平。将管理任务分成小块,落实到个人并能随时查询设备当前情况和历史情况,对设备的可靠性分析有直接作用,使管理人员从手工计算、统计工作中解脱出来。 (二)选题的研究现状 实验室设备管理系统是一个学校教学系统中不可缺少的部分,它的内容对于实验室的管理者来说都至关重要,所以设备管理系统应该能够为师生提供充足的信息和快捷的查询手段。该系统还可以帮助学校实验室系统进行有效的设备管理,对设备的维护,教学质量的估计有很大的帮助,提高学生对的可持续发展能力与市场竞争力。 目前国内学校教学设备自动化管理水平不是很高。大多数学校设备管理办法是设备采购进来以后,将设备的基本情况和相关信息登记存档,然后将档案存档。以后档案基本就没人维护,如设备位置出库、检修情况、设备当前运行状态等信息根本不会体现在设备台帐上,即设备跟踪信息不能及时体现在设备档案上。某些使用设备管理系统学校,对设备的跟踪信息即使能体现在设备档案上,但设备的缺陷处理及设备缺陷等功能没有实施,设备检修的备品备件情况和检修成本核算没有实现,整个学校设备管理信息化仍处于较低水平。本信息管理系统合理的借鉴国际领先的设备管理思想并结合国内学校设备管理现状,可以完全能满足国内学校设备管理的需要。并通过对各行业设备管理情况的长期研究探索,以灵活、通用为主要设计思想,可提高学校的办公效率和设备可靠性,减少工作人员的劳动强度,减少办公耗材,提高学校的现代化管理水平。 二、研究方案及预期结果 (一)研究内容 作为计算机应用的一部分,使用计算机对实验室设备信息进行管理,有着人工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、维护性能强、寿命长、学生使用便捷等。这些优点能够极大地提高教学质量与教学效率,也是学校规模化管理、正规化管理,提高学生实验效率的重要条件。 实验室设备管理系统主要任务是对设备进行综合管理,做到全面规划、合理选购、正确维护、科学检修、适时更新,使设备达到最佳状态,充分发挥设备的效能和利用效率。提高教育质量,加大管理人员对实验室设备的管理力度。 (1)设备出/入库管理 功能描述:有操作员核对出/入库设备的基本信息,包括配件的基本属性。核对无误后,将要出/入库单信息提交信息库。 (2)计划管理

操作系统-页式虚拟存储管理程序模拟

操作系统-页式虚拟存储管理程序模拟

FIFO页面置换算法 1在分配内存页面数(AP)小于进程页面数(PP)时,当然是最先运行的AP个页面放入内存。 2这时有需要处理新的页面,则将原来内存中的AP个页面最先进入的调出(是以称为FIFO),然后将新页面放入。 3以后如果再有新页面需要调入,则都按2的规则进行。 算法特点:所使用的内存页面构成一个队列。LRU页面置换算法 1当分配内存页面数(AP)小于进程页面数(PP)时,当然是把最先执行的AP个页面放入内存。2当需要调页面进入内存,而当前分配的内存页面全部不空闲时,选择将其中最长时间没有用到的那个页面调出,以空出内存来放置新调入的页面(称为LRU)。 算法特点:每个页面都有属性来表示有多长时间未被CPU使用的信息。 结果分析

#include #include using namespace std; const int MaxNum=320;//指令数 const int M=5;//内存容量 int PageOrder[MaxNum];//页面请求 int Simulate[MaxNum][M];//页面访问过程 int PageCount[M],LackNum;//PageCount用来记录LRU算法中最久未使用时间,LackNum记录缺页数 float PageRate;//命中率 int PageCount1[32]; bool IsExit(int i)//FIFO算法中判断新的页面请求是否在内存中 { bool f=false; for(int j=0;j

操作系统实验六_设备管理

操作系统课程报告实验六设备管理 学号 姓名 班级 教师 华侨大学电子工程系

实验目的 1、理解设备管理的概念和任务。 2、掌握独占设备的分配、回收等主要算法的原理并编程实现。 实验内容与基本要求 1、在Windows系统中,编写程序实现对独占设备的分配和回收的模拟, 该程序中包括:建立设备类表和设备表、分配设备和回收设备的函数。实验报告内容 1、独占设备的分配、回收等主要算法的原理。 为了提高操作系统的可适应性和可扩展性,现代操作系统中都毫无例外地实现了设备独立性,又叫做设备无关性。设备独立性的含义是:应用程序独立于具体使用的物理设备。为了实现独占设备的分配,系统设置数据表格的方式也不相同,在实验中只要设计合理即可。这里仅仅是一种方案,采用设备类表和设备表。 (1)数据结构 操作系统设置“设备分配表”,用来记录计算机系统所配置的独占设备类型、台数以及分配情况。设备分配表可由“设备类表”和“设备表”两部分组成,如下图: (2)设备分配 当进程申请某类设备时,系统先查“设备类表”如果该类设备的现存台数可以满足申请要求,则从该类设备的“设备表”始址开始依次查该类设备在设备表中的登记项,找出“未分配”的设备分配给进程。分配后要修改设备类表中的现存台数,把分配给进程的设备标志改为“已分配”且填上占用设备的进程名。然后,

把设备的绝对号与相对号的对应关系通知用户,以便用户在分配到的设备上装上存储介质。 (3)设备回收 当进程执行结束撤离时应归还所占设备,系统根据进程名查设备表,找出进程占用设备的登记栏,把标志修改为“未分配”,清除进程名。同时把回收的设备台数加到设备类表中的现存台数中。

存储管理实验报告

实验三、存储管理 一、实验目的: ? 一个好的计算机系统不仅要有一个足够容量的、存取速度高的、稳定可靠的主存储器,而且要能合理地分配和使用这些存储空间。当用户提出申请存储器空间时,存储管理必须根据申请者的要求,按一定的策略分析主存空间的使用情况,找出足够的空闲区域分配给申请者。当作业撤离或主动归还主存资源时,则存储管理要收回作业占用的主存空间或归还部分主存空间。主存的分配和回收的实现虽与主存储器的管理方式有关的,通过本实验理解在不同的存储管理方式下应怎样实现主存空间的分配和回收。 在计算机系统中,为了提高主存利用率,往往把辅助存储器(如磁盘)作为主存储器的扩充,使多道运行的作业的全部逻辑地址空间总和可以超出主存的绝对地址空间。用这种办法扩充的主存储器称为虚拟存储器。通过本实验理解在分页式存储管理中怎样实现虚拟存储器。 在本实验中,通过编写和调试存储管理的模拟程序以加深对存储管理方案的理解。熟悉虚存管理的各种页面淘汰算法通过编写和调试地址转换过程的模拟程序以加强对地址转换过程的了解。 二、实验题目: 设计一个可变式分区分配的存储管理方案。并模拟实现分区的分配和回收过程。 对分区的管理法可以是下面三种算法之一:(任选一种算法实现) 首次适应算法 循环首次适应算法 最佳适应算法 三.实验源程序文件名:cunchuguanli.c

执行文件名:cunchuguanli.exe 四、实验分析: 1)本实验采用可变分区管理,使用首次适应算法实现主存的分配和回收 1、可变分区管理是指在处理作业过程中建立分区,使分区大小正好适合作业的需求,并 且分区个数是可以调整的。当要装入一个作业时,根据作业需要的主存量查看是否有足够的空闲空间,若有,则按需要量分割一个分区分配给该作业;若无,则作业不能装入,作业等待。随着作业的装入、完成,主存空间被分成许多大大小小的分区,有的分区被作业占用,而有的分区是空闲的。 为了说明那些分区是空闲的,可以用来装入新作业,必须有一张空闲说明表 ? 空闲区说明表格式如下:? 第一栏 第二栏 其中,起址——指出一个空闲区的主存起始地址,长度指出空闲区的大小。 长度——指出从起始地址开始的一个连续空闲的长度。 状态——有两种状态,一种是“未分配”状态,指出对应的由起址指出的某个长度的区域是空闲区;另一种是“空表目”状态,表示表中对应的登记项目是空白(无效),可用来登记新的空闲区(例如,作业完成后,它所占的区域就成了空闲区,应找一个“空表目”栏登记归还区的起址和长度且修改状态)。由于分区的个数不定,所以空闲区说明表中应有适量的状态为“空表目”的登记栏目,否则造成表格“溢出”无法登记。 2、当有一个新作业要求装入主存时,必须查空闲区说明表,从中找出一个足够大的空闲区。 有时找到的空闲区可能大于作业需要量,这时应把原来的空闲区变成两部分:一部分分

实验室设备管理系统

实验室设备管理系统 第一章系统概述 1.1系统开发背景 一个现代化的实验室设备系统在正常运行中总是面对大量的使用者,仪器以及两者相互作用产生的借用仪器。人工管理既浪费人力物力财力,又容易导致各种错误的发生。为了方便实验室管理,得开发一个更好更高效的软件来管理。实验室管理系统,是为了实现实验室管理而设计的,它也是现在各个部门的一个重要环节。 实验室是所有高校、研究机构必不可少的基本构成单位。特别是高校,实验室的设备管理需要一套稳定、高效的管理办法。就我校情况看来,目前我校的实验室设备管理还处于较原始的手工阶段,缺少一套实用可靠的管理系统软件。随着电气化教学和无纸化办公的一步步完善,利用计算机管理系统管理我校的实验室设备势在必行。因此,本项目拟开发一个实验室设备管理系统。 本系统将建立一个实验室设备管理平台,记录实验室所有的实验设备,并及时反应设备的运转状况,使用情况,以供本科生和研究生及其他试验人员合理的安排实验,达到工作效率的最优。 1.2项目设计基本原理 软件工程是一门从技术和组织管理两个角度研究如何用系统化、规范化和数量化等工程原理也方法去进行软件开发和维护的学科。软件工程学研究的范围非常广泛,包括技术方法、工具和管理等许多方面。软件生命周期的各个阶段可分为:采用软件工程的技术方法开发本系统,通过以上八个阶段组成软件的生存期,它是指从提出开发要求开始直到该软件报废为止的整个时期。分阶段进行,就把规模庞大、结构复杂和管理复杂的软件变的容易控制和管理。基于此思想,本系统开发实际可行的软件,方便毕业时信息的管理。

1.3数据库系统设计及范式分析 数据库设计主要是进行数据库的逻辑设计,即将数据按一定的分类、分组系统和逻辑层次组织起来,是面向用户的。数据库设计时需要综合企业各个部门的存档数据和数据需求,分析各个数据之间的关系,按照DBMS提供的功能和描述工具,设计出规模适当、正确反映数据关系、数据冗余少、存取效率高、能满足多种查询要求的数据模型。 数据库设计的步骤是; 1数据库结构定义:目前的数据库管理系统(DBMS)有的是支持联机事务处理CLTP (负责对事务数据进行采集、处理、存储)的操作型DBMS,有的可支持数据仓库、有的联机分析处理CLAP(指为支持决策的制度对数据的一种加工操作)功能的大型DBMS,有的数据库是关系型的,有的可支持面向对象数据库。针对选择的DBMS,进行数据库结构定义。 2数据表定义:数据表定义指定义数据库中数据表的结构,数据表的逻辑结构包括:属性名称、类型、表示形式、缺省值、效验规则、是否关键字、可否为空等。关系型数据库要尽量按关系规范化要求进行数据库设计,但为使效率高,规范化程序应根据应用环境和条件来决定。数据表设计不仅要满足数据存储的要求,还要增加一些如反映有关信息、操作责任、中间数据的字段或临时数据表。 3存储设备和存储空间组织:确定数据的存放地点、存储路径、存储设备等,备份方案,对多版本如何保证一致性和数据的完整性。 4数据使用权限设置:针对用户的不同使用要求,确定数据的用户使用权限,确保数据安全。 5数据字典设计:用数据字典描述数据库的设计,便于维护和修改。

段页式虚拟存储管理

课程设计 题目段页式虚拟存储管理 学院计算机科学与技术 专业 班级 姓名 指导教师吴利军 2013年1月16日 课程设计任务书 学生姓名:

指导教师:吴利军工作单位:计算机科学与技术学院题目: 模拟设计段页式虚拟存储管理中地址转换 初始条件: 1.预备内容:阅读操作系统的内存管理章节内容,理解段页式存储管理的思想及相应的分配主存的过程。 2.实践准备:掌握一种计算机高级语言的使用。 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写 等具体要求) 1.实现段页式存储管理中逻辑地址到物理地址的转换。能够处理以下的情形: ⑴能指定内存的大小,内存块的大小,进程的个数,每个进程的段数及段内页 的个数; ⑵能检查地址的合法性,如果合法进行转换,否则显示地址非法的原因。 2.设计报告内容应说明: ⑴需求分析; ⑵功能设计(数据结构及模块说明); ⑶开发平台及源程序的主要部分; ⑷测试用例,运行结果与运行情况分析; ⑸自我评价与总结: i)你认为你完成的设计哪些地方做得比较好或比较出色; ii)什么地方做得不太好,以后如何改正; iii)从本设计得到的收获(在编写,调试,执行过程中的经验和教训); iv)完成本题是否有其他方法(如果有,简要说明该方法); 时间安排: 设计安排一周:周1、周2:完成程序分析及设计。 周2、周3:完成程序调试及测试。 周4、周5:验收、撰写课程设计报告。 (注意事项:严禁抄袭,一旦发现,一律按0分记) 指导教师签名:年月日 系主任(或责任教师)签名:年月日 一、需求分析: 页式管理基本原理:

各个进程的虚拟空间被划分成若干个长度相等的页。页长的划分和内存与外存之间的数据传输速度及内存大小等有关。一般每个页长大约为1----4K,经过页划分之后,进程的虚拟地址变为页号p与页内地址w所组成。 除了将进程的虚拟空间划分为大小相等的页之外,页式管理还把内存空间也按页的大小划分为片或者页面。这些页面为系统中的任一进程所共享。从而与分区管理不一样,分页管理时,用户进程在内存空间内除了在每个页面内地址连续之外,每个页面之间不再连续。第一是实现了内存中碎片的减少,因为任意碎片都会小于一个页面。第二是实现了由连续存储到非连续存储的这个飞跃,为在内存中局部地、动态地存储那些反复执行或即将执行的程序和数据段打下了基础。 怎样由页式虚拟地址转变为内存页面物理地址页式管理把页式虚拟地址与内存页面物理地址建立一一对应页表,并用相应的硬件地址变换机构,来解决离散地址变换问题。 静态页面管理: 静态页面管理方法是在作业或进程开始执行之前,把该作业或进程的程序段和数据全部装入内存的各个页面,并通过页表和硬件地址变换机构实现虚拟地址到内存物理地址的地址映射。 1、内存页面的分配与回收 静态分页管理的第一步是为要求内存的作业或进程分配足够的页面。系统依靠存储页面表、请求页面表以及页表来完成内存的分配。 (1)页表 最简单的页表由页号与页面号组成,页表在内存中占有一块固定的存储区。页表的大小有进程或作业的长度决定。 每个进程至少要拥有一个页表。 (2)请求表 用来确定作业或进程的虚拟空间的各页在内存中的实际对应位置。系统必须知道每个作业或进程的页表起始地址和长度,以进行内存的分配和地址变换,另外请求表中还应包括每个作业或进程所要求的页面数。 (3)存储页面 存储页面表也是整个系统一张,存储页面表指出内存各个页面是否已被分配出去,以及未被分配页面总数。存储页面表也有两种构成方法,一种是在内存中划分一块固定区域,每个单元的每个比特代表一个页面,如果该页面已被分配,则对应比特位置置1,否则置0。 另一种方法空闲页面链,不占内存空间。 2、分配算法 3、地址变换 在程序执行过程中,执行的是虚拟空间中的代码,代码中的指令是相对于虚拟空间的,需要到内存的实际空间中寻找对应的要执行的指令。 静态页式管理的缺陷: 虽然解决了分区管理时的碎片问题,但是由于静态页式管理要求进程或作业在执行前全部装入内存,如果可用页面数小于用户要求时,改作业或进程只好等待。而且,作业或进程的大小仍受内存可用空间的限制。 动态页式管理: 动态页式管理是在静态页式管理的基础上发展起来的。它分为请求页式管理和与调入页式管理(调入方式上)。

操作系统实验七设备管理实验(广西师大)

操作系统课程实验 年级2012级 专业计算机科学与技术(应用型)姓名 学号 指导教师黄玲 日期2013年12月26日

实验七、设备管理实验 一、关键问题 1、实验目的 观察Linux下U盘的访问;理解设备虚拟分配技术。 2、实验环境 Ubuntu8.0或者以上,Eclipse集成开发环境 3、实验内容 3.1观察Linux下的U盘访问 从键盘获得符号串,写入磁盘文件,然后读取该文件。 3.2设备管理模拟实验要求:设计一个SPOOLing输入模拟系统。提示:输入井设计成结构体数组,每块存放一个输入文件内容。三个用户进程与一个后台输入进程并发执行,后台输入进程接受用户键盘输入的文件到输入井,每个用户进程从输入井获取输入数据。 老师所给的例子为为利用内存SPOOLing输入模拟系统,而问题的关键就是如何参考spoolout()设计spoolin()以及修改用户进程usepro()和输入#进程spoolsever()。 二、设计修改思路 spoolout()进程:键入要输入的用户id,如果用户输入文件未完成则键入文件内容,将文件内容mybuf发到输入井。 spoolsever()输入#进程:登记输入请求块,将缓冲区mybuf的数据送入输入井well。若成功送入,返回TRUE,否则返回FALSE。 usepro()用户进程:遍历输入请求块如找到该用户的输入请求,将输入请求块的数据送入用户缓冲区userbuf,并在屏幕输出userbuf。 三、实现修改的关键代码 #include #define WELLSIZE500//输入井的大小 #define FALSE0 #define TRUE1 //进程控制块 struct { int id;//进程标识数 char status;//进程状态,'e'为执行态,'c'为完成态。 int bufflag;//用户缓冲区userbuf空闲标志:FALSE为无数据,TRUE为有数据。 int filec;//本进程需要输出的文件数(用户指定) }pcb[4];//pcb[0]为SPOOLing进程,pcb[1]、pcb[2]、pcb[3]为3个用户进程

南京中医药大学虚拟存储器管理实验

实验三虚拟存储管理 实验性质:验证 建议学时:3 实验目的: 存储管理的主要功能之一是合理的分配空间。请求页式管理是一种常用的虚拟存储管理技术。本实验的目的是请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换方法。 预习内容: 阅读教材《计算机操作系统》第四章,掌握存储器管理相关概念和原理。 实验内容: (1)通过随机数产生一个指令序列,共320条指令。指令的地址按下述原则生成: ①50%的指令是顺序执行的; ②25%的指令是均匀分布在前地址部分; ③25%的指令是均匀分布在后地址部分。 具体的实施方法是: ①在[0,319]的指令地址之间随机选取一起点m; ②顺序执行一条指令,即执行地址为m+1的指令; ③在前地址[0,m+1]中随机选取一条指令并执行,该指令的地址为m’; ④顺序执行一条指令,其地址为m’+1; ⑤在后地址[m’+2,319]中随机选取一条指令并执行; ⑥重复上述步骤,直至执行320次指令。 (2)将指令序列变换成页地址流。 设:①页面大小为1K; ②用户内存容量为10块到32块; ③用户虚存容量为32K; 在用户虚存中,按每页存放10条指令排列虚存地址,即320条指令在虚存中的存放方式为: 第0条~第9条指令为第0页(对应的虚存地址为[0,9]); 第10条~第19条指令为第1页(对应的虚存地址为[10,19]); …… 第310条~第319条指令为第31页(对应的虚存地址为[310,319]); 按以上方式,用户指令可组成32页。 (3)计算并输出下述各种算法在不同的内存容量下的缺页率。 ①先进先出的算法(FIFO); ②最近最少使用算法(LRU); ③最佳淘汰法(OPT):先淘汰最不常用的页地址; ④最少访问页面算法(LFU)。 缺页率=(页面失效次数)/(页地址流长度)= 缺页中断次数/ 320 在本实验中,页地址流的长度为320,页面失效次数为每次访问相应指令时,该指令所对应的页不在内存的次数。

操作系统实验 设备管理汇总

操作系统实验 名称实验六设备管理 姓名 专业 学号 日期 2015年12月01日指导老师

一、实验目的 1.理解设备管理的概念和任务。 2.掌握独占设备的分配、回收等主要算法的原理并编程实现。 二、实验内容与要求 1.在Windows系统中,编写程序实现对独占设备的分配和回收的模拟,该程序中包括:建立设备类表和设备表、分配设备和回收设备的函数。 三、实验原理 1.独占设备的分配、回收等主要算法的原理。 为了提高操作系统的可适应性和可扩展性,现代操作系统中都毫无例外地实现了设备独立性,又叫做设备无关性。设备独立性的含义是:应用程序独立于具体使用的物理设备。 为了实现独占设备的分配,系统设置数据表格的方式也不相同,在实验中只要设计合理即可。这里仅仅是一种方案,采用设备类表和设备表。 (1)数据结构 操作系统设置“设备分配表”,用来记录计算机系统所配置的独占设备类型、台数以及分配情况。设备分配表可由“设备类表”和“设备表”两部分组成,如下 设备类表设备表 控制器表通道表 设备队列队首指针。凡因请求本设备而未得到满足的进程,其PCB都应按照一定的策略排成一个队列,称该队列为设备请求队列或简称设备队列。其队首指针指向队首PCB。在有的系统中还设置了队尾指针。 设备状态。当设备自身正处于使用状态时,应将设备的忙/闲标志置“1”。若与该设备相连接的控制器或通道正忙,也不能启动该设备,此时则应将设备的等待标志置“1”。

与设备连接的控制器表指针。该指针指向该设备所连接的控制器的控制表。在设备到主机之间具有多条通路的情况下,一个设备将与多个控制器相连接。此时,在DCT中还应设置多个控制器表指针。 (2)设备分配 1)当进程申请某类设备时,系统先查“设备类表”。 2)如果该类设备的现存台数可以满足申请要求,则从该类设备的“设备表”始址开始依次查该类设备在设备表中的登记项,找出“未分配”的设备分配给进程。 3)分配后要修改设备类表中的现存台数,把分配给进程的设备标志改为“已分配”且填上占用设备的进程名。 4)然后,把设备的绝对号与相对号的对应关系通知用户,以便用户在分配到的设备上装上存储介质。 (3)设备回收 当进程执行结束撤离时应归还所占设备,系统根据进程名查设备表,找出进程占用设备的登记栏,把标志修改为“未分配”,清除进程名。同时把回收的设备台数加到设备类表中的现存台数中。 设备分配程序的改进 增加设备的独立性:为了获得设备的独立性,进程应使用逻辑设备名I/O。这样,系统首先从SDT中找出第一个该类设备的DCT。若该设备忙,又查找第二个该类设备的DCT,仅当所有该类设备都忙时,才把进程挂在该类设备的等待队列上,而只要有一个该类设备可用,系统便进一歩计算分配该设备的安全性。 四、程序流程图

操作系统实验五虚拟存储器管理

操作系统实验 实验五虚拟存储器管理 学号1115102015 姓名方茹 班级11 电子A 华侨大学电子工程系

实验五虚拟存储器管理 实验目的 1、理解虚拟存储器概念。 2、掌握分页式存储管理地址转换盒缺页中断。 实验内容与基本要求 1、模拟分页式存储管理中硬件的地址转换和产生缺页中断。 分页式虚拟存储系统是把作业信息的副本存放在磁盘上,当作业被选中时,可把作业的开始几页先装入主存且启动执行。为此,在为作业建立页表时,应说 明哪些页已在主存,哪些页尚未装入主存。作业执行 时,指令中的逻辑地址指出了参加运算的操作存放的页号和单元号,硬件的地址转 换机构按页号查页表,若该页对应标志为“ 1”,则表示该页 已在主存,这时根据关系式“绝对地址 =块号×块长 +单元号”计算出欲访问的主 存单元地址。如果块长为 2 的幂次,则可把块号作为高地址部分,把单元号作为低 地址部分,两者拼接而成绝对地址。若访问的页对 应标志为“ 0”,则表示该页不在主存,这时硬件发“缺页中断”信号, 有操作系统按该页在磁盘上的位置,把该页信息从磁盘读出装入主存后 再重新执行这条指令。设计一个“地址转换”程序来模拟硬件的地址转 换工作。当访问的页在主存时,则形成绝对地址,但不去模拟指令的执 行,而用输出转换后的地址来代替一条指令的执行。当访问的页不在主 存时,则输出“ * 该页页号”,表示产生了一次缺页中断。 2、用先进先出页面调度算法处理缺页中断。 FIFO 页面调度算法总是淘汰该作业中最先进入主存的那一页,因此可以用一个数组来表示该作业已在主存的页面。假定作业被选中时, 把开始的 m 个页面装入主存,则数组的元素可定为m 个。 实验报告内容 1、分页式存储管理和先进先出页面调度算法原理。 分页式存储管理的基本思想是把内存空间分成大小相等、位置固定

实验室设备管理系统

实验室设备管理系 统 1

实验室设备管理系统 实验室设备管理系统 2

一、需求分析 ........................................................ 错误!未定义书签。 二、概要设计 (5) 三、详细设计 (13) 四、调试分析 (37) 五、用户手册 (37) 六、附录 (38) 一、需求分析 3

1.1需求背景 实验室设备管理系统是为了方便学校对实验室以及实验室里的设备进行管理而设计一款系统,它能在科学技术飞速发展的同时,使得我们的实验室紧跟时代得潮流,与科学技术紧接,更加的方便于大家的应用,更好得方便了老师合和学生们。 故提高学校实验室设备管理水平,更好的也更大的发挥了实验室仪器设备的功能,更加好的完善了学科的教学体系,提高了教学质量;与此同时也探索了新的实验方法和手段,完善完备了学科实验教材,使得实验室设备成为相对独立得教学实体。 1.2课设要求 a、能够对设备类型(2级)进行管理 b、.能够对设备名称、数量、属性进行管理 c、部分设备可能会由多个部件构成,能够对设备部件进行管理(*) d、能够对实验室进行管理 e、能够对设备进行借还管理 1.3功能需求 (1)实验室设备管理系统的用户分为:管理员,老师,学生。不同身份之间的用户具有不同的使用特权; 4

(2)管理员:管理员能够对设备类型(2级)、设备名称、数量、属性、设备部件、实验室、设备的行借还进行管理,是三个用户中权利最大的用户,对其管理的实验室及设备具有增、删、改的大权;(3)老师:老师能够查看实验室以及其的设备,具有实验室设备的借还权利; (4)学生:学生能够查看实验室以及其的设备,具有实验室设备的借还权利; 1.3.1 管理员功能的详述 管理员经过登录后进入管理员的主页面,主页面显示管理员具备的三大管理权利:设备管理、实验室管理、借还管理。 a .设备管理分为物理设备管理、化学设备管理和软件设备管理,每个不同类型设备中又具有不同类型的设备,例如化学设备,化学设备又分为物理化学设备、分析化学设备,二级设备里具有不同的仪器,不同的仪器中有不同的设备部件,管理员能够进行增、删、改操作 5

实验10 操作系统设备管理

实验10 操作系统设备管理 一、按课本第139页【实例分析4-7】内容熟悉设备管理器界面。(若课本没带,打开我的电脑-右键-管理-设备管理-查看相应设备。)记录你使用的电脑的处理器、磁盘存储器等的型号分别是什么。二、学习如何在Microsoft Windows XP 中如何使用设备管理器管 理设备。 使用设备管理器管理设备 设备管理器提供一个图形视图,可显示计算机上安装的硬件以及与硬件关联的设备驱动程序和资源。在设备管理器上,可以集中更改配置硬件的方式以及更改硬件与计算机微处理器交互的方式。 使用设备管理器管理设备及其驱动程序需要拥有下列权限,系统管理员被授予了所有这些权限:?加载/卸载驱动程序权限。 ?向system32\drivers 目录复制文件所需的权限。 ?向注册表写入设置所需的权限。 设备管理器具有下列功能: ?确定计算机上的硬件是否工作正常。 ?更改硬件配置设置。 ?标识为每个设备加载的设备驱动程序,并获取每个设备驱动程序的有关信息。 ?更改设备的高级设置和属性。 ?安装更新的设备驱动程序。 ?禁用、启用和卸载设备。 ?重新安装驱动程序的前一版本。 ?找出设备冲突并手动配置资源设置。 ?打印计算机上所安装设备的概要信息。 通常,设备管理器用于检查计算机硬件的状态以及更新计算机上的设备驱动程序。如果您是高级用户并且通晓计算机硬件知识,则可以使用设备管理器的诊断功能来消除设备冲突和更改资源设置。 要访问设备管理器,请使用下列任一方法: ?单击开始,单击运行,然后键入devmgmt.msc。 ?右键单击我的电脑,单击管理,然后单击设备管理器。 ?右键单击我的电脑,单击属性,单击硬件选项卡,然后单击设备管理器。

OS实验指导四——虚拟存储器管理

OS实验指导四——虚拟存储器管理

————————————————————————————————作者:————————————————————————————————日期: 2

《操作系统》实验指导四 开课实验室:A207、A209 2015/11/23 、2015/11/24 实验类型设计 实验项目(四)虚拟存储器管理实验 实验学时 4 一、实验目的 设计一个请求页式存储管理方案,并编写模拟程序实现。 二、设备与环境 1. 硬件设备:PC机一台 2. 软件环境:安装Windows操作系统或者Linux操作系统,并安装相关的程序开发 环境,如C \C++\Java 等编程语言环境。 三、实验要求 1) 上机前认真复习页面置换算法,熟悉FIFO算法和LRU页面分配和置换算法的过程; 2) 上机时独立编程、调试程序; 3) 根据具体实验要求,完成好实验报告(包括实验的目的、内容、要求、源程序、实例运行 结果截图)。 四、实验内容 1、问题描述: 设计程序模拟FIFO和LRU页面置换算法的工作过程。假设内存中分配给每个进程的最小物理块数为m,在进程运行过程中要访问的页面个数为n,页面访问序列为P1, … ,Pn,分别利用不同的页面置换算法调度进程的页面访问序列,给出页面访问序列的置换过程,并计算每种算法缺页次数和缺页率。 2、程序具体要求如下: 编写程序用来模拟虚拟页式存储管理中的页面置换 要求: 1)快表页面固定为4块 2)从键盘输入N个页面号 3)输出每次物理块中的页面号和缺页次数,缺页率 4)实现算法选择

3、程序流程图 3、源程序参考: (1)FIFO 算法部分 #include "stdio.h" #define n 12 #define m 4 void main() { int ym[n],i,j,q,mem[m]={0},table[m][n]; char flag,f[n]; printf("请输入页面访问序列\n "); for(i =0;i

操作系统实验六设备管理

操作系统课程报告 实验六设备管理 学号 姓名 班级 教师 华侨大学电子工程系

实验目的 1、理解设备管理的概念和任务。 2、掌握独占设备的分配、回收等主要算法的原理并编程实现。 实验内容与基本要求 1、在Windows系统中,编写程序实现对独占设备的分配和回收的模拟,该程序中包括: 建立设备类表和设备表、分配设备和回收设备的函数。 实验报告内容 1、独占设备的分配、回收等主要算法的原理。 为了提高操作系统的可适应性和可扩展性,现代操作系统中都毫无例外地实现了设备独立性,又叫做设备无关性。设备独立性的含义是:应用程序独立于具体使用的物理设备。为了实现独占设备的分配,系统设置数据表格的方式也不相同,在实验中只要设计合理即可。这里仅仅是一种方案,采用设备类表和设备表。 (1)数据结构 操作系统设置“设备分配表”,用来记录计算机系统所配置的独占设备类型、台数以及分配情况。设备分配表可由“设备类表”和“设备表”两部分组成,如下图:(2)设备分配 当进程申请某类设备时,系统先查“设备类表”如果该类设备的现存台数可以满足申请要求,则从该类设备的“设备表”始址开始依次查该类设备在设备表中的登记项,找出“未

分配”的设备分配给进程。分配后要修改设备类表中的现存台数,把分配给进程的设备标志改为“已分配”且填上占用设备的进程名。然后,把设备的绝对号与相对号的对应关系通知用户,以便用户在分配到的设备上装上存储介质。 (3)设备回收 当进程执行结束撤离时应归还所占设备,系统根据进程名查设备表,找出进程占用设备的登记栏,把标志修改为“未分配”,清除进程名。同时把回收的设备台数加到设备类表中的现存台数中。 2、程序流程图。 主程序流程图: 设备分配: 设备回收: 3、程序及注释。 #include #include #include #define false 0 #define true 1

相关文档
最新文档