深入理解计算机系统 (7)


深入理解计算机系统(第三版)/ CSAPP 杂谈,第9章:虚拟内存

  • 所有程序共享内存资源,这容易造成很多问题。虚拟内存用于管理内存,协调各程序之间的内存占用和释放,但对程序来说无感知。
  • 物理寻址流程:CPU 执行加载指令时,生成一个物理地址,通过内存总线传递给主存。主存取出物理地址对应的内存,并返回给 CPU,CPU 将其存放在寄存器中
  • 虚[……]

Read more




深入理解计算机系统(第三版)/ CSAPP 杂谈,第8章:异常控制流

  • 异常控制流(Exceptional Control Flow,ECF)是操作系统为应用提供的一种访问处理器资源之外的能力,对应于嵌入式和CPU等硬件的中断概念。
  • 系统调用,进程管理,并发,IO 访问都属于异常控制流。

  • 异常(exception)是控制流的突变,用来处理处理器状态中的某些变化。异常通[……]

Read more




深入理解计算机系统(第三版)/ CSAPP 杂谈,第7章:链接

  • 链接器主要完成符号解析和重定位两个任务。
  • 目标文件有三种形式:可重定位目标文件(.so);可执行目标文件(.exe),共享目标文件(.so)。

  • linux x86-64 的可重定位目标文件使用 ELF 格式。ELF 头的前 16 字节描述文件对应系统的字的大小和字节顺序,后面还有头的大小,目标文件[……]

Read more




深入理解计算机系统(第三版)/ CSAPP 杂谈,第6章:储存器层次结构

  • SRAM 贵,稳定,集成度低,用于高速缓存存储器
  • DRAM 较便宜,不稳定,集成度高,需要定时重新读写和纠错码,用于主存和帧缓冲区

  • DRAM 的存储单元(超单元)以二元阵列排列而不是线性排列,这样可以节省管脚。请求某个超单元先发送行,此时会将行缓存到内部行缓冲区;然后发送列,此时将该行该列的超单元[……]

Read more




深入理解计算机系统(第三版)/ CSAPP 杂谈,第3章:程序的机器级表示

  • x86-64寄存器起名:8位,%al;16位,%ax;32位,%eax;64位,%rax
  • x86-64寄存器作用:

  • %rax: 返回值
  • %rbx: 被调用者保存
  • %rcx: 第4个参数
  • %rdx: 第3个参数
  • %rsi: 第2个参数
  • %rdi: 第1个参数
  • %rbp: 被调用者保存
  • %rsp: 栈[……]

Read more




深入理解计算机系统(第三版)/ CSAPP 杂谈,第2章:信息的表示和处理

  • gcc编译可以用 -std 和-ansi 来选择C语言规范版本,默认-std=c89,外加一些C99,C11特性
  • 大小端可通过 int* 强转为 char* 来判断得出

  • 一般C语言的 char 范围是-128~127,但其实C语言规范只要求最小的可取值范围为-127~127。类似还[……]

Read more




深入理解计算机系统(第三版)/ CSAPP 杂谈,第1章:计算机系统漫游

本书第1章向我们介绍了信息的定义,以及程序是如何运行在计算机上的。

信息就是位+上下文

信息的本体是一连串的0101010101的bits,但是bits可以被解析为不同的含义,如何被解析就取决于上下文。

举个生活中的例子。“你好烦啊”如果是在一对情侣的温馨时刻中出现,那这句话可以被理解为“你个[……]

Read more