【发布时间】:2018-06-10 01:38:33
【问题描述】:
操作系统何时真正将进程的地址空间划分为页面?
假设我编写了一个程序并保存它。即使程序没有执行并且在硬盘中处于空闲状态,操作系统也会将程序的地址空间划分为页面吗?
我读到我们有一部分称为交换空间或页面文件驻留在硬盘中,其大小可以配置,其中包含未使用的页面或已从物理内存交换到硬盘的页面。
那么在程序执行之前,是把整个程序复制到交换空间还是可以从硬盘的任何部分执行?
【问题讨论】:
-
硬盘不在地址空间中。
-
@OliverCharlesworth 你能详细说明一下吗?
-
没什么好说的了,直接——一个硬盘(或更一般地说,一个文件系统)既不在物理地址空间也不在虚拟地址空间中。但是,通常操作系统允许您map files into the virtual address space。
-
@OliverCharlesworth 当我们执行程序时,它是否转移到交换空间?
-
通常在执行程序时,操作系统会将其映射到虚拟地址空间。因此无需将其移动到交换位置,如果操作系统由于内存压力而决定删除这些页面,它可以在需要时从磁盘重新读取它们。
标签: x86 operating-system paging cpu-architecture virtual-memory