首页 > 技术文章 > 《程序是怎样跑起来的》读书笔记

cjl21 2017-02-25 20:24 原文

2017-2-25

前段时间读完《程序是怎样跑起来的》,对程序的运行过程认识更深。书中前六章讲解了CPU二进制内存与磁盘、数据压缩,比较易于理解,读过之后也收益良多。后面章节涉及汇编语言、操作系统知识,因缺乏基础而尚未能完全弄懂。

趁还有记忆简单总结一下前面六章书的章节要点,方便日后回顾。


 

CPU

  • 内容:书中第一章讲解CPU的运行机制,具体解释了保持指令和数据寄存器机制。
  • CPU组成:控制器、运算器、寄存器(8类)、时钟。
  • 机器语言指令的主要类型:数据转送指令、运算指令、跳转指令、call/return指令。

二进制

  • 内容:第二章讲解使用二进制表示信息的方法及其运算机制
  • 使用二进制表示信息的原因:计算机内部由IC(集成电路)组成,IC的一个引脚只能表示两个状态。
  • 解释移位运算:二进制数左移,空出的低位补0,左移一位数值变为原来的2倍;右移一位(无符号)数值变为原来的1/2(类比十进制数左移一位变为原来的10倍)。
  • 解释二进制数的补数:得出补数方法为原来的二进制数取反后再加1
  • 解释二进制数逻辑右移和算术右移的区别(由于符号引起的区别)。

 

  • 计算机进行小数运算时出错的原因:有一些十进制数的小数无法转换成二进制数,如0.1。这同十进制数无法表示1/3是同样道理。
  • 解释用二进制表示小数:如1011.0011 --> 23+22+21+20+2-1+2-2+2-3+2-4
  • 浮点数组成:符号、尾数、基数(二进制为2)、指数四部分。
  • 避免计算机计算出错的两个方法:一是回避策略,即无视这些错误;二是把小数转换成整数计算(在不超过处理的数值范围里计算机处理整数计算一定不会出错)。

内存和磁盘

  • 内容:讲解物理上(硬件)和逻辑上(软件)内存的概念,以及磁盘与内存的关系。
  • 内存的物理机制:如下图是一个内存IC为例

   其中:

   VCC、GED:电源

   A0-A9:地址信号(共10个,表示有210=1024个地址)

   D0-D7:数据信号(共8个,表示一次可输入输出8位=1字节数据)

   RD(READ缩写)、WR(WRITE缩写):控制信号

   因此这样一个内存IC表示可存储1024个1字节的数据,即1K数据

 

  • 高速小容量的内存与低速高容量的磁盘要协同作业。
  • 磁盘中存储的程序,必须加载到内存后才能运行。

 

  • 数组是指多个同样的数据类型的数据在内存中连续排列的形式。 
  • 数组是实现栈、队列、链表、二叉查找树等处理的基础。

 

推荐阅读