差异交换和分页

问题描述 投票:18回答:6

有关SwappingPagingProcess Memory Management有什么区别?

如果有任何我可以获得更多信息的地方,也请指导我的教程。

memory-management process paging swap
6个回答
42
投票

交换是指将整个进程地址空间,或者无论如何,将不可共享文本数据段复制到交换设备,或者一次性(通常是磁盘)复制。

而分页是指复制输入/输出地址空间的一个或多个页面。特别是,这是一个更精细的颗粒。例如,1 GB RAM地址空间中有大约250,000个4 KB页面。

在早期使用交换,例如DEC pdp-11时代的Unix,1975-80 ish。对于你可能想要了解的所有内容,我可以推荐狮子会文件a.k.a.狮子会在Unix 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。

快乐的黑客!


3
投票

虽然这两个术语被主流学术媒体认为是不同的,但事实是一些作者确实将它们用作同义词。引用David和Sarah Harris(数字设计和计算机体系结构)编写的关于计算机体系结构的优秀书籍,“将物理页面写回磁盘并使用不同的虚拟页面重新加载它称为交换,因此虚拟内存系统中的磁盘有时被称为交换空间“。所以,泰勒实际上正确地回答了这个问题,他的答案根本不应该被低估。


2
投票

Great answer的Qazxswpoi在Quora上帮助我理解了这些概念:

交换是将整个进程(其地址空间)从主内存复制到某种辅助存储(通常是硬盘或磁带存储)的过程。通常这是由于CPU调度而完成的。

[...]

这里要注意的最重要的事情是整个过程是换入/换出的。这里没有关于进程的地址空间的哪一部分被交换回磁盘的粒度。整个过程映像完全交换回磁盘。当我们试图理解分页和交换之间的差异时,这应该非常清楚。

另一方面,寻呼是一种存储器分配技术,它允许进程的物理地址空间不连续。换句话说,进程可以在任何可用的地方分配内存,分配单位是页面或帧的大小(通常为4KB,但它取决于系统)。只要主存储器中有空闲帧,就可以将属于该进程的物理页加载到其中,并且进程的页表将负责将逻辑地址(逻辑页号)映射到内存中的正确物理帧(可以或可能不是连续的)。

[...]

有关详细信息,请参阅他的完整答案:Siddharth Teotia


0
投票

在活动进程的情况下,分页适用,只有活动进程才能执行分页。交换是由非活动进程完成的


0
投票

Jan做了很好的解释,但是如果你只是想要一个鸟眼差异,那么每个人都会注意到粗体字体来表示主要区别。

分页:当各个内存段或页面移动到交换区域/交换分区或从交换区域/交换分区移出时

交换:是交换整个进程并移入交换区/交换分区的时间


-2
投票

没有。它通常也被称为在unix平台上进行交换,以及在Windows上进行分页。虽然相同的概念。

© www.soinside.com 2019 - 2024. All rights reserved.