第一章 计算机系统漫游

编译系统

源程序hello.c -> 预处理器(cpp) -> 修改了的源程序hello.i -> 编译器(ccl) -> 汇编程序hello.s -> 汇编器(as) -> 可重定位目标程序hello.o -> 链接器(ld) -> 可执行目标程序hello

  • 预处理:修改源程序,如#include展开,宏处理等
  • 编译阶段:将文件文件hello.i翻译成hello.s,包含汇编语言程序
  • 汇编阶段:将hello.s翻译成机器语言指令,打包成可重定位目标程序格式,二进制格式
  • 链接阶段:合并可重定位目标程序,即多个.o链接合并成可执行程序

处理器

处理器核心是一个程序计数器(PC),其实就是一个寄存器。任何时候,PC都指向主存中的一条机器语言指令。处理器的操作围绕主存、寄存器、算术/逻辑单元(ALU)进行:

  • 加载:从主存中复制一个字节/字道寄存器
  • 存储:从寄存器复制一个字节/字到主存中
  • 操作:两个寄存器中的内容复制到ALU,对这两个数进行操作,并将结果放入一个寄存器中
  • 跳转:从指令中抽取一个字,并将这个字复制到PC中

Unix进程虚拟内存空间

从低地址往高地址:

  • 只读的代码和数据
  • 可读写数据
  • 共享库内存映射区域
  • 内核虚拟内存

并发(Concurrency)与并行(Parallelism)

  • 线程级并发
  • 指令级并行
  • 单指令、多数据并行:即SIMD并行,允许一条指令产生多个可以并行执行的操作。
Copyright © Jason 2019-2024 all right reserved,powered by Gitbook本书发布时间: 2022-03-20 15:47:17

results matching ""

    No results matching ""