操作系统 动态分区

操作系统 动态分区

动态分区试图解决固定分区带来的问题。在这种技术中,分区大小不是最初声明的,而是在进程加载时声明的。

第一个分区被保留给操作系统。剩下的空间被分成几部分。每个分区的大小将等于进程的大小。分区的大小根据进程的需求而变化,以避免内部碎片。

操作系统 动态分区

动态分区相对于固定分区的优势

1. 没有内部碎片

由于动态分区根据进程的需求创建分区,因此可以明确地知道分区中不会有任何未使用的剩余空间,所以不存在内部碎片。

2. 进程大小没有限制

在固定分区中,由于没有足够的连续内存,无法执行大小超过最大分区大小的进程。然而,在动态分区中,进程的大小不会受限,因为分区的大小是根据进程大小决定的。

3. 多道程序的程度是动态的

由于不存在内部碎片,分区中不会有任何未使用的空间,因此可以在内存中同时加载更多的进程。

动态分区的缺点

外部碎片

没有内部碎片并不意味着没有外部碎片。

假设有三个进程P1(1 MB)、P2(3 MB)和P3(1 MB)被加载到主内存的各自分区中。

过了一段时间,P1和P3完成了它们的任务并且它们占用的空间被释放。现在主内存中有两个未使用的分区(1 MB和1 MB),但是无法使用它们来加载一个2 MB的进程,因为它们不是连续的。

规则规定进程必须在主内存中连续存在才能执行。我们需要改变这个规则来避免外部碎片。

操作系统 动态分区

复杂的内存分配

在固定分区中,分区列表只会被创建一次并且永远不会改变,但是在动态分区中,每当分配给新的进程时,分区大小会发生变化,因此分配和回收非常复杂。操作系统必须跟踪所有的分区。

由于在动态内存分配中,分配和回收操作非常频繁,而且分区大小每次都会变化,因此对于操作系统来说管理所有事情将变得非常困难。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程