差异交换和分页

时间:2010-12-11 04:48:53

标签: memory-management process paging swap

参考SwappingPagingProcess Memory Management之间有什么区别?

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

7 个答案:

答案 0 :(得分:40)

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

而分页是指复制输入/输出地址空间的一个或多个页面。特别是,这是一个更精细的颗粒。例如,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)数据地址空间分为8,8KB页面,在较大的物理地址空间(256 KB ... 4 MB))。

相反,分页需要页面粒度虚拟内存页表条目,它通常编码页面的物理地址,PTE位,如有效,读取,写入等。机器还需要自动(透明地应用于应用程序)程序)根据需要获取和解释页表条目以将每个虚拟地址映射到其物理地址,和/或获取页面错误异常以使OS能够使页面可访问和/或调度I / O以将其加载到物理RAM。

快乐的黑客攻击!

答案 1 :(得分:1)

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

答案 2 :(得分:1)

Great answer

Siddharth Teotia在Quora上帮助我理解了这些概念:

  

交换是将整个过程(其地址空间)从主存储器复制到某种辅助存储器的过程   存储(通常是硬盘或磁带存储)。通常这样做是   CPU调度的结果。

     

[...]

     

最要注意的是,整个过程是   换入/换出。这里没有粒度的哪一部分   进程的地址空间被交换回磁盘。完整的过程   映像将全部交换回磁盘。这应该是非常   当我们试图了解分页之间的区别时,请清除   和交换。

     另一方面,

分页是一种内存分配技术,它允许进程的物理地址空间不连续。   换句话说,无论进程位于何处,都可以为其分配内存   可用,分配单位是页面或框架的大小   (通常为4KB,但取决于系统)。哪里有免费框架   在主内存中,属于该进程的物理页可以   被加载到它,进程的页面表将照顾   映射逻辑地址(逻辑页码)以更正物理地址   内存中的帧(可能连续也可能不连续)。

     

[...]

有关更多详细信息,请参见他的完整答案:https://www.quora.com/What-is-difference-between-paging-and-swapping

答案 3 :(得分:0)

分页适用于活动进程,只有活动进程才能执行分页。 交换由非活动进程完成

答案 4 :(得分:0)

Jan在详细说明方面做得很好,但是如果您只想鸟瞰,这里每个人都会注意到加粗字体以指示主要区别。

分页:是将单个内存段或页面移入或移出交换区域/交换分区

的情况

交换:整个进程被交换并移入或移出交换区域/交换分区

答案 5 :(得分:0)

由于超级计算机的快速发展,大多数书籍已经过时了。当人们试图描述他们只是创造新词时,这会引起很多混乱。我们可以轻松地跟踪 内存 ,该内存由 CPU 读写。该主存储器被分类为 RAM 。较早的计算机主要运行一个称为“实模式”的单进程,并且计算结果可以保存到磁盘中,即 ROM 。如您所见,物理磁盘对应于主内存。由于此内存很大,因此人们将其切成空格,即 page 。相应地,磁盘(或辅助内存)被切成 frame 。映射 page frame 之后,我们将获得页面表。

当前的计算机以“保护模式”工作,看似多进程,这是因为一个CPU一次只能处理一项任务。有人可能会问,是否有尽可能多的CPU?如果我们仅监视一个CPU,则这没有什么区别,除非某个任务不是实时的,否则它将由一个特定任务占用。可以在后台运行的任务可以交换

在这一点上,我们可以轻松区分这两个术语:

交换是用于在主进程(因此包括主内存)和特定后台进程之间进行的进程; 暂停是针对页面(框架),活动页面(位于主内存中)和辅助内存(例如磁盘)之间的页面。

巧合的是,磁盘可以同时在两种情况下使用,特别是在当今,因为 MMU 可以高度分配/释放所有内存。因此,磁盘I / O性能对于高度受限的内存(即 VM )至关重要。

对于大多数程序员而言,内存大小现在不再是问题,他们可以轻松地使用malloc或类似的调用轻松分配少量内存,该内存远远小于4KB(4096页大小)。 CPU为进程生成逻辑地址,该逻辑地址由页码和页偏移两部分组成。逻辑地址对应于页表中的物理地址。这与在字典中查找单词相同–转到页码然后转到页面偏移量。区别在于mmu表是由PGD(-> PUD)-> PMD-> PTE组成的,其中PUD仅用于64位。

答案 6 :(得分:-1)

无。它通常也被称为在unix平台上进行交换,以及在Windows上进行分页。同样的概念。

相关问题