char jobname[10]; //占有设备的作业名
int lnumber; //设备相对号
}equipment[m]; //设备表定义,假设系统有m个设备
设计题目5 模拟实现请求分页虚存页面替换算法
【实验目的】
1.了解存储管理的基本目的和功能
2. 理解实存管理的原理和实现技术
3. 理解虚存管理的原理和实现技术
4. 通过编程模拟实现请求分页虚存管理和替换算法
【实验基本要求】
实现虚存页面替换算法的模拟程序应该含有以下功能:
(1)接收用户输入参数:程序长度(页面数)、页框个数及页面大小;
(2)程序结果采用不同颜色区分命中、替换及直接加入空闲块;
(3)实现OPT、FIFO、LRU、LFU、SCR、Clock等替换算法。
维护两个数据结构,即请求页面队列和主存块队列。其中请求页面队列为进程所用,记录当前进程请求的页面块信息。而主存块队列由系统维护,该队列保存当前系统中各主存块的状态(包括最后访问时间、闲忙状态等)。各种替换算法将以这两个数据结构为基础,在系统中为用户请求寻找最佳块节点。
【数据结构设计参考】
#include
#define BUSY 1
#define IDLE 0
//#define _DEBUG 1
typedef struct _Page{
int pageID;//页号
} Page; //进程
typedef struct _PageQueue{
Page page;
struct _PageQueue* next; //下一页面
} PageQueue;
typedef struct _Block{
Page *page; //页面
long time;//最后访问时间
int state;//页块是否空闲,0代表未使用,1代表已被使用