资源简介

模拟实现虚拟分页存储管理的基本功能,包括内存的分配、内存的回收、地址变换,在发生缺页时采用LRU页面置换算法。 显示每一次内存分配和回收后内存的使用状况,每一个进程占据的内存(页表),计算给定的逻辑地址对应的物理地址。

资源截图

代码片段和文件信息

/*编写程序模拟实现虚拟分页存储管理的基本功能,包括内存的分配、内存的回收、地址变换,在发生缺页时采用页面置换算法。

要求显示每一次内存分配和回收后内存的使用状况,每一个进程占据的内存(页表),计算给定的逻辑地址对应的物理地址。

系统分配的物理块数由程序指定,要求支持以下两种页面置换算法中的一种:
(1)FIFO页面置换算法:
(2)LRU页面置换算法:

要求输入每个进程的页面引用序列,显示每一次页面引用内存状态,最后统计出页面置换算法页面置换的次数。
*/

#include

#include“Basic_Proc.h“


void main()
{
PCB test[5];
for(int i=0;i<5;i++)
{
test[i].PID=i;
test[i].Alloc=0;
}
Init();
for(int i=0;i<5;i++)
Load(&test[i]);
//excute(test[0]);
Alloc_Mem_VM(1024*998test[0]);
Free_Mem_VM(27*10241024test[0]);
system(“pause“);
Alloc_Mem_VM(1024*998test[1]);
for(int i=25;i<99;i++)
Access(i*1024test[1]);
Access(53*1024test[1]);
Access(54*1024test[1]);
    Access(55*1024test[1]);
Access(450*1024test[1]);
system(“pause“);
Alloc_Mem_VM(1024*998test[2]);
for(int i=25;i<99;i++)
Access(i*1024test[2]);
printf(“两个进程访问同一虚拟地址\n“);
printf(“进程1\n“);
Access(490*1024test[1]);
printf(“进程2\n“);
Access(490*1024test[2]);
system(“pause“);
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1237  2014-01-09 11:23  MEM_MANGE.cpp

     文件        927  2014-01-07 19:16  Basic_DataStructure.h

     文件       7139  2014-01-09 13:26  Basic_Proc.h

----------- ---------  ---------- -----  ----

                 9303                    3


评论

共有 条评论