操作系统上机实验-内存管理

操作系统上机实验-内存管理

ID:7783016

大小:49.50 KB

页数:9页

时间:2018-02-25

操作系统上机实验-内存管理_第1页
操作系统上机实验-内存管理_第2页
操作系统上机实验-内存管理_第3页
操作系统上机实验-内存管理_第4页
操作系统上机实验-内存管理_第5页
资源描述:

《操作系统上机实验-内存管理》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、操作系统上机实验内存管理姓名:学号:一、实验目的:掌握分页式存储管理的基本概念和实现方法。要求编写一个模拟的分页式管理程序,并能对分页式存储的页面置换算法进行编写和计算各个算法的缺页率。二、程序设计:假定一个能够存放M个页面的内存,当发生缺页时,调入一个页面,通过LRU算法求出应该置换出的页面号。输入一连串的页面号,程序自动选择调出的页面并计算缺页率。设计页面置换算法,基于FCFO算法和最久未使用置换算法LRU实现。三、算法说明:执行程序时,当主存没有可用页面时,为了选择淘汰主存中的哪一页面,腾出1个空闲块以便存放新调入的页面。

2、淘汰哪个页面的首要问题是选择何种置换算法。该程序采用FCFO和LRU方法选择,依置换策略选择一个可置换的页面并计算它们的缺页率以便比较。#includeusingnamespacestd;#defineM3#includeintreg[2][M];intcount;intnum;intN;/********初始化函数,数组reg[0][i]存放页面号,初始化为-1,reg[1][i]当作寄存器,初始化为0*********/voidinit(){     inti,count=0;num=0;

3、       N=(int)pow(2,7);    /********二进制数10000000**********/      for(i=0;ia[i]) 

4、             { min=a[i];                 index=i; }      }      returnindex;}/***判断页面号x是否在数组中,如果在,返回对应的下标;否则返回-1***/intisIn(intx,inta[]){      inti;      intindex=-1;      for(i=0;i

5、nindex;}/**********判断虚拟的内存中是否已经存满了页面,如果满了,则返回-1,没有满则返回找到空的对应的第一个下标**************/intisFull(inta[]){     inti,index=-1;      for(i=0;i

6、oidswap(intx){   inti,k,temp,temp0,count;    intindex=isIn(x,reg[0]);  /****判断x是否在reg[0]数组中*******/    if(index!=-1)      {reg[1][index]=reg[1][index]^N; }/**reg[1][index]异或二进制数10000000**/     else{          temp=isFull(reg[0]);          if(temp!=-1)/*******内存没有满,直接调

7、入页面************/              {    reg[0][temp]=x;                    reg[1][temp]=reg[1][temp]^N;               }               elseif(temp==-1)                 { k=min(reg[1]);/**置换出寄存器中数值最小的对应的下标的页面***/                    temp0=reg[0][k];/*********临时保留要换出的页面号*****

8、/                    reg[0][k]=x;                    reg[1][k]=reg[1][k]^N;                    printf("thepage%disexchangedout!",

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。