DJ4-1 存储器的层次结构

news2024/11/14 15:35:14

目录

4.1.1  存储器的层次结构

1. 主存储器(内存,主存,可执行存储器)

2. 寄存器

3. 高速缓存

4. 磁盘缓存

存储器层次结构的特点

4.1.2  存储器管理的目的和功能

1. 主存储器的分配和管理

2. 提高主存储器的利用率

3. 扩充主存储器的容量

4. 存储空间的保护

4.1.3  存储分配的三种方式

1. 直接指定方式

2. 静态分配方式

3. 动态分配方式

4.1.4  基本概念

1. 逻辑地址(相对地址,虚地址)

2. 物理地址(绝对地址,实地址)

3. 三个空间


 

4.1.1  存储器的层次结构

寄存器、高速缓存、主存储器和磁盘缓存 均属于操作系统存储管理的管辖范畴,掉电后它们存储的信息不再存在。而低层的 固定磁盘和可移动存储介质 属于设备管理的管辖范畴,它们存储的信息将被长期保存。

1. 主存储器(内存,主存,可执行存储器)

用于存放进程运行时的程序和数据。CPU 的控制部件只能从主存中取得指令和数据到 CPU 寄存器;同样,CPU 寄存器中的数据可存入主存。CPU 与外设交换数据必须依托于主存。

 

 

2. 寄存器

用于存放处理机运行时的数据。寄存器访问速度最快,能够与 CPU 协调工作。

3. 高速缓存

用于备份主存中较常用的数据。CPU 对高速缓存的访问速度介于访问主存和访问寄存器之间。根据程序执行的局部性原理,将主存中一些经常访问的数据存放在高速缓存中,减少访问主存的次数,提高程序的执行速度。

程序执行的局部性原理:在一较短的时间内,程序的执行仅局限于某个部分。

有些计算机系统设置了两级高速缓存,即一级高速缓存与二级高速缓存。

4. 磁盘缓存

用于暂时存放频繁使用的一部分磁盘数据和信息,以减少访问磁盘的次数。为了缓和主存储器和磁盘在速度上的不匹配。

磁盘缓存不是一种实际存在的存储器,而是利用主存中的部分存储空间暂时存放从磁盘中读出或写入的信息。即主存中一块存储区,对应于某固定磁盘,临时存储磁盘数据(如数据预取)

存储器层次结构的特点

① 三级存储器,从高速缓存到内存到外存,存储器的容量越来越大,而访问数据的速度则越来越慢,价格也越来越便宜。如:高速缓存的最大传输速度为几十分之一至几百分之一纳秒,而主存的传输速度为几纳秒级。

由操作系统协调这些存储器的运作。

② 用户的程序在运行时应存放在主存中,以便处理机访问。

其中直接存取要求内存的速度尽量快到与 CPU 取指速度相匹配,且内存的容量需要大到能装下当前运行的程序与数据,否则 CPU 执行速度就会受到内存速度和容量的影响而得不到充分发挥。

③ 由于主存的容量和速度有限,因此把那些不需立即使用的程序和数据放在外存中,需要时再把它们读入主存。

4.1.2  存储器管理的目的和功能

1. 主存储器的分配和管理

  • 按用户要求把适当的存储空间分配给相应的作业
  • 在用户不再使用它时应立即回收,以供其他用户使用

为此,这个存储分配机制应具有如下三个功能:

  1. 记录每个存储空间的状态
  2. 实施存储空间的分配
  3. 接受系统或用户释放的存储空间

2. 提高主存储器的利用率

使多道程序能动态地共享主存,能共享主存中的信息。

3. 扩充主存储器的容量

借助于虚拟存储器或其它自动覆盖技术,为用户提供比主存的存储空间还大的地址空间。

4. 存储空间的保护

确保各道用户作业都在所分配的存储空间内操作,互不干扰。

4.1.3  存储分配的三种方式

存储分配,解决多道作业之间共享主存的问题。确定什么时候,以什么方式,把一个作业的全部信息或作业运行时首先需要的信息分配到主存中,并使这些问题对用户来说尽可能是 “透明” 的。

1. 直接指定方式

程序员在编写程序时或编译程序在对源程序进行编译时,使用实际的存储空间地址。

  • 在多道程序环境下,应保证各作业所用的地址互不重叠。

采用直接指定方式的前提是:存储器的可用空间是已经给定的或者是可以指定的,这对单用户计算机系统是没有问题的。

在多道程序发展的初期,通常把存储空间划分成若干个固定的不同大小分区,并对不同的作业指定相应的分区。因此,对编程人员或对编译程序而言,存储器的可用空间是可知的。

直接指定方式的实质是:程序员在编写程序时或编译程序在对源程序进行编译时,需要指定一个作业的所有信息在主存储器中的位置。因此,这种直接指定方式的存储分配方案,不仅让用户感到不便,而且让存储空间的利用也不那么有效。(缺点)

