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

系列文章目录

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

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


总结

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/76849.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

KF V.S. GM-PHD

在计算机视觉的多目标跟踪(MOT)任务中,卡尔曼滤波(KF)和高斯混合概率假设密度(GM-PHD)滤波器是两种经典的状态估计方法,但它们的原理和应用场景存在显著差异。以下是两者的核心机制和…

车载通信架构 --- DOIP系统机制初入门

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 周末洗了一个澡,换了一身衣服,出了门却不知道去哪儿,不知道去找谁,漫无目的走着,大概这就是成年人最深的孤独吧! 旧人不知我近况,新人不知我过…

C++对象池设计:从高频`new/delete`到性能飞跃的工业级解决方案

一、new/delete的性能之殇:一个真实的生产事故 2023年某证券交易系统在峰值时段出现请求堆积,事后定位发现:每秒40万次的订单对象创建/销毁,导致: 内存碎片率高达37%(jemalloc统计)malloc调用…

【C/C++】深入理解整型截断与提升:原理、应用与区别

文章目录 1. 整形截断(Integer Truncation)1.1 整形截断的例子1.2 整形截断的细节 2. 整形提升(Integer Promotion)2.1 整形提升的规则2.2 整形提升的示例2.3 整形提升的实际应用2.4 整型提升与标准操作符 3. 整型截断与提升的区别…

python蓝桥杯备赛常用算法模板

一、python基础 (一)集合操作 s1 {1,2,3} s2{3,4,5} print(s1|s2)#求并集 print(s1&s2)#求交集 #结果 #{1, 2, 3, 4, 5} #{3}(二)对多维列表排序 1.新建列表 list1[[1,2,3],[2,3,4],[0,3,2]] #提取每个小列表的下标为2的…

【模块化拆解与多视角信息3】教育背景:学历通胀时代的生存法则

教育背景:学历通胀时代的生存法则 写在最前 作为一个中古程序猿,我有很多自己想做的事情,比如埋头苦干手搓一个低代码数据库设计平台(目前只针对写java的朋友),比如很喜欢帮身边的朋友看看简历,讲讲面试技巧,毕竟工作这么多年,也做到过高管,有很多面人经历,意见还算…

uniapp实现H5页面麦克风权限获取与录音功能

1.权限配置 在uni-app开发H5页面时,需要在manifest.json文件中添加录音权限的配置。具体如下: {"h5": {"permissions": {"scope.record": {"desc": "请授权使用录音功能"}}} }这段配置代码是用于向…

功能丰富的PDF处理免费软件推荐

软件介绍 今天给大家介绍一款超棒的PDF工具箱,它处理PDF文档的能力超强,而且是完全免费使用的,没有任何限制。 TinyTools(PC)这款软件,下载完成后即可直接打开使用。在使用过程中,操作完毕后&a…

鸿蒙开发-ArkUi控件使用

2.0控件-按钮 2.1.控件-文本框 Text(this.message).fontSize(40) // 设置文本的文字大小.fontWeight(FontWeight.Bolder) // 设置文本的粗细.fontColor(Color.Red) // 设置文本的颜色------------------------------------------------------------------------- //设置边框Tex…

深入理解 ResponseBodyAdvice 及其应用

ResponseBodyAdvice 是 Spring MVC 提供的一个强大接口&#xff0c;允许你在响应体被写入 HTTP 响应之前对其进行全局处理。 下面我将全面介绍它的工作原理、使用场景和最佳实践。 基本概念 接口定义 public interface ResponseBodyAdvice<T> {boolean supports(Metho…

深度解析Redis过期字段清理机制:从源码到集群化实践 (一)

深度解析Redis过期字段清理机制&#xff1a;从源码到集群化实践 一、问题本质与架构设计 1.1 过期数据管理的核心挑战 Redis连接池时序图技术方案 ​​设计规范&#xff1a;​ #mermaid-svg-Yr9fBwszePgHNnEQ {font-family:"trebuchet ms",verdana,arial,sans-se…

