寻呼(paging)和分割(segmentation)的区别

内存管理是操作系统的基本功能之一。现代操作系统允许每个进程获得比给定计算机系统上实际(物理)内存总大小更多的虚拟内存。内存管理的主要目标是将大而慢的内存与小而快的内存相结合,达到大而快的内存效果。...

内存管理是操作系统的基本功能之一。现代操作系统允许每个进程获得比给定计算机系统上实际(物理)内存总大小更多的虚拟内存。内存管理的主要目标是将大而慢的内存与小而快的内存相结合,达到大而快的内存效果。

寻呼(paging)和分割(segmentation)的区别

什么是寻呼(paging)?

在内存利用率方面,将固定分区和可变分区分开是无效的,因为固定分区会导致内部碎片,而动态分区会导致外部碎片。碎片问题的一个可能的解决方案是允许进程不被写入一个连续的内存块。程序可以任意分散在内存中。在这种情况下,工作存储器被划分成更小的固定大小的块,称为帧。程序的逻辑地址空间也被划分为相同大小的块,称为页。当一个程序被输入内存时,页面被写入空闲内存帧。为了便于将程序从磁盘传输到工作内存,磁盘也被划分为与内存帧大小相同的帧。因此,来自磁盘的一帧被写入工作存储器的一帧中。寻呼系统的工作方式如下:当程序被接受执行时,计算其大小,用所需的页数表示。如果有足够的空闲帧数,则该过程将记录在每页的内存页中。同时,在frame表中输入写入每页的帧数。

什么是分割(segmentation)?

用户程序和相关数据可以划分为若干段。所有程序的段不必具有相同的大小,尽管有一个最大段长度。与分页一样,使用分段的逻辑地址由两部分组成,在本例中是分段数和该分段内的错位数。由于使用了不同大小的分段,因此分段类似于动态分段。在没有覆盖方案或使用虚拟内存的情况下,需要将所有程序段加载到内存中执行。与动态分区相比的区别在于,分区可以占用多个分区,并且该分区不必相邻。分割解决了内部分割的问题,但与动态分割一样,外部分割的问题仍然存在。但是,由于过程被划分为许多较小的部分,因此外部碎片通常较小。与程序员看不见的分页不同,分段通常是可见的,并且适合于组织程序和数据。为了模块化编程的目的,程序或数据可以进一步分成几个较小的部分。这种技术的缺点是程序员必须知道最大段大小的限制。使用不同大小的段的另一个方便之处是,逻辑地址和物理地址之间没有预期的连接。与分页类似,简单的分段技术使用每个进程的段表和主内存中可用块的列表。

分页和分段的区别

1.分页和分段的概念

分页在相同长度的块(页)上提供虚拟和物理地址空间以及辅助内存空间。这允许将连续虚拟地址空间分配给实际地址空间和辅助存储器中的分散(不一定连续分布)过程。甚至页面,作为一个术语,也指内存,而不是在程序级可见的逻辑对象。分段在直接对应于程序级对象的块(段)上传递虚拟地址空间。正因为如此,段没有固定的长度,所以在程序执行期间甚至可以更改段的大小。因此,保护和分割在对象级别是可能的,并且存在执行分割的可见过程。

2.分页和分段的特点

应用程序开发人员不知道分页。他写程序的时候就好像内存是线性的,操作系统和处理器关心内存的分区和虚拟地址的转换。然而,分段系统的程序员在他们的程序中列出了地址的两部分,段和页。所有页面的大小都相同,而片段则不同。分段有多个线性地址空间,分页只有一个。段允许对应用程序组件进行逻辑分区和保护,而页则不允许。

3.分页和分段的优点

分页对程序员来说是透明的,它消除了外部碎片,从而确保了主内存的有效使用。进出主内存的块是固定的,大小相同,因此可以开发利用程序行为的复杂内存管理算法。分段对开发人员是可见的,并且能够管理数据结构的增长、模块化以及对交换和保护的支持。

Paging vs. Segmentation: Comparison Chart
寻呼 分割
固定页面大小 线段的大小不是固定的
程序员看不见 对程序员可见
一个线性地址空间 多重线性地址空间
不允许对应用程序组件进行逻辑分区和保护 允许

总结 - 寻呼(of paging) vs. 分割(segmentation)

  • 分页是基于整个地址空间在固定长度块上的分布,这些块作为内存量化操作。此外,有必要提供一种标记可用存储器的方法,该方法可以通过存在指示页面状态的每个页面的“标题”(每个节点指向下一个空闲页面的全局链表)或通过将空闲页面地址放置在全局数组中来执行,这通常是最坏的解决方案。
  • 分段是指将地址空间划分为具有对MMU处理器的明确标记的访问权限的段。在段内,进程分配的内存正好是它们所需要的,但是内存管理的问题是如何提供这样的分配,它可以保留足够大的连续块内存,这可能需要一些时间。

  • 发表于 2021-06-25 04:10
  • 阅读 ( 584 )
  • 分类:IT

