1. 原理
图1:请求页式存储管理模拟程序的完整流程图
图2:一条指令执行的模拟流程图
图3:模拟地址转换的流程图
图4:采用FIFO页面置换算法的缺页中断流程图
2.C++ code
// Page_V1.cpp : 定义控制台应用程序的入口点。
/*
*Name:Page_V1.cpp
*Author:WangLin
*Created On:2015/11/16
*Function:模拟页面调度。地址转换:十进制输入,十进制输出
*/
#include "stdafx.h"
#include<iostream>
using namespace std;
const int N=64;//页表最大长度
int n;//页表实际长度
int m;//队列长度
int head=0,tail=0,used[N],p[N];//队列头/尾指针/标记数组,存放页号的优先队列
struct//页表
{
int Number;//页号
int pNumber;//物理块号
int dNumber;//在磁盘上的位置
int write;//修改标志
int flag;//存在标志
}page[N];
void printPageTable()//打印页表内容
{
cout<<"当前页表内容为:"
<<endl<<"================================================================================"<<endl;
cout<<"页号 "<<"物理块号 "<<"磁盘位置 "<<"修改标志 "<<"存在标志