操作系统课程设计 基本分段存储管理系统

上传人:jiups****uk12 文档编号:40362358 上传时间:2018-05-26 格式:DOC 页数:9 大小:142.50KB
返回 下载 相关 举报
操作系统课程设计 基本分段存储管理系统_第1页
第1页 / 共9页
操作系统课程设计 基本分段存储管理系统_第2页
第2页 / 共9页
操作系统课程设计 基本分段存储管理系统_第3页
第3页 / 共9页
操作系统课程设计 基本分段存储管理系统_第4页
第4页 / 共9页
操作系统课程设计 基本分段存储管理系统_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《操作系统课程设计 基本分段存储管理系统》由会员分享,可在线阅读,更多相关《操作系统课程设计 基本分段存储管理系统(9页珍藏版)》请在金锄头文库上搜索。

1、操作系统原理及应用课程设计报告基本分段存储管理系统学院(系): 计算机科学与工程学院 班 级: 0837-2 学号 学生姓名: 郭小波 同组设计者: 指导教师: 时间:时间: 从从 2011 年年 01 月月 03 日日 到到 2011 年年 01 月月 07 日日一、一、课程设计的目的课程设计的目的操作系统课程设计是重要的实践课程,课程开设的目的是让学生学习完计算机操作 系统课程后,进行一次全面的综合训练,让学生更好地掌握操作系统的原理及实现方法, 加深对操作系统基础理论和重要算法的理解,加强学生的动手能力。二、二、课程设计的内容及要求课程设计的内容及要求基本分段存储管理系统的设计 要求:(

2、1)建立段表 (2)设计地址变换机构 (3)将变换后的结果显示出来三、三、实验原理实验原理为了实现从进程的逻辑地址到物理地址的变换功能,在系统中设置了段表寄存器,用 于存放段首地址,段长和段表长度 TL。首先建立段表,段表内容包括段首地址,段长和段 表长度。在建立段表时,应判断段表地址是否冲突(如第一个段的首地址为 1,段长为 50,在建立第二个段的时候,段首地址应大于 1+50) ,若不冲突,该段建立成功,否则重 新建立该段。然后进行地址变换,在进行地址变换时,系统将逻辑地址中的段号与段表长 度进行比较。若 STL,表示段号太大,是访问越界,于是产生越界中断信号;若未越界, 则根基段表的首地

3、址和该段的段号,计算出该段在在段表项的位置,从中读出该段在内存 中的首地址,然后,再检查,段内地址 d 是否超过该段的段长 SL。若超过,即 dSL,同 样发出越界中断信号;若未越界则将该段的基址与段内地址相加,即可得到要访问内存的 物理地址。最后,再将得到的物理地址显示出来。四、四、地址换算变换过程结构地址换算变换过程结构五、关键算法实现流程图五、关键算法实现流程图段号是否大于段 表长度开始输入段号 和段内地 址段内地址是否大 于对应段段长越界中断越界中断物理地址=段首 地址+段内地址输出物理 地址结束地址换算程序流程图六、程序代码六、程序代码/*#include#includetypede

4、f struct segtable /段表结构说明int segadd256;/段首地址int seglen256;/段长int len;/表的长度segtable;struct segtable st;/定义一个段表/*/段表的建立void create()char ch;int i=0;printf(“建立段表n“);st.len=0;printf(“请输入第 1 个段首地址:“);scanf(“%d“,printf(“请输入第 1 个段的长度:“);scanf(“%d“,st.len=1;i=1;while(ist.len)printf(“段号%d 大于段表长度%d,越界中断n“,sn,

5、st.len);return 0;else if(sdst.seglensn-1)printf(“段内地址%d 大于段长,越界中断n“,sd);return 0;elseprintf(“根据段号找到段首地址为%dn“,st.segaddsn-1);printf(“物理地址=段首地址%d+段内地址%dn“,st.segaddsn-1,sd);add=st.segaddsn-1+sd;return (add);/*void main()int x,y;/x 表示段号,y 表示段内地址int add;char ch=y;create();while(ch=y)printf(“地址换算n“);prin

6、tf(“请输入段号:“);scanf(“%d“,printf(“请输入段内地址:“);scanf(“%d“,add=segment(x,y);if(add!=0)printf(“换算后的物理地址为:%dn“,add);fflush(stdin);printf(“是否继续进行地址换算(y/n)?n“);scanf(“%c“,if(ch=n)printf(“程序运行结束!n“); 七、运行结果及分析七、运行结果及分析 1.建立段表第一个段的物理地址为 12-61,在建立第二个段的时候,输入的段首地址与第一个冲突, 所以需要重新输入,7061,所以该段建立成功2.建立的段表如下3.地址换算 地址换算

7、的时候需要输入逻辑地址的段号和段内地址因为段号大于段表长度 5,所以越界中断段号满足要求,但是段内地址大于段表中对应段的段长,所以越界中断地址换算成功 八、心得体会八、心得体会通过这次课程设计,不仅让我对操作系统这门课程有了更深刻的了解,而且增强了我 的动手能力。对操作系统这门课程,经过了一个学期的学习,我们主要学习了操作系统的 一些功能,如进程管理,设备管理,存储器管理等等,看似学了很多东西,实际上只是学 到了一些皮毛,只是对对这门课程的大概有了一些大概了解。以后如果有机会,我会继续 深入对操作系统这门课程的学习。 由于时间的仓促,这次课程设计做的很粗糙,但是我依然学到了很多实用性知识。除 了对分段存储管理 有了更深刻的了解,还加深了我对 C 语言的使用。在做这次课程设计 的过程中,遇到了很多问题,多亏了杨老师的指导和同学们的帮助。 最后感谢杨老师对我们一学期孜孜不倦的教导!九、参考文献九、参考文献计算机操作系统 (第三版) 作者:汤小丹,梁红兵 西安电子科技大学出版社 2010C 语言程序设计 (第三版) 作者:谭浩强 清华大学出版社 2008

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号