基本分段存储管理系统
. 目录
一、课程设计的目的2
二、课程设计的内容及要求 2
三、实验原理2
四、地址换算变换过程结构 2
五、关键算法实现流程图3
六、程序代码4
七、运行结果及分析7
八、心得体会9
九、参考文献9
一、课程设计的目的操作系统课程设计是重要的实践课程,课程开设的目的是让学生学习完《计算机操作系统》课程后,进行一次全面的综合训练,让学生更好地掌握操作系统的原理及实现方法,加深对操作系统基础理论和重要算法的理解,加强学生的动手能力。
二、课程设计的内容及要求基本分段存储管理系统的设计要求:
(1)建立段表(2)设计地址变换机构(3)将变换后的结果显示出来
三、实验原理为了实现从进程的逻辑地址到物理地址的变换功能,在系统中设置了段表寄存器,用于存放段首地址,段长和段表长度TL。
首先建立段表,段表内容包括段首地址,段长和段表长度。
在建立段表时,应判断段表地址是否冲突(如第一个段的首地址为1,段长为50,在建立第二个段的时候,段首地址应大于1+50),若不冲突,该段建立成功,否则重新建立该段。
然后进行地址变换,在进行地址变换时,系统将逻辑地址中的段号与段表长度进行比较。
若STL,表示段号太大,是访问越界,于是产生越界中断信号;
若未越界,则根基段表的首地址和该段的段号,计算出该段在在段表项的位置,从中读出该段在内存中的首地址,然后,再检查,段内地址d是否超过该段的段长SL。
若超过,即dSL,同样发出越界中断信号;
若未越界则将该段的基址与段内地址相加,即可得到要访问内存的物理地址。
最后,再将得到的物理地址显示出来。
四、地址换算变换过程结构
五、关键算法实现流程图地址换算程序流程图
六、程序代码//*****************************************************#inclu de#includetypedef struct segtable //段表结构说明{ int segadd[256]; //段首地址int seglen[256]; //段长int len; //表的长度}segtable;struct segtable st; //定义一个段表//*****************************************************//段表的建立void create(){ char ch; int i=0; printf("建立段表\n"); st.len=0; printf("请输入第1个段首地址:"); scanf("%d",st.segadd[0]); printf("请
输入第1个段的长度:"); scanf("%d",st.seglen[0]); st.len=1; i=1; while(ist.seglen[sn-
一、课程设计的目的2
二、课程设计的内容及要求 2
三、实验原理2
四、地址换算变换过程结构 2
五、关键算法实现流程图3
六、程序代码4
七、运行结果及分析7
八、心得体会9
九、参考文献9
一、课程设计的目的操作系统课程设计是重要的实践课程,课程开设的目的是让学生学习完《计算机操作系统》课程后,进行一次全面的综合训练,让学生更好地掌握操作系统的原理及实现方法,加深对操作系统基础理论和重要算法的理解,加强学生的动手能力。
二、课程设计的内容及要求基本分段存储管理系统的设计要求:
(1)建立段表(2)设计地址变换机构(3)将变换后的结果显示出来
三、实验原理为了实现从进程的逻辑地址到物理地址的变换功能,在系统中设置了段表寄存器,用于存放段首地址,段长和段表长度TL。
首先建立段表,段表内容包括段首地址,段长和段表长度。
在建立段表时,应判断段表地址是否冲突(如第一个段的首地址为1,段长为50,在建立第二个段的时候,段首地址应大于1+50),若不冲突,该段建立成功,否则重新建立该段。
然后进行地址变换,在进行地址变换时,系统将逻辑地址中的段号与段表长度进行比较。
若STL,表示段号太大,是访问越界,于是产生越界中断信号;
若未越界,则根基段表的首地址和该段的段号,计算出该段在在段表项的位置,从中读出该段在内存中的首地址,然后,再检查,段内地址d是否超过该段的段长SL。
若超过,即dSL,同样发出越界中断信号;
若未越界则将该段的基址与段内地址相加,即可得到要访问内存的物理地址。
最后,再将得到的物理地址显示出来。
四、地址换算变换过程结构
五、关键算法实现流程图地址换算程序流程图
六、程序代码//*****************************************************#inclu de#includetypedef struct segtable //段表结构说明{ int segadd[256]; //段首地址int seglen[256]; //段长int len; //表的长度}segtable;struct segtable st; //定义一个段表//*****************************************************//段表的建立void create(){ char ch; int i=0; printf("建立段表\n"); st.len=0; printf("请输入第1个段首地址:"); scanf("%d",st.segadd[0]); printf("请
输入第1个段的长度:"); scanf("%d",st.seglen[0]); st.len=1; i=1; while(ist.seglen[sn:汤小丹,梁红兵西安电子科技大学出版社2010《C语言程序设计》(第三版)作者:
谭浩强清华大学出版社2008欢迎您的光临,wdrd文档下载后可以修改编辑。
双击可以删除页眉页脚。
谢谢!单纯的课本内容,并不能满足学生的需要,通过补充,达到内容的完善教育之通病是教用脑的人不用手,不教用手的人用脑,所以一无所能。
教育革命的对策是手脑联盟,结果是手与脑的力量都可以大到不可思议。
. 达到当天最大量API KEY 超过次数限制。