数据库ocm有什么用

专业能力的权威象征 。技术水平的高度认可&#xff1a;OCM 是 Oracle 认证体系中的最高级别&#xff0c;代表着持证人在 Oracle 数据库领域具备深厚的专业知识和卓越的实践技能。它证明持证人能够熟练掌握数据库的安装、配置、管理、优化、备份恢复等核心技术&#xff0c;并且能…

无人船 | 图解基于视线引导(LOS)的无人艇制导算法

目录 1 视线引导法介绍2 LOS制导原理推导3 Lyapunov稳定性分析4 LOS制导效果 1 视线引导法介绍 视线引导法&#xff08;Line of Sight, LOS&#xff09;作为无人水面艇&#xff08;USV&#xff09;自主导航领域的核心技术&#xff0c;通过几何制导与动态控制深度融合的机制&am…

Swift观察机制新突破:如何用AsyncSequence实现原子化数据监听?

网罗开发 &#xff08;小红书、快手、视频号同名&#xff09; 大家好&#xff0c;我是 展菲&#xff0c;目前在上市企业从事人工智能项目研发管理工作&#xff0c;平时热衷于分享各种编程领域的软硬技能知识以及前沿技术&#xff0c;包括iOS、前端、Harmony OS、Java、Python等…

【KWDB创作者计划】_KWDB部署与使用详细版本

KWDB发展历程 介绍KWDB前&#xff0c;先介绍下KaiwuDB&#xff0c; KaiwuDB 是浪潮控股的数据库企业&#xff0c;该企业提供的KaiwuDB数据库是一款分布式多模数据库产品&#xff0c;主要面向工业物联网、数字能源、车联网、智慧产业等行业领域。 在2024年7月&#xff0c; Kai…

Go:接口

接口既约定 Go 语言中接口是抽象类型 &#xff0c;与具体类型不同 &#xff0c;不暴露数据布局、内部结构及基本操作 &#xff0c;仅提供一些方法 &#xff0c;拿到接口类型的值 &#xff0c;只能知道它能做什么 &#xff0c;即提供了哪些方法 。 func Fprintf(w io.Writer, …

一、Appium环境安装

找了一圈操作手机的工具或软件&#xff0c;踩了好多坑&#xff0c;最后决定用这个工具(影刀RPA手机用的也是这个)&#xff0c;目前最新的版本是v2.17.1&#xff0c;是基于nodejs环境的&#xff0c;有两种方式&#xff0c;我只试了第一种方式&#xff0c;第二种方式应该是比较简…

【玩转全栈】—— Django 连接 vue3 保姆级教程,前后端分离式项目2025年4月最新!!!

本文基于之前的一个旅游网站&#xff0c;实现 Django 连接 vue3&#xff0c;使 vue3 能携带 CSRF Token 发送 axios 请求给后端&#xff0c;后端再响应数据给前端。想要源码直接滑倒底部。 目录 实现效果 解决跨域 获取 csrf-token 什么是 csrf-token &#xff1f; CSRF攻击的…

dify部署,ollama部署,拉取模型,创建ai聊天应用

dify下载安装 dify1.0.1 windos安装包百度云盘地址 通过网盘分享的文件&#xff1a;dify-1.0.1.zip 链接: 百度网盘 请输入提取码 提取码: 1234 dify安装包 linux安装包百度云盘地址 通过网盘分享的文件&#xff1a;dify-1.0.1.tar.gz 链接: 百度网盘 请输入提取码 提取码…

docx文档转为pdf文件响应前端

1、转换文件&#xff08;docx~pdf&#xff09; 1.引入pom依赖 <dependency><groupId>com.aspose</groupId><artifactId>aspose-words</artifactId><version>20.12.0</version> </dependency>2.读取docx文档数据-转换 // 初…