虚拟地址空间划分成段。每段的大小是 256 MB,它是虚拟内存地址空间中一个邻接的部分,数据对象可映射到该空间。进程对数据的寻址能力按段(或对象)的级别进行管理,所以段既可以在进程间共享,也可以进行专门维护。例如,进程可共享代码段但拥有独立和专用的数据段。
虚拟内存管理器(VMM)是操作系统的核心组件之一,它负责管理和优化进程的虚拟地址空间。虚拟内存系统将地址空间划分为多个段,每个段的大小为256MB,这样便于管理和共享。段可以视作逻辑上的数据容器,允许进程之间共享某些资源,如代码段,同时保持数据段的独立性,以确保每个进程有自己的私有数据。
虚拟内存的实现基于页式存储管理,页面通常是4096字节大小,但某些系统支持更大的页面大小。内存中的每个页面可以驻留在RAM中,或者根据需要从磁盘上的交换空间(如页交换文件)加载。VMM的主要任务是有效地映射虚拟页到物理页,处理缺页异常,并决定何时将页面替换到磁盘上,以优化性能。
为了达到这个目的,VMM采用页面替换算法,这种算法考虑了多种因素,包括页面的访问模式、段的性质(如是否为持久段或工作段)、页面是否被修改等。持久段的页面对应于文件内容,如程序代码或数据文件,而工作段的页面(如进程堆栈和数据区)则没有固定的磁盘位置,需要临时存储在磁盘交换空间中。如果页面被修改,VMM会在替换前将其写回磁盘,以保持数据一致性。
页面替换算法不仅要最小化处理器时间和磁盘I/O的消耗,还要尽量减少缺页异常的响应时间。VMM维护一个空闲页面帧的列表,当需要时,通过页面替换策略从正在使用的页面中挑选合适的页面回收到空闲列表。这涉及到对各个段的重新调页故障率的统计分析,以及用户可调整的阈值,以便根据应用需求动态调整页面管理策略。
在选择替换页面时,页面替换器会检查页面的引用和修改标志。如果页面已被引用,页面替换器会延迟替换,等待下一次检查。未被引用的页面会被立即替换。若页面被修改,VMM会在替换前先将数据写入相应的存储介质,防止数据丢失。
虚拟内存管理器是系统性能的关键,它通过智能的内存管理和页面替换策略,在有限的物理内存资源下,确保多个进程能够高效并发执行,同时保证数据的安全性和一致性。其复杂的设计和优化技术对于理解操作系统的内部工作原理至关重要。