虚拟存储器-操作系统课程设计报告 第5页
一、设计内容
模拟分页式虚拟存储管理中硬件的地址转换和缺页中断,以及选择页面调度算法处理缺页中断。
1.模拟分页式存储管理中硬件的地址转换和产生缺页中断。
2.用先进先出(FIFO)页面调度算法处理缺页中断。
3.用最近最少用(LRU)页面调度算法处理缺页中断。
二、设计目的
在计算机系统中,为了提高主存利用率,往往把辅助存储器(如磁盘)作为主存储器的扩充,使多道运行的作业的全部逻辑地址空间总和可以超出主存的绝对地址空间。用这种办法扩充的主存储器称为虚拟存储器。通过本实习帮助同学理解在分页式存储管理中怎样实现虚拟存储器。
三、设计过程
1.数据结构设计
本实验只设置一个结构体数组,如下所示:
struct pagetable{
int pagenum; //页号
int flag; //页标志,1表示存在主寸中,0表示在外存
int blocknum; //块号
int flag_modify; //修改标志
int local_disk; //磁盘位置
}pt[7]={{0,1,5,0,011},{1,1,8,0,012},{2,1,9,0,013},{3,1,1,0,021},{4,0,-1,0,022},{5,0,-1,0,023},{6,0,-1,0,121}};
#define length 4 //加载的物理块个数
int pages[4]={0,1,2,3}; //该数组保存物理块对应的页号
int k;// 该数组的队列标记
2.算法设计
(1).该源程序分为以下几个模块:
主函数main();
页面显示函数display1(),display();
地址转换函数dizhizhuanhuan();
先进先出函数FIFO();
最近最少用函数LRU()
子菜单函数 caidan1 (),caidan2(),caidan3();
(2). 函数模块的流程图算法:
1). 主函数mian()
函数功能:定义一个变量,根据变量的值选择菜单是进行退出系统、计算绝对地址、先进先出页面调度算法处理中断还是最近最久置换算法处理中断等操作。
入口参数:无
出口参数:无
流程图如下所示:
2).子菜单函数caidan1()
函数功能:定义一个变量,根据变量的值选择菜单是返回主菜单、查看页表情况、计算绝对地址产生中断等操作。
入口参数:无
出口参数:无
流程图如下所示:
3).子菜单函数caidan2()
函数功能:定义一个变量,根据变量的值选择菜单是返回主菜单、查看页表情况、利用先进先出置换算法处理缺页中断并计算该页绝对地址等操作。
入口参数:无
出口参数:无
流程图如下所示:4).子菜单函数caidan3()
函数功能:定义一个变量,根据变量的值选择菜单是返回主菜单、查看页表情况、利用最近最久未使用置换算法处理缺页中断并计算该页绝对地址等操作。
入口参数:无
出口参数:无
流程图如下所示:
5).地址变换函数dizhibianhuan()
函数功能:输入指令进行操作的页号和单元号,如果该页在主存中直接计算绝对地址并输出,
否则输出该页发生缺页中断。
入口参数:无
出口参数:无
流程图如下所示:6).先进先出置换FIFO()
函数功能:输入指令进行操作的页号和单元号,如果在主存中直接计算其绝对地址,否则按先进先出置换算法,将该页调入主存,然后计算其绝对地址。
入口参数:无
出口参数:无
流程图如下所示:
上一页 [1] [2] [3] [4] [5] [6] 下一页
虚拟存储器-操作系统课程设计报告 第5页下载如图片无法显示或论文不完整,请联系qq752018766