你可能感兴趣的文章

蠕动(peristalsis)和分割(segmentation)的区别

...,所以食物和其他分泌物的混合程度很低。 什么是分割(segmentation)? 分割是胃肠道的一种肌肉运动,帮助食糜与胃分泌物混合并分解成小部分以便于消化。当胃肠道的圆形肌肉收缩时,就会发生分割。主要发生在小肠和大肠。 ...

  • 发布于 2020-10-18 23:27
  • 阅读 ( 517 )

精神病学(psychographic)和行为分割(behavioral segmentation)的区别

...行为分割的表格形式 6. 摘要 什么是心理分割(psychographic segmentation)? 心理细分是指根据消费者的个性特征、价值观、态度、兴趣和生活方式进行市场细分。此外,识别心理细分将使企业能够根据客户的精确需求和期望开发和营...

  • 发布于 2020-10-23 18:22
  • 阅读 ( 730 )

为什么x86 CPU只使用四个“环”中的两个?

...otection, the granularity of protection offered thereby is only at the per-segment level. That is, each segment can be set to a specific ring (privilege level) along with other protecti*** like write-disabled. But there are not that many segment descriptors available. Most operating systems would li...

  • 发布于 2021-04-09 17:38
  • 阅读 ( 216 )

我的计算机中的ram能容纳多少个内存地址?

...emory addressing, there are few things I should mention: virtual memory, segmentation and paging. Virtual memory As @Daniel R Hicks pointed out in another answer, OSes use virtual memory. What it means is that applicati*** actually don’t operate on real memory addresses, but ones provided by O...

  • 发布于 2021-04-11 18:59
  • 阅读 ( 233 )

碎片(fragmentation)和分割(segmentation)的区别

...ragmentation, Internal Fragmentation, Memory Management, Operating System, Segmentation 什么是碎片(fragmentation)? 当执行一个进程时,它被加载到内存中。完成执行后,它将从内存中删除。进程加载和删除在内存中创建可用空间。这些空间很小,不...

  • 发布于 2021-07-01 01:52
  • 阅读 ( 978 )

交换(swapping)和寻呼(paging)的区别

...行多个进程。因此,它也是一种内存压缩技术。 什么是寻呼(paging)? 虚拟内存是一种允许程序员为程序使用比可用主内存更多内存的内存。例如,如果主内存是8GB,虚拟内存是16GB,那么程序员可以使用16GB的虚拟内存来执行程序...

  • 发布于 2021-07-01 06:45
  • 阅读 ( 282 )

蠕动(peristalsis)和分割(segmentation)的区别

...会出现二次蠕动波。因此,它迫使丸下来。 什么是分割(segmentation)? 分割是胃肠道环形肌肉局部收缩的一种。一般来说,主要发生在小肠。然而,这些局部的收缩是食物来回运动的原因。它允许连续细分、分解和混合内容。因...

  • 发布于 2021-07-02 02:15
  • 阅读 ( 443 )

人口统计学(demographic)和地理分割(geographic segmentation)的区别

...键术语 人口分类,地理分类 什么是人口细分(demographic segmentation)? 人口细分通过关注某些特征(如性别、年龄、收入、种族、职业和家庭状况)将客户分组。此外,这也是最流行的市场细分方法之一。我们在人口分类中考虑的...

  • 发布于 2021-07-02 23:36
  • 阅读 ( 1221 )

行为(behavioral)和心理图像分割(psychographic segmentation)的区别

...理细分,心理细分,行为细分 什么是行为细分(behavioral segmentation)? 行为细分是一种关注消费者如何与产品和品牌互动和互动的细分。它不是指人们的行为,而是指消费者在市场上可测量的行为。因此,在这种细分中,可以根...

  • 发布于 2021-07-02 23:41
  • 阅读 ( 1243 )

寻呼(paging)和操作系统中的细分(segmentation in os)的区别

...中,CPU产生两个地址,即页码和页偏移量。 什么是分割(segmentation)? 在分段过程中,将分段过程分成两个可变大小的段,并将可变大小的段装入逻辑内存地址空间。分段是一种内存管理方案,其中页的块大小可变。逻辑地址空...

  • 发布于 2021-07-08 11:58
  • 阅读 ( 187 )