分页管理存储

分页管理存储

ID:42865792

大小:433.20 KB

页数:16页

时间:2019-09-23

分页管理存储_第1页
分页管理存储_第2页
分页管理存储_第3页
分页管理存储_第4页
分页管理存储_第5页
资源描述:

《分页管理存储》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、一*需求分析目录2二.系统分析2三.程序设计分析3测试内容10一需求分析存储器是计算机系统的重要组成部分。近几年,虽然存储器的容量一直在不断的扩大,价格也越來越便宜,但是仍然不能满足现代软件发展的需耍。因此存储器仍是一种宝贵的资源。因此尽可能的方便用户和提高主存储器的使用效率,使主存储器在成木、速度和规模之间获得较好的权衡是存储器管理的主要任务。存储器管理应具有内存分配、内存保护、地址映射和内存扩充等功能。本设计的目的是熟悉存贮器管理系统的设计方法;加深对所学基本分页存储管理方案的了解;设计地址变换机构,并将变换后的结果显示出来。模拟环境应尽量接近真实。

2、此次设计利用了大量数据结构中关于链表的相关知识,对以前所学的数据结构相关内容进行了回顾,从而掌握的更加深刻。另外,对存储器的结构和工作过程也有了直观而深刻的理解。语言方面,本次课程设计运用了C语言语言。原因是通过分析认为只冇C语言比较合适,而C++在结构上更加清晰,也比较容易表达,并且代码较少。通过代码编写和结构表达,对C的内容有了更进一步的掌握。总乙对所学的数据结构和C知识进行了很好的回顾和掌握,收获很人。二系统分析木设计的口的是熟悉存贮器管理系统的设计方法;加深对所学各种存贮器管理方案的了解;要求采用一些常用的存贮器分配算法,设计一个存贮器管理系统模

3、拟系统并调试运行。模拟环境应尽量接近真实。因此根据设计要求,本存储器管理系统利用最佳适应算法和首次适应算法实现了一定大小的分区分配和分区回收,并以次來模拟存储器管理。木系统模拟实现可变分区管理,存储管理主要是对存储空间的分配和冋收,当有用户中请空间时,进行分配,空间不用了,及时冋收,以免造成游离空间,使得该空间再也无法使用,可变分区管理的分配和回收功能类似于visualc的功能,分区收回算法,才用首次使用算法和最佳适应算法。在多道程序环境下,要使程序运行,必须先为之创建进程。而创建进程的第一步是将程序和数据装入内存。存储器实现的功能主要是内存分配等功能,

4、本模拟系统所要实现的就是将进程的程序和数据装入内存(物理块)。具体需要实现的功能如21、退出,输入0然后按任意键退出;2、创建进程,输入进程号和所需页面,回到主菜单;3、结束进程,选择后输入要冋收的进程名,有则显示冋收,无则显示无该进程;4、显示主存,能够显示分配的页面的状态信息,包括地址范围和读入的内存物理块号(未读入与读入的区别显示),页而是否在主存屮三程序设计分析3.1功能函数的设计intblock[N];intblockCount;intprocessCount;voidinit();本算法voidoutput();voidmenu();//内存

5、块状态标志数组,0:空闲,1:使用//记录当前内存剩余空间//记录当前进程数〃实现进程的创建,内存的查看,进程结束,程序结束的基〃显示进程的数目和内存的占用情况〃菜单栏显示各个功能的0创建进程,1查看进程,2结束#defineN100//共冇100个内存块intprocess[N][N+l];//存放每个进程的页表进场,3退出程序。输入所需要进行的操作boolcreateProcess();〃判断创建进程的成功与否,进程数的最人值为100boolendProcess();〃判断结束已经创建的进程的成功与否,进程数小丁,1003.2主程序流程图主程序流程图

6、是对整个课程设计的内容的描述和简要的概述了此次实现的功能3.3查看内存流程图查看内存流程图是简要概述程序执行的顺序和出现的内容及实现的基本过程3.4结束进程流程图该流程图是对结束进程这个功能函数抽象化得概述描述了实现结束进程的实现过程3.5结束程序这个程序的功能主要是显示已经创建进程的进程号和所占用的内存大小显示空闲的内存块、/*讦(processCount>0){printfC*内存详细使用情况如下:W);for(inti=0;i0){printf(”进程号:%d占用内存块(%2d):”,i,pro

7、cess[i][0]);for(intj=l,count=0;j<=process[i][0];j++){printf("%2d”,process[i][j],count++);if(count==15){putchar('');printfC*”);count=0;}}putchar('');}}}elseprintf(”当前内存无进程!");/*//输出空闲内存块if(blockCount>0){printf("空闲内存块(%d):”,blockCount);for(intk=0,count=();k

8、k]==0)printf("%2d”,k,++count);if(count==

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。