1.1 计算机基础知识

计算机具有运算速度快,计算精度高,具有记忆能力和逻辑判断能力,具有自动执行程序的能力等特点,是人类20世纪最伟大的发明创造之一。经过60多年的发展,计算机的应用已经渗透到工农业生产、科研、教育、医药、工商、政府、家庭等领域,应用类型主要包括科学计算(SC)、数据处理(DP)、办公自动化(OA)、电子商务(EC)、过程检测与控制(PD&C)、计算机辅助设计(CAD)、计算机辅助教学(CAI)、计算机辅助制造(CAM)、人工智能(AI)、虚拟现实(VR)、多媒体技术应用(MTA)以及计算机网络通信(CNC)等。

计算机及其应用正在改变着人们传统的工作、学习、生活和思维方式,推动着社会的发展,成为人类学习、工作不可缺少的工具。掌握计算机基础知识、基本原理、基本操作和解决实际问题的方法是当代大学生必备的知识和能力。

1.1.1 计算机发展史

世界上第一台计算机于1946年2月在美国宾夕法尼亚大学诞生,取名为电子数值积分计算机(Electronic Numerical Integrator and Calculator,ENIAC)。ENIAC奠定了计算机的发展基础,在计算机发展史上具有划时代的意义,它的问世标志着计算机时代的到来。

1.计算机发展阶段

自从ENIAC问世以来,计算机技术得到了飞速发展。根据计算机的性能和使用的主要元器件的不同,一般将计算机的发展划分为以下5个阶段。

① 第一代计算机(1946—1958年),采用的主要元件是电子管,主要用于科学计算。

② 第二代计算机(1959—1964年),采用的主要元件是晶体管,具有体积小、重量轻、发热少、速度快、寿命长等一系列优点。除科学计算外,还用于数据处理和实时控制等领域。

③ 第三代计算机(1965—1970年),开始采用中小规模的集成电路元件,应用范围扩大到企业管理和辅助设计等领域。

④ 第四代计算机(1971年至今),采用大规模集成电路和超大规模集成电路作为基本电子元件,应用范围主要在办公自动化、数据库管理、图像动画(视频)处理、语音识别等国民经济各领域和国防系统等领域。

⑤ 第五代计算机,与前四代计算机有着本质的区别。它是把信息采集、存储、处理、通信同人工智能结合在一起的智能计算机系统,真正实现人脑功能的延刖。

2.计算机发展趋势

计算机未来的发展趋势是巨型化、微型化、网络化、多媒体化和智能化。未来计算机的研究目标是打破计算机现有的体系结构,使得计算机能够具有像人一样的思维、推理和判断能力。尽管传统的、基于集成电路的计算机短时间内不会退出历史舞台,但旨在超越它的光子计算机、DNA计算机、超导计算机、纳米计算机和量子计算机正在跃跃欲试。

① 光子(Photon)计算机。光子计算机利用光子取代电子进行数据运算、传输和存储。在光子计算机中,不同波长的光表示不同的数据,可快速完成复杂的计算工作。与电子计算机相比,光子计算机具有以下优点:超高速的运算速度、强大的并行处理能力、大存储量、非常强的抗干扰能力等。据推测,未来光子计算机的运算速度可能比今天的超级计算机快1 000倍以上。

② 生物(DNA)计算机。生物计算机使用生物芯片。生物芯片是用生物工程技术产生的蛋白质分子制成,存储能力巨大,运算速度为10-11秒/次,比当前的巨型计算机还要快10万倍,而能量消耗则为其十亿分之一。由于蛋白质分子具有自组织、自调节、自修复和再生能力,使得生物计算机具有生物体的一些特点,如自动修复芯片发生的故障,还能模仿人脑的思考机制。

