操作系统实验三.docxVIP

  • 2
  • 0
  • 约8.85千字
  • 约 14页
  • 2024-01-06 发布于上海
  • 举报

广州大学学生实验报告

计算机科学与学院教育软件学院年级/专业/班计科122120610002姓名庞彬学号2实验课程名称

计算机科学与

学院

教育软件学院

年级/专

业/班

计科

122

120610002

姓名

庞彬

学号

2

实验课

程名称

实验项目名称

操作系统

成绩

实验三内存管理实验

指导老师

张艳玲

一、实验目的

通过模拟实现请求页式存储管理的几种基本页面置换算法,了解虚拟存储技术的特点,掌握虚拟存储请求页式存储管理中几种基本页面置换算法的基本思想和实现过程,并比较它们的效率。

了解linux环境下如何实现内存的分配与回收。

二、实验内容

(一)内存管理实验1:常用页面置换算法模拟实验

设计一个虚拟存储区和内存工作区,并使用下述算法计算访问命中率。

1、最佳淘汰算法(OPT)

2、先进先出的算法(FIFO)

3、最近最久未使用算法(LRU)

4、最不经常使用算法(LFU)

5、最近未使用算法(NUR)

命中率=1-页面失效次数/页地址流长度

(二)内存管理实验2:Linux下的内存分配与回收的管理

在Linux环境下利用下列系统调用malloc(),free()编写一段程序实现内存分配与回收的管理。

要求:

返回已分配给变量的内存地址;返回释放后的内存地址;

释放已分配的内存空间后,返回释放内存后未使用内存的大小。

三、实验设备

安装带Linux操作系统的电脑一台。

四、实验程序实现及结果分析

(一)内存管理实验1:常用页面置换算法模拟实验实验程序如下:

#defineTRUE1

#defineFALSE0

#defineINVALID-1

#defineNULL 0

#define

total_instruction

320

/*指令流长*/

#define

total_vp 32

/*虚页长*/

#define

clear_period 50

/*清0周期*/

typedefstruct /*页面结构*/

{

intpn,pfn,counter,time;

}pl_type;

pl_typepl[total_vp]; /*页面结构数组*/

structpfc_struct{ /*页面控制结构*/intpn,pfn;

structpfc_struct*next;

};

typedefstructpfc_structpfc_type;

pfc_typepfc[total_vp],*freepf_head,*busypf_head,*busypf_tail;intdiseffect, a[total_instruction];

intpage[total_instruction], offset[total_instruction];

int initialize(int);int FIFO(int);

intLRU(int);intLFU(int);intNUR(int);intOPT(int);

intmain()

{

ints,i,j;

srand(10*getpid()); /*由于每次运行时进程号不同,故可用来作为初始化随机数队列的“种子”*/

s=(float)319*rand()/32767/32767/2+1; //for(i=0;itotal_instruction;i+=4)/*产生指令队列*/

{

if(s0||s319)

{

printf(Wheni==%d,Error,s==%d\n,i,s);exit(0);

}

a[i]=s; /*任选一指令访问点m*/

a[i+1]=a[i]+1; /*顺序执行一条指令*/a[i+2]=(float)a[i]*rand()/32767/32767/2;/*执行前地址指令m*/a[i+3]=a[i+2]+1; /*顺序执行一条指令*/

s=(float)(318-a[i+2])*rand()/32767/32767/2+a[i+2]+2;if((a[i+2]318)||(s319))

printf(a[%d+2],anumberwhichis:%dands==%d\n,i,a[i+2],s);

}

for(i=0;itotal_instruction;i++)/*将指令序列变换成页地址流*/

{

page[i]=a[i]/10;offset[i]=a[i]%10;

}

for(i=4;i=32;i++) /*用户内存工作区从4个页面到32个页面*/

{

printf(%2dpageframes\n,i);FIFO(i);

LRU(i);

LFU(i);

NUR(i);

OPT(i);

}

retur

文档评论(0)

1亿VIP精品文档

相关文档