计算机操作系统——存储器管理

系列文章目录

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)​策略保证数据一致性。

总结:反正我们要知道的就是磁盘中保存的数据一定是永久的,但主存储器当中的是临时的,就是断电以后数据就会消失了。

高速缓存容量远大于寄存器,而比内存约小两到三个数量级左右,从几十KB到几MB,访问速度快于主存储器。

还有对于磁盘缓存来说,一个文件的数据可能先后出现在不同层次的存储器中,例如,一个文件的数据通常被存储在辅存中(如硬盘),当其需要运行或被访问时,就必须调入主存,也可以暂时存放在主存的磁盘高速缓存中。


总结

以上就是我们要讲的内容,就是我们简单的分析了存储器的存储层次结构,下面我们会讲内存的分配方式,我会持续更新的。

相关推荐
BAOYUCompany8 分钟前
暴雨服务器成功中标华中科技大学集成电路学院服务器采购项目
运维·服务器
fzyz12337 分钟前
Windows系统下WSL从C盘迁移方案
人工智能·windows·深度学习·wsl
鳄鱼皮坡1 小时前
仿muduo库One Thread One Loop式主从Reactor模型实现高并发服务器
运维·服务器
即将头秃的程序媛2 小时前
centos 7.9安装tomcat,并实现开机自启
linux·运维·centos
fangeqin2 小时前
ubuntu源码安装python3.13遇到Could not build the ssl module!解决方法
linux·python·ubuntu·openssl
小Mie不吃饭2 小时前
FastAPI 小白教程:从入门级到实战(源码教程)
运维·服务器
csdn_aspnet2 小时前
在 Windows 机器上安装和配置 RabbitMQ
windows·rabbitmq
csdn_aspnet3 小时前
Windows Server 上的 RabbitMQ 安装和配置
windows·rabbitmq
爱奥尼欧3 小时前
【Linux 系统】基础IO——Linux中对文件的理解
linux·服务器·microsoft
戒不掉的伤怀4 小时前
【Navicat 连接MySQL时出现错误1251:客户端不支持服务器请求的身份验证协议;请考虑升级MySQL客户端】
服务器·数据库·mysql