Demand-Paging
概念
运行 exec 时,不需要把整个 ELF 文件从磁盘读入内存。
- 只分配页表,PTE 标记为 Invalid,但在 PTE 中记录该页在磁盘上的位置(Block Number)。
- 跳转到 Entry Point。
- Page Fault: CPU 发现代码不在内存。
- Handler:
- 从磁盘读取对应的 4KB 数据块。
kalloc分配内存并写入。- 修改 PTE 为 Valid。
- 运行: 继续执行。
意义
大大加快程序启动速度。特别是对于带图形界面的巨型程序,用户可能只用到了其中 10% 的功能,根本不需要加载 100% 的代码。