一、实验项目名称:
操作系统页面调度算法
二、实验目的和要求:
目的:对操作系统中使用的页面调度算法进行设计。
要求:对教材中所讲述的几种页面调度算法进行深入的分析,通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换算法。
三、实验内容
1、设计两个程序模拟实现一个作业在内存中执行的页面置换,并计算缺页中断次数。
3、编制两种页面置换算法:1)FIFO页面置换算法;2)LRU页面置换算法
四、实验原理:
1、FIFO页面置换算法:总是选择在内存中驻留时间最长的一页将其淘汰。
2、LRU页面置换算法:选择最近一段时间内最长时间没有被访问过的页面予以淘汰。
五、参考程序:(提供代码,未改动)
1、FIFO页面置换算法:
#define M 4 /*m为系统分配给作业的主存中的页面数*/
#define N 15
#include
void main()
{
int a[M];/*定义内存页面数*/
int b[N];/*定义总页面数*/
int c[N];/*定义被淘汰的页面号*/
int i,k,flag,count,m=0;
printf("请输入作业序号:\n");
for(i=0;i
void main()
{
int a[M];/*定义内存页面数*/
int b[N];
int c[N];/*定义被淘汰的页面号*/
int i,j,k,count,flag,m=0;
printf("请输入作业序号:\n");
for(i=0;i表中,在访问过程中,查看页表,看是否缺页,如果缺页,则在最下面进行标记。知道缺页的页面后,更改每个块中的页面号,以块为单位进行修改,将需要淘汰的页面替换掉,即可得到所需要的结果了。然后利用标记幸好的页面的个数,来算出缺页率。
#include "stdio.h"
#define N 15
#define M 4
void main()
{
int a[N],i,j,q,b[M]={0},c[M][N],count=0;
char flag,f[N];
printf("请输入页面访问序列:\n");
for(i=0;i
0;j--) //淘汰最先调入的页面调入当前访问的
b[j]=b[j-1];
b[0]=a[i];
// printf("发生缺页的页面是:%3d\n",b[j]);
}
for(j=0;j0;j--)
b[j]=b[j-1];
b[0]=a[i];
for(j=0;j