操作系统存储管理实验课程设计报告
Posted Henry Zheng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了操作系统存储管理实验课程设计报告相关的知识,希望对你有一定的参考价值。
操作系统报告
存储管理
姓名: 郑兆涵
专业: 计算机科学与技术(嵌入式方向)
一、设计目的、意义
本次实验针对:(1)存储管理实验,(2)主存储器空间的分配和回收实验,两个实验进行学习。
(1)存储管理实验:本实验的目的是通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的技术特点,掌握请求页式存储管理的页面置换算法。
(2)主存储器空间的分配和回收实验:本实验的目的是理解在不同的存储管理方式下应怎样实现主存空间的分配和回收。
二、设计分析
1.(第四章)存储管理的主要功能之一是合理地分配空间。请求页式管理是一种常用的虚拟存储管理技术。以下是实验的设计分析:
(1)通过随机数产生一个指令序列,共320条指令。指令的地址按下述原则生成:
①50%的指令是顺序执行的;
②50%的指令是均匀分布在前地址部分;
③50%的指令是均匀分布在后地址部分。
具体的实施方法是:
①在 [0,319] 的指令之间随即选取一起点m;
②顺序执行一条指令,即执行地址为m+1的指令;
③在前地址[0,m+1]中随机选取一条指令并执行,该指令的地址为m′;④顺序执行一条指令,其地址为 m′+ 1;
⑤在后地址[m′+ 2,319]中随机选取一条指令并执行;
⑥重复上述步骤①-⑤,直到执行320次指令。
(2)将指令序列变换为页地址流
设:①页面大小为1k;
②用户内存容量为4页到32页;
③用户虚存容量为32k。
在用户虚存中,按每k存放10条指令排在虚存地址,即320条指令在虚存中的存放方式为:
第0条-第9条指令为第0页(对应虚存地址为[0,9]);
第10条-第19条指令为第一页(对应虚存地址为[10,19]);
… …
第310条~第319条指令为第31页(对应虚地址为[310,319])。
按以上方式,用户指令可组成32页。
(3)计算并输出下述各种算法在不同内存容量下的命中率。
①先进先出的算法(FIFO);
②最近最久使用算法(LRU);
③最佳淘汰算法(OPT)先淘汰最不常用的页地址;
④最少访问页面算法(LFR);
⑤最近最不经常使用算法(NUR)。
其中③和④为选择内容。
命中率=1-页面失效次数/页地址流长度
在本实验中,页地址流长度为320,页面失效次数为每次访问相应指令时,该指令所对应的页不在内存的次数。
(4)随机数产生办法,Linux或UNIX系统提供函数strand()和rand(),分别进行初始化和产生随机数。例如:srand ();语句可初始化一个随机数;
a[0]=10*rand()/65535*319+1;
a[1]=10*rand()/65535*a[0];
语句可用来产生a[0]与a[1]中的随机数。
结合所学内容对实验进行分析:
针对本实验首先需要把握住:
(1)命中率=1-页面失效次数/页地址流长度;(2)在本实验中,页地址流长度为320,页面失效次数为每次访问相应指令时,该指令所对应的页不在内存的次数;(3)随机数产生办法,Linux或UNIX系统提供函数strand()和rand(),分别进行初始化和产生随机数,这三个提示。
需要对算法有自己的理解:
(1)FIFO页面置换算法(先进先出算法):这个算法的基本思想是:总是先淘汰一些驻留在内存时间最长的页面,即先进入内存的页面先被置换掉。作业只要把进入内存的各个页面按进入的时间次序用链表链接起来,设定一个链表首指针指向进入内存最早的一个页面,新进入的页面放在链表的尾部,需要淘汰某一个页面时,总是淘汰替换指针所指向的页面即可。先进先出算法在程序按线性顺序访问逻辑地址空间时比较理想,否则效率不高。特别是在遇到循环执行的程序段时,往往会把频繁访问的页面,因其在内存驻留时间过长,而周期性地淘汰掉。
(2)OPT算法(最优算法):这是最理想的页面置换算法:从内存中移出以后不再使用的页面;如无这样的页面,则选择以后最长时间内不需要访问的页面。本算法因为页面访问的顺序是很难预知的,所以不是一种实际的方法。
(3)LRU算法(最近最久未使用算法):本算法的基本思想是:如果某一页被访问了,那么它很可能马上又被访问;反之,如果某一页很长时间没有被访问,那么最近也不太可能会被访问。这种算法考虑了程序设计的局部性原理。其实质是:当需要置换一页时,选择最近一段时间内最久未使用的页面予以淘汰。
(4)LRU近似算法:这种算法:只要在也表内设一个“引用位”,当存储分块表中的某一页被访问时,该位由硬件自动置1,并由也表管理软件周期性把所有引用位置0。这样,在一个时间周期T内,某些被访问过的页面其引用位为1,而未被访问过的页面其引用位为0.通过存储分块表循环查找引用为0的块,在查找过程中,那些被访问过的页所对应的引用位被重新置0.
(5)LFU算法(最少访问页面算法):本算法的原理是:要求在页面置换时置换引用计数最小的页面,因为经常使用的页应该有一个较大的引用次数。但是有些页在开始时使用次数很多,但以后就不再使用,这类页会长时间留在内存中,因此可以将引用计数寄存器定时右移一位,形成指数衰减的平均使用次数。此算法的特点是:因为在每一时间间隔内,只是用寄存器的一位来记录页的使用情况,因此,访问一次和访问10000次是等效的,次算法不能真正反映出页面的使用情况。
(6)NUR算法(最近最不经常使用算法):所谓“最近未使用”,首先是要对“近”作分界线,例如CPU最近的50次进程页面处理中,都没有处理到的页面。那么可以认为有以下三种情况①如果这样的页面只有一个,就将其置换出,放入需要处理的新页面;②如果有这样的页面多个,就在这些页面中任取一个置换出,放入需要处理的页面;③如果没有这样的页面,就随意置换出一个页面。此算法的特点是:有一个循环周期,每到达这个周期,所有页面存放是否被CPUI处理的信息的属性均被置于初始态。
2.(第七章):在可变分区管理方式下采用最先适应算法实现主存分配和实现主存回收。
提示:可变分区方式是按作业需要的主存空间大小来分割分区的。当要装入一个作业时,根据作业需要的主存量查看是否有足够的空闲空间,若有,则按需要量分割一个分区分配给该作业;若无,则作业不能装入。随着作业的装入、撤离,主存空间被分成许多个分区,有的分区被作业占用,而有的分区是空闲的。例如:
为了说明哪些区是空闲的,可以用来装入新作业,必须要有一张空闲区说明表,格式如下:
以上是关于操作系统存储管理实验课程设计报告的主要内容,如果未能解决你的问题,请参考以下文章