③ 超导(Superconductor)计算机。超导计算机是由特殊性能的超导开关器件、超导存储器等元器件和电路制成的计算机。1911年,荷兰物理学家昂内斯首先发现了超导现象:某些铝系、铌系、陶瓷合金等材料,当它们冷却到接近-273.15℃时,会失去电阻,流入它们中的电流会畅通无阻,不会白白消耗掉。目前制成的超导开关器件的开关速度已达到微微秒(10-12秒)级的高水平,比集成电路要快几百倍,电能消耗仅是大规模集成电路的千分之一。

④ 纳米计算机。这是将纳米技术运用于计算机领域所研制出的一种新型计算机。纳米技术是从20世纪80年代初迅速发展起来的新技术,最终目标是人类按照自己的意志直接操纵单个原子,制造出具有特定功能的产品。“纳米”本是一个计量单位,一个纳米(nm)等于10-9米(1nm=10-9m),大约是氢原子直径的10倍。应用纳米技术研制的计算机内存芯片,其体积不过数百个原子大小。纳米计算机性能要比今天的计算机强大,运算速度将是现在的硅芯片计算机的1.5万倍,而且耗费的能量也减少很多。

⑤ 量子(Quantum)计算机。量子计算机以处于量子状态的原子作为中央处理器和内存,利用原子的量子特性进行信息处理。由于原子具有在同一时间处于两个不同位置的奇妙特性,即处于量子位的原子既可以代表0或1,也能同时代表0和1以及0和1之间的中间值,故无论从数据存储还是处理的角度,量子位的能力都是晶体管电子位的2倍。目前,量子计算机只能利用大约5个原子做最简单的计算,要想做任何有意义的工作必须使用数百万个原子。但其高效的运算能力使量子计算机具有广阔的应用前景。

未来的计算机技术将向超高速、超小型、智能化的方向发展。超高速计算机将采用平行处理技术,使计算机系统同时执行多条指令或同时对多个数据进行处理,这是改进计算机结构、提高计算机运行速度的关键技术。同时,计算机还将具备更多的智能成分,它将具有多种感知能力、一定的思考与判断能力及一定的自然语言能力。除了提供自然的输入手段(如手写输入)外,让人能产生身临其境感觉的各种交互设备已经出现。虚拟现实技术就是这一领域发展的集中表现。

1.1.2 计算机系统的组成

目前的计算机是在程序语言支持下工作的,所以一个计算机系统应包括计算机硬件系统和计算机软件系统两大部分,如图1-1所示。

图1-1 计算机系统的组成

计算机硬件(Hardware)系统是指构成计算机的各种物理装置,它包括计算机系统中的一切电子、机械、光电等设备,是计算机工作的物质基础。计算机软件(Software)系统是指为运行、维护、管理、应用计算机所编制的所有程序和数据的集合。通常,把不装备任何软件的计算机称为裸机。只有安装了必要的软件后,用户才能方便地使用计算机。

1.计算机硬件系统

计算机硬件系统由运算器、控制器、存储器、输入设备和输出设备五大部分组成,如图1-2所示。图中实线为数据流(各种原始数据、中间结果等),虚线为控制流(各种控制指令)。输入/输出设备用于输入原始数据和输出处理后的结果;存储器用于存储程序和数据;运算器用于执行指定的运算;控制器负责从存储器中取出指令,对指令进行分析、判断,确定指令的类型并对指令进行译码,然后向其他部件发出控制信号,指挥计算机各部件协同工作,控制整个计算机系统逐步地完成各种操作。

图1-2 计算机硬件系统

1)运算器

运算器是对数据进行加工处理的部件,通常由算术逻辑部件(Arithmetic Logic Unit,ALU)和一系列寄存器组成。它的功能是在控制器的控制下对内存或内部寄存器中的数据进行算术运算(加、减、乘、除)和逻辑运算(与、或、非、比较、移位)。

2)控制器

控制器是计算机的神经中枢和指挥中心。在它的控制下,整个计算机才能有条不紊地工作。控制器的功能是依次从存储器中取出指令、翻译指令、分析指令,并向其他部件发出控制信号,指挥计算机各部件协同工作。

