速读《深入理解计算机系统(第三版)》总结

速读《深入理解计算机系统(第三版)》总结

第一章 计算机系统漫游

读完第一章的心情实在难以述说,在此写下这一章自己的一点学习经历及感想

  • 仔细读完了这本书的第一章的内容,之前零零散散的学过一些计算机系统知识,也接触过编程,但是对于这两者并没有什么太多的思考,它们底层是什么联系也不太了解。当我读完这一章的内容时,我的内心是非常激动的,解除了很多之前学习中所残留下来的困惑,虽说是残留,但十分致命,令我一直处于一知半解的状态,我第一次的深刻觉得计算机是一个如此紧密的工具,我跟着作者的思路,从给出计算机漫游的标题,初步感知是计算机互联互通之意,作者以一个简单c语言输出程序为例,详细描述了程序开始至程序结束所经历的过程(此处对编译系统的学习对我帮助甚大!),如图所示。

    这个过程中,汇编程序的文本在汇编器的处理下,变成了由二进制组成的文本,在链接阶段与所用到的库函数生成的文件进行合并,最终形成可执行文件,即可被系统执行的文件,最后被执行。
  • 另外,通过学习在键盘输入命令后程序运行时操作系统的各个部件的作用,我对于操作系统中各个部件的配合与分工在大体上也有了更清楚的认识,就好似对号入座一般,其中的体会也是非常奇妙。下图为从键盘上读取命令的大体流程
  • 高速缓存为什么存在?之前的理解只是停留在提高计算机运行效率的层次,比较范,却忽视了对比研究,那思考为什么主存、磁盘不能代替其工作,不得不说前面作者所介绍的知识为后面知识层次的不断推进做了很好的铺垫。主存的单位造价比较低,主存的存储空间大,但是想提升CPU从主存读取数据的速度是很困难的,而且根据机器原理存储空间大的储存设备要比其小的储存设备运行慢,对于它们的工作中性能的平衡是一个很有学问的问题。因此,高速缓存便出现了,在一定程度上缓解了计算机运行中数据读取与写入上过慢的问题。在今天,于某种程度上来说,对于不同人群的需求不同,便出现了各式各样的不同配置的电脑去满足人们的需求。
  • 从计算机的最底层漫游至用户的需求,除了时间的堆积,这期间还经历很多很多复杂的革新阶段。当今世界的信息仿佛无处不在,我们又处于一个信息爆炸的时代,当然能深深感受到其中带来的便利,然而这一切的一切都是前辈们从底层一点一点堆积而成,我们应珍惜!
  • 待更!

原文地址:https://www.cnblogs.com/lilei0915lgz/p/11754282.html

时间: 2024-10-10 07:22:23

速读《深入理解计算机系统(第三版)》总结的相关文章

深入理解计算机系统(第三版) csapp 第六章部分答案

6.23 平均旋转时间: T avg rotation = 1/2*T max rotation = 1/2*(60s/15000RPM)*1000ms/s≈2ms 平均传送时间: T avg transfer = 1/RPM * (1/(平均扇区数/磁道))*60s/1min = 1/15000RPM * (1/800)*1000ms/s≈0.00008ms 总的预计访问时间: T access = Tave seek + T avg rotation + T avg transfer  ≈

大小端字节序的来历(摘自《深入理解计算机系统 第三版》)

