Jan*_*ray 43
交换是指将整个进程地址空间,或者无论如何,将不可共享文本数据段复制到交换设备,或者一次性(通常是磁盘)复制.
而分页是指复制输入/输出地址空间的一个或多个页面.特别是,这是一个更精细的颗粒.例如,1 GB RAM地址空间中有大约250,000个4 KB页面.
交换在早期使用,例如DEC pdp-11时代Unix,1975-80 ish.对于你可能想要了解的所有内容,我可以推荐The Lions Document,即Linux 6th Ed上的狮子会评论.源代码,John Lions,ISBN 1-57398-013-7?
您肯定会欣赏第14章"程序交换",它开始于:"Unix,就像所有分时系统一样,以及一些多道程序设计系统,使用"程序交换"(也称为"滚入/滚出")来共享几个进程中主要物理内存的资源有限."
Paging(在Unix上)从1980年左右开始在VAX-11/780上与BSD(Berkeley Systems Distribution)一起到达.
分页通常还与每页内存属性(无访问权限,只读,读写,无执行,可执行文件)以及各种虚拟内存管理技巧相关联,如需求零填充页面,写时复制页面,等等.
硬件方面,交换可以在没有任何内存管理硬件的情况下执行,尽管早期的机器使用简单的内存映射方案(例如基本和绑定,或简单的一级固定大小页面映射表(例如划分64 KB数据地址空间)在更大的物理地址空间(256 KB ... 4 MB)中分成8,8KB页面.
相反,分页需要页面粒度虚拟内存页表条目,它通常编码页面的物理地址,PTE位,如有效,读,写等.机器还需要自动(透明地应用程序)获取并且根据需要解释页表条目以将每个虚拟地址映射到其物理地址,和/或获取页面错误异常以使OS能够使页面可访问和/或调度I/O以将其加载到物理RAM.
快乐的黑客!
尽管这两个术语被主流学术媒体认为是不同的,但事实是有些作者确实将它们用作同义词。引用 David 和 Sarah Harris(数字设计与计算机体系结构)撰写的关于计算机体系结构的优秀书籍,“将物理页面写回磁盘并使用不同的虚拟页面重新加载它称为交换,因此虚拟内存系统中的磁盘有时称为交换空间“。所以,泰勒实际上正确地回答了这个问题,他的回答根本不应该被低估。
简(Jan)在详细解释方面做得很好,但如果您只想鸟瞰差异,那么每个人都会注意到粗体字体表示主要差异。
分页:是将单个内存段或页面移入或移出交换区域/交换分区的时间
交换:是指整个进程被交换并移入或移出交换区域/交换分区