[OS] 内存分配和内存调度

From https://blog.csdn.net/msdnwolaile/article/details/52763882

内存分配策略和分配算法

在为进程分配内存时,将涉及到三个问题 
1,最小物理块数的确定 
2,物理块的分配策略 
3,物理块的分配算法

1,这里的最小物理块数,是指能保证进程正常运行所需的最小物理块数。当系统为进程分配的物理块数少于此值的时候,进程将无法进行。如果过多的话,那么将可能造成内存的浪费。 
对于某些功能较强的机器,其指令长度可能要两个或多于两个字节,因而其指令本身有可能跨两个页面,且源地址和目的地址所涉及的区域也有可能跨2个页面。所以要至少分配6个页面 
2,物理块分配策略 
  1,固定分配局部置换:(基于进程的类型)或根据程序员,管理员的建议,为每个进程分配一定数目的物理块,在整个运行期间都不再改变。采用该策略,如果进程在运行中发现缺页,则只能从进程在内存n个页面中选出一个页换出,然后再调入一个页,以保证分配给该进程的内存空间不变。但是:为某个进程分配的物理块难以确定

  2,可变分配全局变量:这可能是最易于实现的一种物理块分配和置换策略,已用于若干OS。在采用这种策略时,先为系统中的每个进程分配一定数目的物理块,而os中也保持一个空闲物理块队列。当某进程发现缺页时,由系统从空闲物理块队列中取出一个物理块分配给该进程,并将欲调入的页装入其中。这样,凡是产生缺页中断,都将获得新的物理块。仅当空闲物理块队列中的物理块用完时,OS才能从内存中选择一页调出。(随机调出)

  3,可变分配局部置换:为每个进程分配一定数目的物理块,但当某进程发现缺页时,只允许从该进程在内存的页面中选出一页换出。这样,就不会影响其它进程的运行。如果进程在运行中频繁的发生缺页中断,则系统必须为该进程分配若干附加的物理块,直至该进程的缺页率减少到合适的程度为止。同样,若一个进程的运行过程中的缺页率特别低,则此时可适当减少分配给该进程的物理块数

3,物理块分配算法

 1,平均分配算法(可供分配的物理块平均分配给各个进程) 
 2,按比例分配算法(根据进程的大小按比例分配物理块算法) 
 3,考虑优先权的分配算法(为了重要的,紧迫的作业能尽快完成,应为他分配较多的内存空间。通常采取的方法把内存中供分配的所有物理块分为两部分:一部分按比例分配给各进程;另一部分根据各进程的优先权,适当的增加其相应份额,分配给各进程)

内存调度

在进程运行过程中,若所要访问的页面不在内存而需要把它们调入内存,但内存已没有空间,系统必须从内存中调出一页。 
置换算法的好坏,直接影响系统的性能。

1,最佳置换算法(理想化的算法,难于实现) 
(淘汰的页面将是以后永不使用的,或许是最长(未来时间不再被访问的)),可以获得最低的缺页率

2,先进先出页面置换算法(总是淘汰最先进入内存的页面)

3,最近最久未使用 
  比较好的算法,但要求系统中有较多的支持硬件 
  为了了解一个进程在内存中的各个页面各有多少时间未被进程访问,以及如何快速的直到那一页是最近最久未使用的页面。必须有两类硬件的支持:栈和寄存器。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值