您的位置:首页 > 其它

内存管理之进程分配内存的策略和分配算法涉及的问题

2017-03-22 19:40 295 查看
在为多个进程分配内存空间时,由于内存的大小固定,所以如何分?分多少?量不够?等问题都会影响到内存的利用效率

涉及三个问题:

1)最小物理块的确定,一个进程有多个页组成,在内存中完全存储有可能需要很多个块,但是在CPU中一次执行一条指令,所以停留在内存中的很多页面都不是必要的,只需要在内存中保留最必要的几个页的内容就可以了,所以会出现最小物理块确定的问题。

最小物理块的确定是指能保证进程正常运行所需的最小物理块数,当系统为进程分配的物理块数少于此值时,进程无法运行。进程应该获得最小物理块数与计算机的硬件结构有关,取决于指令的格式、功能和寻址方式。单地址指令且直接寻址的话,最少物理块为2.一个用于存储指令,一个用来存储数据

2)物理块的分配策略

2.1 固定分配局部置换

基于进程的类型,或根据程序员、程序管理员的建议,为每个进程分配一定数目的物理块,在整个运行期间都不再改变

如果进程在运行中发现缺页,则只能从该进程的n个页面中选出一个页换出,然后再调入一页,以保证分配给该进程的内存空间不变

困难在于应该为每个进程分配多少个物理块难以确定,若太少,会频繁地出现缺页中断,降低了系统的吞吐量,若太多,又必然使内存中驻留的进程数目减少,进而造成CPU 空闲或其他资源空闲的情况,而且在实际对换中,会花费更多的时间

2.2 可变分配全局置换

先为系统中的每个进程分配一定数目的物理块,而OS本身也保持一个空闲物理块队列

当某进程发现缺页时,由系统从空闲物理块队列中取出一个物理块分配给该进程,这样凡产生缺页终端的过程,都将获得新的物理块。仅当空闲物理块队列用完时,OS才能从内存中选择一页调出,该页可能是系统中的任意进程的页

2.3 可变分配局部置换

基于进程的类型或根据程序员的要求,为每个进程分配一定数目的物理块,但当某进程发现缺页时,只允许从该进程在内存的页面中选出一页换出,这样就不会影响其他进程

如果进程在运行中频繁发生缺页中断,则系统需再为该进程分配若干附加的物理块,直至该进程的缺页率减少到适当的程度为止

反之,若一个进程在运行过程中的缺页率特别低,则此时可适当减少分配给进程的物理块数,但不引起缺页率的明显增加

3)物理块的分配算法

平均分配算法

按比例分配算法

按优先级分配算法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息