术语“little endian(小端)”和“big endian(大端)”出自Jonathan Swift的<格列佛游记>(Gulliver's Trabels)一书,其中交战的两个派别无法就应该从哪一端(小端还是大端)打开一个半熟的鸡蛋打成一致.就像鸡蛋的问题一样,选择何种字节顺序没有技术上的理由,因此争论沦为关于社会政治论题的争论. 一下是Jonathan Swift在1726年关于大小端之争历史的描述: “......下面要告诉你的是,Lilliput和Blefuscu这两大强国在过去

深入理解C#第三版部分内容

 最近,粗略的读了<深入理解C#(第三版)>这本技术书,书中介绍了C#不同版本之间的不同以及新的功能. 现在将部分摘录的内容贴在下面,以备查阅. C#语言特性: 1.C#2.0 C#2的主要特性是泛型.可空类型.匿名方法及其他有关委托的增强和迭代模块.此外还包含一些小特性:分部类型.静态类.包含不同访问修饰符的属性的取值方法和赋值方法.命名空间别称.pragma指令以及固定大小的缓冲器. 2.C#3.0 C#3为LINQ而生,尽管很多特性在其他地方也很有用.自动属性.数组和局部变量的隐式类型.

深入理解计算机系统(第二版)----之一

第一部分:程序结构和执行 第1章:计算机系统漫游 第2章:信息的表示和处理 第3章:程序的机器级表示 第4章:处理器体系结构 第5章:优化程序性能 第6章:存储器层次结构 第二部分:在系统上运行程序 第7章:链接 第8章:异常控制流 第9章:虚拟存储器 第三部分:程序间的交互和通信 第10章:系统级I/O 第11章:网络编程 第12章:并发编程 ===第一章:计算机系统漫游================================================== 计算机系统的实现方式虽

深入理解计算机系统(第二版)----之三:程序的机器级表示

计算机执行机器代码,用字节编码低级的操作,包括处理数据.管理存储器.读写存储设备上的数据,利用网络通信,编译器基于变成语言的原则, 目标机器的指令集合操作系统遵循的原则,经过一系列阶段产生机器代码,gcc c语言编辑器以汇编代码的形式输出,汇编代码是机器代码的文本表示,给出程序的每一条指令.然后gcc调用汇编器和链接器,根据汇编代码生成可执行的机器代码. 本章,近距离观察机器代码和汇编代码. 机器级的实现,被高级语言屏蔽了,用高级语言编写的程序可以在很多不同的机器上编译和执行,而汇编代码则是与特

读Javascript高级程序设计第三版第六章面向对象设计--创建对象

虽然Object构造函数或者对象字面量都可以用来创建单个对象,但是缺点非常明显:使用同一接口创建很多对象,会产生大量重复代码. 工厂模式  1 function CreatePerson(name,age,job){ 2         var o=new Object(); 3         o.name=name; 4         o.age=age; 5         o.job=job; 6         o.sayName=function(){ 7            

深入理解计算机系统【三】

机器级表示.今天断断续续看了2小时,粗读了这章一半的内容. 计算机底层是01:但可读性不好,所以有了汇编语言.但汇编语言可读性也很差,所以又有了编译器,形成了各种贴近人类语言的Java.C之类的. 还一直以为自己干的是把人语言翻译成计算机呢,原来也是个中间层. 为什么要理解汇编?我想到了平常工作时的需求理解.现场的需求先和现场实施说,实施再找我们这边的设计,最后才到我们开发这里.这样子的需求往往就失真了许多.做出来的效果往往就不是很好,我一般都会采用开发完后多次发现场验证的方式来解决. 汇编在计

深入理解计算机系统 第三章大略和第五章大略

这2章总结的很少,主要是觉得没那么重要. 1.2个操作数的指令,第二个操作数通常是目的操作数:movb a b,move a to b,而add a b,b+=a,指令分为指令类,如mov类:movb,movw,movl,b指一个字节,w表示2个字节,l表示4个字节 movs类(扩展填符号),movz类(扩展填0) 寄存器:这里只说ia32体系的那8个32位寄存器,存数值和指针,都以%e开头,特殊地,最后两个:%esp是栈指针,%ebp是帧指针 指令可以独立地读取或写入前4个寄存器的2个低位字节

深入理解计算机系统(第二版)----之二:信息的表示和处理

二值信号容易被表示.存储和传输,比如穿孔卡上的有洞无洞,导线上的高低电压,对二值信号进行存储和执行的计算机的电子电路非常简单和可靠.制造商能够在一个单独的硅片上集成数百万甚至数十亿个这样的电路.单独的位没有意义,用一个二进制数字系统,能够用位组来编码负数,通过使用标准的字符码,能够对文档中的字母和符号进行编码. 2.1 信息存储 8位的块,即字节,是最小的可寻址的存储器单位,机器级程序把存储器视为一个非常大的字节数组,称为虚拟存储器,存储器的每个字节都由唯一的数字来标识,称为它的地址,所有可能地

【C# in depth 第三版】温故而知新(1) (转)

声明 本文欢迎转载,原文地址:http://www.cnblogs.com/DjlNet/p/7192354.html 前言 关于这本书(<深入理解C# 第三版>)的详细情况以及好坏,自行搜索即可,我就不啰里啰嗦的,此文责在备份,意在记录一下第二次阅读当中发现原先囫囵吞枣之处,也为了记忆深刻吧.对这里还有一本<Clr via C# 第四版>也准备二次阅读,关于精度细读章节,知乎传送门( 赵姐夫的回答 ): https://www.zhihu.com/question/2728336