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

系列文章目录

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,访问速度快于主存储器。

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


总结

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

相关推荐
fly spider24 分钟前
一站式Windows下Docker开启MySQL并链接本地Navicat(附乱码解决方案)
windows·mysql·docker·乱码解决
liyongjun631625 分钟前
CentOS 下 Zookeeper 常用命令与完整命令列表
linux·服务器·zookeeper·centos
sukalot28 分钟前
Windows 图形显示驱动开发-WDDM 1.2功能—无显示器系统支持
windows
facaixxx20241 小时前
什么是巨型帧Jumbo Frames?云服务器开启巨型帧有什么用?
运维·服务器
巨可爱熊4 小时前
高并发内存池(定长内存池基础)
linux·运维·服务器·c++·算法
yangang1856 小时前
linuxbash原理
linux·运维·服务器
小小毛桃6 小时前
在Ubuntu系统中运行Windows程序
linux·windows·ubuntu
一一Null6 小时前
关于手机取证中逻辑采集与系统备份的差异
服务器·网络·智能手机
码农新猿类7 小时前
服务器本地搭建
linux·网络·c++
小度爱学习7 小时前
linux中的执行命令格式及命令帮助
linux·运维·chrome