Swapping
和 Paging
引用 Process Memory Management
有什么区别?
如果有任何我可以获得更多信息的地方,还可以指导我查看教程。
最佳答案
交换是指将整个进程地址空间,或者无论如何,不可共享的文本数据段,一次复制到交换设备,或者复制回来(通常是磁盘)。
而分页是指复制入/出地址空间的一页或多页。特别是,这是一个更精细的粒度。例如,在 1 GB RAM 地址空间中有约 250,000 个 4 KB 页。
早期使用交换,例如DEC pdp-11 时代 Unix,1975-80 ish。对于所有你想知道的以及更多信息,我可以推荐 The Lions Document a.k.a. Lions' Commentary on Unix 6th Ed。源代码,John Lions,ISBN 1-57398-013-7?
你一定会喜欢第 14 章“程序交换”,它的开头是:“Unix 与所有分时系统和一些多道程序系统一样,使用“程序交换”(也称为“转入/转出”)来共享几个进程之间的主物理内存资源有限。”
从 1980 年左右开始,分页(在 Unix 上)随 BSD(伯克利系统发行版)在 VAX-11/780 上出现。
分页通常还与每页内存属性(不可访问、只读、读写、不可执行、可执行)以及各种虚拟内存管理技巧相关联,如需求零填充页面、写时复制页面、等等。
在硬件方面,交换可以在没有任何内存管理硬件的情况下执行,尽管早期的机器采用了简单的内存映射方案(例如基数和绑定(bind),或简单的一级固定大小的页面映射表(例如划分 64 KB 数据地址空间)在更大的物理地址空间(256 KB ... 4 MB)中分成 8、8KB 页)。
相比之下,分页需要page-granularity的虚拟内存页表项,通常对页的物理地址、有效、读、写等PTE位进行编码。机器还需要自动(对应用程序透明)取并根据需要解释页表条目以将每个虚拟地址映射到其物理地址,和/或获取页面错误异常以使操作系统能够使页面可访问和/或安排 I/O 将其加载到物理 RAM。
快乐黑客!
关于memory-management - 差异交换和分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4415254/