深入理解计算机系统(1.2)------存储设备

  上一章我们讲解了hello world 程序在计算机系统中是如何运行的。 hello 程序的机器指令最初是存放在磁盘上的,当程序加载时,他们被复制到主存;当处理器运行程序的时候,指令又从主存复制到处理器。相似的,数据串"Hello World" 初始时在磁盘上,然后复制到主存,最后从主存上复制到显示设备。

  从程序员的角度来看,上面的复制就是开销,减缓了程序的真正工作。因此如何将这些复制操作尽快完成则是系统设计者的一个主要目标。

1、从磁盘加载可执行文件到主存

 2、将输出字符串从内存写到显示器

3、高速缓存存储器

  那么如何减少这种由数据复制所引起的开销呢?

  根据机械原理,较大的存储设备比 较小的存储设备运行的慢,而快速设备的造价远高于同类的低速设备。类似的,一个典型的寄存器文件只存储几百字节的信息,而主存里可以存放几十亿字节。然而处理器从寄存器文件中读数据的速度要比从主存中读取几乎快100倍。而且随着半导体技术的进步,这两者差距还在加大。因此加快处理器的运行速度比加快主存的运行速度要容易和便宜的多。针对这种处理器和主存之间的差异,系统设计者采用了更小、更快的存储设备,也就是高速缓存存储器(简称高速缓存),作为暂时的集结区域,用来存放处理器近期可能会需要的信息,类似于Java Web 框架的缓存机制。如下图:

4、存储设备的金字塔结构 

   在处理器和一个又大又慢的设备(比如主存)之间插入一个更小更快的存储设备(例如高速缓存)的想法已经是一个普遍的观念。实际上,每个计算机系统中的存储设备都被组织成了一个存储器层次结构。如下图所示:

   存储器层次结构的主要思想是一层上的存储器作为低一层存储器的高速缓存,因此,寄存器文件就是L1的高速缓存,L1是L2的高速缓存,L3是主存的高速缓存,而主存又是磁盘的高速缓存。

  正如可以运用不同的高速缓存的知识来提高程序性能一样,程序员同样可以利用对整个存储器层次结构的理解来提高程序性能。这个后面我们会详细讲解。

 5、本章总结

   本章主要介绍了高速缓存的产生的原理以及存储器设备的层次结构,如何理解整个存储器的层次结构,对于提高程序性能有很大的帮助。下一章将讲解操作系统的抽象概念。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

刷机教程:教你如何打造一台渗透测试手机

我们下面会给大家展示怎样打造自己的攻击测试手机,大家可以在上面跑Kali系统和AOPP(安卓开源攻击测试项目)。 简述手机刷机 1. 按照你的手机型号下载Rec...

25910
来自专栏FreeBuf

RED_HAWK:基于PHP实现的信息收集与SQL注入漏洞扫描工具

今天给大家介绍的这款工具名叫RED HAWK(红鹰??),这是一款采用PHP语言开发的多合一型渗透测试工具,它可以帮助我们完成信息采集、SQL漏洞扫描和资源爬取...

3596
来自专栏区块链

C/C+不为人知的黑客技术

臭猫鱼 2017-12-06 13:51:56 ? 一、什么是黑客 热衷于计算机技术,懂得C/C++编程知识的电脑爱好专家。系统、常用软件、网络软件不可避免存在...

1988
来自专栏腾讯技术工程官方号的专栏

Paxos和Raft的前世今生

? 前言 在保证数据安全的基础上,保持服务的持续可用,是核心业务对底层数据存储系统的基本要求。业界常见的1主N备的方案面临的问题是“最大可用(Maxi...

7.6K4
来自专栏大魏分享(微信公众号:david-share)

如何有效地对Linux系统补丁进行管理 ?

1. 前 言 本文所所采用的截图,大部分由笔者在红帽的同事马林提供,在此表示感谢。 最近几个月,全球勒索病毒肆虐。如之前的WannaCry,前两...

4616
来自专栏程序员互动联盟

程序员最喜欢说的十句话

1. 见鬼了,昨天还好好的 ? 2. 不用担心,这次肯定不会有问题了 ? 3. 只需要改一行代码,不会影响其它程序的。 ? 4. 这问题我改了呀! ? 5. 在...

2645
来自专栏Android开发与分享

【Android】多渠道打包,其实可以更快

44811
来自专栏PingCAP的专栏

PingCAP 开源 TiDB 自动化部署运维工具 TiDB Operator

TiDB Operator 是 TiDB 在 Kubernetes 平台上的自动化部署运维工具。目前,TiDB Operator 已正式开源(pingcap/t...

2044
来自专栏Java帮帮-微信公众号-技术文章全总结

一分钟教你知道乐观锁和悲观锁的区别

悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会...

1112
来自专栏P2P传输

.torrent文件该如何理解?BT种子的技术原理是什么?

1、torrent文件的原理:如果这个问题是指torrent文件本身,那么,当你对一个文件(或者文件夹)制作成.torrent文件,实际上生成的.torre...

860

扫码关注云+社区