系列文章目录
1.存储器的层次结构
2.程序的装入和链接
3.连续分配存储管理方式(内存够用)
4.对换(Swapping)(内存不够用)
5.分页存储管理方式
6.分段存储管理方式
文章目录
前言
根据我们前面讲的操作系统的内容,说白了**这章我们处理的就是作业来了放哪里?**存储器历来都是计算机系统的重要组成部分。近年来,随着计算机技术的发展,系统软件和应用软件在种类、功能上都急剧地膨胀,虽然存储器容量一直在不断扩大,但仍然不能满足现代软件发展的需要。因此,存储器仍然是一种宝贵而又稀缺的资源。如何对它加以有效的管理,不仅直接影响到存储器的利用率,而且对系统性能也有重大影响。存储器管理的主要对象是内存。由于对外存的管理与对内存的管理相类似,只是它们的用途不同,即外存主要用来存放文件,所以我们把对外存的管理放在文件管理一章介绍,下面我也稍微讲点外存。
一、存储器的存储结构:
在计算机执行时,几乎每条指令都涉及对存储器的访问,因此要求对存储器的访问速度能跟上处理机的运行速度。或者说,存储器的速度必须非常快,能与处理机的速度相匹配,否则会明显影响到处理机的运行。此外还要求存储器具有非常大的容量,而且存储器的价格还应很便宜,对于这样十分严格的三个条件,目前是无法同时满足的。于是,现代计算机系统中都无一例外地采用了多层结构的存储器系统。
1.多层结构的存储器系统:
对于通用计算机而言,存储层次至少具有三级:最高为CPU寄存器,中间是主存,最底层是辅存。在存储层次中,层次越高(越靠近CPU),存储介质的访问速度越快,价格也越高,相对所配置的存储容量也越小。其中,寄存器,高速缓存,主存储器和磁盘缓存均属于操作系统存储管理的管辖范畴,掉电后它们存储的信息不再存在。而低层的固定磁盘和可移动存储介质则属于设备管理的管辖范畴,它们存储的信息将被长期保存。

寄存器(Registers)
- 定义与位置 :
寄存器是CPU内部的一小部分存储单元,直接集成在处理器中,是计算机系统中速度最快的存储介质。 - 特点 :
- 容量极小:通常每个寄存器仅存储几个字节(如32位或64位)。
- 速度极快:访问延迟为纳秒级,与CPU时钟同步。
- 专用性:用于存储当前执行的指令、操作数或地址(如程序计数器、指令寄存器等)。
- 管理方式 :
- 由编译器或操作系统在程序执行时直接管理,通过指令集架构(ISA)暴露给程序员或操作系统。
- 在上下文切换时,操作系统需要保存和恢复寄存器的状态。
高速缓存(Cache)
- 定义与位置 :
高速缓存(Cache)是介于寄存器和主存之间的存储器,通常分为多级(L1、L2、L3),位于CPU芯片内部或附近。 - 特点 :
- 速度较快:访问速度接近寄存器(L1 Cache延迟约1-3个时钟周期)。
- 容量有限:L1 Cache通常为KB级(如32KB-64KB),L3 Cache可达MB级。
- 透明性:对程序员透明,由硬件自动管理。
- 作用 :
- 利用局部性原理(时间局部性、空间局部性)缓存最近使用的内存数据,减少CPU访问主存的次数。
- 缓解CPU与主存之间的速度差异("内存墙"问题)。
- 管理方式 :
- 由硬件(如缓存控制器)自动完成数据的加载、替换(如LRU算法)和一致性维护(如MESI协议)。
- 操作系统可能需要处理缓存一致性问题(尤其在多核系统中)。
主存储器(Main Memory,RAM)
- 定义与位置 :
主存储器(内存)是计算机的核心工作存储区域,由动态随机存取存储器(DRAM)构成,通过总线与CPU连接。 - 特点 :
- 速度中等:访问延迟约几十到几百纳秒。
- 易失性:断电后数据丢失。
- 容量较大:现代计算机内存通常为GB级(如8GB-128GB)。
- 作用 :
- 存储当前正在运行的程序和数据,供CPU直接读写。
- 作为高速缓存和磁盘之间的中转站。
- 管理方式 :
- 操作系统负责内存分配、回收、虚拟内存管理等。
- 通过分页、分段等技术实现进程隔离和内存保护。
磁盘缓存(Disk Cache)
- 定义与位置 :
磁盘缓存是主存储器(内存)中预留的一部分区域,用于缓存频繁访问的磁盘数据。 - 特点 :
- 非易失性无关 :数据仍存储在易失性内存中,但缓存的是非易失性磁盘的数据。
容量灵活:大小由操作系统动态调整(如Linux的Page Cache)。
- 非易失性无关 :数据仍存储在易失性内存中,但缓存的是非易失性磁盘的数据。
- 作用 :
- 减少直接访问磁盘的次数,提升I/O性能(磁盘访问延迟为毫秒级)。
- 合并多次小写操作,优化磁盘写入效率。
- 管理方式 :
- 由操作系统文件系统管理(如Linux的
pdflush
机制)。 - 使用回写(Write-back) 或直写(Write-through)策略保证数据一致性。
- 由操作系统文件系统管理(如Linux的
总结:反正我们要知道的就是磁盘中保存的数据一定是永久的,但主存储器当中的是临时的,就是断电以后数据就会消失了。
高速缓存容量远大于寄存器,而比内存约小两到三个数量级左右,从几十KB到几MB,访问速度快于主存储器。
还有对于磁盘缓存来说,一个文件的数据可能先后出现在不同层次的存储器中,例如,一个文件的数据通常被存储在辅存中(如硬盘),当其需要运行或被访问时,就必须调入主存,也可以暂时存放在主存的磁盘高速缓存中。
总结
以上就是我们要讲的内容,就是我们简单的分析了存储器的存储层次结构,下面我们会讲内存的分配方式,我会持续更新的。