动态分区分配存储管理系统2.pdfVIP

  • 18
  • 0
  • 约1.82万字
  • 约 22页
  • 2021-01-23 发布于中国
  • 举报
动态分区分配存储管理系统 学 院 计算机科学与技术 专 业 计算机科学与技术 学 号 学 生 姓 名 指导教师姓名 目录 、3 、6 4、 程序的技术路线7 8-19 0 第 2 页 一、课程设计目的 1、背景 主存是 CPU 可直接访问的信息空间,合理而有效的使用贮存将在很大程度上 影响整个计算机系统的性能。 本课题要求模拟实现分区式主存管理机制。模拟实现各种分区管理方法以及 相应的主存分配以及回收算法。 2、目的  进一步巩固和复习操作系统的基础知识。  培养学生结构化程序、模块化程序设计的方法和能力。  提高学生调试程序的技巧和软件设计的能力。  提高学生分析问题、解决问题以及综合利用 C 语言进行程序设计 的能力。 二、课题任务描述 用高级语言编写和调试一个动态分区内存分配程序,演示实现下列两种动态 分区分配算法 1. 最佳适应算法 2. 最坏适应算法 三、课题研发相关知识 (包含所用库函数的介绍) 1、最佳适应算法(best fit) 所谓“最佳”是指每次为作业分配内存时,总是把能满足要求、又是最小的 空闲分区分配给作业,避免 “大材小用”。为了加速寻找,该算法要求将所有的 空闲分区按其容量以从小到大的顺序形成一空闲分区链。这样,第一次找到的能 满足要求的空闲区,必然是最佳的。这样,在存储器中会留下许多难以利用的小 空闲区。 2、最坏适应算法(worst fit) 要扫描整个空闲分区表或链表,总是挑选一个最大的空闲区分割给作业使用, 其优点是可使剩下的空闲区不至于太小,产生碎片的几率最小,对中小作业有力, 查找效率很高。但是它会使存储器中缺乏大的空闲分区。 第 1 页 3、回收内存 当进程运行完毕释放内存时,系统根据会收取的首址,从空闲区链中找到相 应的插入点,并考虑回收区前后是否有空闲分区,如果有,则把两个分区合并成 一个大的空闲分区。 4、库函数的介绍 1)stdio 就是指 “standard buffered inputoutput 意思就是说带缓冲 的标准输入输出! 所以了,用到标准输入输出函数时,就要调用这个头文 件! 2)Stdlib.h 即 standard library 标准库文件。Stdlib 头文件里包含了 C,C++语言的最常用的系统函数。Stdlib.h 里面定义了五中类型,一些宏和通用 工具函数。 类型例如:size_t ,wchar_t, div_t, ldiv_t,lldiv_t; 宏例如: EXIT_FALIRE,EXIT_SUCCESS,RAND_MAX 和 MB_CUR_MAX。 以下是一些常用的函数:dec 置基数为 10 相当于%d;hex 置基数为 16 相 当于%X;oct 置基数为 8 相当于%o;setw(n) 设为 n 个 四、课题设计:总体结构、所使用的数据结构、主要功能的流程图、 程序的技术路线 1、总体结构 本系统采用了最佳适应算法和最坏适应算法模拟存储器动态分区。系统利用 其中某种分配算法,从空闲分区链中找到满足请求内存大小的分区并分配内存给 作业。假设总的内存大小为 size,作业请求的内存大小为request,内存碎片最 小为 f。当requestsize 时,内存溢出,出现系统错误;当 request=size 时, 在内存中根据上述算法寻找最佳的内存分区分配给作业。寻找到合适的内存分区 之后,如果 size-request=f,将此分区上的内存全部分配给作业;如果 size-requestf,就在

文档评论(0)

1亿VIP精品文档

相关文档