操作系统面试会问到的知识点
1.内存交换和覆盖
交换发生在不同进程间,而覆盖发生在同一程序或进程中。
2.动态分区分配算法
首次适应算法
思想:每次从低地址查找,找到第一个满足大小的空闲分区。
实现:空闲区按低地址到高地址排序,分配从低到高寻找第一个合适分区。
优点:算法开销小,且分配后,不需要对空闲区域排序。
缺点:无。
最佳适应算法
思想:尽可能多地留下大片空闲区域,有限使用适合且最小的空闲区。容易留下碎片
实现:空闲区按容量从低到高排序,找到第一个合适的分区。
优点:会有更多大分区被保留。
缺点:开销大,分配后需要重新排序,且容易产生碎片。
最坏适应算法
思想:跟最佳适应相反,优先使用最大连续空闲区,则剩下空闲区都余留较大。
实现:空闲区按容量从高到低排序,找到第一个合适的分区。
优点:减少难以利用的碎片。
缺点:开销大,分配后需要重新排序,大分区容易被利用完。
邻近适应算法
思想:结合首次适应算法那,从上次分配结束位置开始查找分配的位置而并非从首地址开始查询。
实现:空闲区链表和首次适应一样,且变成循环链表,但记录上一次分配的地址,向后遍历找到合适的分区。
优点:算法开销小,不需要每次从低地址查询。
缺点,高地址大分区容易被用完。