操作系统课设页式存储系统地址转换
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计
题目模拟设计页式存储管理中地址转换学院计算机科学与技术学院
专业计算机科学与技术专业
班级
姓名
指导教师汪祥莉
2012 年 1 月10 日
课程设计任务书
学生姓名:专业班级:
指导教师:汪祥莉工作单位:计算机科学与技术学院题目: 模拟设计页式存储管理中地址转换
初始条件:
1.预备内容:阅读操作系统的内存管理章节内容,理解页式存储管理的思想及相应的分配主存的过程。
2.实践准备:掌握一种计算机高级语言的使用。
要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体
要求)
1.实现页式存储管理中逻辑地址到物理地址的转换。
能够处理以下的情形:页式逻辑地址可以输入十进制或者十六进制,能检查地址的合法性,如果合法进行转换,否则显示“地址非法”;物理地址能够分别用十进制和十六进制表示。
2.设计报告内容应说明:
⑴课程设计目的与功能;
⑵需求分析,数据结构或模块说明(功能与框图);
⑶源程序的主要部分;
⑷测试用例,运行结果与运行情况分析;
⑸自我评价与总结:
i)你认为你完成的设计哪些地方做得比较好或比较出色;
ii)什么地方做得不太好,以后如何改正;
iii)从本设计得到的收获(在编写,调试,执行过程中的经验和教训);
iv)完成本题是否有其他的其他方法(如果有,简要说明该方法);
v)对实验题的评价和改进意见,请你推荐设计题目。
时间安排:
设计安排一周:周1、周2:完成程序分析及设计。
周2、周3:完成程序调试及测试。
周4、周5:验收、撰写课程设计报告。
(注意事项:严禁抄袭,一旦发现,抄与被抄的一律按0分记)
指导教师签名:年月日
系主任(或责任教师)签名:年月日
目录
1.摘要 (4)
2.设计目的与基本要求 (4)
3.程序设计模块说明 (5)
3.1主要定义变量说明 (5)
3.2程序设计思路 (5)
3.2.1程序语言的选择 (5)
3.2.1操作系统中页式存储系统的地址转换图 (5)
3.2.2地址转换流程图 (6)
3.2.2程序设计流程图 (7)
3.3程序主要语句和数据结构 (8)
4.程序调试与运行结果 (8)
4.1程序运行开始界面 (8)
4.2设置内存分页 (9)
4.3输入进程分块数目并生成随机页表 (9)
4.4输入十进制逻辑地址并转换成物理地址 (10)
4.5输入十六进制逻辑地址并转换成物理地址 (10)
4.6程序结束 (10)
5. 自我评价与总结 (11)
6.附录:程序主要部分 (11)
1.摘要
页表的功能可以由一组专门的寄存器来实现。
一个页表项一个寄存器。
由于寄存器具有较高的访问速度,因而有利于提高地址变换的速度;但由于寄存器成本较高,且大多数现在计算机的页表又可能很大,是页表项的总数可达几千甚至几十万个,显然这些页表项不可能都用寄存器来实现,因此,页表大多驻留在内存中。
在系统中只设置页表寄存器PTR(Page-Table-Register),在其中存放页表在的内存的始址和页表的长度。
平时,进程为执行时,页表的始址和页表长度存放在本进程的PCB中。
当调度程序调度到某进程时,才将这两个数据装入页表寄存器中。
因此,在单处理机环境下,虽然系统中可以运行多个进程,但只需一个页表寄存器。
当进程要访问某个逻辑地址中的数据时,分页地址变换机构会自动地将有效地址(相对地址)分为页号页内地址两部分,再以页号为索引去检索页表。
查找操作由硬件执行。
在执行检索之前,先将页号与页表长度进行比较,如果页号大于或等于页表长度,则表示本次所访问的地址已超越进程的地址空间。
于是,这一错误将被系统发现并产生一地址越界中断。
若未出现越界错误,则将页表始址与页号和页表项长度的乘积相加,便得到该表项在页表中的位置,于是可从中得到该页的物理块号,将之装入物理地址寄存器中。
与此同时,再将有效地址寄存器中的页内地址送入物理地址寄存器的块内地址字段中。
这样便完成了从逻辑地址到物理地址的变换。
在内存的管理的分页管理中,进程的存放是分为若干页的,这些可能存放在连续的内存中,也可能存放在不联系的内存中。
进程所分的页的大小与内存中块的大小相同。
在页表中存放着页与内存块的对应关系,调度进程时要先访问页表,将所需的页调入内存才能执行。
2.设计目的与基本要求
本课程设计是学生学习完《计算机操作系统》课程后,进行的一次全面的综合训练,通过课程设计,让学生更好地掌握操作系统的原理及实现方法, 实现操作系统页式存储系统管理中地址转换的问题,加深对操作系统基础理论和重要算法的理解,加强学生的动手能力。
实现页式存储管理中逻辑地址到物理地址的转换。
能够处理以下的情形:页式逻辑地址可以输入十进制或者十六进制,能检查地址的合法性,如果合法进行转换,否则显示“地址非法”;物理地址能够分别用十进制和十六进制表示。
3.程序设计模块说明
3.1主要定义变量说明
Memory 内存总容量大小
Pagesize 内存分页大小
Pagen 内存页面总数
N 进程分块数
Adresslo 输入的逻辑地址
Adressp 对应的页面号
Adressw 偏移地址
Adressc 对应的物理地址
X 选择输入数的进制变量
again1 程序重新运行控制变量
again2 随机页表重新生成控制变量
again3 重新输入进行地址转换控制变量
3.2程序设计思路
3.2.1程序语言的选择
该程序采用java编写,因为考虑到java的强大包库可以拿来使用,所以为是程序看起来更容易理解,部分功能使用特殊的函数解决。
3.2.1操作系统中页式存储系统的地址转换图
图 3.1 操作系统中页式存储系统的地址转换图
图 3.2 地址转换流程图
3.3程序主要语句和数据结构
int pglist[] 整型一维数组作为存储页表的结构,其中下标表示页号,对应下标存储的整型数为该页号对应的页面号
while / do while 循环语句用于输入合法性判断以及是否多次运行代码段的判断
for 循环语句用于int pglist[]表示的页表随机生成过程以及页表的输出显示
Integer.toHexString(int) 函数用于将十进制整型数转换成十六进制字符串型数
Integer.parseInt(str, 16) 函数用于将十六进制字符串型数转换成十进制整型数
4.程序调试与运行结果
4.1程序运行开始界面
图 4.1 程序运行开始界面图
4.2设置内存分页
图 4.2 设置内存分页4.3输入进程分块数目并生成随机页表
图4.3生成随机页表
4.4输入十进制逻辑地址并转换成物理地址
图 4.4 十进制逻辑地址的转换
4.5输入十六进制逻辑地址并转换成物理地址
图 4.5 十六进制逻辑地址的转换
4.6程序结束
图 4.6 程序结束
5. 自我评价与总结
对于此次课程设计,我早就开始准备了,提前做好了充分的准备,把课本仔细的读了几遍,还在图书馆找了相关的参考书籍,因此此次课设能够很顺利的完成
以前做过的软件方面的课设如C++语言课设、数据结构课设,由于自己总是在写程序之前做好充分的准备,因此每次都很顺利,而且成绩也不错。
对于课程设计,我历来都是相当认真的,此次操作系统的课程设计当然也不例外。
可是关于内存的没怎么接触过,所以需要花费更多的时间来准备基础知识。
6.附录:程序主要部分
代码在另一个文档
本科生课程设计成绩评定表
班级:姓名:学号:
及格(60-69分)、60分以下为不及格
指导教师签名:
2012 年1月日。