操作系统内存管理的主要活动
内存管理在操作系统中扮演着重要的角色。它处理内存以及将进程从磁盘移动到主内存以执行,然后再移回磁盘。
操作系统在内存管理方面的一些活动包括:
内存分配
一种简单的内存分配方法是根据需要为传入的进程提供空闲内存空间。这可以使用以下算法完成:
首位适配
分配第一个足够大的可用内存空间来满足进程的需求。搜索可以从开头开始,也可以从上次首位适配搜索结束的位置开始。
最佳适配
分配最小的、足够大的内存块来满足进程的需求。对于最佳适配算法,除非内存块按顺序维护,否则需要搜索整个块列表。
最差适配
将最大的可用内存块分配给进程。对于此算法,除非内存块按顺序维护,否则也需要搜索整个块列表。
交换
有时,进程会被从主内存移到辅助存储器中。这称为交换。稍后,被交换出的进程可以被交换回主内存以执行。交换的原因之一是为其他进程腾出空间,以便它们能够轻松执行。
一个说明交换过程的图是:
进程P1被交换出,即从主内存移动到辅助存储器,而进程P2被交换入,即从辅助存储器移动到主内存以执行。
分页
在计算机系统中,可以创建虚拟内存,其大小超过实际可用内存(即物理内存)。为此,使用了分页的概念。
在分页中,逻辑地址空间被划分为页,物理地址空间被划分为帧。页和帧的大小相同。进程由页数来衡量。
现在,这些页通过将页存储到帧中从逻辑地址空间被带入物理地址空间。创建页表来查找哪个页存储在哪个帧中。
使用以下示例更清晰地解释此概念:
上述示例的解释如下:
- 逻辑地址是13位。其中前3位表示页号,其余位是页偏移量。物理地址是12位。其中前2位表示帧号,其余位是页偏移量。
- 页和帧的大小为1KW。逻辑地址空间中有8页,物理地址空间中有4帧。
- 页表指定页在帧中的位置。它包含8行,每页一行,这些行的内容是存储该特定页的帧。这称为页表项。
- 例如,在页表第5行包含值11。这意味着第5页存储在物理地址空间的第3帧中。
分段
这是一种支持用户内存视图的内存管理技术。逻辑地址空间被划分为一组段。这些段具有名称和内存长度。因此,段地址使用其名称、基地址和长度来指定。
逻辑地址空间中的段如下所示:
广告