第一章:计算机漫游

计算机系统漫游

信息就是位+上下文

程序被其他程序翻译成不同的格式

预处理器、编译器、汇编器、链接器一起构成了编译系统。

  • 预处理阶段,预处理器cpp会修改原始的C程序,比如会把#include 命令告诉预处理器读取系统头文件stdio.h的内容,并插入程序文本中,得到了另一个c程序,通常以.i为扩展名
  • 编译阶段,编译器ccl将.i文件翻译成.s文件,包含一个汇编语言程序。
  • 汇编阶段,汇编器as会将.s翻译成机器语言指令,把这些指令打包成一种叫做可重定位目标程序的格式,并将结果保存在目标.o文件中。.o文件是一个二进制文件。
  • 链接阶段,链接器ld负责将程序中调用标准库的函数同函数所在的预编译文件进行链接,得到一个可执行的目标文件,此文件可以被加载到内存中,由系统执行。

了解编译系统如何工作是大有益处的

处理器读并解释存储在内存中的指令

系统的硬件组成

  1. 总线,它携带信息字节并负责在各个部件间传递。
  2. I/O设备,每个I/O设备都通过一个控制器或适配器与I/O总线相连。控制器是I/O设备本身或系统的主板上的芯片组,适配器是一块插在主板插槽上的卡。
  3. 主存,是临时存储设备。物理上来说,主存是一组动态随机存取存储器DRAM芯片组成的。从逻辑上说,存储器是一个线性的字节数组,每个字节都有其唯一的地址,地址从零开始。
  4. 处理器,CPU,是解释或执行存储在主存中指令的引擎,处理器核心是一个大小为一个字的存储设备(寄存器),称为程序计数器PC,任何时刻PC都指向主存中某条机器语言指令。

例子,CPU在指令的要求下可能会执行这些操作:

  • 加载:从主存复制一个字节或一个字到寄存器,以覆盖寄存器原来的内容。
  • 存储:从寄存器复制一个字节或一个字到主存的某个位置,以覆盖原来的内容。
  • 操作:把两个寄存器的内容复制到ALU,ALU对这两个字做算术运算,并将结果放到一个寄存器中,以覆盖该寄存器中原来的内容。
  • 跳转:从指令本身中抽取一个字,并将这个子复制到程序计数器PC中,以覆盖PC中原来的值。

执行hello程序

高速缓存至关重要

存储设备形成层次结构

进程

进程是操作系统对一个正在运行的程序的一种抽象。

线程

虚拟内存

  • 程序代码和数据
  • 共享库
  • 内核虚拟内存

文件

文件就是字节序列。

系统之间利用网络通信

重要主题

并发和并行

  1. 线程级并发
  2. 指令级并行
  3. 单指令、多数据并行

你可能感兴趣的:(第一章:计算机漫游)