"静态存储分配:在程序装入时就一次性完成分配,且在程序运行过程中,内存空间固定不变。这种分配方式主要用于早期批处理系统,优点是内存布局简单,缺点是内存利用率低,因为一旦分配,即使部分区域未被使用,也无法再分配给其他作业。
(2)动态存储分配:在程序运行过程中根据需要随时进行分配和回收,可以更有效地利用内存资源。动态分配包括首次适配、最佳适配、最差适配等策略。动态内存分配在现代操作系统中更为常见,它允许程序在运行时灵活调整内存需求。
11
5.2实存管理
实存管理,也称为物理内存管理,直接操作硬件内存。它的主要任务是:
(1)内存空间的划分:将内存划分为多个区域,如代码区、数据区、堆区和栈区,每个区域有不同的功能和访问规则。
(2)内存保护:防止一个程序修改另一个程序的数据,或者破坏操作系统自身的数据,通过设置内存保护机制来实现。
(3)地址映射:将程序的逻辑地址转换为内存中的物理地址,使得程序可以在任何位置启动。
12
5.3虚存管理
虚存管理引入了虚拟内存的概念,允许程序使用超过实际物理内存大小的地址空间。它通过以下方式实现:
(1)分页和分段:将内存和地址空间划分为固定大小的页或可变大小的段,便于管理和交换。
(2)页面替换算法:当物理内存不足时,将不常用的数据换出到辅助存储器,腾出空间给更重要的数据。
(3)对换:整个进程或部分进程在需要时从磁盘加载到内存,不需要时换出到磁盘,以实现进程的并发执行。
13
5.4碎片与抖动问题
碎片是指内存中存在大量小的空闲区域,无法满足大作业的需求,导致内存利用率下降。内部碎片是指分配给程序的内存小于实际需要,而外部碎片则是空闲内存不足以形成连续的大块。解决碎片的方法通常包括紧凑技术、预分配等。
抖动(Thrashing)是指系统频繁地换入换出进程,导致大部分时间花在I/O操作上,而不是CPU执行。当系统中的换入换出过于频繁时,性能会急剧下降。为了避免抖动,操作系统通常会设置换页阈值,当达到阈值时,会主动释放一些内存,避免过多进程同时在内存中。
14
总结
存储管理是操作系统的核心组成部分,它负责内存资源的有效分配、保护、地址转换和优化。理解存储管理的原理和机制对于设计和优化操作系统至关重要。随着技术的发展,存储管理技术也在不断演进,以应对不断增长的内存需求和复杂的应用场景。通过有效的存储管理,不仅可以提高系统的运行效率,还能提供更好的用户体验。"