在计算机执行时,几乎每一条指令都涉及对存储器的访问,因此要求对存储器的访问速度能跟得上处理机的运行速度。或者说,存储器的速度必须非常快,能与处理机的速度相匹配,否则会明显地影响到处理机的运行。此外还要求存储器具有非常大的容量,而且存储器的价格还应很便宜。对于这样十分严格的三个条件,目前是无法同时满足的。于是在现代计算机系统中都无一例外地采用了多层结构的存储器系统。

多层结构的存储器系统

存储器的多层结构

对于通用计算机而言,存储层次至少应具有三级:

  • 最高层为——CPU 寄存器
  • 中间——主存
  • 最底层——辅存

在较高档的计算机中,还可以根据具体的功能细分为寄存器高速缓存主存储器磁盘缓存固定磁盘可移动存储介质等6层。如图所示。

在存储层次中,层次越高(越靠近 CPU ),存储介质的访问速度越快,价格也越高,相对所配置的存储容量也越小。其中,寄存器、高速缓存、主存储器和磁盘缓存均属于操作系统存储管理的管辖范畴,掉电后它们中存储的信息不再存在。而低层的固定磁盘和可移动存储介质则属于设备管理的管辖范畴它们存储的信息将被长期保存

可执行存储器

在计算机系统的存储层次中,寄存器和主存储器又被称为可执行存储器。对于存放于其中的信息,与存放于辅存中的信息相比较而言,计算机所采用的访问机制是不同的,所需耗费的时间也是不同的。进程可以在很少的时钟周期内使用一条 load 或 store 指令对可执行存储器进行访问。但对辅存的访问则需要通过I/O设备实现,因此,在访问中将涉及到中断、设备驱动程序以及物理设备的运行,所需耗费的时间远远高于访问可执行存储器的时间,一般相差3个数量级甚至更多。
对于不同层次的存储介质,由操作系统进行统一管理。操作系统的存储管理负责对可执行存储器的分配、回收以及提供在存储层次间数据移动的管理机制,例如主存与磁盘缓存、高速缓存与主存间的数据移动等。而设备和文件管理则根据用户的需求,提供对辅存的管理机制。


主存储器与寄存器

1.主存储器

主存储器简称内存或主存,是计算机系统中的主要部件,用于保存进程运行时的程序和数据,也称可执行存储器。通常,处理机都是从主存储器中取得指令和数据的,并将其所取得的指令放入指令寄存器中,而将其所读取的数据装入到数据寄存器中;或者反之,将寄存器中的数据存入到主存储器。早期的内存是由磁芯做成的,其容量一般为数十 KB 到数百 KB 。随着 VLSI 的发展,现在的内存已由 VLSI 构成,其容量,即使是微机系统,也在数十 MB 到数 GB ,而且还在不断增加。而嵌入式计算机系统一般仅有几十 KB 到几 MB 。 CPU 与外围设备交换的信息一般也依托于主存储器的地址空间。由于主存储器访问速度远低于 CPU 执行指令的速度,为缓和这一矛盾,在计算机系统中引入了寄存器和高速缓存

2.寄存器

寄存器具有与处理机相同的速度,故对寄存器的访问速度最快,完全能与 CPU 协调工作,但价格却十分昂贵,因此容量不可能做得很大。在早期计算机中,寄存器的数目仅为几个,主要用于存放处理机运行时的数据,以加速存储器的访问速度,如使用寄存器存放操作数,或用作地址寄存器加快地址转换速度等。随着 VLSI 的发展,寄存器的成本也在迅速降低,在当前的微机系统和大中型机中,寄存器的数目都已增加到数十个到数百个,而寄存器的字长一般是32位或64位;而在小型的嵌入式计算机中,寄存器的数目仍只有几个到十几个,而且寄存器的字长通常只有8位。


高速缓存和磁盘缓存

1.高速缓存

高速缓存是现代计算机结构中的一个重要部件,它是介于寄存器和存储器之间的存储界,主要用于备份主存中较常用的数据,以减少处理机对主存储器的访问次数,这样可大幅度地提高程序执行速度高速缓存容量远大于寄存器,而比内存约小两到三个数量级左右,从几十 KB 到几 MB ,访问速度快于主存储器。在计算机系统中,为了缓和内存与处理机速度之间的矛盾,许多地方都设置了高速缓存。
将一些常用数据放在高速缓存中是否有效,这将涉及到程序执行的局部性原理(程序在执行时将呈现出局部性规律,即在一较短的时间内,程序的执行仅局限于某个部分。)。通常,进程的程序和数据存放在主存储器中,每当要访问时,才被临时复制到一个速度较快的高速缓存中。这样,当 CPU 访问一组特定信息时,须首先检査它是否在高速缓存中,如果已存在,便可直接从中取出使用,以避免访问主存,否则,就须从主存中读出信息。如大多数计算机都有指令高速缓存,用来暂存下一条将执行的指令,如果没有指令高速缓存, CPU 将会空等若干个周期,直到下一条指令从主存中取出。由于高速缓存的速度越高价格也越贵,故在有的计算机系统中设置了两级或多级高速缓存。紧靠内存的一级高速缓存的速度最高,而容量最小,二级高速缓存的容量稍大,速度也稍低。

2.磁盘缓存

