操作系统原理实验报告(4)

2018-12-04 16:29

七.指导教师评议 成绩等级

1

实验3 存储管理

一、实验目的

1. 了解虚拟存储管理技术的原理与特点。 2. 掌握请求页式存储管理的页面置换算法。

二、实验内容

1. 通过随机数产生一个指令序列,共320条指令。指令的地址按下述原则生成:

(1) 50%的指令是顺序执行的;

(2) 25%的指令均匀分布在前地址部分; (3) 25%的指令均匀分布在后地址部分。 实现方法:

(1) 在[0,319]的指令地址中随机选取一起点s; (2) 执行指令s;

(3) 顺序执行一条指令,即执行地址为s+1的指令;

(4) 在前地址[0,s]中随机选取一条地址为m的指令执行; (5) 顺序执行一条指令,即执行地址为m+1的指令; (6) 在后地址[m+2,319]中随机选取一条指令s; (7) 重复(2)—(6),直到执行320次指令。 2. 将指令序列变换为页地址流,设:

(1) 页面大小为1K;

(2) 用户内存容量为4—32页面(page frame); (3) 用户虚存容量为32K(即32页)。

若10条指令为1页,则320条指令在虚存中的存放方式为: 第0页(虚存地址[0,9])——第0条~第9条指令;

第1页(虚存地址[10,19])——第10条~第19条指令; ? ? ? ? ? ?

第31页(虚存地址[310,319])——第310条~第319条指令。

3. 计算并输出下列算法在不同内存容量下的命中率(命中率=1-缺页率)。

(1) FIFO——First In First Out Page Replacement Algorithm (2) LRU——Least Recently Used Page Replacement Algorithm

三、实验要求

1. 根据实验内容编写C程序。 2. 上机调试程序。

3. 记录并分析程序运行结果。

四、程序说明和程序流程图

1

程序说明为:

1. 通过随机数产生一个指令序列,共320条指令。指令的地址按下述原则生成:

(1) 50%的指令是顺序执行的;

(2) 25%的指令均匀分布在前地址部分; (3) 25%的指令均匀分布在后地址部分。 实现方法:

(1) 在[0,319]的指令地址中随机选取一起点s; (2) 执行指令s;

(3) 顺序执行一条指令,即执行地址为s+1的指令;

(4) 在前地址[0,s]中随机选取一条地址为m的指令执行; (5) 顺序执行一条指令,即执行地址为m+1的指令; (6) 在后地址[m+2,319]中随机选取一条指令s; (7) 重复(2)—(6),直到执行320次指令。 2. 将指令序列变换为页地址流,设:

(1) 页面大小为1K;

(2) 用户内存容量为4—32页面(page frame); (3) 用户虚存容量为32K(即32页)。

若10条指令为1页,则320条指令在虚存中的存放方式为: 第0页(虚存地址[0,9])——第0条~第9条指令;

第1页(虚存地址[10,19])——第10条~第19条指令; ? ? ? ? ? ?

第31页(虚存地址[310,319])——第310条~第319条指令。

3. 计算并输出下列算法在不同内存容量下的命中率(命中率=1-缺页率)。

(1) FIFO——First In First Out Page Replacement Algorithm (2) LRU——Least Recently Used Page Replacement Algorithm 流程图:

1

1

五、程序代码

#include #include

// #include /* Windows环境,getpid()原型在process.h中 */ #define TRUE 1 #define FALSE 0 #define INVALID -1 #define NULL 0

#define total_instruction 320 /* 指令条数 */ #define total_vp 32 /* 虚页数 */ #define clear_period 50 /* NRU清0周期 */ typedef struct { /* 页表结构 */ int pn,pfn,counter,time; /* counter(LFU),time(LRU) */ } pl_type;

pl_type pl[total_vp]; /*页表 */ struct pfc_struct { /* 存储页面表 */ int pn,pfn;

struct pfc_struct *next; };

typedef struct pfc_struct pfc_type;

pfc_type pfc[total_vp],*freepf_head,*busypf_head,*busypf_tail; int diseffect,a[total_instruction]; /* 缺页次数,指令流 */ int page[total_instruction],offset[total_instruction]; void initialize(int); void fifo(int); void lru(int); void opt(int); void lfu(int); void nur(int); void main() {

int s,i,j;

srand(getpid()*10); /* 进程标识作为随机数种子 */

1


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

下一篇:关于新农村政策与税费改革调查报告

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

马上注册会员

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