动态页式存储管理的模拟实现C语言(共7页).doc
《动态页式存储管理的模拟实现C语言(共7页).doc》由会员分享,可在线阅读,更多相关《动态页式存储管理的模拟实现C语言(共7页).doc(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上在内存划出一块区域,并进行页面划分;设计请求页表;模拟页面分配;分别模拟“先进先出页面淘汰算法FIFO”、“最近最少使用页面淘汰算法LRU”和“理想型淘汰算法OPT”本程序随机产生请求序列,分别模拟FIFO,LRU,OPT三种算法。将结果保存在FIFO.txt,LRU.txt,OPT.txt三个文件中。程序代码:#include#include#include#define N 20#define P 3struct DuLNodeint data;struct DuLNode *prior;struct DuLNode *next;int pageFIFON+1;i
2、nt front=0,rear=0;int pageingN+1,pmemP+1;int memcount=1;void init(int a,int T)int i;for(i=0;i=T;i+)ai=-2;int insert_item(int item,int queue,int T)if(rear+1)%(T+1)=front)return 1;queuerear=item;rear=(rear+1)%(T+1);return 0;int remove_item(int *item,int queue,int T)if(front = rear)return 1;*item=queue
3、front;front=(front+1) % (T+1);return 0;int findif(int a,int b,int T)int i;for(i=1;i=T;i+)if(ai=b)return i;return -1;void insertintomem(int a,int b,int n)if(memcount=P)amemcount=b;memcount+;elsean=b;void initpage(int page)int temp,i;srand(unsigned)time(0);for(i=1;idata=e;add-prior=p-prior;p-prior-nex
4、t=add;add-next=p;p-prior=add;int getI(struct DuLNode *p,int e)int i;struct DuLNode *cd=p;for(i=1;i+)cd=cd-next;if(cd-data=e)return i;if(cd=p)return -1;void deleLink(struct DuLNode *p,int i,int *e)int n;struct DuLNode *cd=p;for(n=1;nnext;*e=cd-data;cd-prior-next=cd-next;cd-next-prior=cd-prior;free(cd
5、);void removebottom(struct DuLNode *p,int *e)struct DuLNode *cd=p-next;*e=cd-data;cd-next-prior=p;p-next=cd-next;free(cd);int getcount(int a,int b,int n,int T)int i;for(i=n;i=T;i+)if(ai=b)return (i-n); return -1;void getreplacepage(int a,int b,int i,int *e)int t,cP+1,temp,T,count=0,errorP+1;for(t=1;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 动态 存储 管理 模拟 实现 语言
限制150内