操作系统基础43-帧分配
2021-01-22 23:00·重学IT的老猫
如何在各个进程之间分配一定的空闲内存? 简单办法是将帧挂在空闲帧链表上,当发生页错误之时即进行分配。进程终止时帧再次放回空闲帧链表。 帧分配策略受到多方面限制。例如, 分配数不能超过可用帧数,也必须分配至少最少数量。保证最少量的原因之一是涉及性能。缺页错误增加会减慢进程的执行。并且,在指令完成前出现缺页错误,该指令必须重新执行。所以有足够的帧至关重要。 每个进程最少帧数由体系结构决定,而最大帧数是由可用物理内存的数量决定。
分配算法
- 平均分配:即最大帧除以进程总数得到的值,但是没有考虑到进程可能需要不同大小的内存空间。
- 按进程大小比例分配:按照进程的页(地址空间)的大小,按比例给进程分配帧数
- 按优先级分配:对于高优先级的进程,可以有更大的帧空间以便更快的执行。
- 根据进程的大小和优先级的组合
全局分配和局部分配
全局置换允许进程从所有帧集合中选择一个进行置换,而不管该帧是否已分配给其他进程,即它可以从其他进程抢夺帧,比如高优先级抢夺低优先级的帧;局部分配则要求每个进程只能从自己的分配帧中分配。 全局置换通常有更好的吞吐量,且更为常用。
虚拟内存
处理缺页错误的步骤