版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上页式存储管理一、实验目的:掌握分页式存储管理的基本概念和实现方法。要求编写一个模拟的分页式管理程序,并能对分页式存储的页面置换算法进行编写和计算各个算法的缺页率。二、程序设计:首先创建页面链指针数据结构,并设计页面映像表,采用数组的方法给定页面映像。申请缓冲区,将一个进程的逻辑地址空间划分成若干个大小相等的部分,每一部分称做页面或页。每页都有一个编号,叫做页号,页号从0开始依次编排,如0,1,2。设置等大小的内存块。初始状态:将数据文件的第一个页面装入到该缓冲区的第0块。设计页面置换算法,这里分别采用最佳页面置换算法OPT和最近最久未使用置换算法LRU,并分别计算它们
2、的缺页率,以比较它们的优劣。三、算法说明:执行程序时,当主存没有可用页面时,为了选择淘汰主存中的哪一页面,腾出1个空闲块以便存放新调入的页面。淘汰哪个页面的首要问题是选择何种置换算法。该程序采用人工的方法选择,依置换策略选择一个可置换的页,并计算它们的缺页率以便比较。/*分页式管理实验-源程序*/#include"stdio.h"#define N 16#define num 5 /*进程分配物理块数目*/int AN=1,2,3,4,5,6,7,8,5,2,3,2,7,8,1,4; /*页表映像*/typedef struct page int address; /*页面
3、地址*/ struct page *next; page;struct page *head,*run,*rear;void jccreat() /*进程分配物理块*/ int i=1; page *p,*q; head=(page *)malloc(sizeof(page); p=head; for(i=1;i<=num;i+) q=(page *)malloc(sizeof(page); p->next=q; q->address=0; q->next=NULL; p=q; rear=p;int search(int n) page *p; int i=0; p=h
4、ead; while(p->next) if(p->next->address=n) printf("Get it at the page %dn",i+1); run=p; return 1; p=p->next; i+; return 0;void changeOPT(int n,int position) int i; int total=0; int flag=1; int distancenum; int MAX; int order=0; page *p,*q; p=head->next; q=head->next; for(
5、i=0;i<num;i+) distancei=100; i=0; while(p) if(p->address=0) flag=0; break; p=p->next; i+; if(!flag) p->address=n; printf("Change the page %dn",i+1); else while(q) for(i=position;i<N;i+) if(q->address=Ai) distancetotal=i-position; total+; q=q->next; MAX=distance0; for(i
6、=0;i<num;i+) if(distancei>MAX) MAX=distancei; order=i; printf("Change the page %dn",order+1); i=0; while(p) if(i=order) p->address=n; i+; p=p->next; void changeLRU(int n) int i=0; int flag=1; page *p,*delect; p=head->next; while(p) if(p->address=0) flag=0; p->address=n
7、; printf("Change the page %dn",i+1); break; p=p->next; i+; if(flag) delect=head->next; head->next=delect->next; printf("Delect from the head, and add new to the end.n"); delect->address=n; rear->next=delect; rear=delect; rear->next=NULL; float OPT() int i; in
8、t lose=0; float losef; float percent; for(i=0;i<N;i+) if(search(Ai)=0) lose+; changeOPT(Ai,i); losef=lose; percent=1-(losef/N); return percent;float LRU() int i; int lose=0; float losef; float percent; page *p; for(i=0;i<N;i+) if(search(Ai)=0) lose+; changeLRU(Ai); else p=run->next; run->
9、;next=p->next; rear->next=p; rear=p; rear->next=NULL; printf("Move it to end of queue.n"); losef=lose; percent=1-(losef/N); return percent; main() /*主函数部分*/float percent; int choice; printf("Select the arithmetic:n(1)OPTn(2)LRUnyour choice is:"); scanf("%d",&choice);/*选择页面置换算法*/ jccreat(); /*创建进程*/ if(choice=1) /*采用OPT算法置换*/ percent=OPT(); /*计算OPT时的缺页率*/ printf("The percent of OPT is %f",percent); else if(choice=2) /*采用LRU算法置换*/ percent=LRU(); /*计算LRU时的缺页率*/ printf("The percent of OPT is %f",percent); else printf("Your
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年广州中医药大学动物实验中心招聘2名自聘合同制工作人员的备考题库及答案详解参考
- 2024年宁波前湾新区招聘事业编制教师考试真题
- 2025年5G通信基站建设运营模式研究行业报告
- 中电科发展规划研究院有限公司2026届校园招聘备考核心题库及答案解析
- 智能客服中心2025年建设可行性研究:人工智能技术应用与商业模式创新
- 生态养殖基地智能化升级方案2025年技术创新与智能养殖产业生态构建研究报告
- 2025年凉山彝族自治州普格县公安局公开招聘警务辅助人员的备考题库有答案详解
- 2025广西梧州市龙圩区招(补)录公益性岗位人员11人笔试重点题库及答案解析
- 2025西藏林芝市波密县公安局招聘临聘人员20人备考核心题库及答案解析
- 2025南平武夷矿产资源发展有限公司劳务派遣员工四次社会招聘7人考试重点题库及答案解析
- 2025天津大学管理岗位集中招聘15人模拟笔试试题及答案解析
- 2025江苏南通轨道交通集团有限公司运营分公司招聘40人备考笔试题库及答案解析
- 2025年华医网医学继续教育抗菌药物临床应用原则试题及答案
- 诈骗退款协议书范本
- 统编版五年级上册习作 我想对您说 教学课件
- 2025年度校长述职报告:守正中求变用心办好这所“小而美”的学校
- 2026陕西西安市延长石油(集团)有限责任公司高校毕业生招聘(公共基础知识)综合能力测试题附答案解析
- 国开电大《11192,11657高层建筑施工》期末答题库(机考字纸考)排序版
- 内蒙古自治区行政执法人员招聘笔试真题2024
- 2025年人社分局考试试题及答案
- 2025年骨干教师考试试题(含答案)
评论
0/150
提交评论