北方工业大学计算机操作系统实验2

上传人:lil****ar 文档编号:281883229 上传时间:2022-04-25 格式:DOC 页数:11 大小:59.50KB
返回 下载 相关 举报
北方工业大学计算机操作系统实验2_第1页
第1页 / 共11页
北方工业大学计算机操作系统实验2_第2页
第2页 / 共11页
北方工业大学计算机操作系统实验2_第3页
第3页 / 共11页
北方工业大学计算机操作系统实验2_第4页
第4页 / 共11页
北方工业大学计算机操作系统实验2_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《北方工业大学计算机操作系统实验2》由会员分享,可在线阅读,更多相关《北方工业大学计算机操作系统实验2(11页珍藏版)》请在金锄头文库上搜索。

1、操作系统实验报告学 生 姓 名 杨 先 宇 班 级 计13-4 实验名称储存管理实验序号实验2实验日期实验人杨先宇一、实验目的和要求请求页式存储管理是一种常用的虚拟存储管理技术。本实验目的是通过请求页式存储管理中页面置换算法的模拟设计,了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换算法。二、相关背景知识1.先进先出页面淘汰算法(FIFO)地址映射过程中,若在页面中发现所要访问的页面不再内存中,则产生缺页中断。当发生缺页中断时操作系统必须在内存选择一个页面将其移出内存,以便为即将调入的页面让出空间。而用来选择淘汰哪一页的规则叫做页面置换算法。最简单的页面置换算法是先入先出(FIFO)法。

2、优先淘汰最早进入内存的页面,亦即在内存中驻留时间最久的页面。该算法实现简单,只需把调入内存的页面根据先后次序链接成队列,设置一个指针总指向最早的页面。但该算法与进程实际运行时的规律不适应,因为在进程中,有的页面经常被访问。2.最近最久未使用页面淘汰法(LRU)关于操作系统的内存管理,如何节省利用容量不大的内存为最多的进程提供资源,一直是研究的重要方向。而内存的虚拟存储管理,是现在最通用,最成功的方式 在内存有限的情况下,扩展一部分外存作为虚拟内存,真正的内存只存储当前运行时所用得到信息。这无疑极大地扩充了内存的功能,极大地提高了计算机的并发度。虚拟页式存储管理,则是将进程所需空间划分为多个页面

3、,内存中只存放当前所需页面,其余页面放入外存的管理方式。然而,有利就有弊,虚拟页式存储管理减少了进程所需的内存空间,却也带来了运行时间变长这一缺点:进程运行过程中,不可避免地要把在外存中存放的一些信息和内存中已有的进行交换,由于外存的低速,这一步骤所花费的时间不可忽略。因而,采取尽量好的算法以减少读取外存的次数,也是相当有意义的事情。三、实验内容1.通过随机数产生一个指令序列,共320条指令。指令的地址按下述原则生成:1.50%的指令是顺序执行的;2.25%的指令是均匀分布在前地址部分;3.25%的指令是均匀分布在后地址部分;具体的实施方法是:1.在0,319的指令地址之间随机选取一起点m;2

4、.顺序执行一条指令,即执行地址为m+1的指令;3.在前地址0,m+1中随机选取一条指令并执行,该指令的地址为m;4.顺序执行一条指令,其地址为m+1;5.在后地址m+2, 319中随机选取一条指令并执行;6.重复上述步骤15,直到执行320次指令。2.将指令序列变换成页地址流,设1.页面大小为1K;2.用户内存容量为4页到32页;3.用户虚存容量为32K。在用户虚存中,按每K存放10条指令排列虚存地址,即320条指令在虚存中存放的方式为:第0条至第9条指令为第0页(对应虚存地址为0,9);第10条至第19条指令为第1页(对应虚存地址为10,19);第310条至第319条指令为第31页(对应虚存

5、地址为310,319);按以上方式,用户指令可以组成32页。3.计算并输出下述各种算法在不同内存容量下的命中率。1.先进先出页面淘汰算法(FIFO)2.最近最久未使用页面淘汰法(LRU)命中率=1 - 页面失效次数/页地址流长度在本实验中,页地址流长度为320,页面失效次数为每次访问相应指令时,该指令对应的页不在内存的次数。4.随机数产生办法关于随机数产生办法,Linux或UNIX系统提供函数srand()和rand(),分别进行初始化和产生随机数。四、关键数据结构与函数的说明1. 全局变量const int maxn = 320; /序列个数const int max = maxn +20;

