操作课设页式存储地址转换.docx

上传人:b****5 文档编号:12149651 上传时间:2023-04-17 格式:DOCX 页数:12 大小:178.21KB
下载 相关 举报
操作课设页式存储地址转换.docx_第1页
第1页 / 共12页
操作课设页式存储地址转换.docx_第2页
第2页 / 共12页
操作课设页式存储地址转换.docx_第3页
第3页 / 共12页
操作课设页式存储地址转换.docx_第4页
第4页 / 共12页
操作课设页式存储地址转换.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

操作课设页式存储地址转换.docx

《操作课设页式存储地址转换.docx》由会员分享,可在线阅读,更多相关《操作课设页式存储地址转换.docx(12页珍藏版)》请在冰豆网上搜索。

操作课设页式存储地址转换.docx

操作课设页式存储地址转换

学号:

课程设计

 

题目

模拟设计页式存储管理中地址转换

学院

计算机科学与技术学院

专业

计算机科学与技术专业

班级

姓名

指导教师

汪祥莉

 

2012

1

10

课程设计任务书

学生姓名:

专业班级:

指导教师:

汪祥莉工作单位:

计算机科学与技术学院

题目:

模拟设计页式存储管理中地址转换

初始条件:

1.预备内容:

阅读操作系统的内存管理章节内容,理解页式存储管理的思想及相应的分配主存的过程。

2.实践准备:

掌握一种计算机高级语言的使用。

要求完成的主要任务:

(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)

1.实现页式存储管理中逻辑地址到物理地址的转换。

能够处理以下的情形:

页式逻辑地址可以输入十进制或者十六进制,能检查地址的合法性,如果合法进行转换,否则显示“地址非法”;物理地址能够分别用十进制和十六进制表示。

2.设计报告内容应说明:

⑴课程设计目的与功能;

⑵需求分析,数据结构或模块说明(功能与框图);

⑶源程序的主要部分;

⑷测试用例,运行结果与运行情况分析;

⑸自我评价与总结:

)你认为你完成的设计哪些地方做得比较好或比较出色;

)什么地方做得不太好,以后如何改正;

)从本设计得到的收获(在编写,调试,执行过程中的经验和教训);

)完成本题是否有其他的其他方法(如果有,简要说明该方法);

)对实验题的评价和改进意见,请你推荐设计题目。

时间安排:

设计安排一周:

周1、周2:

完成程序分析及设计。

周2、周3:

完成程序调试及测试。

周4、周5:

验收、撰写课程设计报告。

(注意事项:

严禁抄袭,一旦发现,抄与被抄的一律按0分记)

 

指导教师签名:

年月日

系主任(或责任教师)签名:

年月日

目录

1.摘要3

2.设计目的与基本要求4

3.程序设计模块说明4

3.1主要定义变量说明4

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.2地址转换流程图

图3.2地址转换流程图

3.2.2程序设计流程图

图3.3程序设计流程图

3.3程序主要语句和数据结构

intpglist[]整型一维数组作为存储页表的结构,其中下标表示页号,对应下标存储的整型数为该页号对应的页面号

while/dowhile循环语句用于输入合法性判断以及是否多次运行代码段的判断

for循环语句用于intpglist[]表示的页表随机生成过程以及页表的输出显示

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.附录:

程序主要部分

代码在另一个文档

 

本科生课程设计成绩评定表

班级:

 姓名:

  学号:

序号

评分项目

满分

实得分

1

学习态度认真、遵守纪律

10

2

设计分析合理性

10

3

设计方案正确性、可行性、创造性

20

4

设计结果正确性

40

5

设计报告的规范性

10

6

设计验收

10

总得分/等级

评语:

注:

最终成绩以五级分制记。

优(90-100分)、良(80-89分)、中(70-79分)、

及格(60-69分)、60分以下为不及格

 

                    指导教师签名:

                  2012年1月 日

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教学研究 > 教学案例设计

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1