计算机体系结构
计算机系统漫游:
计算机系统是由硬件和系统软件组成的,它们共同工作来运行应用程序。
1.1 信息就是位+上下文
源程序实际上就是一个由值 组成的位(又称为比特)序列, 个位被组织成一组,称为字节。每个字节表示程序中的某些文本字符。
只由 ASCII 字符构成的文件称为文本文件,所有其他文件都称为二进制文件
上下文:即Context,指的是一种环境。在计算机技术中,相对于进程而言,上下文就是进程执行的环境。具体来说就是各个变量和数据,包括所有的寄存器变量,进程打开的文件、内存信息等。
1.2程序被其他程序翻译成不同的格式
执行这四个阶段的程序(预处理器、编译器、汇编器和链接器)一起构成了编译系统 (compilation system)
1.3 了解编译系统如何工作的好处
1.优化程序性能。
2.理解链接时出现的错误。
3.避免安全漏洞。
1. 4 系统的硬件组成
①总线:
贯穿整个系统的是一组电子管道,称作总线,它携带信息字节并负责在各个部件间传递。
通常总线被设计成传送定长的字节块,也就是宇 (word) 。字中的字节数(即字长)是一
个基本的系统参数,各个系统中都不尽相同。
②1/0 设备:
I/0( 输入/输出)设备是系统与外部世界的联系通道。每个 I/0 设备都通过一个控制器或适配器与 总线相连。
控制器和适配器之间的区别主要在千它们的封装方式。控制器是 1/0 设备本身或者系统的主印制电路板(通常称作
主板)上的芯片组。而适配器则是一块插在主板插槽上的卡。无论如何,它们的功能都是在1/0 总线和 1/0 设备之间传递信息。
③主存:
主存是一个临时存储设备,在处理器执行程序时,用来存放程序和程序处理的数据。从
物理上来说,主存是由一组动态随机存取存储器 (DRAM) 芯片组成的。从逻辑上来说,存储
器是一个线性的字节数组,每个字节都有其唯一的地址(数组索引),这些地址是从零开始
的。
④处理器:
中央处理单元 (CPU), 简称处理器,是解释(或执行)存储在主存中指令的引擎。处理器的核心是一个大小为一个字的存储设备(或寄存器),称为程序计数器 (PC) 。在任何时刻, PC 都指向主存中的某条机器语言指令(即含有该条指令的地址)。
处理器看上去是按照一个非常简单的指令执行模型来操作的,这个模型是由指令集架构决定的.
指令集架构描述的是每条机器代码指令的效果;而微体系结构描述的是处理器实际上是如何实现的。
1. 5 高速缓存至关重要
根据机械原理,较大的存储设备要比较小的存储设备运行得慢,而快速设备的造价远高于同类的低速设备
加快处理器的运行速度比加快主存的运行速度要容易和便宜得多。
针对这种处理器与主存之间的差异,系统设计者采用了更小更快的存储设备,称为高
速缓存存储器 (cache memory, 简称为 cache 或高速缓存),作为暂时的集结区域,存放处
理器近期可能会需要的信息。
程序具有访问局部区域里的数据和代码的趋势
1.6存储设备形成层次结构
存储器层次结构的主要思想是上一层的存储器作为低 层存储器的高速缓存。
1. 7 操作系统管理硬件
操作系统有两个基本功能:
(1) 防止硬件被失控的应用程序滥用;
(2) 向应用程序提供简单一致的机制来控制复杂而又通常大不相同的低级硬件设备
操作系统通过几个基本的抽象概念(进程、虚拟内存和文件)来实现这两个功能
1.7.1进程
进程是操作系统对一个正在运行的程序的一种抽象。在一个系统上可以同时运行多个进程,而每个进程都好像在独占地使用硬件。
而并发运行,则是说一个进程的指令和另一个进程的指令是交错执行的。在大多数系统中,需要运行的进程数是多千可以运行它们的
CPU 个数的。
无论是在单核还是多核系统中,一个 CPU 看上去都像是在并发地执行多个进程,这是通过处理器在进程间切换来实现的。操作系统实现这种交错执行的机制称为上下文切换。