《计算机是怎样跑起来的》读书笔记

最近看了矢泽久雄[日]的《计算机是怎样跑起来的》,把大学学到的知识又复习了一遍,主要包括计算机组成原理、操作系统、编程语言、数据库等知识。下面是我记录的一些书中的重点:

《计算机是怎样跑起来的》


计算机的三大原则:

  1. 计算机是执行输入、运算、输出的机器
  2. 程序是指令和数据的集合
  3. 计算机的处理方式有时与人们的思维习惯不同

计算机是执行输入、运算、输出的机器。

程序是指令和数据的集合。

指令,就是控制计算机进行输入、运算、输出的命令。

使用计算机的目的就是为了提高工作效率。

计算机内部主要由被称为IC的元件组成,虽然在IC家族中有功能各异的各种IC,但在这里希望记住的只有三种:CPU(处理器)、内存以及I/O。CPU是计算机的大脑,在其内部可对数据执行运算并控制内存和I/O。内存用于存储指令和数据。I/O负责把键盘、鼠标、显示等周边设备和主机连接在一起,实现数据的输入和输出。

在机器语言程序中,虽然都是0和1的组合,但每个组合都是有特定含义的指令或数据。可是对人类来说,如果只看0和1的话,恐怕很难判断各个组合都表示什么 于是就有人发明了一种编程方法,根据表示指令功能的英语单词起一个相似的昵称,并将这个昵称赋予给0和1的组合。这种类似英语单词的昵称叫做“助记符”,使用助记符的编程语言叫做“汇编语言”。

既然数据的运算是在CPU中进行的,那么在CPU内部就应该有存储数据的地方。这种存储数据的地方叫做“寄存器”。虽然也叫寄存器,但是与I/O的寄存器不同,CPU的寄存器不仅能存储数据,还具备对数据进行运算的能力。CPU带有什么样的寄存器取决于CPU的种类。

A寄存器也叫做“累加器”,是运算的核心。所以连接到它上面的导线也一定会比其他寄存器多。
F寄存器也叫做“标志寄存器”,用于存储运算结果的状态,比如是否发生了进位、数字大小的比较结果等。
PC寄存器也叫做“程序指针”,存储着指向CPU接下来要执行的指令的地址。
PC寄存器的值会随着滴答滴答的时钟信号自动更新,可以说程序就是依靠不断变化的PC寄存器的值运行起来的。
SP寄存器也叫做“栈顶指针”,用于在内存中创建一块称为“栈”的临时数据存储区域

用汇编语言编写的程序是不能直接运行的,必须先转换成机器语言。机器语言是唯一一种CPU能直接理解的编程语言。

程序的流程总共有三种:顺序、条件分支、循环。

结构化程序设计就是“为了把程序编写的具备结构性,仅使用顺序结构、条件分支和循环表示程序的流程即可,而不再使用跳转指令”。

中断处理是指计算机使程序的流程突然跳转到程序中的特定地方,这样的地方被称为中断处理例程(Rountine)或是中断处理程序(Handler),而这种跳转是通过CPU所具备的硬件功能实现的。

用两个数中较大的数减去较小的数(步骤),反复进行上述步骤,直到两个数的值相等(步骤的终止)。如果最终这两个数相同,那么这个数就是最大公约数。也就是著名的“辗转相除法”。

思考算法的时候,要先在纸上用文字或图表描述出解决问题的步骤,而不是立即开始编写代码。

在一般的个人计算机中,内存内部被分割成了若干个数据存储单元,每个单元可存储8比特的数据(8比特=1字节)。为了区分各个单元,每个单元都被分配了一个编号,这个编号被称为“地址”(门牌号码)。如果一台个人计算机装配有64M字节内存,那么就会有从0到64M(1M=100万)这么多个地址。

数组是数据结构的基础,只要使用数组就能通过程序实现各种各样的算法以处理大量的数据

“继承”(Inheritance),“封装”(Encapsulation),“多态”(Polymorphism,也称为多样性和多义性)被称为面向对象编程的三个基本特性。

继承指的是通过继承已存在的类所拥有的成员而生成新的类。
封装指的是在类所拥有的成员中,隐藏掉那些没有必要展示给该类调用者的成员。
多态指的是针对同一种消息,不同的对象可以进行不同的操作

数据库进行的操作的种类通常称为CRUD。CRUD由以下四种操作的英文名称的首字母组成,即记录的插入(Create)、获取(Refer)、更新(Update)、删除(Delete)。

为了对数据库进行CRUD操作,就必须从应用程序向DBMS发送命令。这里所使用的命令就是SQL语言(Structural Query Language,结构化查询语言)。

CRUD中的C,R,U,D分别对应着SQL语言中的INSERT(插入)、SELECT(查询)、UPDATE(更新)、DELETE(删除)语句。

在每块网卡的ROM(Read Only Memory,只读存储器)中都预先烧录一个唯一的MAC地址。网卡制造厂商负责确定这个MAC地址是什么。因为MAC地址是由制造厂商的编号和产品编号两部分组成,所以世界上的每个MAC地址都是独一无二的。

在因特网的世界中,到处传输的都是附带了IP地址的数据,但能够标识作为数据最终接收者的网卡的,还是MAC地址。于是在计算机中就加入了一种程序,用于实现由IP地址到MAC地址的转换,这种功能被称为ARP(Address Resolution Protocol,地址解析协议)。

在公开密钥加密技术中,用于加密的密钥可以公开给全世界,因此称为“公钥”,而用于解密的密钥是只有自己才知道的秘密,因此称为“私钥”。

若立志成为计算机行业的专家,就不能仅仅关注技术了。虽然又懂技术又懂计算机确实令人感到兴奋,但如果只是这样的话,早晚有一天工作会变得没那么有意思。有些人在30岁左右就选择离开计算机行业,不是因为他们追赶不上技术前进的步伐,而是因为觉得工作变得无聊了。专家也好,普通人也罢,只有成熟感才会觉得工作有意义。

SE(System Engineer系统工程师)也好,程序员也罢,所有和计算机相关的工程师都要有这样一种意识:我们要让计算机技术服务于社会。如果能有这样的决心,就应该能够作为一生的事业和计算机愉快地相处下去。

-------------本文结束 感谢您的阅读-------------
0%