通常,这种试探性算法采用递归的方法是很合适的,程序也是很简洁的。 代码片段:
if( AvailResource[0] >= RequestMatrix[k][0] && AvailResource[1] >= RequestMatrix[k][1] && AvailResource[2] >= RequestMatrix[k][2]
for(int i=0;i<4;i++)
int SearchSecurity(int level) //递归函数 {
if(level == 4){ } else{ }
……
SearchSecurity(level+1); // 有条件递归调用自己
……
AvailResource[i] -= AllocMatrix[k][i];
// 恢复资源
&& AvailResource[3] >= RequestMatrix[k][3])//若资源能使进程ProcessID结束
} 其余由大家自行完成。
四、实验材料的提交与成绩评定
1、本实验的实验报告一份(电子版或纸质版一份,具体形式由任课教师确定,格式参考学院统一实验报告)
2、实验源程序一份,请表明题号(电子版)
备注:做下一次实验之时提交上一次实验的材料,由各班学习委员以班为单位收集并上交任课教师。
3、实验成绩总分为10分,由指导老师根据学生实验表现和实验材料进行评定,本门课程结束后实验平均成绩(实验总成绩/实验次数)按照10%的比例记入期末考试总成绩。
实验六 Windows内存管理
一、实验目的
1、熟悉程序的运行时动态链接。
2、熟悉Windows中内存的分页管理方式。
3、了解虚拟内存的用法,熟悉Windows中相应的API函数。
二、实验理论基础及教材对应关系
1、应用程序的动态链接。
2、内存的分页管理、虚拟内存的技术。 3、本实验内容主要对应于教材第4章。
三、实验内容与步骤
1、运行“SystemInfo.exe”应用程序,出现如下界面:
从该界面上可以看到Windows2000/XP系统中的分页大小(Page Size)是:4,096,即4K字节,也可以看到本机所安装的处理器的个数是:1个。 打开工程文件,熟悉信息获取函数的使用:
SYSTEM_INFO sinf; GetSystemInfo(&sinf);
2、运行“VMSTATE.exe”应用程序,出现如下界面:
从界面上可以看到,本计算机中所安装的物理内存的大小“TotalPhys”,可用物理内存的大小“AvailPhys”。
打开源文件,熟悉或者信息函数的使用:
MEMORYSTATUS ms = { sizeof(ms) }; GlobalMemoryStatus(&ms);
3、运行“VMAlloc.exe”应用程序,掌握其用法和功能:
打开源文件,熟悉以下操作虚拟存储空间函数的使用:
VirtualAlloc( )、VirtualQuery( )、VirtualFree( )。
4、运行“VMMap.exe”应用程序,了解程序的功能,读懂其显示的每一行信息的含义:
从上面显示的信息中,谈谈自己对虚拟储存空间的认识(100字以内)。
四、实验材料的提交与成绩评定
1、本实验的实验报告一份(电子版或纸质版一份,具体形式由任课教师确定,格式参考学院统一实验报告)
2、实验源程序一份,请表明题号(电子版)
备注:做下一次实验之时提交上一次实验的材料,由各班学习委员以班为单位收集并上交任课教师。
3、实验成绩总分为10分,由指导老师根据学生实验表现和实验材料进行评定,本门课程结束后实验平均成绩(实验总成绩/实验次数)按照10%的比例记入期末考试总成绩。
实验七 分页内存管理算法模拟
一、实验目的
1、熟悉基本分页存储管理。
2、建立描述分页内存管理中的页目录表、页表结构。 3、实现进行虚拟内存到物理内存的映射算法。
二、实验理论基础及教材对应关系
1、操作系统中内存管理。 2、基本分页内存、分段内存管理。
3、页目录表、页表的作用,以及虚拟地址到物理地址的映射关系。
三、实验内容与步骤
题目:分页存储管理的设计与实现。
某系统采用了两级页表机制,可使页表所占用内存尽量少,分页地址变换机构如下图所示:
分页地址变换机构