6、/数组大小const int maxp = max/10; /最大页数int instmax;/指令序列int pagemax;/页地址流int size; /内存能容纳的页数bool inmaxp; /该页是否在内存里,提高效率int pinmaxp; /现在在内存里的页其中in数组是为了方便直接判断该页是否在内存里,而不用遍历内存里所有页来判断。fault_n用来记录缺页次数。2.随机指令序列的产生void produce_inst() int m, n; int num = 0; while(num maxn) m = rand() % maxn; instnum+ = (m+1)%ma

7、xn; if(num = maxn) break; m = (m+2) % maxn; if(m = 0) m = 160; n = rand() % m; instnum+ = (n+1)%maxn; if(num = maxn) break; n = (n+2) % maxn; m = maxn - n; if(m = 0) m = 160; m = rand() % m + n; instnum+ = m; 五、编译与执行过程截图1先进先出页面淘汰算法(FIFO)2最近最久未使用页面淘汰法(LRU)六、实验结果与分析1先进先出页面淘汰算法(FIFO) 1.只有FIFO算法才会出现bela

8、dy,s anomaly.异常2,FIFO最简单的页置换算法,随着置换页数的增多,缺页率会减少。3,其性能并不是很好。所替代的页可能是很久以前使用的、现已不再使用的初始化模块。4一方面,所替代的页可能包含一个以前初始化的并且不断使用的常用变量。2最近最久未使用页面淘汰法(LRU)LRU置换为每个页关联该页上次使用的时间。当必须置换一次的时候,LRU选择最长时间没有使用的页,这种策略为向后看最优页置换算法。LRU置换算法被认为相当不错,其主要问题是如何实现LRU置换,页帧的排序序列按页帧上次使用时间来定,有两种可行方法:计算器 为每个页表项关联一个使用时间域,并为CPU增加一个逻辑时钟或者计数器

9、。对每次内存引用,计算器都会增加,每次内存引用的时候时钟寄存器的内容会被复制到相应页所对应的页表项的使用时间域内。用这种方式就得到每页的最近使用时间。置换具有最小时间的页。这种方案需要搜索页表已经查找LRU也,且每次内存访问都要写入内存。在改变页表时,因CPU调度,也必须保持时间。必须考虑时钟溢出。栈 每当引用一个页,该页就从栈中删除并放在顶部。这样,栈顶部总是最近使用的页,栈底部总是LRU页。由于必须是从栈中删除项,所以,该栈可实现为具有头部指针和尾指针的双向链表。虽然每个更新有点费事,但是置换不需要搜索;尾部指针指向栈底部,就是LRU页。七、调试时遇到的问题及解决方法1.随机指令序列的产生

10、出现问题按照实验要求的写了,但是没有考虑细节。注意随机数要保持在范围内。解决方法:循环执行加以调控防止溢出。八、调试后的程序源代码1.先进先出页面淘汰算法(FIFO)#include#include#include#includeint str320;/320条指令 int page32;/物理内存页int page_lock32;int count_num32;int error=0;int already_given=0; int find_page(int i) return (i/10);int page_schelduing_fifo(int num) int i,j,m,n,cou

11、nt=0,find; for(i=0;inum;i+) pagei=-1; for(i=0;i320;i+) find=0; count=0; for(j=0;jalready_given;j+) if(pagej=stri) find=1;break; if(find=0) if(already_givennum) pagealready_given=stri; already_given+; else if(already_given=num) for(j=0;jalready_given-1;j+) pagej=pagej+1; pagej=stri; error+; main() in

12、t i,j,m,n,upper,least,x=0; for(i=0;i320;i+) stri=i; i=0; upper=319; least=0; srand (time(NULL); while(i80) /every time 4 orders m=least+rand()%(upper+1); /m /执行m+1 strx+=find_page(m+1); n=least+rand()%(m+2);/ m /执行n 和 n+1 strx+=find_page(n); strx+=find_page(n+1); n=n+2+rand()%(320-n-2); /执行 n strx+=find_page(n); upper=n; least=0; i+;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号