连续和非连续内存分配的区别
1. 连续内存分配
连续内存分配基本上是一种将单个连续内存部分/部分内存分配给需要它的进程或文件的方法。因此,所有可用内存空间都位于同一位置,这意味着自由/未使用的可用内存分区不会以随机方式分布在整个内存空间中。主存储器是两个主要部分的组合——一个用于操作系统,另一个用于用户程序。我们可以通过将内存分区划分为固定大小的分区来实现/实现连续的内存分配。
2. 非连续内存分配
非连续内存分配基本上是一种与连续分配方法相反的方法,根据进程的要求将存在于不同位置的内存空间分配给进程。由于所有可用的内存空间都是分布式的,所以自由可用的内存空间也分散在各处。这种内存分配技术有助于减少内存浪费,最终导致内部和外部碎片。
连续和非连续内存分配的区别:
编号 | 连续内存分配 | 非连续内存分配 |
---|---|---|
1 | 连续内存分配将连续的内存块分配给文件/进程。 | 非连续内存分配将单独的内存块分配给文件/进程。 |
2 | 连续内存分配执行速度更快。 | 非连续内存分配执行速度较慢。 |
3 | 操作系统更容易控制。 | 非连续内存分配操作系统很难控制。 |
4 | 连续内存分配开销最小,因为在执行进程时没有太多的地址转换。 | 因为非连续内存分配有更多的地址转换,所以会有更多的开销。 |
5 | 连续内存分配方式中,内部碎片和外部碎片都有。 | 外部碎片发生在非连续内存分配方法中。 |
6 | 连续内存分配包括单分区分配和多分区分配。 | 非连续内存分配包括分页和分段。 |
7 | 连续内存分配内存浪费是存在的。 | 非连续内存分配没有内存浪费。 |
8 | 在连续内存分配中,换入的进程被安排在最初分配的空间中。 | 在非连续内存分配中,换入的进程可以安排在内存中的任何位置。 |