2. 静态分配方式

静态分配方式是指在程序运行期间分配固定的存储空间的方式。

程序员在编写程序时或编译程序在对源程序进行编译时,均可从其地址空间的零地址开始;当装配程序对其进行连接装入时才确定它们在主存中的相应位置,从而生成可执行程序。也就是说,存储分配是在装入时实现的。


静态分配方式的特点:

  • 在一个作业装入时必须分配其要求的全部存储量;
  • 如果没有足够的存储空间,就不能装入该作业;
  • 一旦一个作业进入内存后,在其退出系统之前,它一直占用着分配给它的全部存储空间;
  • 作业在整个运行过程中不能在内存中移动,也不能再申请存储量。

静态分配方式的存储管理很简单,但在多道程序系统中不能有效地共享存储器资源。

  • 必须估算好一个作业需要的存储量
  • 由于程序执行的局部性,可能浪费内存空间

3. 动态分配方式

动态分配方式的特点:

  • 作业在存储空间中的位置,也是在其装入时确定的;
  • 在其执行过程中可根据需要申请附加的存储空间;
  • 一个作业已占用的部分存储区域不再需要时,可以要求归还给系统;

即这种存储分配机制能接受不可预测的分配和释放存储区域的请求,实现个别存储区域的分配和回收。

  • 存储区域的大小是可变的;
  • 允许作业在内存中移动。

在空闲存储空间零零散散时,移动内存中的作业,拼凑出一个完整的存储空间,以存放一个新的大作业。

目前,绝大多数计算机系统都采用静态或动态存储分配方式,所以,在本章只讨论这两种存储分配的实现技术,重点放在各种动态存储分配技术的实现上。

4.1.4  基本概念

1. 逻辑地址(相对地址,虚地址)

用户的程序经过汇编或编译后形成目标代码,目标代码通常采用逻辑地址的形式,其首地址为 0,其余指令中的地址都相对于首地址而编址。

注意:不能使用逻辑地址在内存中读取信息。

2. 物理地址(绝对地址,实地址)

内存中存储单元的地址,可直接寻址。

3. 三个空间

① 名空间:存放源程序的空间称为名空间。

namespace 名空间名 {
    ...
}

② 地址空间:程序访问信息时所用地址的集合,是逻辑地址的集合,由编译程序生成。

③ 存储空间:实际内存单元地址的集合,是物理地址的集合。

存储空间的大小由内存的实际容量决定。

  • 地址空间是一个虚概念,存储空间是一个实物体。
  • 当目标程序需要在计算机上运行时才被装入存储空间。
  • 一个作业在编译和装入的前后存在于不同的空间中。

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

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

相关文章

基于ArcGIS Pro、Python、USLE、INVEST模型等多技术融合的生态系统服务构建生态安全格局

近年来,由于社会经济的快速发展和人口增长,社会活动对环境的压力不断增大,人地矛盾加剧。虽然全球各国在生态环境的建设和保护上已取得不少成果,但还是未从根本上转变生态环境的恶化趋势;生态破坏、环境退化、生物多样…

OceanMind海睿思入选“2023爱分析·智能制造最佳实践案例”

近日,中国领先的产业数字化研究与咨询机构 爱分析 发布了《2023爱分析智能制造最佳实践案例》,该奖项旨在肯定智能制造领域领先企业的数字化创新应用和最佳实践。 中新赛克海睿思凭借为星宇股份构建的“星宇车灯数据智能解决方案”入选智能制造最佳实践…

AWR1642毫米波雷达实测行人、自行车和汽车等目标

本文编辑 | 调皮哥的小助理 AWR1642因为最大中频带宽 固定只有5MHz,最大中频带宽是发射信号与回波信号混频之后得到的最大中频频率,即代表着最大的回波延迟时间。 因此根据雷达方程和目标最大探测距离公式,如下所示: 复采样&…

一文谈谈文心一言对比ChatGPT4.0的差距

对于想体验文心一言的朋友,可以进行申请尝试,快速入口 如果想体验ChatGPT的朋友,可以自行fq注册;但是由于现在限制注册并且不稳定,对于不会用梯子不想注册的朋友可以使用这个进行访问,快速入口 关于ChatG…

CTF之SSRF常见绕过

1.绕过localhost和127.0.0.1 当程序中限制了我们使用localhost和127.0.0.1时,便可以利用进制转换来绕过 http://0x7F.0.0.1 //16进制 http://0177.0.0.1 //8进制 http://2130706433 //10进制整数格式 http://0x7F000001 16进制整数格式 http://127.1 //省略模式 h…

【算法】C程序的运行速度测试

C语言程序的运行速度测试 代码随想录上提到了一点,即我们应该学会估计一个时间复杂度较高的算法,在机器上的运行速度。 如果题目给出的数据量级在高复杂度的算法中会超时,那就应该放弃使用这个代码,而想其他时间复杂度更优的解法…

