最近买了一本计算机科学导论,正在看,以弥补的自己那菜的抠脚的计算机知识,借此平台,记录我读书的笔记和记录,主要是为了记录下书中的一些文字,和当时自己的想法,为了以后忘了翻着方便。来吧!
1.1 图灵模型
首先便是这个图灵模型,这个是1937年阿兰图灵提出的一个概念,这个概念针对于通用计算机,大概的意思就是所有的计算都可能在一个种特殊的机器上执行。但是他个人比较喜欢研究计算机的哲学意义,而不是建造一台真实的计算机。(其实他1938年就发明了一台名为巨人的计算机,用于破解德国密码Enigma)。
1.1.1 数据处理器
在讨论图灵模型之前,我们先引入一个东西,数据处理器。根据字面意思,我们可以理解为,一台机器,我们输入数据,然后这台机器处理数据,最后将处理完的数据输出。类似下图
是不是有点类似我们用过的计算器,但是这里的处理只是一种单一的处理,比如只处理加法。想象一下,如果处理器的能够处理的数据和类型很多,而且能够处理大量的数据,这是不是就有点计算机的意思的。
1.1.2 可编程数据处理器
图灵模型中还添加了一个元素----------程序。程序就是用来告诉计算机对数据进行处理的指令集合,说的通俗点就是对数据进行一系列的操作,程序就是这堆操作集合在一起。
关于程序,还衍生了3个特点:
1.在同一个程序下,输入不同的数据,会有不同的结果
2.在不同的程序中,输入相同的数据。会有不同的结果
3.相同的程序下,输入相同的数据,其结果一定相同
1.1.3 通用图灵机
这个概念就是,一台机器只要提供了合适的程序就能做任何运算。也就是说,假设有有台强大的计算机和一台通用图灵机,只要给通用计算机提供了合适的程序,通用图灵机就能和强大的计算机一样运行,这里其实我还是要吐个槽的,配置跟不上还是没有强大的计算机牛逼的。
1.2 冯 · 诺依曼模型
终于该这位哥装逼了,这位哥在图灵模型的基础上了些东西。基于通用图灵机建造的计算机都是在存储器中存储数据,并且程序和数据在逻辑上是相同的,所以程序也能够存储在计算机的存储器中。
1.2.1 4个子系统
根据冯 · 诺依曼模型建造的计算机分为4个子系统:存储器、算术逻辑单元、控制单元和输入/输出单元
1.存储器
存储器主要用来储存数据和程序
2.算术逻辑单元
算术逻辑单元(ALU)是用来进行计算和逻辑运算的地方。加减乘除什么的(我这个说的比较肤浅)。
3.控制单元
控制单元是对存储器、算术逻辑单元、输入/输出等子系统进行控制操作的单元
4.输入/输出
输入子系统就是通过计算机外部接受数据和程序,输出子系统就是负责将整个计算机处理结果输出到计算机外部。比如电脑打开一个TXT文件,读取里面的内容就是一个输入的过程,将硬盘里面的数据读出来,在TXT文件里面写东西然后保存就是一个输出的过程,你懂的。
1.2.2 存储程序概念
冯 · 诺依曼模型要求程序要存储在内存中,这和早期只存储数据的计算机结构是不一样的。现代的计算机的存储单元是用来存储程序及其响应数据,这说明数据和程序应该具有相同的格式,这是因为他们都存储在存储器中,实际上他们都是以位模式(0和1的序列)存储在内存中的。
1.2.3 指令的顺序执行
冯 · 诺依曼模型中的一段程序是由一组数量有限的指令组成,根据这个模型,控制单元从内存中取出一条指令,解释指令,然后读取指令,也就是说,指令是一条一条的执行的,当然,也有可能控制单元跳过这条指令执行下一条指令,或者再去执行一条已经执行过了的指令,这并不意味着指令没有按照顺序来执行。
1.3 计算机组成部分
三大部分:计算机硬件、数据和计算机软件
1.3.1 计算机硬件
当今的计算机硬件基于冯 · 诺依曼模型,并且包含那四个部分。
1.3.2 数据
冯 · 诺依曼模型没有说明具体怎么存储数据,但是如果一台计算机是电子设备,那么最好的方式应该就是电子信号,出现和消失来记录数据,所以这样就只有2种状态,那么我们使用二进制就会相当方便。那么存储图片视频怎么办,首先会将图片视频转化为二进制的形式,再加以存储。那么这样就会导致二进制相当庞大,这时候就要将相同的数据组织在一起,形成一个单位(套路),再把这些单位组织在一起形成更大的单位,这样会使我们很方便的控制这些数据。
1.3.3 计算机软件
图灵或冯 · 诺依曼模型的主要特征是程序的概念。既然扯到程序,就免不了编程了,早期的程序员(工程师?操作员?)还是很苦逼的,编程就是一个拨动开关的过程,以及配线的变化,很麻烦。
在冯 · 诺依曼模型中,不但要存储数据,还要存储程序,并且要求程序要是有序的指令集,指令可以改变指令。而且要找到合适和指令来解决问题。当问题变的很大的时候,指令已经太多太多了,想想,天天按波动开关的那些工程师是有多麻烦,于是科学家就研究出利用符号代表位模式,计算机语言就诞生了,自从诞生了计算机语言后,编程就变的非常方便了,并且根据编程还衍生了软件工程的概念,还包括程序设计中要严格遵循的原理和规则。之后又在计算机发展演变的过程中,科学家发现有一系列指令对所有程序来说都是公用的,几乎哪都在用,如果这些指令只编写一次,那么效率将会大大提高,于是操作系统就出来了,所以操作系统最开始只是为了程序访问计算机部件提高的一个方便的管理程序。现在操作系统当然就更加牛逼了。
总结:冯 · 诺依曼模型有4个系统; 存储数据和程序;按照顺序执行指令。