这份文档是关于操作系统的存储管理实验报告,详细记录了实验目的、原理、过程及结果分析,旨在加深对操作系统中内存管理机制的理解。
### 实验内容
在分页式虚拟存储管理的模拟实验中,主要任务包括硬件地址转换、缺页中断处理以及选择页面调度算法来应对缺页中断。
### 实验目的
为了提高主存利用率,在计算机系统中通常会使用辅助存储器(如磁盘)作为主内存扩展。通过这种方法,多道运行作业的逻辑地址空间总和可以超过实际物理内存的空间限制。这种技术实现的增强版主存储器称为虚拟存储器。本实验旨在帮助学生理解如何在分页式管理机制中实施虚拟存储。
### 实验题目
本次实验包含三个题目的练习,其中第一题为必做任务;第二、第三题可任选其一完成:
**第一题:模拟分页系统中的地址转换和缺页中断**
提示:
1. 在作业副本存于磁盘的情况下,当作业被调度时先将起始几页装入内存,并启动执行。为此,在建立作业的页面表时需要记录哪些页已处于主存中以及哪些未加载至主存。
2. 作业运行过程中,指令中的逻辑地址指明了操作数所在的页号和单元号(页内地址)。硬件通过查询该页对应的标志来决定是否进行物理内存访问。如果标志为1,则表示此页面已经位于主存;若为0则需处理缺页中断。
3. 在磁盘上的存放位置信息以及已装入的页面列表与作业指令序列一同提供,用于测试程序设计。
### 实验代码
```cpp
#include
#define length 128
using namespace std;
void main()
{
int xulie[12][2]={{0,70},{1,50},{2,15},{3,21},{0,56},{6,40},
{4,53},{5,23},{1,37},{2,78},{4,1},{6,84}};
int yebiao[7][4]={{0,1,5,11},{1,1,8,12},{2,1,9,13},
{3,1,1,21},{4,0,0,22},{5,0,0,23},{6,0}};
int address=0;
for(int i=0;i<12;i++)
for(int j=0;j<7;j++)
if(yebiao[j][0]==xulie[i][0]) {
cout<<指令序号=<