操作系统面试会问到的知识点


1.内存交换和覆盖

交换发生在不同进程间,而覆盖发生在同一程序或进程中。

2.动态分区分配算法

首次适应算法

思想:每次从低地址查找,找到第一个满足大小的空闲分区。

实现:空闲区按低地址到高地址排序,分配从低到高寻找第一个合适分区。

优点:算法开销小,且分配后,不需要对空闲区域排序。

缺点:无。

最佳适应算法

思想:尽可能多地留下大片空闲区域,有限使用适合且最小的空闲区。容易留下碎片

实现:空闲区按容量从低到高排序,找到第一个合适的分区。

优点:会有更多大分区被保留。

缺点:开销大,分配后需要重新排序,且容易产生碎片。

最坏适应算法

思想:跟最佳适应相反,优先使用最大连续空闲区,则剩下空闲区都余留较大。

实现:空闲区按容量从高到低排序,找到第一个合适的分区。

优点:减少难以利用的碎片。

缺点:开销大,分配后需要重新排序,大分区容易被利用完。

邻近适应算法

思想:结合首次适应算法那,从上次分配结束位置开始查找分配的位置而并非从首地址开始查询。

实现:空闲区链表和首次适应一样,且变成循环链表,但记录上一次分配的地址,向后遍历找到合适的分区。

优点:算法开销小,不需要每次从低地址查询。

缺点,高地址大分区容易被用完。