运算器、控制器和寄存器通常被集成在一块集成电路芯片上,称为中央处理器(Central Processing Unit,CPU)。

3)存储器

存储器用来存储程序和数据,是计算机中各种信息的存储和交流中心。存储器通常分为内部存储器和外部存储器。

内部存储器简称内存,又称主存储器,主要用于存放计算机运行期间所需要的程序和数据。用户通过输入设备输入的程序和数据首先要被送入内存。运算器处理的数据和控制器执行的指令来自内存,运算的中间结果和最终结果也保存在内存中,输出设备输出的信息来自内存。内存的存取速度较快,容量相对较小。因内存具有存储信息和与其他主要部件交流信息的功能,故内存的大小及其性能的优劣直接影响计算机的运行速度。

外部存储器又称辅助存储器,用于存储需要长期保存的信息,这些信息往往以文件的形式存在。对于外部存储器中的数据,CPU 不能直接访问,要被送入内存后才能被使用。计算机通过内存、外存之间不断的信息交换来使用外存中的信息。与内存比较,外部存储器容量大,速度慢,价格低。外存主要有磁带、硬盘、移动硬盘、光盘及闪存盘等。

4)输入设备和输出设备

输入/输出(I/O)设备是计算机系统与外界进行信息交流的工具,其作用分别是将信息输入计算机和从计算机输出。

输入设备将信息输入计算机,并将原始信息转化为计算机能识别的二进制代码存放在存储器中。常用的输入设备有键盘、鼠标、扫描仪、触摸屏、数字化仪、摄像头、麦克风、数码照相机、光笔、磁卡读入机以及条形码阅读机等。

输出设备的功能是将计算机的处理结果转换为人们所能接受的形式并输出。常用的输出设备有显示器、打印机、绘图仪、影像输出系统和语音输出系统等。

2.计算机软件系统

计算机软件系统是指为运行、维护、管理、应用计算机所编制的所有程序和数据的集合,通常按功能分为系统软件和应用软件两大类。

1)系统软件

系统软件是为计算机提供管理、控制、维护和服务等的软件,如操作系统、数据库管理系统、工具软件等。

(1)操作系统。操作系统(Operating System,OS)是最基本、最核心的系统软件,计算机和其他软件都必须在操作系统的支持下才能运行。操作系统的作用是管理计算机系统中所有的硬件和软件资源,合理地组织计算机的工作流程;同时,操作系统是用户和计算机之间的接口,为用户提供一个使用计算机的工作环境。目前,常见的操作系统有Mac OS、UNIX、Linux、Windows 等。所有的操作系统具有并发性、共享性、虚拟性和不确定性四个基本特征。不同操作系统的结构和形式存在很大差别,但一般都有处理机管理(进程管理)、作业管理、文件管理、存储管理和设备管理五项功能。

下面简要介绍几种智能手机的操作系统。目前使用Linux操作系统的人越来越多,具有自由、免费、开放源代码的优势,摩托罗拉(Motorola)是一大支持该系统的手机厂商。黑莓(Blackberry)是美国市场占有率第一的手机,但在中国影响力小,其采用的BlackBerry系统较早进入移动市场并且具有适应美国市场的邮件系统。奔迈(Palm)系统操作稳定性好,是一种专用于PDA上的操作系统,但近年来被更加智能化的Windows Mobile 超过,Windows Mobile是微软用于Pocket PC和Smartphone的软件平台。它将人们熟悉的Windows桌面扩展应用到个人设备中。塞班(Symbian)系统是诺基亚主打的系统,在智能移动终端上拥有强大的应用程序以及通信能力。Android是Google开发的基于Linux平台的开源手机操作系统,具备触摸屏、高级图形显示和上网功能,界面强大。而iPhone OS X是由苹果公司为iPhone开发的操作系统,主要供iPhone和iPod touch使用,采用全触摸设计,娱乐性极强,第三方软件多。