由于目前磁盘的I/O速度远低于对主存的访问速度,为了缓和两者之间在速度上的不匹配,而设置了磁盘缓存,主要用于暂时存放频繁使用的一部分磁盘数据和信息,以减少访问磁盘的次数。但磁盘缓存与高速缓存不同,它本身并不是一种实际存在的存储器,而是利用主存中的部分存储空间暂时存放从磁盘中读出(或写入)的信息主存也可以看作是辅存的高速缓存,因为,辅存中的数据必须复制到主存方能使用,反之,数据也必须先存在主存中,才能输出到辅存。
一个文件的数据可能先后出现在不同层次的存储器中,例如,一个文件的数据通常被存储在辅存中(如硬盘),当其需要运行或被访问时,就必须调入主存,也可以暂时存放在主存的磁盘高速缓存中。大容量的辅存常常使用磁盘,磁盘数据经常备份到磁带或可移动磁盘组上,以防止硬盘故障时丢失数据。有些系统自动地把老文件数据从辅存转储到海量存储器中,如磁带上,这样做还能降低存储价格。

os 存储器的结构层次相关推荐

  1. OS存储器管理(一)

    存储器的层次: 分为寄存器.主存(内存)和 辅存(外存)三个层次. 主存:高速缓冲存储器.主存储器.磁盘缓冲存储器, 主存又称为可执行存储器: 辅存:固定磁盘存储器.可移动的外部存储器: 其可长期保存 ...

  2. 计算机操作系统——(第四章) 存储器管理/内存管理

    目录 Previously on OS... 存储器的层次结构 操作系统的内存管理 程序运行的步骤 地址绑定 Previously on Experiment 内核的编译 gdb调试[1] Stopp ...

  3. 操作系统复习(自用,参考b站upstudy_vibes操作系统视频)

    操作系统 第一章 操作系统的定义 计算机系统中控制和管理计算机系统资源,合理组织计算机工作流程,提高资源利用率和方便用户使用计算机系统的计算机程序的集合 操作系统的目标 方便性 有效性 可扩充性 开放 ...

  4. 计算机组成原理之主存储器

    概述 存储器的分类 按存储介质分类 存储介质是指能寄存"0"."1"两种代码并能区分两种状态的物质或元器件. 半导体存储器:分为双极型(TTL)半导体存储器和M ...

  5. PalmOS开发教程-3

    第三章 文本框中的乐趣      在本章节中,我们将通过讨论第二章中Hello应用程序的副本,来研究文本框的属性和事件.涉及的内容包括文本框如何调用Palm OS存储器和处理它们之间的关系等.我们也将 ...

  6. java基础—java内存模型(JMM)CPU架构、缓存一致性、重排序、JMM的实现、JMM保证可见性、有序性问题的详解

    java基础-JMM(CPU架构.JMM保证可见性.有序性) 文章目录 java基础-JMM(CPU架构.JMM保证可见性.有序性) CPU架构 说一说现在计算机存储器的结构层次 使用CPU缓存,会导 ...

  7. js 余数 取_js取整数、取余数

    OS存储器管理(一) 存储器的层次: 分为寄存器.主存(内存)和 辅存(外存)三个层次. 主存:高速缓冲存储器.主存储器.磁盘缓冲存储器, 主存又称为可执行存储器: 辅存:固定磁盘存储器.可移动的外部 ...

  8. 存储器结构层次(二)

    局部性: 局部性分为时间局部性和空间局部性:Locality is typically described as having two distinct forms: temporal localit ...

  9. Computer OS系统基本原理

    Computer OS系统基本原理 第一章 绪论(考概念) 什么是OS? o 操作系统是一组控制和管理计算机软硬件资源.合理地对各类作业进行调度以及方便用户使用的程序集合. o 操作系统是位于硬件层( ...

  10. uC/OS和uClinux的比较

    摘    要: 嵌入式操作系统是嵌入式系统应用的核心.本文通过对两种典型的开源嵌入式操作系统的对比,分析和总结了嵌入式操作系统应用中的若干问题,归纳了嵌入式操作系统的选型依据. 引言     随着现代 ...

最新文章

  1. 成绩从大到小排序c语言,刚学c语言,老师让用if编一个五个数字从大到小的排序,有那个大神能帮我,谢谢啦...
  2. 预告|第四届工业大数据创新竞赛决赛答辩倒计时
  3. 清华大学施路平:双脑驱动的人工通用智能
  4. [Web开发] 在网页中动态加入RSS feed 元素
  5. 地理标志农产品数据发布 特色产业对话农民丰收节交易会
  6. 【uva1380 - 一个调度问题】思路题+树形dp
  7. c语言grade d10,《电子技术10级C语言课程设计报告书写规范》.doc
  8. 三种查看SqlServer中数据物理pge页的方法
  9. 容器编排技术 -- Kubernetes Replica Sets
  10. C++11Mutex(互斥锁)详解
  11. 聚类算法(K-Means和DBSCAN)
  12. 【牛腩新闻发布系统】开始
  13. 国内外低代码平台一览
  14. 华为虚拟机eNSP命令大全
  15. 自顶向下(top down)简介
  16. Android上的CPU和GPU是共享内存,为什么有的手机从GPU读取数据还是很慢?
  17. Java学习day11--IO流总结
  18. 微信小程序实现拍照功能
  19. Linux下IO编程(一)
  20. 各种activation function(激活函数) 简介

热门文章

  1. 手机安装 卸载CA证书
  2. 您已购买此 App 内购买项目。此项目将免费恢复。This In-App purchase has already been bought.It will be restored for free.
  3. 怎样查找计算机的ip mac地址,如何通过mac地址查ip,教您Mac怎么查看ip地址
  4. C语言输入某年某月某日,判断这一天是这一年的第几天(含判断闰年)
  5. 【Qt/C++异常笔记】间接寻址级别不同
  6. 春季校园招聘简历投递量已超去年同期;亚太房地产市场现逢低买入良机 | 美通企业日报...
  7. SD卡fat32文件格式说明
  8. 计算与推断思维 五、表格
  9. 放弃有道词典和有道云笔记
  10. 文件的文件名翻译重命名技巧操作