操作系统分页式存储管理课程设计.doc

操作系统分页式存储管理课程设计.doc

ID:56097389

大小:227.86 KB

页数:20页

时间:2020-03-16

操作系统分页式存储管理课程设计.doc_第1页
操作系统分页式存储管理课程设计.doc_第2页
操作系统分页式存储管理课程设计.doc_第3页
操作系统分页式存储管理课程设计.doc_第4页
操作系统分页式存储管理课程设计.doc_第5页
资源描述:

《操作系统分页式存储管理课程设计.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、石家庄经济学院华信学院操作系统课程设计报告(学院)系:华信学院专业:计算机科学与技术姓名:班级:09级3班学号:40941708032指导教师:孟永刚2012年6月22日操作系统课程设计报告姓名宋攀学号409417080324日期2012年6月11-21号实验室机房2、3指导教师孟永刚设备编号设计题目虚拟存储器一、设计内容模拟分页式虚拟存储管理中硬件的地址转换和缺页中断,以及选择页面调度算法处理缺页中断。二、设计目的在计算机系统中,为了提高主存利用率,往往把辅助存储器(如磁盘)作为主存储器的扩充,使多道运行的作业的全部逻辑地址空间总和可以超出主存的绝对地址空间。用这种办法扩

2、充的主存储器称为虚拟存储器。通过本实习帮助同学们理解在分页式存储管理中怎样实现虚拟存储器。三、设计过程、同组人员:陈秀张德蛟1.数据结构设计本设计所用的数据结构包括:结构体和数组,详细描述如下:指令结构体如下typedefstruct{intpage_num;//页号intunit_num;//单元号}order;页表结构体如下typedefstruct{intpage_num;//页号intflag;//标志intmemery_num;//主存储块号intm_flag;//修改标志charlocation[4];//在磁盘上的位置}pageform;作业页表数组如下#de

3、fineC7pageforma[C];主存页表数组如下#defineC14pageformp[C1];2.算法设计1)该源程序分为以下几个模块:(1)主存初始化模块(2)页表初始化模块(3)打印初始化后的页表信息模块(4)地址转换和产生缺页中断模块(5)先进先出(FIFO)页面调度算法处理缺页中断模块2)对各模块进行详细说明:(1)主存初始化模块函数:memunit_init()入口参数:无出口参数:无功能描述:调入4个页面对4个空闲主存进行页面初始化,调入页面包括a[0],a[1],a[2],a[3];空闲主存包括p[0],p[1],p[2],p[3]。流程图如图1所示:

4、开始初始化内存各页表项结束图1主存初始化模块(2)页表初始化模块函数:page_init()入口参数:无出口参数:无功能描述:对作业页表表项初始化,包括对页面a[0],a[1],a[2],a[3],a[4],a[5],a[6]的初始化。流程图如下:开始初始化作业各页表项结束图2(3)打印页表信息函数:pageform_print()入口参数:无出口参数:无开始功能描述:打印初始化后的作业页表表项,对作业页表表项初始化,包括对页面a[0],a[1],a[2],a[3],a[4],a[5],a[6]的初始化;然后打印a[0],a[1],a[2],a[3],a[4],a[5],a

5、[6]各页表项。流程图如图3所示:初始化作业各页表项打印作业表各表项结束图3打印页表信息模块(4)地址转换和产生缺页中断模块函数:order1()入口参数:无出口参数:无功能描述:根据取出的指令的页号查找页表,如果该页的标志位=1就输出该页的绝对地址,否则发生缺页中断打印*页号。流程图如图4所示:是否是否取一条指令取指令中的访问的页号查页表形成绝对地址输出绝对地址输出“*”页号表示发生缺页中断取下一条指令开始该页标志=1有后继指令结束图4地址转换和产生缺页中断模块(5)先进先出(FIFO)页面调度算法处理缺页中断模块函数:order2()入口参数:无出口函数:无功能描述:根

6、据取出的指令的页号查找页表,在该页的标志位=1的前提下,如果是存命令,就置该页的修改标志位=1并且计算和输出该页的绝对地址,如果不是存命令,就只计算和输出该页的绝对地址;在该页的标志位=0的前提下,则模拟FIFO算法,k初始化为0,则执行把p[k]的各个表项分别赋值给j的各个表项,判断j页的修改标志是否为1,如果为1就输出OUTj并且输出INcmd.page_num,否则只输出INcmd.page_num,执行把cmd.page_num赋值给p[k].page_num,再执行k:=(k+1)modm,然后修改所有由于输入命令所引起的有关的页面各种表项,最后输出所有作业页面的

7、最新表项。流程图如图5所示:开始取一条指令cmd取指令中的页号cmd.page_num查页表是否页表标志位=1是存指令形成绝对地址否是置cmd.page_num页修改标志=1修改页表及p[k]并输出更新后的页表,k:=(k+1)modC1取下一条指令是否结束有后继指令否是输出"IN"cmd.page_num输出"OUT"j.page_numj的修改标志位=1j:=p[k]输出绝对地址图5先进先出(FIFO)页面调度算法处理缺页中断模块四、程序运行结果源程序代码链接:虚拟存储器.cpp1.执行程序后初始化的窗口截屏如

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

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

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