在请求分页中,数据是从磁盘复制到主存中,还是转移到主存中,在磁盘中什么也没有留下?
问问题
110 次
2 回答
2
没有什么是“移动”的。数据不是一张纸,一次只能在一个地方;它被复制到内存中,然后它仍然在磁盘上。在磁盘上擦除它意味着用不同的数据覆盖它,这在读取后需要额外的时间。
它最终可能会被覆盖,因为系统当然会知道交换的哪些部分仍然有效和需要的数据,以及哪些部分被认为是“未使用的”。
于 2012-07-21T22:51:09.807 回答
0
其实以上都没有。传统上,进程和文件在被请求时都会将其内容复制到内存中。然而,对于请求分页,情况并非如此。当请求将文件加载到内存中时,操作系统会在进程的虚拟地址空间内标记该文件的位置,但实际上并不分配内存或复制文件。一旦进程读取或写入该内存区域,处理器就会抛出操作系统捕获的错误。然后操作系统只将文件的内容复制到页面然后。这具有节省内存的效果,因为仅分配了实际访问的页面。对于堆分配也是如此。如果一个程序请求一大块内存,它实际上直到程序使用该内存才被分配。
于 2012-07-21T22:58:17.667 回答