段式存储管理的分配与回收.doc_第1页
段式存储管理的分配与回收.doc_第2页
段式存储管理的分配与回收.doc_第3页
段式存储管理的分配与回收.doc_第4页
段式存储管理的分配与回收.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

武汉理工大学计算机操作系统学 号: 课 程 设 计题 目操作系统原理课程设计学 院计算机科学与技术专 业班 级姓 名指导教师20XX年0X月0X日课程设计任务书学生姓名: 指导教师: 雅蠛蝶 工作单位: 计算机科学与技术学院 题 目: 模拟设计段式存储管理的分配与回收初始条件:1预备内容:阅读操作系统的内存管理章节内容,理解有关虚拟存储器、段式存储管理等概念,并掌握段式管理内存的分配和回收过程。2实践准备:掌握一种计算机高级语言的使用。要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1采用段式管理方案实施内存分配和回收。能够处理以下的情形 能够输入给定的内存大小,进程的个数,每个进程的段数及段大小; 当某进程提出申请空间的大小后,显示能否满足申请,以及为该进程分配资源后有关内存空间使用的情况; 显示回收后内存空间的使用情况(注意回收后的合并)。2设计报告内容应说明: 需求分析; 功能设计(数据结构及模块说明); 开发平台及源程序的主要部分; 测试用例,运行结果与运行情况分析; 自我评价与总结:i)你认为你完成的设计哪些地方做得比较好或比较出色;ii)什么地方做得不太好,以后如何改正;iii)从本设计得到的收获(在编写,调试,执行过程中的经验和教训);iv)完成本题是否有其他方法(如果有,简要说明该方法);时间安排:设计安排一周:周1、周2:完成程序分析及设计。周2、周3:完成程序调试及测试。周4、周5:验收、撰写课程设计报告。(注意事项:严禁抄袭,一旦发现,一律按0分记)指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日模拟设计段式存储管理的分配与回收1 需求分析段式存储管理是基于为用户提供一个方便灵活的程序设计环境而提出来的。段式管理的基本思想是:把程序按内容或过程(函数)关系分成段,每段有自己的名字。一个用户作业或进程所包含的段对应于一个二维线性虚拟空间,也就是一个二维虚拟存储器。段式管理程序以段为单位分配内存,然后通过地址映射机构把段式虚拟地址转换成实际的内存物理地址。和页式管理时一样,段式管理也采用只把那些经常访问的段驻留内存,而把那些在将来一段时间内不被访问的段放入外存,待需要时自动调入的方法现实二维虚拟存储器。模拟设计段式存储管理的分配与回收要求能够输入给定的内存大小,进程的个数,每个进程的段数及段大小;当某进程提出申请空间的大小后,显示能否满足申请,以及为该进程分配资源后有关内存空间使用的情况;显示回收后内存空间的使用情况。2 功能设计2.1 数据结构由两个链表构成,空闲区链表与段链表struct process /进程结构int code;/进程编码int num;/段的个数struct paragraph *head;struct paragraph /段结构int size;/段的大小int start;/段的起始地址int stop;/段的终止地址struct paragraph *next;/下一个段定义的地址;struct memoryint size;/内存的大小int start;/内存的起始地址int stop;/内存的终止地址struct memory *next;process p10;int count=0;/进程的个数memory *head;2.1 模块说明程序中分别实现了进程的创建、创建进程后的信息显示以及进程的调度及调度后的相关信息显示。所以程序中最要包括了三个函数,创建进程函数void Create_process();,撤销进程函数void Destroy_process();,和显示进程函数void Disp_process();,显示空闲区函数void Disp_memory();。最后在主函数main()中调用这些函数来实现整个程序的功能。while(go=1)cout*MENU*endl 1.创建进程;2.撤销进程; endl 3.显示进程;4.显示内存;5.退出 endl*endlchoice;switch(choice) case 1:Create_process();break;case 2:Destroy_process();break;case 3:Disp_process();break;case 4:Disp_memory();break;case 5:go=0;break;default:cout您输入的数字有误!endl;break; coutendl; 3 开发平台Microsoft Windows XP操作系统;Microsoft Visual C+ 6.0。4 测试用例4.1 运行结果运行程序,首先要求输入内存的大小。输入内存的大小为30,然后选择1创建进程,创建2个进程,第一个进程的段数设为2段,段大小分别为3、5,第二个进程的段数为3段,段大小分别为4、6、7。输入3显示进程输入4显示内存然后撤销第一个进程再输入3显示进程再输入4显示内存再创建一个进程,有两段,大小分别3和6最后完成整个操作,选择5退出程序。4.2 运行情况分析主函数首先要求输入内存的大小,输入的内存大小是进程调度中使用的最大存储空间,当调度一个进程的大小小于还没有使用的内存大小时则可以把该进程调入内存,否则不能调入。输入了内存的大小30后,首先要创建进程,只有创建了进程后才能执行显示进程的信息。创建的第一个进程共有段,当显示进程信息时可知该进程总的存储空间大小是8。创建第二个共3段,该进程总的存储空间大小为17,只剩下5块内存了。撤销第一个进程之后,多出了一块内存为8的空闲区。当再次创建一个有两段的进程之后,每段大小分别为3,6,第一个段正确,第二个段错误,因为第一个空闲区只剩下5了,最后一个空闲区也只剩下5,故第二段不能调用。5 自我评价与总结5.1 特点该程序的结构非常清晰,只用了四个函数来分别实现整个程序中的各个功能,结构体的使用使得整个程序显得更加精致有序,这个程序能够输入给定的内存大小,进程的个数,每个进程的段数及段大小,当某进程提出申请空间的大小后,能够显示能否满足申请,以及为该进程分配资源后有关内存空间使用的情况。可以说这个程序能够完成要求的功能。5.2 收获与体会首先通过这次课程设计最大的收获就是对于结构体有了很深的认识,以前学习c+的时候,结构体对我来说是很头痛的,对于它的认识也只是基本课本上的知识,而且还是朦朦胧胧的状态,这个程序是对结构体使用的最好例子,所以我也掌握了在什么时候使用结构体是最好的。其次是对操作系统中段式存储管理的知识有了更深入的学习,也对操作系统中很重要的虚拟存储器有了更全面的认识。最后是对课程设计的理解。课程设计是联系实际的一个课题,它让我们把课本上的知识和实际联系起来,对于我们缺乏实战经验的大学生来说是必不可少的。因为课程设计是联系实际的课题,所以相对我们学习到的知识来说是更难,考虑的因素更多更复杂,每每到学期末,我对课程设计是比较烦恼的,但经过几次的锻炼之后,我开始慢慢的找到了对课程设计的感觉,以前只觉得课程设计很难,但现在我得到的另外一个理解是课程设计对我们很有帮助,可以很好的提高我们对实际问题的分析能力,能够很好的激发我们的思维。其次是对我们c+的学习有很大的提高,通过几次的课程设计,我明显的感觉到自己的编程能力有了很大的改观,我开始对c+有了更强烈的兴趣。因为c+的无比强大,所以完成这个程序应该有其他的方法,只是自己的c+知识有限,暂时还不了解用其他方法的实现过程。6 参考文献1 张尧学,史美林,张高. 计算机操作系统教程(第3版).清华大学出版社.2006.102 闵联营,何克右. C+程序设计教程.武汉理工大学出版社.2005.07本科生课程设计成绩评定表班级:计算机 姓名: 学号:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论