文档介绍:课程设计
课程设计名称: 操作系统课程设计
专业班级:
学生姓名:
学号:
指导教师:
课程设计时间:
专业课程设计任务书
学生姓名
专业班级
学号
题目
请求调页存储管理方式的模拟1
课题性质
其它
课题来源
自拟课题
指导教师
同组姓名
无
主要内容
1)假设每个页面中可存放10条指令,分配给作业的内存块数为4。
2)用c语言模拟一个作业的执行过程,该作业共有320条指令,即它的地址空间为32页,目前它的所有页都还未调入内存。在模拟过程中,如果所访问的指令已在内存,则显示其物理地址,并转下一条指令。如果所访问的指令还未装入内存,则发生缺页,此时需记录缺页的次数,并将相应页调入内存。如果4个内存块均已装入该作业,则需进行页面置换,最后显示其物理地址,并转下一条指令。
在所有320指令执行完毕后,请计算并显示作业运行过程中发生的缺页率。
3)置换算法:采用先进先出(FIFO)置换算法。
任务要求
通过对页面、页表、地址转换和页面置换过程的模拟,加深对请求调页系统的原理和实现过程的理解。
参考文献
任满杰等《操作系统原理实用教程》电子工业出版社 2006
汤子瀛《计算机操作系统》(修订版)西安电子科技大学出版社 2001
张尧学史美林《计算机操作系统教程》实验指导清华大学出版社 2000
罗宇等《操作系统课程设计》机械工业出版社 2005
审查意见
指导教师签字:
教研室主任签字: 年月日
说明:本表由指导教师填写,由教研室主任审核后下达给选题学生,装订在设计(论文)首页
1 需求分析
该设计使用C程序模拟请求调页存储管理方式,实现对页面、页表、地址转换和页面置换过程的模拟。要求能从终端接收需要分配给作业的内存块数,完成给定内存块数的作业模拟,在指令执行过程中能依次显示其物理地址,最后计算出作业运行的缺页率。另外要能对不同内存块数的作业模拟作出比较,分析它们的命中率有何不同,分析其规律。采用先进先出置换算法。
2 概要设计
假设每个页面中可存放10条指令,分配给作业的内存块数为4。用c语言模拟一个作业的执行过程,该作业共有320条指令,即它的地址空间为32页,目前它的所有页都还未调入内存。在模拟过程中,如果所访问的指令已在内存,则显示其物理地址,并转下一条指令。如果所访问的指令还未装入内存,则发生缺页,此时需记录缺页的次数,并将相应页调入内存。如果4个内存块均已装入该作业,则需进行页面置换,最后显示其物理地址,并转下一条指令。在所有320指令执行完毕后,请计算并显示作业运行过程中发生的缺页率。置换算法:采用先进先出(FIFO)置换算法。
通过随机数产生一个指令序列,共320条指令。指令的地址按下述原则生成:
① 50%的指令是顺序执行的;
② 25%的指令是均匀分布在前地址部分;
③ 25%的指令是均匀分布在后地址部分;
具体的实施方法是:
①在[0,319]的指令地址之间随机选取一起点m;
②顺序执行一条指令,即执行地址为m+1的指令;
③在前地址[0,m+1]中随机选取一条指令并执行,该指令的地址为m′;
④顺序执行一条指令,其地址为m′+1的指令;
⑤在后地址[m′+2,319]中随机选取一条指令并执行;
⑥重复上述步骤①~⑤,直到执行320次指令。
将指令序列变换为页地址流
①设页面大小为1K;
②用户内存容量为4页到32页;
③用户虚存容里为32K。
在用户虚存中,按每K存放10条指令排列虚存地址,即320条指令在虚存中的存放方式为:
第0条~第9条指令为第0页(对应虚存地址为[0,9]);
第10条~第19条指令为第1页(对应虚存地址为[10,19]);
……
……
第310条~第319条指令为第31页(对应虚存地址为[310,319])。
按以上方式,用户指令可组成32页。
计算先进先出(FIFO)算法在不同内存容量下的命中率。
其中,命中率=1-页面失效次数/页地址流长度
3 运行环境
硬件环境
PC
软件环境
(1)Windows XP
(2)Microsoft Visual C++
4 开发工具和编程语言
开发工具
Microsoft Visual C++
编程语言
C语言
5 详细设计
全局变量的宏定义
#define INVALID -1
#define total_instruction 320 /* 指令流长*/
#define total_vp 32 /* 虚页长*/
页面的数据结构
typedef struct{ //定义页面类型