实验三存储管理

实验三存储管理

ID:46504883

大小:63.00 KB

页数:7页

时间:2019-11-24

实验三存储管理_第1页
实验三存储管理_第2页
实验三存储管理_第3页
实验三存储管理_第4页
实验三存储管理_第5页
资源描述:

《实验三存储管理》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验三存储管理1.实验目的本实验的目的是通过请求页式存储管理中页而置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式存储管理的页而置换算法,此外通过实验了解HASH表数据结构的使用。2.实验准备(1)数据结构HASH表杳找方式。(2)操作系统相关内存交换知识。⑶阅读Linux系统的msg.c、sem.c和shm.c等源码文件,掌握儿个LINUX函数getpid()、srand(inta)和intrand()的使用方法。3・实验内容设计一个虚拟存储区和内存工作区,并分别编程实现使用先进先出置换算法(FIFO)和最近最少使川页面置换算法(LRU)计算访问命屮率。4・

2、实验指导拥有页而交换机制的操作系统总是把当前进程中急需处理的部分页面换入到内存当中,而把更多暂吋不需处理的页而放置在外存当中,由于进程需要处理页而的顺序不同,而需要在内存与外存Z间进行页面交换,交换算法也就应运而牛。本实验并没有进入系统空间对实际进程页面进行控制,而是在用户空间用线性表的连续存储方式对进程页血交换进行的模拟。即首先用srand()和nmd()函数定义和产牛指令序列,然后将指令序列变换成相应的页地址流,并针对不同的算法计算出相应的命中率。。(1)FIFO算法实现v原理描述〉(1)在分配内存页面数(AP)小于进程页面数(PP)时,当然是最先的AP个页面放

3、入内存;(2)这时有需要处理新的页而,则将原理在内存中的AP个页而中最先进入的调出,然后放入新页面;(3)以后如果有新页面需要调入,按(2)之规则进行。算法特点:所使用的内存页面构成一个队列。V算法实现提示>要得到“命中率”,必然应该有一个i^mtotaljnstmction记录页面总共使用次数;此外需要一个变量记录总共换入页而的次数(需要换出页而,总是因为没有命中而产生的)diseffecto利用公式(1-diseffectltotal_instructiong)x100%可以得到命中率。[步骤1]初始化。设置两个数组pagcfap]和pagcconlrol[pp

4、]分别表示进程页[fii数和内存分配的页面数,并产生一个的随机数序列main[total_instruction](当然这个序列由page[]的下标随机构成),表示待处理的进程页血顺序,diseffect置零。[步骤2]看main]]中是否有下一个元素,有就山mainH中获取该页而下标,并转到⑶;没有,就转到⑺。[步骤3]如果该page业已在内存中,就转到⑵;否则就到(4),同时未命中的diseffect加1。[步骤4]观察pagecontrol是否占满,如果占满需将使用队列(⑹中建立的)屮最先进入的(就是队列第一个单元)pagecontrol单元清TW争二同吋将对

5、应的page[]单元置为“不在内存中[步骤5]将该page[]与pagecontrol[]建立关系(可以改变pagecontrol[]的标示位,也可以采用指针连接,总Z至少要使对应的pagecontrol单元包含两个信息:一是它被使用了,另外是哪个page[]单元使用的;page[]单元包含两个信息:对应的pagecontrol单元号、本page[]单元已在内存中)[步骤6]将川到的pagecontrol置入使川队列(这甲的队列当然是一种先进先出的数据结构了,而不是泛指),返回⑵;[步骤7]显示(1-diseffect/totaIinstruction^)x100%

6、,完成。v程序设计〉相关定义如下:1数据结构(1)页面类型typedefstruct)intpn,pfn,counter,time;}pl-lype;其中pn为页号,pfn为而号,counter为一个周期内访问该页而的次数,time为访问时间.(2)页面控制结构pfc>struct{intpn,pfn;structpfc_struct*next;}typedefstructpfc_structpfc_type;pfc_typepfc_struct[total_vp],*freepLhead,*busypLhead;pfc_type*busypLtail;其中pfc[

7、to(al_vp]定义用户进程虚页控制结构,*freepf_head为空页而头的指针,*busypf_head为忙页面头的指针,*busypf_tail为忙页面尾的指针.2.函数定义(1)voidinitialize():初始化函数,给每个相关的页而赋值.(2)voidFIFO():计算使用FIFO算法时的命中率.(3)voidLRU():计算使用LRU算法时的命中率.(4)voidOPT():计算使用OPT算法时的命中率.(5)voidLFU():计算使用LFU算法时的命中率.(6)voidNUR():i

8、-算使用NUR算法时的命中率.3.变量定义(1)int

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

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

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