《深入理解计算机系统》阅读笔记01

信息就是位+上下文

  • 系统中所有的信息都是由一串比特表示的。区分不同数据对象的唯一方法是我们读到这些数据对象时的上下文。
  • 只有ASCII字符构成的文件称为文本文件,其他所有文件都称为二进制文件。

C语言成功的原因

  • 与UNIX操作系统关系密切。UNIX几乎全部都是C语言编写的,可以方便的移植到新的机器上。
  • 小而简单。
  • 是为实践目的设计的。

GNU与GCC

  • GCC是GNU项目开发出来的众多有用工具之一。
  • GNU项目的目标是开发出一个完整的类UNIX系统。
  • GNU环境包括:EMACS编辑器、GCC编译器、GDB调试器、汇编器、链接器、处理二进制文件的工具和其他一些部件。
  • GCC编译器目前已经可以支持多种不同的语言,能为不同的机器生成代码。支持的语言包括:C、C++、Fortran、Java、Pascal、Objective-C、Ada。
  • 现代开放源码运动的起源是GNU项目中自由软件的概念。

了解编译系统如何工作的好处

  • 优化程序性能。
  • 理解链接时出现的错误。
  • 避免安全漏洞。

处理器的指令集框架和微体系结构

  • 指令集框架描述的是每条机器代码指令的效果
  • 微体系结构描述的是处理器实际上是如何实现的

Amdahl定律

当我们对系统的某个部分加速时,其对系统的整体影响取决于该部分的重要性和加速程度。

若系统执行某应用程序所需要的时间为 Told T o l d ,假设系统某部分所需执行时间与该时间的比为 a a ,而该部分性能提升比例为 k k 。即该部分初始所需时间为 aTold a T o l d ,现在所需时间为 (aTold)/k ( a T o l d ) / k 。因此,总的执行时间应为:

Tnew=(1a)Told+(aTold)/k=Told[(1a)+a/k] T n e w = ( 1 − a ) T o l d + ( a T o l d ) / k = T o l d [ ( 1 − a ) + a / k ]

由此,可以计算加速比 S=Told/Tnew S = T o l d / T n e w
S=1(1a)+a/k S = 1 ( 1 − a ) + a / k

Amdahl定律的主要观点:要想显著加速整个系统,必须提升全系统中相当大的部分的速度。

你可能感兴趣的:(计算机系统)