美文网首页
CSAPP 第一章 计算机系统漫游

CSAPP 第一章 计算机系统漫游

作者: userheng | 来源:发表于2020-04-13 20:00 被阅读0次

序言

  1. 学习计算机系统的内部运作,以期望写出更好的程序。
  2. 学习系统最有效的方法就是do,在真正的系统上解决问题,编写和运行程序。
  3. 先略过数学细节,获得高层次(整体轮廓),然后可以在回头推导数学证明。

C语言源程序至可执行程序

hello.c -> hello.i -> hello.s -> hello.o -> hello可执行程序

  1. 预处理:预处理器处理源程序文件hello.c,引入如 #include<studio.h>头等。
  2. 编译:编译器将hello.i,翻译为汇编指令hello.s。
  3. 汇编:汇编器将hello.s,翻译为机器指令hello.o。
  4. 链接:链接器链接或合并用到的公共函数。

系统硬件组成

  • 总线:计算机各个组件之间传递数据的桥梁,通常总线被设计为传输单位为定长字节。
  • I/O设备:键盘、鼠标(输入) 显示器(输出)等。
  • 主存:DRAM芯片组成,可看作线性的大字节数组。(磁盘、光盘、磁带等同)
  • CPU:
    • 程序计数器:保存CPU将要执行的下一条指令地址。
    • 寄存器:保存一些计算过程中的中间变量。
    • 高速缓存:l1、l2、l3 cache等。

POSIX标准

IEEE(电气和电子工程师协会)规定了标准化的Unix开发,后来由Richard Stallman命名为"Posix"。
这套标准涵盖了很多方面,比如Unix系统调用的C语言接口、shell程序和工具、线程及网络编程等。
这些标准化工作的结果是Unix Distribution之间的差异已经基本消失。

Amdahl定律

Amdahl定律描述了改善任何过程的一般原则。
以计算机系统中的应用程序为例,若某个应用程序执行的时间为T_o,现将该程序的\alpha比例其性能提升k倍。
则有T_n= (1-\alpha)T_o + (\alpha T_o) / k,由此可得
加速比:S = T_o / T_n = \frac{1}{(1 - \alpha) + \alpha / k}

并行

  • 线程级并行:超线程,允许一个CPU执行多个控制流。(Intel core i7处理器每个核心可以同时执行两个线程)
  • 指令级并行:处理器一个周期可执行的指令多于一条,又称作超标量。
  • 单指令多数据并行:SIMD并行,单条指令可并行操作多条数据。

相关文章

网友评论

      本文标题:CSAPP 第一章 计算机系统漫游

      本文链接:https://www.haomeiwen.com/subject/esgnmhtx.html