题目五:内存管理技术有哪些?

  1.固定分区(连续分区):将内存用户空间划分为多个固定大小的静态分区,进程被装入大于或等于自身大小的分区。

  *分区的大小可以是长度都相等;或者不等,分为多个较小分区、适量中等分区,少量较大分区。

  *优点:实现简单,开销小。

  *缺点:有内部碎片,内存使用不充分;活动进程的大数目是固定的。

  2.动态分区(连续分区):分区是动态创建的,每个进程可以被装入与自身大小相等的分区中。

  *优点:没有内部碎片;可以充分使用内存。

  *缺点:有外部碎片,由于需要压缩外部碎片,处理器利用率低。

  3.简单分页:内存被划分为许多大小相等的页框;每个进程被划分成许多大小与页框大小相等的页;要装入进程,需要把进程的所有页都装入内存中不一定连续的某些页框中。

  *优点:没有外部碎片。

  *缺点:有少量内部碎片。

  4.简单分段(段的大小不固定):每个进程被划分成许多段;要装入进程需要把进程包含的所有段都装入内存中不一定连续的某些动态分区中。

  *优点:没有内部碎片,相对于动态分区,提高了内存利用率,减少了开销。

  *缺点:存在外部碎片。

  5.虚拟内存分页:除了不需要把进程的所有页都装入内存之外,与简单分页一样;非驻留页在以后需要时调入内存。

  *优点:没有外部碎片;巨大的虚拟地址空间。

  *缺点:复杂的内存管理开销。

  6.虚拟内存分段:除了不需要把进程的所有段都装入内存之外,与简单分段一样;非驻留段在以后需要时调入内存。

  *优点:没有外部碎片;巨大的虚拟地址空间;支持共享和保护。

  *缺点:复杂的内存管理开销。

  题目六:分页与分段相同点和区别?

  一 相同点:两者都采用离散分配方式,且都需要地址映射机构来实现地址变换。

  二 不同点:

  (1)页时信息的物理单位,分页是为实现离散分配方式,以消减内存的外部碎片,提高内存利用率,也是说分页仅仅是由于系统管理的需要而不是用户的需要;段则是信息的逻辑单位,它含有一组其意义相对完整的信息,分段的目的是更好的满足用户的需要。

  (2)页的大小固定且由系统决定,在系统中只有一种大小的页面;而段的长度不固定,决定于用户编写的程序,通常由编译程序在对源程序进行编译时,根据信息的性质来划分。

  (3)段的优点:

  *信息共享和信息保护:信息共享和信息保护都是以信息的逻辑单位为基础。

  *等等。

  题目七:页面置换算法有哪几种?

  (1)佳置换算法(OPT):选择置换下次访问距离当前时间长的那些页。

  *该算法导致少的缺页中断,但由于无法预知一个进程在内存的若干个页面哪个是未来长时间不再被访问的,因而该算法无法实现,但是可以作为一种标准来衡量其他置换算法。

  (2)近久未使用算法(LRU:Least Recently Used):置换内存中上次使用距离当前远的页。

  *LRU策略性能接近于OPT,但比较难实现(需要系统较多硬件支持,需要大量开销)。

  (3)FIFO策略:淘汰先进入内存的页面,即选择在内存中驻留时间久的页面予以淘汰。

  *该算法实现简单,但性能相对较差。

  (4)时钟策略(Clock置换算法):

  1.简单的Clock置换算法(使用位):给每一个页框关联一个附加位,称为使用位。当某一页首次装入内存中,将该页框的使用位设为1;当该页随后被访问到时,它的使用位也为1。页面置换算法中,用于置换的候选页框集合被看做一个循环缓冲区,并且有一个指针与之关联。

  *过程:

  ~当需要置换一页时,系统扫描缓冲区,以查找使用位被置为0的一页框。当遇到使用位为1的页框时,操作系统将该位重新设置为0。

  ~如果所有页框使用位都为1时,则指针在缓冲区中循环一周,把所有使用位都置0,并且停留在初位置,置换该页框中的页。

  2.改进的Clock置换算法(使用位+修改位):将一个页面换出时,如果该页已被修改过,便须将该页重新写回到磁盘上;如果该页未被修改,则不必将它拷回磁盘。在改进的的Clock置换算法中,除要考虑页面的使用情况,还需考虑置换代价。选择页面换出时,既要是未使用过的页面,又要是未被修改过的页面,把同时满足这两个条件的页面作为淘汰页面。