操作系统试验报告(3)

2019-03-04 12:16

实验(二)

(页面置换)

一、问题描述:

主要包括三种典型的置换算法:最佳适用(OPT)算法,先进先出(FIFO)算法,最久未使用(URL)算法。 二、程序分析与设计: 1、基本思想

A.最佳适用算法:所选择的淘汰页是以后永不使用或者以后最长时间不需要访问的页,是一种理想化的算法,具有最好的性能,通常可以保证最低的缺页率。实现方法:利用一个与内存块相同大小的数组记录以后的重复出现的页面位置,如未出现则为最大,然后对这个数组进行比较,选出位置最大的页予以淘汰。

B.先进先出算法:总是淘汰最先进入内存的页,也就是将内存中中驻留时间最久的页面。实现方法:在内存块数组中,按顺序存入数组,依次淘汰,即最先进来的先淘汰。

C.最久未使用算法:根据页面调入内存后的使用情况进行决策,选择最近最久未使用的页面予以淘汰。实现方法:每次将页面存入内存数组栈顶,然后下面的一次向下移,在栈底位置的页面为下一次要淘汰的页。 2、结构定义

#define N 10 //页面数

int a[N],b[32]; // a[]为要调入内存的页面,b[]为内存块数组

while(f) //对内存块数组进行初始化 { for(j=0;j

b[j]=-1; } 3、算法描述 #include #include #define N 10 using namespace std;

int a[N],b[32]; //a[]为要调入内存的页面,b[]为内存块数组

void Optimal(int m) {

cout<<\ OPT\\n\

int i=0,j=0,count=0,k; while(i

算法置换

{

for(k=0;k

if(b[k]==a[i]) {

cout<<\内存中有这个页面,直接访问.\ break; }

} // 判断内存中是否有该页面.

if(k==m)

if(b[m-1]<0) //内存未满的情况// {

b[j]=a[i];

cout<

cout<<\产生\次缺页\ j++; j=j%m; }

else

{int temp[4]; //存储内存块中的页号在下一次使用的位置

int h=j;

while(a[h]!=b[0]&&h

temp[0]=h; h=j;

while(a[h]!=b[1]&&h

temp[1]=h; h=j;

while(a[h]!=b[2]&&h

temp[2]=h; h=j;

while(a[h]!=b[3]&&h

int max_x=0;//最后定位要换出的页号所在的内存号 int max=temp[0];

for(int c=0;c<4;++c) //找出要置换的页号// if(temp[c]>max) {max=temp[c];max_x=c; } count++;

cout<

cout<<\共缺页\次 缺页率为:\}

////-------------FIFO算法置---------------//// void FIFO( int m ) {

cout<<\ FIFO\\n\

算法置换


操作系统试验报告(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:超大规模集成电路第七次作业2016秋,段成华

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: