- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统课程设计 20092103399 李迪
PAGE
PAGE 2
实习题目
指导教师
职 称
学生姓名
学 号
日 期
实习题目
指导教师
职 称
学生姓名
学 号
日 期
内蒙古师范大学计算机与信息工程学院
《操作系统》课程设计报告
实习题目
指导教师
职 称
学生姓名
学 号
日 期
设计题目
编程演示三种存储管理方式的地址换算过程
指导教师
王斯日古楞
职称
姓 名
李迪
学 号
20092103399
日 期
2012/10/18
主要内容要求:
1 设计任务
编程演示三种存储管理方式的地址换算过程
2 设计的功能目标
1、分页方式的地址换算
2、分段方式的地址换算
3、段页式的地址换算
3 设计的思想、方法和技术(含数据结构、算法)
编程演示三种存储管理方式的地址换算过程,分别为分页方式的地址换算,分段方式的地址换算,段页式的地址换算。分页方式通过逻辑地址算出页号与叶内地址,然后通过页表来实现向物理地址的转换。分段方式通过段号和段内地址得到物理地址。段叶式通过段号得到页表首地址,通过页号得到块号,进而得到物理地址。
程序主要有三个功能,分别是分页方式的地址换算,分段方式的地址换算,段页式的地址换算。Switch函数包含4个case语句,分别用page,Segment,SegPagt完成分页方式的地址换算,分段方式的地址换算,段页式的地址换算。
4 设计的主要代码及注释
主函数部分:
int main()
{int code;
int pl,pa,sn,sd,pd,pn;
//const int ptl ;
int temp;
do{
printf(地址换算过程\n\n);
printf( 1.分页式地址换算\n);
printf( 2.分段式地址换算\n);
printf( 3.段页式地址换算\n);
printf( 4.结束运行\n\n);
printf(******本程序由李冬领设计--2010年12月23号*****\n);
printf(\n);
printf(请输入您的选择:);
分页式地址换算部分:
int page(int A,int L)
{
int d,P,kd,i;
int WD;
int PT[256];
for(i=1;i256;i++)
{
PT[i]=rand() %512;//定义随机产生的快号在1到512之间
}
P=A/L;//页号等于逻辑地址/页面大小
d=A%L;//页内地址=逻辑地址%页面大小
if(P=256) printf(页号大于页表长度,越界中断\n\n);//如果页号大于页表长度,输出越界中段
else {
printf(页号=逻辑地址/页面大小=%d,页内地址=逻辑地址%页面大小=%d\n,P,d);//输出页号和页内地址
kd=PT[P];//根据页号随机产生快号
printf(根据页号%d得到块号%d\n,P,kd);
WD=kd*L+d;//计算物理地址的公式
printf(物理地址=块号*页面大小+页内地址\n);
printf(物理地址=%d*%d+%d\n,kd,L,d);//输出物理地址=块号*页面大小+页内地址
printf(逻辑地址%d换算后的物理地址=%d\n\n,A,WD);//输出物理地址的结果
return (0);
}
}
分段式地址换算部分:
nt Segment(int sn,int sd)
{
int i,wd;
for(i=0;i255;i++)
{
st.segf[i]=rand()%255;//定义随机产生段首地址为1到255之间
st.segl[i]=rand()%2048;//定义随机产生段长度为1到2048之间
}
if(sn256) printf(段号%d大于段表长度256,越界中断\n\n,sn);//如果段号大于段表长度,输出越界中断
else if(sdst.segl[sn]) printf(段内地址%d大于段长度%d,越界中断\n\n,sd,st.segl[sn]);//如果段内地址大于段长度,输出越界中断
else{
printf(根据段号找到段首地址%d\n,st.segf[sn]);
printf(物理地址=段首地址+段内地址\n);
printf(物理地址=%d+%d\n,st.segf[sn],sd); //输出物理地址=段首地址+段内地址
wd
您可能关注的文档
- 部编版八年级下册语文第一单元测试卷.doc
- 部编教材七年级下20古代诗歌五首.ppt
- 部编人教版初中《道德与法治》非选择题的解题方法与技巧.doc
- 部编一年级下册语文4猜字谜.ppt
- 部分标准发布实施.doc
- 材料科学与工程导论 教学课件作者 王高潮 第五章.ppt
- 材料试验复习资料.doc
- 财务报表分析课程讲义.ppt
- 财务报表分析课件1-10章.ppt
- 财务报告分析期末作业.doc
- 2016-2017学年高中生物第二单元生态工程与生物安全第1章第2节我国的生态工程教案中图版选修3.doc
- 2022-2023学年小升初英语易错点专练06完形填空15篇(广州教科版专版含答案)2.docx
- 期中专项四年级英语下册(含答案)3.docx
- 期末卷(二)(含答案解析)-2022-2023学年高二历史期中期末复习备考必刷题(选择性必修一国家制度与社会治理).docx
- 第4课欧姆定律的应用第一讲欧姆定律实验探究(原卷版).docx
- Unit1限制性定语从句语法讲义人教版高一英语学生版213.docx
- 2023年宁波市初中毕业升学文化考试科学模拟卷(八).docx
- 5.3细胞呼吸的原理和应用课件高一上学期生物人教版必修12.pptx
- 高中政治更好发挥政府作用教学设计.docx
- 体悟民间故事中的幸福--五上《中国民间故事》导读课.docx
文档评论(0)