1、操作课设页式存储地址转换学 号: 课 程 设 计题 目模拟设计页式存储管理中地址转换学 院计算机科学与技术学院专 业计算机科学与技术专业班 级姓 名指导教师汪祥莉2012年1月10日课程设计任务书学生姓名: 专业班级: 指导教师: 汪祥莉 工作单位: 计算机科学与技术学院 题 目: 模拟设计页式存储管理中地址转换初始条件:1预备内容:阅读操作系统的内存管理章节内容,理解页式存储管理的思想及相应的分配主存的过程。2实践准备:掌握一种计算机高级语言的使用。要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1实现页式存储管理中逻辑地址到物理地址的转换。能够处理以下的情
2、形:页式逻辑地址可以输入十进制或者十六进制,能检查地址的合法性,如果合法进行转换,否则显示“地址非法”;物理地址能够分别用十进制和十六进制表示。2设计报告内容应说明: 课程设计目的与功能; 需求分析,数据结构或模块说明(功能与框图); 源程序的主要部分; 测试用例,运行结果与运行情况分析; 自我评价与总结:)你认为你完成的设计哪些地方做得比较好或比较出色;)什么地方做得不太好,以后如何改正;)从本设计得到的收获(在编写,调试,执行过程中的经验和教训);)完成本题是否有其他的其他方法(如果有,简要说明该方法);)对实验题的评价和改进意见,请你推荐设计题目。时间安排:设计安排一周:周1、周2:完成
3、程序分析及设计。周2、周3:完成程序调试及测试。周4、周5:验收、撰写课程设计报告。(注意事项:严禁抄袭,一旦发现,抄与被抄的一律按0分记) 指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日目录1.摘 要 32.设计目的与基本要求 43.程序设计模块说明 43.1主要定义变量说明 43.2程序设计思路 53.2.1程序语言的选择 53.2.1操作系统中页式存储系统的地址转换图 53.2.2地址转换流程图 63.2.2程序设计流程图 73.3程序主要语句和数据结构 84.程序调试与运行结果 84.1程序运行开始界面 84.2设置内存分页 94.3输入进程分块数目并生成随机页表 9
4、4.4输入十进制逻辑地址并转换成物理地址 104.5输入十六进制逻辑地址并转换成物理地址 104.6程序结束 105. 自我评价与总结 116.附录:程序主要部分 111.摘 要页表的功能可以由一组专门的寄存器来实现。一个页表项一个寄存器。由于寄存器具有较高的访问速度,因而有利于提高地址变换的速度;但由于寄存器成本较高,且大多数现在计算机的页表又可能很大,是页表项的总数可达几千甚至几十万个,显然这些页表项不可能都用寄存器来实现,因此,页表大多驻留在内存中。在系统中只设置 页表寄存器PTR(Page-Table-Register),在其中存放页表在的内存的始址和页表的长度。平时,进程为执行时,页
5、表的始址和页表长度存放在本进程的PCB中。当调度程序调度到某进程时,才将这两个数据装入页表寄存器中。因此,在单处理机环境下,虽然系统中可以运行多个进程,但只需一个页表寄存器。当进程要访问某个逻辑地址中的数据时,分页地址变换机构会自动地将有效地址(相对地址)分为页号页内地址两部分,再以页号为索引去检索页表。查找操作由硬件执行。在执行检索之前,先将页号与页表长度进行比较,如果页号大于或等于页表长度,则表示本次所访问的地址已超越进程的地址空间。于是,这一错误将被系统发现并产生一地址越界中断。若未出现越界错误,则将页表始址与页号和页表项长度的乘积相加,便得到该表项在页表中的位置,于是可从中得到该页的物
6、理块号,将之装入物理地址寄存器中。与此同时,再将有效地址寄存器中的页内地址送入物理地址寄存器的块内地址字段中。这样便完成了从逻辑地址到物理地址的变换。在内存的管理的分页管理中,进程的存放是分为若干页的,这些可能存放在连续的内存中,也可能存放在不联系的内存中。进程所分的页的大小与内存中块的大小相同。在页表中存放着页与内存块的对应关系,调度进程时要先访问页表,将所需的页调入内存才能执行。2.设计目的与基本要求本课程设计是学生学习完计算机操作系统课程后,进行的一次全面的综合训练,通过课程设计,让学生更好地掌握操作系统的原理及实现方法, 实现操作系统页式存储系统管理中地址转换的问题 ,加深对操作系统基
7、础理论和重要算法的理解,加强学生的动手能力。实现页式存储管理中逻辑地址到物理地址的转换。能够处理以下的情形:页式逻辑地址可以输入十进制或者十六进制,能检查地址的合法性,如果合法进行转换,否则显示“地址非法”;物理地址能够分别用十进制和十六进制表示。3.程序设计模块说明3.1主要定义变量说明Memory 内存总容量大小Pagesize 内存分页大小Pagen 内存页面总数N 进程分块数Adresslo 输入的逻辑地址Adressp 对应的页面号Adressw 偏移地址Adressc 对应的物理地址X 选择输入数的进制变量again1 程序重新运行控制变量again2 随机页表重新生成控制变量ag
8、ain3 重新输入进行地址转换控制变量3.2程序设计思路3.2.1程序语言的选择该程序采用java编写,因为考虑到java的强大包库可以拿来使用,所以为是程序看起来更容易理解,部分功能使用特殊的函数解决。 3.2.1操作系统中页式存储系统的地址转换图图 3.1 操作系统中页式存储系统的地址转换图3.2.2地址转换流程图图 3.2 地址转换流程图 3.2.2程序设计流程图否 图 3.3 程序设计流程图 3.3程序主要语句和数据结构int pglist 整型一维数组作为存储页表的结构,其中下标表示页号,对应下标存储的整型数为该页号对应的页面号while / do while 循环语句用于输入合法性
9、判断以及是否多次运行代码段的判断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.
10、5 十六进制逻辑地址的转换4.6程序结束图 4.6 程序结束5. 自我评价与总结对于此次课程设计,我早就开始准备了,提前做好了充分的准备,把课本仔细的读了几遍,还在图书馆找了相关的参考书籍,因此此次课设能够很顺利的完成以前做过的软件方面的课设如C+语言课设、数据结构课设,由于自己总是在写程序之前做好充分的准备,因此每次都很顺利,而且成绩也不错。对于课程设计,我历来都是相当认真的,此次操作系统的课程设计当然也不例外。可是关于内存的没怎么接触过,所以需要花费更多的时间来准备基础知识。6.附录:程序主要部分代码在另一个文档本科生课程设计成绩评定表班级: 姓名: 学号: 序号评分项目满分实得分1学习态度认真、遵守纪律102设计分析合理性103设计方案正确性、可行性、创造性204设计结果正确性405设计报告的规范性106设计验收10总得分/等级评语:注:最终成绩以五级分制记。优(90-100分)、良(80-89分)、中(70-79分)、及格(60-69分)、60分以下为不及格指导教师签名: 2012 年 1月 日
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1