以下为《实验三 存储管理的模拟程序设计》的无排版文字预览,完整内容请下载
实验三 存储管理的模拟程序设计
一、实验目标
通过本实验使学生深入理解计算机存储器管理的连续分配方式或离散分配方式的分页技术的思想与实现方法,使学生更好分析和掌握连续或分页实现内存管理的特点,达到对计算机学科基础实践能力、问题分析/设计/算法实现的专业核心能力、综合创新能力的培养。
二、实验要求
从基于连续分配思想的动态分区分配方案和基于离散分配思想的分页中选择一种方案进行内存空间的模拟管理,具有管理工作包括:
模拟实现1M内存空间的管理;
利用内存空间的数据结构(如分页系统中空闲块链表或位示图法),记录空间的使用情况;
设计内存分配算法(如动态分区中可采用首次适应法、最佳适应法、最坏适应法或循环首次适应法)和过程,完成要运行的进程的空间分配,可能要考虑进程分配空间的记录,比如页表的设计;
当进程运行完成时,设计内存回收算法(如动态分区中考虑相邻空间的合并)实现释放空间的回收;
可动态显示内存使用状况;
针对用户给出的逻辑地址能计算出对应的物理地址。
三、主要仪器设备
实验环境:云桌面计算机,Windows 2000及以上操作系统 / Linux
实验开发工具:Visual Studio / GCC
四、考核方式及要求
考核方式包括:考勤、实验操作、实验报告三方面,所占比为10%、20%、70%。
要求学生上机实验前进行预习,上机时进行考勤 内容过长,仅展示头部和尾部部分文字预览,全文请查看图片预览。 求的最小内存块进行分配。(需要自己实现)
最坏适应法:空闲分区按空闲分区大小递减次序组织,每次查找时直接判断最大空闲分区是否满足要求。
内存回收
根据释放区首址和大小,查找空闲分区表/链表,判断是否有相邻的空闲分区存在:
释放区与前空闲区相邻:将释放区与前空闲区合并为一个空闲区。其首址仍为前空闲区首址,大小为释放区大小与空闲区大小之和。
释放区与前后两个空闲区相邻:将这三个区合为一个空闲区,其首址为前空闲区首址,大小为这三个区大小之和,并取消原后空闲区表目。
释放区与后空闲区相邻:则把释放区合并到后空闲,首地址为释放区首地址,大小为二者大小之和。
释放区不与任何空闲区相邻:将释放区作为一个空闲区,将其大小和首址插入到空闲区表的适当位置。
分页技术实现
一、实验目标
开发一个C语言程序实现内存管理的分页技术。
二、实验内容
1、获取物理内存的总大小和逻辑页面大小;
2、对物理内存进行分块;
3、初始化物理内存的数据结构,注意内存中的块有些应当为已分配,有些为空闲,可通过随机生成;
4、构建空闲块链表或者位示图;
5、获取进程的内存需求,将进程的程序地址空间进行划分,n个页面;
6、如果有n个物理块可用,则给进程分配并更新进程页表;
7、能完成一些逻辑地址到相应物理地址的转换;
8、完成进程的相应空间回收;
9、能重复完成多个进程的空间管理。
[文章尾部最后300字内容到此结束,中间部分内容请查看底下的图片预览]
以上为《实验三 存储管理的模拟程序设计》的无排版文字预览,完整内容请下载
实验三 存储管理的模拟程序设计由用户“suker0906”分享发布,转载请注明出处