操作系统课程设计3.doc
《操作系统课程设计3.doc》由会员分享,可在线阅读,更多相关《操作系统课程设计3.doc(18页珍藏版)》请在三一办公上搜索。
1、计算机科学与应用系课程设计报告操作系统原理姓名徐光辉学号111096135指导教师齐艳科专业计算机科学与技术日期2012年5月25日成 绩题目1. 请求调页存储管理2. Bochs虚拟机、Minix操作系统的安装、运行及退出指导教师评语题目一:请求调页存储管理一、实验目的通过对页面、页表、地址转换和页面置换过程的模拟,加深对请求调页系统的原理和实现过程的理解。二、实验内容1假设每个页面中可存放10条指令,分配给作业的内存块数为4。2用C语言或C+语言模拟一个作业的执行过程,该作业共有320条指令,即它的地址空间为32页,目前它的所有页都还未调入内存。在模拟过程中,如果所访问的指令已在内存,则显
2、示其物理地址,并转下一条指令。如果所访问的指令还未装入内存,则发生缺页,此时需记录缺页的次数,并将相应页调入内存。如果4个内存块均已装入该作业,则需进行页面置换,最后显示其物理地址,并转下一条指令。在所有320指令执行完毕后,请计算并显示作业运行过程中发生的缺页率。3置换算法:请分别考虑最佳置换算法(OPT)、先进先出(FIFO)算法和最近最久未使用(LRU)算法。4作业中指令的访问次序按下述原则生成;50%的指令是顺序执行的;25%的指令是均匀分布在前地址部分;25%的指令均匀分布在后地址部分。具体的实现办法是:(1)在0,319之间随机选取一条起始执行指令,其序号为m;(2)顺序执行下一条
3、指令,其序号为m+1条指令;(3)通过随机数,跳转到前地址部分0,m-1中的某条指令处,其序号为m1;(4)顺序执行下一条指令,即序号为m1+1的指令;(5)通过随机数,跳转到后地址部分m1+2,319中的某条指令处,其序号为m2;(6)顺序执行下一条指令,则序号为m2+1的指令;(7)重复跳转到前地址部分,顺序执行,跳转到后地址部分;顺序执行的过程,直至执行320条指令。三、程序代码#include #include#include#include#define Bsize 4typedef struct BLOCK/声明一种新类型物理块类型 int pagenum;/页号int acces
4、sed;/访问字段,其值表示多久未被访问BLOCK;int pc;/程序计数器,用来记录指令的序号int n;/缺页计数器,用来记录缺页的次数static int temp320;/用来存储320条随机数BLOCK blockBsize; /定义一大小为4的物理块数组/*void init(); /程序初始化函数int findExist(int curpage);/查找物理块中是否有该页面int findSpace();/查找是否有空闲物理块int findReplace();/查找应予置换的页面void display();/显示void suijishu();/产生320条随机数,显示并
5、存储到temp320void pagestring();/显示调用的页面队列void OPT();/OPT算法/-void init() for(int i=0;iBsize;i+) blocki.pagenum=-1; blocki.accessed=0; pc=n=0; /-int findExist(int curpage) for(int i=0; iBsize; i+)if(blocki.pagenum = curpage ) return i;/检测到内存中有该页面,返回block中的位置 return -1;/-int findSpace() for(int i=0; iBsiz
6、e; i+) if(blocki.pagenum = -1) return i;/找到空闲的block,返回block中的位置 return -1;/-int findReplace() int pos = 0; for(int i=0; iblockpos.accessed) pos = i;/找到应予置换页面,返回BLOCK中位置 return pos;/-void display() for(int i=0; iBsize; i+) if(blocki.pagenum != -1) printf( %02d,blocki.pagenum); coutpc; cout*按照要求产生的320
7、个随机数:*endl; for(int i=0;i320;i+) tempi=pc;if(flag%2=0) pc=+pc%320; if(flag=1) pc=rand()% (pc-1); if(flag=3) pc=pc+1+(rand()%(320-(pc+1); flag=+flag%4;printf( %03d,tempi); if(i+1)%10=0) coutendl; /-void pagestring() for(int i=0;i320;i+) printf( %02d,tempi/10); if(i+1)%10=0) coutendl;/-void OPT()int e
8、xist,space,position ;int curpage; for(int i=0;i320;i+) /if(i%100=0) getch();pc=tempi; curpage=pc/10; exist = findExist(curpage); if(exist=-1)space = findSpace(); if(space != -1)blockspace.pagenum = curpage; display(); n=n+1; elsefor(int k=0;kBsize;k+)for(int j=i;j320;j+)if(blockk.pagenum!= tempj/10)
9、 blockk.accessed = 1000; /将来不会用,设置为一个很大数 elseblockk.accessed = j;break; position = findReplace(); blockposition.pagenum = curpage; display(); n+;cout缺页次数:nendl;cout缺页率:(n/320.0)*100%endl;/-void main() int select; cout请输入第一条指令号(0320):; suijishu(); cout*对应的调用页面队列*endl; pagestring(); cout最佳置换算法OPT:endl
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 课程设计

链接地址:https://www.31ppt.com/p-4193045.html