计算机系统是由硬件和系统软件组成的,他们共同工作来运行应用程序。深入理解底层计算机系统以及它对应用程序的影响有助于提高程序的性能。
1.1 信息就是位 + 上下文
源程序实际上就是一个由值0和1组成的位序列。程序是由文本字符表示的,8个位被组织成一组,成为字节,每个字节表示为程序中的文本字符。
文本字符大都用ASCII 码表示。
ASCII码:(A~Z:65~90 a~z: 97~122 '\n':10 space:32)
大家熟悉的hello.c的ASCII码表示如下:
系统中的所有信息--包括磁盘文件,存储器中的程序,存储器中存放的用户数据以及网络上传送的数据都是由一串位表示的。区分不同数据对象的唯一方法就是我们读到这些数据对象时的上下文。比如在不同的上下文中,一个同样的字节序列可能表示一个整数,浮点数,字符串或者机器指令。
1.2 程序被其他程序翻译成不同的格式
这里涉及到编译原理方面的知识,参考书籍《编译原理》 人称龙书。
程序的编译流程如下:
各个步骤的细节不多讲,书上讲的很详细。
1.3 了解编译系统如何工作是大有益处的(略)
1.4 处理器读并解释存储在存储器中的指令
系统的硬件组成
1.5 高速缓存至关重要
利用高速缓存可大幅度提高程序的性能。
1.6 存储设备形成层次结构
注:SRAM:静态随机存取存储器,采用触发器工作原理存储信息。
DRAM:动态随机存取存储器,采用电容存储电荷的原理寄存信息。
二者比较:
DRAM的集成度远高于SRAM,DRAM的基本单元电路为一个MOS管,而SRAM的基本单元电路可为4~6个MOS管;
DRAM使用动态元件(电容),因此它的速度比SRAM低;
DRAM行、列地址按先后顺序输送,减少了芯片引脚,封装尺寸也减少;
DRAM的功耗比SRAM小;
DRAM价格比SRAM便宜,容量大,但存取周期慢;
DRAM需要再生,故需配置再生电路,需要消耗一部分功率。
以上原因可以解释为什么高速缓存用SRAM,而主存用DRAM。
1.7 操作系统管理硬件
详细说明书上以给出。
虚拟存储器:
1.8 系统之间利用网络通信(略)
1.9 重要主题(略)
1.10 小结
这是本书的第一章,是对以后各章的一个概述吧,所以并没有值得大书特书。本书的后面章节才是重中之重。如果有计算机组成原理基础和操作系统基础的可完全跳过。