② 系统支持软件。系统支持软件是介于系统软件和应用软件之间,用来支持软件开发、计算机维护和运行的软件,为应用层的软件以及最终用户处理程序和数据提供服务,如语言的编译程序、软件开发工具、数据库管理软件、网络支持程序等。

2)应用软件

应用软件是为解决某个应用领域中的具体任务而开发的软件,如各种科学计算程序、企业管理程序、生产过程自动控制程序、数据统计与处理程序、情报检索程序等。常用应用软件的形式有定制软件(针对具体应用而定制的软件,如民航售票系统)、应用程序包(如通用财务管理软件包)和通用软件(如文字处理软件、电子表格处理软件、课件制作软件、绘图软件、网页制作软件、网络通信软件等)三种类型。

1.1.3 计算机的工作原理

美籍匈牙利数学家冯·诺依曼(John Von Neumann)于1946年提出了计算机设计的三个基本思想:

① 计算机由运算器、控制器、存储器、输入设备和输出设备五个基本部分组成。

② 采用二进制形式表示计算机的指令和数据。

③ 将程序(由一系列指令组成)和数据存放在存储器中,并让计算机自动地执行程序。

其工作原理是将需要执行的任务用程序设计语言写成程序,与需要处理的原始数据一起通过输入设备输入并存储在计算机的存储器中,即“程序存储”;在需要执行时,由控制器取出程序并按照程序规定的步骤或用户提出的要求,向计算机的有关部件发布命令并控制它们执行相应的操作,执行的过程不需要人工干预,而是自动、连续地一条指令一条指令地运行,即“程序控制”。冯 · 诺依曼计算机工作原理的核心是“程序存储”和“程序控制”。按照这一原理设计的计算机被称为冯·诺依曼计算机,其体系结构称为冯· 诺依曼结构。目前,计算机虽然已发展到了第四代,但基本上仍然遵循冯· 诺依曼原理和结构。为了提高计算机的运行速度,实现高度并行化,当今的计算机系统对冯· 诺依曼结构进行了许多变革,如采用了指令流水线技术、多核处理技术、平行计算技术等。

1.计算机的指令系统

指令是能被计算机识别并执行的命令,每一条指令都规定了计算机要完成的一种基本操作。所有指令的集合就称为计算机的指令系统。计算机的运行就是识别并执行其指令系统中的每条指令。

指令以二进制代码形式来表示,由操作码和操作数(或地址码)两部分组成,如图1-3所示。操作码指出应该进行什么样的操作,操作数表示指令所需要的数值本身或数值在内存中所存放的单元地址(地址码)。

图1-3 指令的组成

2.计算机执行指令的过程

计算机的工作过程实际上就是快速地执行指令的过程。认识指令的执行过程就能了解计算机的工作原理。计算机在执行指令的过程中有两种信息在流动:数据流和控制流。数据流是指原始数据、中间结果、结果数据、源程序等。控制流是由控制器对指令进行分析、解释后向各部件发出的控制命令,指挥各部件协调地工作。

计算机执行指令一般分为以下四个步骤:

① 取指令。控制器根据程序计数器的内容(存放指令的内存单元地址)从内存中取出指令送到CPU的指令寄存器。

② 分析指令。控制器对指令寄存器中的指令进行分析和译码。

③ 执行指令。根据分析和译码的结果,判断该指令要完成的操作,然后按照一定的时间顺序向各部件发出完成操作的控制信号,完成该指令的功能。

④ 一条指令执行后,程序计数器加1或将转移地址码送入程序计数器,然后回到步骤①,进入下一条指令的取指令阶段。

3.计算机执行程序的过程

程序是为解决某一问题而编写的指令序列。计算机能直接执行的是机器指令。用高级语言或汇编语言编写的程序必须先翻译成机器语言,然后CPU从内存中取出一条指令到CPU中执行;指令执行完,再从内存取出下一条指令到CPU中执行,直到完成全部指令。CPU不断地取指令、分析指令、执行指令,这就是程序的执行过程。