深入理解计算机系统3th----读书笔记

第1章 计算机系统漫游

  • 小结:计算机系统是由硬件和系统软件组成的,它们共同写作以运行应用程序。 计算机内部的信息被表示为一组组的位,它们依据上下文有不同的解释方式。程序被其他程序翻译成不同的形式。 开始时是ASCII文本,然后被翻译器和链接器翻译成二进制可执行文件。 处理器读取并解释存放在主存里二进制指令。因为计算机花费了大量的时间在内存,I/O设备和CPU寄存器之间复制 数据,所以将系统中的存储设备划分成层次结构–CPU寄存器在顶部,接着是多层的硬件高速缓存存储器,DRAM主存和磁盘存储器 。在层次模型中,位于更高层的存储设备比低层次的存储设备更快 ,单位比特造价也更高。层次结构中较高层次的存储设备可以作为比较低层次设备的高速缓存。 操作系统内核是应用程序和硬件之间的媒介。它提供三个基本抽象:1,文件是对I/O设备的抽象 2.虚拟内存是对主内存和磁盘的抽象。3. 进程是处理器,主存和I/O设备的抽象。最后网络提供了计算机系统之间通信的手段,从特殊的角度来看,网络就是一种I/O设备。
  • Amdahl定律

第一部分 程序结构和执行

第2章 信息的表示和处理
  • 三种最重要的数字表示:无符号编码基于传统的二进制表示法,表示大于或者等于零的数字。补码编码是表示有符号整数的最常见的方式,有符号整数就可以为正或者为负的数字。浮点数编码是表示实数的科学计数法的以2为基数的版本。
  • 信息的存储:8bit的块就是一个字节。每个程序对象简单理解为一个字节块,程序本身就是一个字节序列。
  • 字数据大小:字长表示指针数据的标称大小,因为虚拟地址是以这样的字一个字来编码的。所以字长决定的最重要的系统参数就是虚拟地址空间的最大大小。
  • 寻址和字节顺序:这个对象的地址是什么,以及在内存中如何排列这些字节。大端,小端
  • TODO 50-87

第3章 程序的机器级表示

  • gcc - S hello.c //产生汇编文件hello.s gcc -C hello.c //产生目标代码文件,hello.o objdump -d hello.o //反汇编