请求分页中的数据是否留在磁盘上?

时间:2012-07-21 22:43:29

标签: operating-system paging

在需求分页中,是将数据从磁盘复制到主内存中,还是将其传输到主内存中,什么都不留在磁盘中?

2 个答案:

答案 0 :(得分:2)

没有什么是“感动”的。数据不是一张纸,一次只能放在一个地方;它被复制到内存中,然后它仍然在磁盘上。在磁盘上擦除它意味着用不同的数据覆盖它,这在读取后需要额外的时间。

最终可能会被覆盖,因为系统当然会知道交换的哪些部分仍然有效且需要数据,以及哪些部分被视为“未使用”。

答案 1 :(得分:0)

实际上没有上述内容。传统上,进程和文件在请求时将其内容复制到内存中。但是,对于需求分页,情况并非如此。当请求将文件加载到内存中时,操作系统会将该文件标记为位于进程虚拟地址空间内的位置,但实际上并不分配内存或复制文件。一旦进程读取或写入该内存区域,处理器就会抛出操作系统陷阱的错误。然后,操作系统将文件的内容复制到页面。这具有节省存储器的效果,因为仅分配了实际访问的页面。堆分配也是如此。如果程序请求大块内存,则实际上它不会被分配,直到程序使用该内存。