内存交换空间

内存交换空间

在现代操作系统中,会把一些当前没有用的内存空间中的内容保存到硬盘中。这使得操作系统可以提供虚拟内存空间的高度抽象,简化了上层程序员的工作。

我们在硬盘上开辟一部分空间用于物理页的移入和移出,这样的空间称之为交换空间

页错误和存在位

在将一个虚拟地址转为物理地址时,在查找到的PTE中有一个存在位,这标志着当前物理页是否在内存中(有可能在交换空间中)。访问不在物理内存中的页,这种情况称为页错误。

发生页错误时,硬件会触发一个异常,这个异常由操作系统负责处理,它会调用一个页错误处理程序。该程序会查找需要访问的物理页所在的交换空间,并将硬盘中的页加载到内存中。当该页加载到内存中后,操作系统会更新页表,将该页的PTE的存在位标记为存在,并重试指令。

请注意,当 I/O 在运行时,进程将处于阻塞(blocked)状态。因此,当页错误正常处理时,操作系统可以自由地运行其他可执行的进程。因为 I/O 操作是昂贵的,一个进程进行I/O(页错误)时会执行另一个进程,这种交叠(overlap)是多道程序系统充分利用硬件的一种方式。

什么时候进行交换

操作系统不会等到物理内存满时才利用交换空间:

相关推荐
The Chosen One98525 分钟前
【操作系统】操作系统引导、虚拟机、进程通信、信号
linux·运维·服务器·操作系统·虚拟机·信号
纵有疾風起14 小时前
磁盘物理结构与延迟时间优化:从磁道扇区到交替编号
操作系统·408·寻道时间·磁道·磁盘结构·扇区·柱面
纵有疾風起1 天前
磁盘与固态硬盘:SSD原理、磨损均衡与寿命计算全解析
操作系统·ssd·408·固态硬盘·闪存·磨损均衡
纵有疾風起2 天前
页面置换算法与实战机制:从 LRU 到内存映射文件
操作系统·408·lru·mmap·clock·页面置换·belady异常
qo_tn2 天前
Windows route 命令详解 --- 多网络环境下,指定特定地址
操作系统
qo_tn2 天前
Windows PowerShell Test-NetConnection 使用详解
操作系统
CoovallyAIHub3 天前
Coco 在病房:一个企业级 AI Agent,如何帮住院医师省下每天三小时的文书时间
操作系统·agent·产品
纵有疾風起3 天前
文件共享与保护:从硬链接到访问控制矩阵
操作系统·文件管理·408·文件共享·硬链接·软链接
噜~噜~噜~4 天前
操作系统笔记-1.1.3 操作系统的特征
笔记·操作系统
我命由我123454 天前
Java 开发 - List subList 方法
java·windows·操作系统·list·intellij-idea·idea·intellij idea