计算机操作系统之期末考试复习——内存管理动态分区分配问题

基于顺序搜索动态分区分配算法

  1. 首次适应算法(FF):每次都从低地址开始查找,找到第一个满足大小的空闲分区。
  2. 循环首次适应(NF):每次分配内存时从上次查找结束的位置开始查找空闲分区链,找到大小能满足要求的第一个空闲分区。
  3. 最佳适应算法(BF):总是把能满足要求、又是最小的空闲分区分配给作业,避免“大材小用”。
  4. 最坏适应算法(WF):和最佳适应相反,最大的空闲分区分配给作业。

基于索引搜索的动态分区分配算法

  1. 快速适应算法:略。
  2. 伙伴系统计算机操作系统之期末考试复习——内存管理动态分区分配问题_第1张图片计算机操作系统之期末考试复习——内存管理动态分区分配问题_第2张图片计算机操作系统之期末考试复习——内存管理动态分区分配问题_第3张图片

具体例题

  1. 二进制地址为011011110000,块的大小为4和16的伙伴地址分别为多少?

题解:

  1. 块的大小为4= 2 2 2^2 22
    地址011011110000可以被 2 3 2^3 23整除,所以伙伴地址位于下半区,是011011110100;
  2. 块的大小为16= 2 4 2^4 24
    地址011011110000不可以被 2 5 2^5 25整除,所以伙伴地址位于上半区,是011011100000;
  1. 某系统主存空间为1024KB,采用伙伴(Buddy system)系统分配器内存,对于下列请求序列:
    作业1请求240KB
    作业2请求120KB
    作业3请求60KB
    作业2释放120KB
    作业4请求130KB
    作业3释放60KB
    请画出进行上述分配和回收后,内存实际使用的情况。

分析:伙伴系统中,当一个进程申请K字节内存空间时,系统会把一个大小为 2 U 2^{U} 2U字节的内存块 ( 2 U < K ≤ 2 U ) (2^{U}< K\leq 2^{U}) 2U<K2U分配给它。如果没找到这样的内存块,但系统中还有更大的空闲块,则需将最接近要求的那个较大空闲块分为两个大小相等的块(这两个块被称作一对伙伴),直至找到合适大小的空闲块为止;回收时,如果两个相邻的空闲块为一对伙伴,则需要将它们合并成一个更大的空闲块。
其中阴影部分表示内部碎片计算机操作系统之期末考试复习——内存管理动态分区分配问题_第4张图片

你可能感兴趣的:(计算机操作系统,操作系统,内存管理,内存,动态分区分配)