QMS-云质说质量 - 9 我和我的客户投诉(1) - 逢年过节要祈祷

云质QMS原创 转载请注明来源 作者:王洪石 逢年过节都要祈祷 在某外资汽车零部件企业工作的那些年,无论在质量部还是项目部,都是成天和客户打交道,也经常面对各种各样的客户投诉。 尤其是当质量经理的那些年,每年都要被…

docker搭建简单elk日志系统5(logstash管道配置文件logstash.conf)

1.查看logstash管道配置文件logstash.conf cd ~/elk/logstash/pipeline/ cat logstash.conf默认的配置文件输入是beat; beat表示ELK Stack中的核心组件Beats; Beats指轻量型数据采集器,是一些列beat的合称;目前官网上的beat有: …

sql注入 Quine注入解析

前言 quine注入,即查询的结果是查询的语句 首先看看如下sql语句会返回什么 select replace(".",char(46),".");返回了一个点 匹配字符串".“中ascii码为46的字符并替换为”.“,也就是将”.“转换为”."并返回 继续看下面这个sql语句 selec…

状态机编程

//定义的枚举 typedef enum { KEY_UP 1, //按键按下 Edge_Lead2, //前沿抖动 KEY_DOWN 3, //按键松开 Edge_Back4, //后沿抖动 } KEY_Status; 主函数: #include "stm32f4xx.h" #include "led.h" #include "delay.h" #include "…

QMS-云质说质量 - 8 颠覆你的认知,中小型企业数字化转型更容易成功

数字化转型,不但不遥远,而且似乎离我们每个人的生活还非常近。尤其是近几年,出于政府号召与扶持,市场竞争以及企业自身发展需要等各方面原因,越来越多的企业已经开始或者正在准备进行数字化转型。即使是规模一两百人的…

MATLAB如何自定义颜色图(colormap)

MATLAB有一套自己的颜色库,常用的都有,但是数量不算太多。我们有时候需要用到一些MATLAB没有的colormap,比如Python的Matplotlib就有很多的colormap,我们也有可能需要自己来定义一些渐变的颜色。本片笔记主要是介绍colormap如何自…

在vite中使用mockjs, vite中使用vite-plugin-mock

相信前端同学都会碰见类似的问题,就是页面可能很快写完了,但是接口同学还在缓慢设计表中! 这个时候咳咳,你就可以去摸鱼了或者看小说了 但实际上可不能这样哦,要老老实实做个打工人 步入正题了 在vite中有个mock的插…

SpringCloud学习6(Spring Cloud Alibaba)断路器Sentinel熔断降级

文章目录 服务熔断降级Sentinel高并发请求模拟(这里我们使用contiperf来进行测试)修改tomcat配置最大线程数引入测试依赖编写测试代码 服务雪崩服务雪崩的容错方案(隔离、超时、限流、熔断、降级)隔离机制:超时机制&am…

混淆电路(GC)

基本概念 在混淆电路框架下,任意功能函数可被表示为一个与门和异或门组成的布尔电路,协议的参与方由生成方(Garbler)和计算方(Evaluator)组成。 **大致的流程:**生成方生成密钥并加密查找表&am…

淘宝天猫数据查询(天猫智能手环数据分析)

近几年,中国智能可穿戴设备市场规模不断增长,也取得了傲人的成绩。从可穿戴设备市场整体发展来看,智能手环是一大主角。智能手环市场接受度和认可度的逐渐提升,为各类厂商提供了更多机会,同时这也蕴含了更多市场增量空…

分享两个有意思的登录界面

1.带有浮动占位符和灯光按钮的登录界面 先上效果: 代码如下: <!DOCTYPE html> <html lang="en"> <head>

L2-2 天梯赛的赛场安排

作者 陈越 单位 浙江大学 天梯赛使用 OMS 监考系统&#xff0c;需要将参赛队员安排到系统中的虚拟赛场里&#xff0c;并为每个赛场分配一位监考老师。每位监考老师需要联系自己赛场内队员对应的教练们&#xff0c;以便发放比赛账号。为了尽可能减少教练和监考的沟通负担&#…

this.$set的正确使用

this.#set(obj, key, value) 我们在项目开发的过程中&#xff0c;经常会遇到这种情况&#xff1a;为data中的某一个对象添加一个属性 <template><div class"hello"><button click"setMessage">添加属性</button>{{ student.name…

开发IM(即时通讯)服务端

首先讲讲IM&#xff08;即时通讯&#xff09;技术可以用来做什么&#xff1a;可以说几乎所有高实时性的应用场景都需要用到IM技术。 本篇将带大家从零开始搭建一个轻量级的IM服务端&#xff0c;麻雀虽小&#xff0c;五脏俱全&#xff0c;我们搭建的IM服务端实现以下功能&#x…