实验4内存管理

实验4内存管理

ID:46504157

大小:55.00 KB

页数:7页

时间:2019-11-24

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

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

1、实验4内存管理一.实验目的请求页式存储管理屮常用页面置换算法模拟,领会操作系统对内存的调度管理。1・实验内容假设有一程序某次运行访问的页面依次是:0,1,2,4,3,4,5,1,2,5,123,4,5,6,试计算当内存为4〜20页时,下列不同页面调度算法的命中率(命中率=1-缺页中断次数/总页数)。①先进先出算法(FIFO);#include#defineINVALID-1#defineN16#defineTOTAL_VP9严虚拟内存页*/typedefstruct{intpn

2、;〃页号intpfn;〃块号如果为INVALID,表示该页不在内存intcounter;〃访问次数inttime;〃访问的时间}pLtype;严物理块链表*/typedefstructpfc_struct{intpn;〃页号intpfn;〃块号structpfc_struct*next;}pfc_type;pfc_typepfc[20];//物理块pfc_type*freepf_h;〃空闲物理块链表的第一个结点pfc_type*busypf_t,*busypf_h;〃忙状态的物理块链表第一个结点

3、和最后一个结点pl.typepl[TOTAL.VP1;〃假设进程有9个页intpage[N]={0,l,2,4,3,4,5,1,2,5,123,4,5,6};〃访问串intdiseffect;〃缺页中断次数voidinitialize(intpfs)//初始化{inti;diseffect=O;〃对页数组进行初始化for(i=0;i

4、}〃空闲物理块链表的头结点指向物理块数组的笫一个元素,因为刚开始所有的物理页面都是空闲的freepf_h=&pfc[O];//对物理块数组进程初始化,数组中相连的两个元素同吋也是空闲块链表中相邻的两个节点for(i=0;i

5、ntpfs){inti;pfc_type*p;initialize(pfs);busypf_h=busypf_t=NULL;for(i=0;i

6、先调入的节点严///p指向busypf_h的第二个节点p=busypLh->next;〃把该物理块所装的虚拟页状态设置INVALID,也就是淘汰该虚拟页pl[busypf_h->pn].pfn=INVALID;〃将freepf_h指向忙链表的第一个节点,该节点从忙链表移到空闲链表freepfLh=busypfLh;〃把第一个节点从忙链表中断开freepCh->next=NULL;〃把busypf_h指向第二个节点,因为第一个节点已经移动到空闲链表busypL.h=p;}〃p指向空闲链表的笫二个节

7、点p=freepf_h->next;freepf_h->next=NULL;〃把page[i]页装入空闲链表的第一个节点freepLh・>pn二page[i];〃把物理块号保存到虚拟页的pfn变量中pl[pagefi]].pfn=freepf_h->pfn;〃把空闲链表的第一个结点加入到忙链表的末尾if(busypf_t==NULL)busypLh=busypfLt=freepf_h;else{busypfLt->next=freepf_h;busypfLt=freepfLh;}//freepf

8、.h指向第二个节点(第一个节点己经移动到忙链表中)freepLh=p;1}printf("FIFO%d:%6.4f”,pfs,1-(float)diseffect/N);}intmain(){inti;for(i=4;i<=20;i++){fifo(i);}}结果:Lroot@zbhuang~」#・/4一1FIF04:0.3750FIF05:0.5625FIF06:0.5625FIF07:0.5625FIF08:0.5625FIFO9:0.5625FIF010:0.5625FIF011:0.

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

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

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