当一个线程试图访问所属进程的地址空间中的一块数据时,可能出现两种情况。
- 线程要访问的数据就在内存中,此时CPU会先把数据的虚拟内存地址映射到内存的物理地址,然后就可以访问内存中的数据。
- 线程要访问的数据不在内存中,而是位于页交换文件的某处。此时发生不成功的页面被称为页面错误。发生页面错误时,CPU会首先通知操作系统。操作系统随即在内存中找到一个闲置的页面,如果找不到,操作系统必须先释放一个已分配的页面。如果带释放的页面没有修改过,那么操作系统可以直接释放该页面。
如下图:
当一个线程试图访问所属进程的地址空间中的一块数据时,可能出现两种情况。
如下图: