内存与操作系统内存管理
发布日期:2021-05-20 08:05:08 浏览次数:22 分类:精选文章

本文共 1596 字,大约阅读时间需要 5 分钟。

内存与操作系统内存管理

文章目录

一、内存的基础知识

1.1 内存存储单元

内存是用于存放数据的硬件,程序执行前需要将数据放入内存中才能被CPU处理。内存通过对内部的存储单元编地址来解决并发执行下各个程序的数据区分。根据计算机字长的不同,存储单元大小不同(如64位计算机每个字大小为64位,8个字节)。内存存放的相对寻址是通过相对地址实现的,但存入内存时需要通过进程在内存中的起始地址得到绝对地址。机器语言中的地址都是逻辑地址,在链接和装入内存运行后,通过动态重定位得到物理地址。

1.2 动态重定位

动态重定位是实现内存转换的主要方法。操作系统使用重定位寄存器(如IB):在内存中存放程序的起始位置。CPU接收逻辑地址后,通过重定位寄存器中的值可以转换为物理地址。无论是单任务还是多任务操作,物理地址在程序执行期间始终有效,因为进程在内存中保留PCB信息。

二、内存管理

操作系统对内存的管理是系统资源配置的重要职责,主要包括内存扩充、分配与回收以及内存保护等功能。

2.1 内存空间的扩充

操作系统对内存空间的扩充主要通过五种方法实现:覆盖技术、交换技术、虚拟内存、分区交换和�енность动分区交换。

2.1.1 覆盖技术

覆盖技术早期操作系统中的主要内存扩充方式。允许进程运行时,不需要完整装入内存,而是将程序和数据分散在多个磁盘空间中。

2.1.2 交换技术

交换技术是操作系统中的内存调度方式,通过交换进程在内存和磁盘间动态调度。具体方式是将进程调出的内存段保存在磁盘的对换区,这些区域I/O速度比文件区快。

3. 内存分配与回收

内存分配与回收是操作系统的一个重要任务,主要有连续分配way和非连续分配way两种方式。

3.1 连续分配

连续分配分为单一连续分配、固定分区分配和动态分区分配:

  • 单一连续分配仅适用于单任务操作系统。
  • 固定分区分配将内存划分为固定大小或大小不等的分区,并建立分区说明表记录每个分区的状态等信息。但这种方法容易产生内部碎片。
  • 动态分区分配是在进程运行时根据需求动态创建和释放内存分区,并通过空闲分区表记录内存使用情况。

3.2 非连续分配

非连续分配方式分为分页存储管理、分段存储管理和分段与分页式存储管理。

3.2.1 分页存储管理

分页存储将内存划分为大小相等的小段(页框),进程地址也被划分为大小相等的逻辑页。通过动态重定位实现地址转换,需建立页表记录每个页的位置。页数与页框数相等,内存碎片较小。

3.2.2 分段存储管理

分段存储将内存划分为与程序逻辑有关的段。段名与段号无关,不存储段号信息。段表记录段基址和长度,存储转换为物理地址。

3.2.3 分段与分页对比

分页以固定大小为物理单元,用户不可见。分段为逻辑单元,用户可见。分页地址一维,分段地址二维。分段易于信息共享和保护。

3.3 创进内存分配速率的优化

为了加快分页转换速度,引入快表缓存。硬件快表用于存储频繁访问的页表节点,提高地址转换效率。此外,页表过大时可通过二级页表进行管理。

页表过大主要存在以下问题:分页实施离散存储,通过二级页表将页表分区存储,可有效解决碎片问题。如何解决?

这需要第二级页表,将大的连续页框连成一组离散存储。这将改善内存布局,提高所有操作效率。总结来说,怎样实现这一点?

这种方法既有效,又能避免将页表存储过大化。

通过这种方法,解决了页表过大的问题,对实际应用表现有了显著提升。这也为后面更复杂的内存管理方案奠定了基础。

示例图片描述

.remove-left

图片描述:System Inn存储结构示意图。图片显示操作系统中使用的方法和数据结构。其中包括主 onPage和Page Table的关系,各自功能和作用清晰明了。

以上内容为文章的优化版本,页面结构更加简洁,内容更加连贯,同时删除了原始文章中不需要的结构标记(如ol、ul等)。

上一篇:操作系统虚拟内存相关
下一篇:操作系统的死锁与处理策略

发表评论

最新留言

很好
[***.229.124.182]2025年04月11日 19时17分14秒