• 沒有找到結果。

计算机导论 - 万水书苑-出版资源网

N/A
N/A
Protected

Academic year: 2021

Share "计算机导论 - 万水书苑-出版资源网"

Copied!
21
0
0

加載中.... (立即查看全文)

全文

(1)

第 1 章 计算机系统概述

计算机是 20 世纪最辉煌的成就之一,给人类社会带来了巨大变化,它的应用渗 透到社会的各个领域。那么,计算机到底是什么?它是如何工作的?如何更好地使 用计算机?本书将带你走进计算机世界,采用自下而上的方式探讨计算机系统是如 何工作的,即如何获取信息、表示信息、计算、保存和共享信息等,计算机可以做 什么。 本章首先介绍计算机系统的基本概念,介绍一些与计算机相关的术语,以及计 算机的发展、特点、分类及应用,最后将计算系统进行抽象分层,为进一步深入探 讨计算机领域搭建一个基础平台。 l 描述计算机系统的分层结构 l 描述计算机的分类、特点及应用领域 l 描述计算机硬件和软件的历史、发展趋势 l 描述计算机用户角色的转换 l 区分系统程序员和应用程序员 

1.1 认识计算机

计算机(Computer)是一种设备,能够按照事先存储的程序,自动、高速地对数据进行 输入、处理、输出和存储。平常所说的计算机一般指的是配有软件的计算机系统。计算机系统 是一种动态实体,用于解决问题以及与它所处的环境进行交互。计算机系统由硬件、软件和它 们管理的数据构成。其中计算机硬件是构成机器及其附件(包括机箱、电路板、芯片、电线、 硬盘驱动器、键盘、显示器、打印机等)的物理元件的集合,是计算机系统的物质基础;计算 机软件是提供计算机执行的指令的集合, 它指挥和控制计算机硬件系统按照预定的程序运行和 工作,从而达到预定的目标;计算机系统的核心是它管理的数据,如果没有数据,硬件和软件 都毫无用处。人们通常把没有安装任何软件的计算机称为裸机。 

1.2 计算机的发展简史

计算的历史十分悠久,计算机的产生和发展不是一蹴而就的,而是经历了一个漫长的历 史过程。在这一过程中,科学家们艰难探索,发明了各种各样的计算工具——“计算机”的雏 形,推动了社会和技术的进步。了解这一发展历史可以解释为什么计算机是今天这个样子,也 为开启未来奠定了基础。 本节主要介绍硬件和软件的历史, 它们对计算机系统发展为现在的层 次模型有着重要的影响,最后介绍计算机未来的发展趋势。

(2)

1.2.1 从计算工具到计算机 辅助人们进行各种计算的设备自古就有,迄今为止,它们还在不断进化中。  1.手工计算工具 许多人认为位于英国的 Stonehenge(石群)是早期的日历或星象观测台。起源于春秋战国 时期的算筹是中国古代劳动人民用来计数、 列式和进行各种数与式的演算工具, 它最初是小竹 棍一类的自然物,以后逐渐发展成为专门的计数工具。中国南北朝时期著名科学家祖冲之(公 元 429~500 年)借助算筹作为计算工具,计算出圆周率在 3.1415926 至 3.1415927 之间,成为 世界上最早把圆周率数值推算到七位数字以上的科学家。 算盘也是出现较早的一种记录数值和计算的工具,人们可以用它进行基本的数学运算, 算盘是计算工具发展史上第一次重大改革。  2.机械式计算工具  1623  年,德国科学家契克卡德(W.Schickard)为天文学家开普勒(Kepler)制作了一台 机械计算机。这台机械计算机能做 6 位数的加减法,还能做乘法运算。  17 世纪中叶,法国数学家布莱斯·帕斯卡(Blaise Pascal,1623~1662 年)建造并出售了 一种齿轮驱动的机械机器, 它可以执行整数的加法和减法运算, 帕斯卡是公认的制造出计算机 的第一人。  17 世纪末,德国数学家哥特弗里德·威廉·莱布尼茨(Gottfried Wilhelm von Leibniz)建 造了第一台能够进行四种整数运算(加法、减法、乘法、除法)的机械设备。遗憾的是,当时 的机械齿轮和操作杆的水平有限,使 Leibniz 机的结果不太可信。  18 世纪晚期,法国机械师约瑟夫·杰卡德(Joseph Jacquard)发明了 Jacquard 织布机。这 种织布机利用一套穿孔卡片来说明需要用什么线着色,从而控制纺织图案。尽管  Jacquard  织 布机不是一种计算设备,但是它第一次使用了穿孔这种输入形式。 计算硬件的下一个重大进展是 19 世纪由英国数学家查理斯·巴贝奇(Charles  Babbage) 发明的分析机。它的设计很复杂,以至于当时的技术水平不能建造这种机器,所以他的发明根 本没有实现。但是,在他的构想中,却包括许多现代计算机的重要部件。他的设计中第一次出 现了内存,使得中间值不必重新输入。此外,他的设计还包括数字输入和机械输入法,采用了 与 Jacquard 织布机使用的穿孔卡片相同的方式。 

Lovelace 伯爵夫人 Ada Augusta 是计算历史上的传奇人物, 是第一位女程序设计员。 Ada  是 英国诗人 Lord  Byron 的女儿,是一位杰出的数学家。她对 Babbage 的分析机非常感兴趣,扩 充了他的想法(同时修改了他的一些错误),提出循环的概念(即一系列重复执行的指令)。美 国国防部广泛使用的 Ada 程序设计语言就是以她的名字命名的。  3.机电式计算机  19 世纪晚期和 20 世纪初出现了模拟计算机。 William Burroughs 制造并销售了一台机械加 法机。赫尔曼·霍列瑞斯(Herman  Hollerith)博士发明了第一台机电式制表机,从穿孔卡片 读取信息。 他的设备从根本上改变了美国每十年举行一次的人口普查, 他雇佣一些女职员来处 理穿孔卡片,每人每天 700 张卡片,这些女职员是世界上第一批“数据录入员” ,这种卡片输 入方式一直沿用到 20 世纪 70 年代,数据处理成为计算机的主要功能之一。Hollerith 也被称为 “信息处理之父” 。后来,Hollerith 博士创建了当今著名的 IBM 公司。 英国数学家布尔,16 岁就开始任教以维持生活,20 岁时,对数学产生了浓厚兴趣,他广

(3)

泛涉猎著名数学家牛顿、拉普拉斯、拉格朗日等人的数学名著,并写下大量笔记。凭借他的两 部著作《逻辑的数学分析》和《思维规律的研究——逻辑与概率的数学理论基础》,布尔建立 了一门新的数学学科——布尔代数。 其中构思出了关于 0 和 1 的代数系统, 用基础的逻辑符号 系统描述物体和概念,这为今后数字计算机开关电路设计提供了最重要的数学方法。  1937 年 11 月,在 AT&T 贝尔实验室工作的斯蒂比兹(G.Stibitz) ,运用继电器作为计算 机的开关元件。1938  年,斯蒂比兹设计出用于复数计算的全电磁式计算机,使用了  450  个 二进制继电器和 10 个闸刀开关,由三台电传打字机输入数据,能在 30s 算出复数的商。1939  年,斯蒂比兹将电传打字机用电话线连接上远在纽约的计算机,异地操作进行复数计算,实 现了计算机的远程通信。斯蒂比兹是实现计算机远程遥控的第一人,也是举世公认的“数字 计算机之父” 。 第一个采用电器元件来制造计算机的是德国工程师朱斯(K.zuse) 。1938  年,他  28  岁完 成了可编程数字计算机 Z­1 的设计,但由于无法买到合适的零件,Z­1 计算机实际上是一台实 验模型,始终未能投入使用。1939 年,他用继电器组装了 Z­2,1941 年电磁式计算机 Z­3 完 成,Z­3 不仅全部采用继电器,同时采用了浮点记数法、用穿孔纸带输入、二进制运算、带数 字存储地址的指令形式、实现了程序控制等。这些设计思想虽然在他之前已经提出,但这是第 一次得到具体实现。然而,在一次空袭中,他的住宅和包括 Z­3 在内的计算机都被炸毁。后来 朱斯辗转流落到一个荒凉的村庄,一度转向研究计算机软件理论。他首先提出了“程序演算” 理论,即今天所说的计算机程序设计,这一理论对软件的发展影响很大。1945  年,他建立了  Z­4 计算机,并将其搬到阿尔卑斯山区一个小村庄的地窖里。1949 年,建立了 Zuse 计算机公 司,继续开发更先进的机电式程序控制计算机。  1941  年,朱斯向德国政府申请基金用来建造计算机,用于破译敌人的密码,德国政府没 有批准。与此同时,英国政府秘密组建一个由科学家和工程师组成的绝密小组。1943  年,图 灵等人研制成功 Colossus(巨人计算机),使得英国军方能够窃取并破译德国的军事情报。  4.数字电子计算机的出现  1936 年,英国数学家图灵(Alan  M.Turing)的一篇文章《论可计算数及其在判定问题中 的应用》具有划时代的意义,对计算机科学产生了深远的影响。他发明了一种抽象的数学模型 ——图灵机(即一种理想的计算机),为计算理论的主要领域奠定了基础。图灵写到只要为图 灵机编好程序,它就可以承担其他机器能做的任何工作。在还没有提出通用计算机的概念前, 图灵已经在理论上证明了它存在的可能性。  1938 年,美国数学家香农(C. Shannon)第一次在布尔代数和继电器开关电路之间架起了 桥梁, 发明了以脉冲方式处理信息的继电器开关, 从理论到技术上彻底改变了数字电路的设计。  1948  年香农写作了《通信的数学基础》一书。由于香农在信息论方面的杰出贡献,他被誉为 “信息论之父” 。 早在第一次世界大战期间, “控制论之父”维纳(L.Wiener)教授曾来到阿贝丁试炮场, 为高射炮编制射程表。1940  年,维纳提出:现代计算机应该是数字式的、由电子元件构成、 采用二进制、内部存储数据。维纳提出的这些原则,为计算机指引了正确的方向。 到第二次世界大战爆发时,已经有几台计算机处于设计和建造中。Mark­I 和 ENAIC 是当 时最著名的两台机器。 在计算机发展史上,由霍华德·艾肯(Howard Aiken)制造的 MARK­I 和 MARK­II 有着 重要的地位,人们认为  MARK­I  是世界上第一台通用程序控制计算机。它是在国际商业机器

(4)

公司(即 IBM 公司)的资助下完成的。艾肯于 1937 年提出他的计算机设计时,还是哈佛大学 物理系的研究生,IBM 公司(当时总经理是 Thomas J. Watson)支持了这个年轻人,1939 年派 出四位有经验的工程师与艾肯合作。1944  年,这台程序控制的自动数字计算机宣告完工,在 哈佛投入运行。MARK­I 只是部分采用了继电器。在 1945 年至 1947 年间,艾肯又领导制造成 功一台全部使用继电器的计算机——MARK­II。  1946 年 2 月, 美国宾夕法尼亚大学成功研制出了 ENIAC, 这是世界上第一台数字计算机。 冯·诺伊曼(John von Neumann)是 ENIAC 这个项目的顾问。ENIAC 致命的缺陷有两个:一 是没有存储器;二是用布线接板进行控制,因此计算速度受到了限制。程序指令存在机器的外 部电路里,需要计算某个题目,首先需要由人工接通数百条线路,需要几十个人几天的时间才 能接好,而运算只需用几分钟时间。 之后,冯·诺伊曼开始致力于另一台著名机器 EDVAC 的建造,通常称为冯·诺伊曼机, 明确提出计算机的五大部件,并用二进制代替十进制运算。EDVAC 的意义在于存储程序,以 便计算机能够自动依次执行指令。这台机器完成于 1950 年。  1.2.2 计算机硬件发展简史  1951 年后,计算机被越来越广泛地用来解决各个领域中的问题。从那时起,探索的重点不 仅在于建造更快、更大的计算设备,且在于开发能更有效地使用这些设备的工具。根据计算机 硬件采用的技术将计算机的历史划分为几个时代,随着计算机的发展,功能越来越强大,体积 越来越小,成本也越来越少。  1.第一代(1946~1959 年) 第一代计算机使用的逻辑器件是电子管。电子管会大量发热,不太可靠。使用电子管的 机器需要大型空调,并不断维修,还需要巨大的专用房间。 第一代计算机的主存储器主要是磁鼓,磁鼓固定在旋转的读/写臂上,当被访问的存储器 旋转到读/写臂下时,数据才能写入这个单元或从这个单元读出。 用穿孔卡片作为数据和指令的输入设备,可以阅读  IBM  卡(由  Hollerith 卡演化而来)。 输出设备是穿孔卡片或行式打印机。随后出现了磁带驱动器,它比读卡机快得多。磁带是顺序 存储设备,也就是说,必须按照线性顺序访问磁带上的数据。计算机存储器外部的存储设备叫 做辅助存储设备。磁带是一种辅助存储设备。输入设备、输出设备和辅助存储设备一起构成了 外围设备。  1949  年发明了可以存储程序的计算机,这些计算机使用机器语言编程,可存储信息和自 动处理信息,存储和处理信息的方法开始发生革命性变化。 第一代计算机体积大、运算速度低、存储量小、可靠性低,几乎没有软件配置,主要用 于科学计算。第一代计算机奠定了计算机技术的基础,如二进制、存储程序的思想等,对以后 计算机的发展产生了深远的影响。代表机型有 ENIAC/IBM650、IBM709 等,如图 1.1 所示。 第一款商用计算机是 1951 年开始生产的 UNIVAC 计算机。1947 年,ENIAC 的发明人莫 奇莱和埃克特创立了自己的计算机公司并生产  UNIVAC  计算机,计算机第一次作为商品被出 售, 这奠定了计算机工业的基础。 1951 年, 美国人口普查局收到了第一台商用计算机 UNIVAC  I。UNIVAC I 是第一台用于统计美国总统大选结果的计算机。  UNIVAC I 是能快速操作数字的设备,当时许多专家预言“只需要少数计算机就能够满足 人类的计算需求” 。快速运算大量数据的能力很快就从根本上改变了数学、物理、工程学和经

(5)

济学领域的工作方式,计算机从根本上改变了“什么需要计算”的预言。 图 1.1  世界上第一台电子管计算机——ENIAC  2.第二代(1959~1965 年) 第二代计算机使用的逻辑器件主要是晶体管(John Bardeen、Walter H. Brattain 和 William  B. Shockley 为此获得了诺贝尔奖),它比电子管更小、更可靠、更快、寿命更长,也更便宜。 因此晶体管代替电子管成为计算机硬件的主要部件。 第二代计算机使用磁芯作为存储器,这是一种微小的环形设备,每个磁芯可以存储一位 信息。由于设备是静止不动的,而且是用电力访问的,能够即时访问信息。 磁盘是一种新的辅助存储设备,也出现在第二代计算机中。磁盘上的数据都有位置标识 符,称为地址。使用数据在磁盘上的位置就可以直接访问它。磁盘的读/写头可以直接移动到 存储所需信息的特定位置,因此磁盘比磁带快。 第二代计算机引进了编址寄存器和浮点运算硬件,利用 I/O 处理提高了输入/输出的效率。 这不仅使计算机的体积缩小了许多, 同时增加了机器的稳定性并提高了运算速度, 减小了功耗, 降低了价格。除应用于科学计算外,它还开始应用于数学处理和工业控制等方面。代表机型有  IBM7090、IBM7094、CDC7600 等,如图 1.2 所示。 图 1.2  世界上第一台晶体管计算机——TRADIC  3.第三代(1965~1971 年) 在第二代计算机中,晶体管和其他计算机元件都被手工集成在印刷电路板上。第三代计

(6)

算机使用的逻辑器件是集成电路(Integrated Circuit,IC),这是一种将晶体管和其他分离元件 用连线连接起来做成的硅片。集成电路比印刷电路小,它更便宜、更快速并且更可靠。Intel  公司的奠基人之一 Gordon Moore 注意到从发明 IC 起, 一个集成电路板上能够容纳的电路的数 量每年增长一倍,这就是著名的摩尔(Moore)定律。 晶体管也用来构造存储器,每个晶体管表示一位信息,将其做成集成电路存储板,这就 是半导体存储器。辅助存储设备仍然是必需的,因为晶体管存储器不稳定,断电之后,所有的 信息都将消失。 使用微程序设计技术简化处理机的结构,这使得计算机的体积和耗电量显著减小,而计 算机的速度和存储容量却有较大提高,可靠性也大大增加。 此时也出现了终端 (带有键盘和屏幕的输入/输出设备), 键盘使用户可以直接访问计算机, 屏幕则可以提供立即响应。 计算机开始走向标准化、模块化和系列化,计算机的应用进入到许多科学计算领域。代 表机型有 IBM360 系列、富士通 F203 系列等,如图 1.3 所示。 图 1.3  世界上第一台采用集成电路的计算机——IBM360  4.第四代(1971 年至今) 第四代计算机的特征是使用了大规模和超大规模集成电路。在  20  世纪  70 年代早期,一 个硅片上可以集成几千个晶体管,80  年代中期,一个硅片则可以容纳整个微型计算机,主存 设备仍然依赖芯片技术。摩尔定律被改为芯片集成度每 18 个月增长一倍。 大规模、超大规模集成电路的出现,使计算沿着两个方向飞速向前发展。一方面利用大 规模集成电路生产多种逻辑芯片,组装大型、巨型计算机。使运算速度向每秒万亿次及更高发 展,存储容量向百兆、千兆字节发展,巨型机的出现推动了许多新兴学科的发展。我国第一 台巨型计算机——“银河”亿次巨型计算机,是在 1983 年 12 月研制成功的。  20  世纪  80  年代中期,出现了功能强大的工作站,主要用于商业用途。这些工作站由线 缆连接在一起,以便彼此能够交换信息。引入 RISC(精简指令计算机,Reduced­Instruction­Set  Computer)体系结构后,工作站变得更加强大了。每台计算机都能理解一组指令,称为机器语 言。传统机器(如 IBM 370/168)的指令集有 200 多条指令。Sun 微系统公司于 1987 年制造出 了采用 RISC 芯片的工作站,这种工作站的受欢迎程度说明了 RISC 芯片的可行性。这些工作 站通常称为 UNIX 工作站,因为它们使用的操作系统是 UNIX。 另一方面,利用大规模集成电路技术,将运算器、控制器等部件集成在一个很小的集成

(7)

电路上,从而出现了微处理器。微型计算机、笔记本型和掌上型等超微型计算机的诞生是超大 规模集成电路应用的直接结果,并使计算机很快进入到寻常百姓家。20 世纪 70 年代末,出现 了个人计算机(Personal Computer,PC)。  IBM PC 是 1981 年面世的,随后 IBM、NCR、DEC、Remington Rand、Hewlett­Packard、  Control  Data 和 Burroughs 等公司迅速制造了许多与之兼容的机器,并取得了巨大的成功,如 图 1.4 所示。Apple 公司在 1984 年创建了非常受欢迎的 Macintosh 微型计算机的生产线。 图 1.4    IBM 推出的第一台个人计算机——5150  由于计算机仍在使用电路板,所以不能为这一代计算机画上休止符。但是,一些新事物 已经出现,对如何使用计算机带来了很大影响,它们必将开创一个新时代。摩尔定律被再次改 为: “每 18 个月,计算机的功率会在同样的价格水平下增长一倍,或者以一半的价格可以购买 同样的计算机功率。 ”  1.2.3 计算机软件发展简史 虽然计算机的硬件可以启动,但是如果没有计算机程序的指引,它们什么也做不了。了 解计算机软件发展的历史,对理解软件在现代计算系统中是如何运行的至关重要。  1.第一代软件(1951~1959 年) 第一代程序是用机器语言编写的。机器语言就是内置在计算机电路中的指令。即使是对两 个数字求和这样的小任务也要运用  3  条二进制指令,程序设计人员必须记住每种二进制数字的 组合表示什么。使用机器语言的程序设计人员一定要对数字非常敏感,而且要非常细心。第一 代程序员称得上是数学家和工程师。然而,用机器语言进行程序设计不仅耗时,而且容易出错。 由于编写机器代码非常乏味,有些程序设计人员开始开发一些工具辅助程序设计。这就 出现了第一代人工程序设计语言——汇编语言,使用助记符表示每条机器语言指令。 由于每个程序在计算机上执行时采用的最终形式都是机器语言,所以汇编语言的开发者 还创建了一种翻译程序, 把用汇编语言编写的程序翻译成用机器语言编写的程序。 一种称为汇 编器的程序将读取每条用助记符编写的程序指令, 把它翻译为等价的机器语言指令。 这些助记 符都是缩写码,有时难以理解,但它们比二进制字符串更容易使用。 那些编写辅助工具(如汇编器)的程序设计人员,简化了他人的程序设计,是最初的系 统程序员。 也就是说在第一代计算机软件中, 就出现了编写工具的系统程序员和使用工具的应 用程序员这样的分类。汇编语言是应用程序员和机器硬件之间的接口,如图 1.5 所示。即使是 现在,如果需要代码效率很高,仍然需要用汇编语言来编写程序。

(8)

图 1.5  第一代软件——机器语言和汇编语言  2.第二代软件(1959~1965 年) 当硬件变得更强大时,就需要更强大的工具才能有效地使用它们,然而汇编语言程序员 还是必须记住单独的机器指令。 第二代软件一定要由更强大的语言开发, 这就出现了高级语言, 高级语言的指令类似于英语句子和算术表达式,使编程更容易。 第二代软件时期开发的两种语言是 FORTRAN(为数学应用程序设计的语言)和 COBOL  (为商业应用程序设计的语言),目前仍然在使用。FORTRAN 和 COBOL 的开发过程完全不 同。FORTRAN 最初是一种简单语言,经过几年附加特性后才形成一种高级语言。而 COBOL  则是先设计好,然后再开发的,形成之后就很少改动。 这一时期设计的另一种仍然在用的语言是 Lisp。Lisp 与 FORTRAN 和 COBOL 有很大不 同,没有被广泛接受,它主要用于人工智能的应用程序和研究。Lisp  的专用语是当今人工智 能可用的语言之一, Scheme 就是一种 Lisp 专用语, 有些学校用它作为启蒙性的程序设计语言。 高级语言的出现使得在多台计算机上运行同一个程序成为可能。每种高级语言都有配套 的翻译程序,它把高级语言编写的语句翻译成等价的机器码指令,称为编译器。早期高级语言 的语句通常被翻译成汇编语言, 然后再把汇编语句翻译成机器码。 只要一台机器具有编译器这 样的翻译程序,就能够运行 FORTRAN 或 COBOL 编写的程序。 在第二代软件末期,系统程序员的角色变得更加明显。系统程序员编写诸如汇编器和编 译器这样的实用程序。 使用这些工具编写程序的人被称为应用程序员。 随着在硬件层上附件的 软件变得越来越复杂,应用程序员离计算机硬件越来越远了,如图 1.6 所示。 图 1.6  第二代软件——高级语言  3.第三代软件(1965~1971 年) 随着计算机处理速度的提高,计算机的高速处理得不到充分发挥,计算机经常处于等待

(9)

运算器准备下一个作业的状态。 解决方法是使所有计算机资源处于计算机的控制之中, 也就是 说,需要编写一种程序,决定何时运行什么程序,这就出现了操作系统。 在前两代软件时期,实用程序用来处理频繁执行的任务。装入器把程序装入内存,连接 器则把多个程序连接在一起。 第三代软件改进了这些实用程序, 使它们都处于操作系统的引导 下。实用程序、操作系统和语言翻译程序(汇编器和编译器)构成了系统软件。 用作输入/输出设备的计算机终端的出现,使用户能够直接访问计算机,而高级的系统软 件则使机器运转得更快。但是,从键盘和屏幕输入输出数据是个很慢的过程,比在内存中执行 指令慢很多,这就导致了如何利用机器越来越强大的能力和速度的问题。解决方法就是分时, 即许多用户用各自的终端同时与一台计算机进行通信(输入和输出)。控制这一进程的是操作 系统,它负责组织和安排各个作业。 对用户来说,分时好像使他们有了自己的机器。每个用户都会被分配到一小段中央处理 器时间,在中央处理器服务于一个用户时,其他用户将处于等待状态。用户通常不会察觉到还 有其他用户在使用。但是,如果同时使用系统的用户太多,那么等待一个作业完成的时间就会 明显变长。 在第三代软件中,出现了多用途的应用程序,如用  FORTRAN  语言编写的社会科学统计 程序包(Statistical Package for the Social Science,SPSS)。SPSS 具有一种专用的语言,用户使 用这种语言编写指令,作为程序的输入。使用这种专用语言,即使不是经验丰富的程序设计人 员也可以描述数据,并且对这些数据进行统计计算。 此时出现了计算机用户的概念。其实早期并不区分计算机用户和程序设计人员,他们是 一体的。 在第一代软件末期, 为其他程序设计人员编写工具的程序设计人员的出现带来了系统 程序员和应用程序员的区分,但程序设计人员仍然是用户。在第三代软件中,系统程序员专门 为其他人编写软件工具,应用程序员编写应用程序供其他人使用,才出现了用户的概念,他们 不再是传统意义上的程序员。 用户与硬件的距离逐渐加大。硬件演化成整个系统的一小部分。由硬件、软件和它们管 理的数据构成的计算机系统出现了,如图 1.7 所示。虽然语言层还在加深,但是程序设计员们 仍然在使用一些最内层的语言。如果要求一小段代码运行得尽可能快,占用的内存尽可能少, 还是需要用汇编语言或机器语言来编写这段代码。 图 1.7  第三代软件——系统软件和应用程序包  4.第四代软件(1971~1989 年)  20 世纪 70 年代出现了结构化程序设计方法, 一种有逻辑、 有规则的程序设计方法。 Pascal  语言和 Modula­2 都是遵守结构化程序设计思想的语言。BASIC 这种为第三代机器设计的语言

(10)

也被升级成了结构化的版本。此外,还出现了  C  语言,使用这种语言,用户可以在高级语言 程序中使用一些汇编语句。C++也是一种允许用户使用低级语言语句的结构化语言,它成为了 业界的选择。 更好、更强大的操作系统也开发出来了。AT&T 公司作为工具开发的 UNIX 系统成了许多 大学的标准配置。为 IBM  PC 开发的 PC­DOS 系统和为了兼容开发的 MS­DOS 系统都成了个 人计算机的标准系统。Macintosh 机的操作系统引入了鼠标概念和点击式的图形界面(GUI), 因此彻底改变了人机交互的方式。 此时出现的应用程序软件包可以让一个没有计算机经验的人员实现一些特定的任务。三 种典型的应用程序包是电子表格软件、文字处理软件和数据库管理系统。Lotus1­2­3 是第一个 商用电子制表软件,即使一个新手,也可以用它输入数据,对数据进行各种分析。WordPerfect  是第一个文字处理软件,dBase  是让用户存储、组织和提取数据的数据库管理系统。如图  1.8  所示。 图 1.8  第四代软件——专用的应用程序包和分类的操作系统  5.第五代软件(1990 年至今) 第五代软件发展中有三个著名事件,即在计算机软件业具有主导地位的 Microsoft 公司的 崛起、面向对象程序设计和编程方法的出现以及万维网(World Wide Web)的普及。 在这一时期,Microsoft  公司的  Windows  操作系统在  PC  市场占有显著优势。尽管  WordPerfect 仍在继续改进,但是 Microsoft 公司的 Word 成了最常用的文字处理软件。20 世纪  90  年代中期,文字处理软件、电子制表软件、数据库程序和其他应用程序都被绑定在一个程 序包中,这个程序包称为办公套件。 面向对象的程序设计方法成为大型程序设计项目的首选。结构化程序设计基于任务的层 次划分,而面向对象的程序设计则基于数据对象的划分。Sun Microsystems 公司为面向对象的 编程方法设计的 Java 语言成为了 C++语言的竞争对手。 

1990  年,日内瓦的  CERN  物理实验室的英国研究员 Tim  Berners­Lee 希望创建一个全球  Internet 文档中心——万维网(World Wide Web),并为之创建了一套技术规则、格式化文档的  HTML  语言和浏览器,浏览器虽然可以让用户访问全世界站点上的信息,但此时还不成熟, 只能显示文本。 1993 年, Marc Andreesen 和 Eric Bina 发布了第一个能显示图形的浏览器 Mosaic。 美国《新闻周刊》的报道称“Mosaic 将成为最重要的计算机应用程序” 。后来衍生出了当时著 名的 Netscape Navigator 浏览器。 目前应用最广泛的浏览器是 Microsoft 公司的 Internet Explorer。  Microsoft 公司把 Internet Explorer 与 Windows 操作系统绑定在一起, 遭到了反垄断组织的强烈

(11)

反对。 虽然万维网的出现,使通过 Internet 在世界范围内共享信息变得容易了,但随着网络技术 的发展,应用程序对网络过分依赖。为了解决这个问题,采取了一种有效的方法,在客户机和 服务器之间加一层软件,称为中间件(Middleware) 。中间件在操作系统、网络和数据库之上, 应用软件之下,其作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、 高效地开发和集成复杂的应用软件。 借助中间件在不同的技术之间共享资源, 管理计算资源和 网络通信,如图 1.9 所示。 图 1.9  第五代软件——Windows,WWW 浏览器和面向对象技术  6.软件技术发展总结 随着计算机软件的发展,人们不断地提取软件的共性成分、屏蔽系统底层的复杂性,在 高层保持复杂度的相对稳定,从而更加方便用户的使用,沉淀成为分层的软件发展思想。如图  1.10 所示说明了软件发展的各个时期中的主要特征。 图 1.10  计算机软件发展的各个时期中的主要特征 第一代软件在计算机硬件自带的机器语言和汇编语言的基础上实现;第二代软件解决了 第一代软件中“如何提高算法的适应性?”的问题,出现了高级语言,可以编写大量用于实际 应用的应用软件; 第三代软件是为了解决第二代软件中 “应用程序需要管理大量的软件和硬件 资源”的问题,抽取出“计算机资源管理”的共性成分,产生了操作系统;第四代软件是为了 解决第三代软件中“需要管理大量数据”的问题,抽取出“数据管理”的共性成分,产生了数 据库管理系统;第五代软件是为了解决第四代软件中“需要大量访问跨平台的网络资源”的问 题,抽取出“网络资源管理”的共性成分,产生了“中间件” 。

(12)

软件发展最重要的特征是用户概念的改变。早期用户就是程序设计员,他们编写程序来 解决自己或他人的问题。接下来出现了系统程序员和应用程序员,他们仍然是计算机用户,系 统程序员为其他程序员编写越来越复杂的工具, 应用程序员使用这些复杂的工具为非程序人员 编写应用程序,非程序人员使用应用程序,从而成为计算机用户。随着个人计算机、计算机游 戏、教育程序和用户友好的软件包的出现,许多人成为了计算机用户。万维网的出现,使网上 冲浪成了娱乐方式的一种选择, 所以更多的人成了计算机用户。 计算机用户可以是在学习阅读 的幼儿,可以是在下载音乐的青少年,可以是在写论文的大学生,可以是在制定预算的家庭主 妇,可以是在查找客户信贷记录的银行职员等,所有的人都成了计算机的用户。 在硬件和软件的历史简介中,我们把重点放在传统的计算机和计算系统上。与这些历史 并驾齐驱的,是使用集成电路(或芯片)来运行或控制微波炉等家用电器、汽车、重病特别护 理监控器和航空航天设备的历史, 这种计算机技术称为嵌入式系统。 将在应用软件一章中介绍。  1.2.4 计算机的发展趋势 计算机技术的飞速发展,给社会的进步带来了一系列的变化,计算机的发展也朝着巨型 化、微型化、网络化、智能化、新型化等方向发展。  1.巨型化 发展高速度、大容量、功能强的超级计算机,用于处理庞大而复杂的问题,如天气预报、 数学命题的证明、行星轨迹和石油勘探的计算以及航天飞机、宇宙飞船的设计、遗传工程等现 代科学技术和国防尖端技术都需要高速和大容量的超级计算机。 研制超级计算机的技术水平体 现了一个国家的综合国力,因此,超级计算机的研制是各国在高技术领域竞争的热点。我国于  2009 年 10 月研制推出的“天河一号”超级计算机,运算速度达到千万亿次,已在国家级超级 计算天津中心投入运营,为天津市乃至环渤海地区的生物制药、新能源新材料、航空航天装备 研制等新兴产业服务。 在市场驱动下,超级计算机正从科学计算向经济和商业各个领域扩展,用于商业的超级 计算机,其数量急剧增加,最高性能已突破万亿次。  2.微型化 随着计算机的应用日益广泛,在一些特定的场合,需要很小的计算机,计算机的重量、 体积都变得越来越小,但功能并不减少。计算机的微型化能更好地促进计算机的广泛应用,笔 记本型、掌上型计算机得到快速发展,同时微型计算机与通信技术的结合,使得它逐步由办公 设备变为电子消费品,如出现了流行的  Palm、iPad、iPhone  等。因此发展体积小、功能强、 价格低、可靠性高、适应范围广的计算机是计算机发展的一个重要方向。  3.网络化 计算机网络化是电子计算机技术与通信技术密切结合的产物,其目的是使广大用户能够 共享网络中的所有硬件、软件和数据等资源。由于资源共享,可以充分发挥各地资源的优势, 实现协同操作、提高可靠性、降低运行费用和避免重复投资。计算机网络化使多个计算机系统 结合在一起,不受地理环境的限制,同时为多个用户服务。 因特网(Internet)的建立实现了计算机硬件的连通,万维网实现了网页的连通。云计算 试图通过互联网实现所有资源 (包括计算机资源、 软件资源、 信息资源和知识资源等) 的连通, 它将大量用网络连接的计算资源进行统一管理和调度, 构成一个计算资源池向用户提供按需服 务。因此云计算正在改变人们的世界,改变人们的生活。

(13)

4.并行化 尽管使用单处理器的计算机仍然盛行,但是新的计算机体系结构出现了,使用并行体系 结构的计算机使用一组互相并行的中央处理器。 一种并行机器的组织结构是所有处理器共享同一个存储部件,另一种组织结构是每个中 央处理器具有自己的本地内存,与其他处理器通过高速内部网进行通信。  5.智能化 到目前为止,计算机在处理过程化的计算工作方面是人所不及的,但在智能性工作方面, 计算机还远远不如人类。如何让计算机具有人脑的智能,模拟人的推理、联想和思维等功能, 研制出具有某些情感和智力的计算机, 使计算机在人类生活中扮演着更加重要的角色, 帮助人 们解决一些自己不熟悉或不愿意做的事,如智能家电、烹调等,是计算机技术研究的一个重要 方向。智能计算机是把信息采集、存储、处理、通信和人工智能结合在一起的计算机系统,由 以处理数据信息为主,转向以处理知识信息为主,如获取知识、表达知识、存储知识及应用知 识等,并有推理、联想和学习人工智能方面的能力(如理解能力、适应能力、思维能力等), 能帮助人类开拓未来的知识领域和获取新的知识。 在开发智能计算机方面,IBM 一直走在前面。1997 年 IBM 开发的“深蓝”超级计算机赢 得了与国际象棋世界冠军卡斯帕罗夫的比赛,说明人类在人工智能方面已取得了一定的进步。  14 年后,2011 年 2 月 16 日,IBM 生产的另一台智能计算机沃森(Watson)经历了三轮的比 赛,赢得问答节目《危险边缘》 (Jeopardy!)的冠军。对于 IBM 来说,未来将继续挑战人类智 能的极限。  6.大众化  1999  年,IBM 提出普适计算(Pervasive  Computing)的概念,即无所不在、随时随地可 以进行计算的一种方式。 这一概念强调和环境融为一体的计算, 而计算机本身则从人们的视线 里消失。在普适计算的模式下,人们能够在任何时间、任何地点、以任何方式进行信息的获取 与处理。 科学家表示,普适计算的核心思想是小型、便宜、网络化的处理设备广泛分布在日常生 活的各个场所,计算设备将不只依赖命令行、图形界面进行人机交互,而更依赖“自然”的交 互方式,计算设备的尺寸将缩小到毫米甚至纳米级。 在普适计算的环境中,无线传感器网络将广泛普及,在环保、交通等领域发挥重要作用; 人体传感器网络会大大促进健康监控以及人机交互等的发展。 各种新型交互技术 (如触觉显示、 有机发光二极管OLED等)将使交互更容易、更方便。 普适计算所涉及的技术包括物联网技术、移动通信技术、小型计算设备制造技术、小型 计算设备上的操作系统技术及软件技术等。 当计算机在人类的日常生活中无处不在时,就进入了“普适计算机时代” 。普适计算机将 提供前所未有的便利和效率。  7.新型化 现在问世的计算机,无论是巨型计算机还是微型计算机,都是用硅芯片作为“心脏” ,因 此无论是晶体管的密集程度,还是计算机运算速度都有一定的极限。根据摩尔定律,计算机硅 芯片尺寸只有指甲盖大小的硅晶片上的晶体管数目每 18 个月就要翻一番。芯片性能的快速提 高导致芯片的耗能和散热问题渐渐凸现出来, 10 年后英特尔公司的产品能否继续推陈出新, 并 解决产品性能的极限问题, 将成为它面临的巨大挑战。 人们正在努力寻找硅芯片技术的最佳替

(14)

代品,研究超越物理极限的新方法,目前新一代计算机正处于设想和研制阶段,新型计算机可 能会打破现有计算机的体系结构。 新一代计算机是微电子技术、光学技术、超导技术和电子仿生技术等多学科相结合的产 物。它能进行知识处理、自动编程、测试和排错,以及用自然语言、图形、声音和文字进行输 入和输出。科学家目前正在研制的新型计算机有:生物计算机(运用生物工程技术、用蛋白分 子做芯片,利用有机化合物存储数据),光计算机(用光作为信息载体,通过对光的处理来完 成对信息的处理),量子计算机(利用原子所具有的量子特性进行信息处理,使用两能级的量 子体系来表示信息),超导计算机(利用超导技术生产的计算机及其部件)等,而且已经取得 一些突破。未来的计算机可能是超导计算机、量子计算机、生物计算机、光计算机或纳米计算 机、DNA 计算机等。 

1.3 计算机的分类和特点

1.3.1 计算机的分类 计算机的分类有很多种方式。  1.按工作原理和运算方式划分 根据计算机的工作原理和运算方式,以及计算机中信息的表示形式和处理方式,计算机 可分为数字电子计算机(Digital Computer) 、模拟电子计算机(Analog Computer)和数字模拟 混合计算机(Hybrid Computer)。如今应用最广的是数字电子计算机,因此,常把数字电子计 算机简称为电子计算机或计算机。  2.按设计目的划分 按设计目的可以将计算机分为通用计算机和专用计算机。通用计算机是为解决各类问题 而设计的计算机, 可以进行科学计算、 工程计算、 数据处理和工业控制等。 它是一种用途广泛、 结构复杂的计算机。 专用计算机是为某种特定目的而设计的计算机。例如用于数控机床、轧钢控制、银行存 款等的计算机,如 ATM 机。专用计算机针对性强、效率高、结构比通用计算机简单。  3.按用途划分 按计算机的用途可以将计算机分为科学计算、工程计算机用的计算机、工业控制用的计 算机和数据处理用的计算机。 科学计算、工程计算计算机:专门用于科学计算和工程计算的计算机。 工业控制计算机:主要用于生产过程的控制和监测的计算机。 数据处理计算机:主要用于数据处理,如统计报表、预测和统计、办公事务处理等。  4.按规模和性能划分 根据计算机的总体规模(计算机的字长、运算速度、存储量大小、功能强弱、配套设施 多少、软件系统的丰富程度) ,可以将计算机分为以下几类: (1)巨型计算机。人们通常把规模大、速度快、价格高的计算机称为巨型机(超级计算 机)。目前巨型计算机的运算速度已达万亿次/秒。巨型机一般用在国防和尖端科学、大型科学 与工程计算等领域, 如天气预报、 地质勘探、 航空航天等。 目前, 巨型机主要用于战略武器 (如 核武器和反导弹武器)的设计、空间技术、石油勘探、长期天气预报以及社会模拟等领域。世

(15)

界上只有少数几个国家能生产巨型机,著名的巨型机如美国的克雷系列(Cray­1,Cray­2 等) , 我国自行研制的银河­III(每秒运算 100 亿次以上),天河一号(每秒运算千万亿次以上)也都 是巨型机。现在世界上运行速度最快的巨型机已达到每秒万亿次浮点运算。 (2)大型主机。大型主机包括大型机和中型机,价格比较贵,运算速度没有巨型机那样 快,一般只有大中型企事业单位才有必要配置和管理它。以大型主机和其他外部设备为主,并 且配备众多的终端,组成一个计算机中心,才能充分发挥大型主机的作用。美国  IBM 公司生 产的 IBM360、IBM370、IBM9000 系列,就是国际上有代表性的大型主机。 (3)小型计算机。小型计算机主要用于一般科学计算、事务处理等,一般为中小型企 事业单位或某一部门所用,例如高等院校的计算机中心都以一台小型机为主机,配以几十台 甚至上百台终端机,以满足大量学生学习程序设计课程的需要。当然其运算速度和存储容量 都比不上大型主机。IBM 公司生产的 AS/400 机,以及我国生产的太极系列机都是小型计算 机的代表。 (4)微型计算机。微型计算机是指体积较小的计算机,特点是轻、小、价廉、易用。微 型计算机的典型代表是个人计算机,又称为 PC 机(Personal Computer) 。它虽然问世较晚,却 发展迅猛,初学者接触和认识计算机,多数是从 PC 机开始的。PC 机在过去 20 多年中使用的  CPU 芯片每 18 个月集成度增加一倍,处理速度提高一倍,价格却降低一半。随着芯片性能的 提高,PC 机的功能越来越强大。今天,PC 机的应用已遍及各个领域,从工厂的生产控制到政 府的办公自动化,从商店的数据处理到个人的学习娱乐,几乎无处不在,无所不用。目前,  PC 机占整个计算机装机量的 95%以上。常见的微型机还有笔记本计算机、掌上计算机、便携 机等。 (5)工作站。工作站是介于个人计算机——PC 机和小型计算机之间的一种高档微型机。  1980  年,美国  Apollo  公司推出世界上第一台工作站  DN­100。十几年来,工作站迅速发展, 现已成长为专门处理某类特殊事务的一种独立的计算机系统。著名的 Sun、HP 和 SGI 等公司, 是目前最大的几个生产工作站的厂家。工作站通常配有高档  CPU、高分辨率的大屏幕显示器 和大容量的内外存储器, 具有较强的数据处理能力和高性能的图形功能。 它主要用于图像处理、 计算机辅助设计(CAD)等领域。 (6)服务器。服务器是在网络上为其他计算机提供软件和其他资源的计算机。网络上每 一台计算机都可以作为服务器使用, 但是有些服务器是专用的, 如邮件服务器可以使用户传送 电子邮件, 打印服务器可以使网络上的用户共享中央打印机, 文件服务器可以使网络上的用户 共享文件等。 (7)网络计算机。网络计算机是一种在网络环境下使用的终端设备。网络计算机有两个 特点:一是容量大、通信功能强,但本机中不一定配置外存和其他硬件设备,因此一般要比普 通的 PC 机便宜;而后需要的很多软件都存储在服务器上,因此易于维护。 (8)嵌入式计算机。嵌入式计算机是用于执行特定功能的计算机,嵌入式计算机通常嵌 入在单个微处理器芯片上,程序固化在 ROM 中。几乎所有具有“智能”的设备都使用了嵌入 式计算机,如游戏机、微波炉、汽车等。实际上,90%的微处理器都是嵌入在家电设备中。  1.3.2 计算机的特点 虽然各种类型的计算机在规模、性能、用途和结构等方面有所不同,但其主要特点都表 现在以下几个方面。

(16)

1.运算速度快、精度高 计算机的运算速度通常用每秒执行的定点加法次数或平均每秒执行的指令条数来衡量。 运算速度快是计算机的一个突出特点。计算机的运算速度已由早期的每秒几千次(如  ENIAC  每秒钟仅可完成 5000 次定点加法)发展到现在的最高可达每秒千万亿次。计算机高速运算的 能力极大地提高了工作效率, 把人们从复杂的脑力劳动中解放出来。 过去用几小时甚至几天才 能完成的运算,现在瞬间即可完成。曾有许多数学问题,由于计算量大,数学家们用了毕生精 力也无法完成,使用计算机则可轻易地解决。 在科学研究和工程设计中,对计算结果的精度有很高要求。一般的计算工具只能达到几 位有效数字,而计算机对数据的结果精度可达到十几位、几十位有效数字,计算精度可由千分 之几到百万分之几。对卫星轨道的计算、气象预报等精度要求高、实时性强的工作,没有计算 机进行数据处理,靠手工已无法实现。  2.具有逻辑判断功能 计算机除了能够完成基本的算术运算外,还能够进行比较、判断等各种逻辑运算,并根 据判断的结果决定下一步应该执行的命令。 计算机的逻辑判断能力是计算机处理逻辑推理问题 的前提。  3.具有记忆功能 计算机的一个突出特点是它具有很强的记忆功能。它能准确可靠地“记”住大量信息, 既不会记错,也不会忘记。计算机的记忆能力来自它的存储器。目前计算机的存储容量越来越 大,内存已高达数千兆数量级的容量,外存更是海量存储,不受限制。  4.自动化程度高,通用性强 计算机的工作方式是先把程序和数据存放在计算机内,工作时按程序规定操作,一步一 步地自动完成,一般无需人工干预,这就使计算机实现了高度的自动化和灵活性。每台计算机 提供的基本功能是有限的, 这是在设计和制造时就决定了的。 但计算机可以在人的精心编排下, 用这些有限的功能,快速自动的完成多种多样的基本功能序列,从而实现计算机的通用性,以 达到计算机应用的各种目的。 由于上述特点,计算机的应用领域不断开拓,现在计算机已渗透到社会生活的各个领域, 日益发挥着越来越重要的作用,成为信息社会科学技术和社会发展的重要推动力量。 

1.4 计算机的性能指标

在购买计算机时,如何评价一个计算机的性能?计算机的性能评价指标有很多,通常人 们从计算机的 CPU 字长、主频、运算速度;内存的容量、存取周期;外设的各项指标,如数 据输入输出最高速率等来评价计算机系统。如图  1.11  所示是一款计算机广告,反映了计算机 的各项指标。  1.CPU 的指标 字长:计算机在处理数据时,一次可以运算的数据位数称为一个字,字的长度称为字长。 通常把 8 个二进制位称为 1 个字节,一个字由一个或多个字节组成。常用的字长有 8 位、16  位、32 位和 64 位等。如某一类计算机的字由 4 个字节组成,则字的长度为 32 位,相应的计 算机称为 32 位机。字长直接影响计算机的功能强弱、精度高低和速度快慢。

(17)

图 1.11  一款计算机广告反映了计算机的性能指标 目前英特尔奔腾处理器系列主要为 32 位,但也有 64 位的,如 D 系列的奔腾处理器。 时钟周期、主频和运算速度:计算机的中央处理器对每条指令的执行是通过若干个微指 令操作来完成的, 这些微指令操作是按时钟周期的节拍来动作的, 时钟周期的微秒数反映出计 算机的运算速度,有时也用时钟的倒数——时钟频率(兆频),即人们习惯所说的主频来表示。 一般来说,主频越高(时钟周期越短),计算机的运算速度越快。但是,主频并不能全面准确 的反映计算机的运算速度。MIPS(每秒钟执行百万条指令数)指标能较全面地反映计算机的 运算速度。近几十年来,微型计算机的主频提高很快,例如,IBM PC/XT 微机的 CPU 主频为  4.77MHz,而 Intel  酷睿 CPU 的主频已超过 2.8GHz,并在不断提高。  2.内存的指标 内存容量:指计算机系统配备的内存总字节数,反映内存储器存储数据的能力,容量越 大,计算机所能运行的程序越大,能处理的数据越多,运算速度越快,处理能力越强。内存容 量常以字节为单位表示。字节是计算机中数据处理和存储容量的基本单位。1024 字节称为 1K  字节,1024K 称为 1M,1024M 称为 1G,1024G 称为 1T,现在微型计算机主存容量大多在 1G  字节上。 存取周期:存取周期是指 CPU 从内存储器中连续进行两次独立的存取操作之间所需的最 短时间。这个时间越短,说明存储器的存取速度越快。计算机的操作大多是和内存交换信息, 但内存的存储速度相对 CPU 的运算速度要低 1~2 个数量级。因此, 内存储器的存取周期也是 影响计算机运算速度的主要指标之一。  3.外设的指标 数据输入输出最高频率:计算机系统允许配置多种多个外部设备,允许配备的数量越多,其 操作系统的版本,可看出是 32 位  CPU 的型号及主频 内存的型号、大小 外设配置情况  Intel 酷睿 13­550  CPU 频率:3.2GHz  CPU 核心:双核心 接口类型:LGA1156  制程工艺:32 纳米 三级缓存容量:512KB  三级缓存容量:4096KB  Intel CPU

(18)

输入输出的处理能力就越强。主机与外部设备之间交换数据的速度是影响计算机系统性能的重要 因素。由于各种外设本身工作的速度不同,常用主机所能支持的数据输入输出最大速率来表示。 

1.5 计算机的应用

计算机对人类科学技术的发展产生了巨大影响,其应用领域也越来越广泛,主要包括以 下几个方面。  1.科学计算 使用计算机来完成科学研究和科学计算所遇到的数学难题的计算称为科学计算,也称为 数值运算。科学计算时使用计算机完成在科学研究和工程领域中所提出的大量复杂的运算问 题,是计算机的传统应用之一。科学计算通常的步骤为构造数学模型、选择计算方法、编制计 算机程序、运行计算和分析结果。 专门从事计算方法研究的科学工作者研究出了许多高效率、高精度的用于科学计算的算 法,积累了许多科学计算的程序,并且将这些程序汇集成软件包,供科技工作者选用。  2.信息传输和信息处理 信息在计算机内部的各个部件之间、计算机与计算机之间、计算机与其他设备之间等通 过数据传输的方式进行。信息处理就是使用计算机对数据进行输入、分类、加工、整理、合并、 统计、制表、检索以及存储等,又称为数据处理。例如作为飞机售票系统、商品零售业中的运 用、办公自动化等。信息处理已成为当代计算机的主要任务,是现代化管理的基础。据统计, 全世界计算机用于数据处理的工作量占全部计算机应用的 80%以上,大大提高了工作效率,提 高了管理水平。  3.实时控制 实时控制也称过程控制,实时控制能及时采集被监测数据,使用计算机进行快速的处理, 自动控制被控对象的动作,实现生产过程自动化。目前被广泛用于操作复杂的钢铁工业、石油 化工工业、医药工业等生产中。使用计算机进行自动控制和管理,可大大提高控制的实时性和 准确性,提高劳动效率、产品质量,降低成本,缩短生产周期。  4.计算机辅助设计/辅助制造/辅助教学 计算机辅助设计(CAD)是使用计算机来辅助完成产品或工程设计任务的一种方法和技 术。主要技术有图形处理、工程分析、数据管理、软件设计与接口技术等。 计算机辅助制造(CAM)是使用计算机来辅助完成工业产品的制造,能通过直接或间接 的、与工厂生产资源接口的计算机来完成制造系统的计划、操作工序、过程管理等。 计算机辅助教学(CAI)是把计算机用做教学媒体,充当指导者、工具和学习者的角色, 学生通过与计算机对话进行学习的一种新型教学技术。CAI 不仅能减轻教师的负担, 还能激发 学生的学习兴趣,提高教学质量,为培养现代化高素质人才提供有效方法。  5.艺术与娱乐 从电视到电影,计算机技术无处不在。利用计算机技术可以获得过去无法获得的效果, 过去的一些惊险特技镜头需要由演员或者替身演员冒着风险来完成, 使用计算机技术可以通过 镜头合并、人物变形等数字化技术来实现,不仅安全,而且效果更加逼真。 使用计算机控制的电子合成器可以模拟一种或多种乐器的声音,音乐家可以使用乐器数 字接口 MIDI 来创造音乐作品,为电影、电视、多媒体演示或计算机游戏等配音。

(19)

随着计算机技术、网络技术、多媒体技术、动画技术、计算机视觉技术等的不断发展, 计算机能够以图形、图像、声音、文字等形式向人们提供最新的娱乐方式,计算机娱乐已经成 为人们生活的一部分。在计算机上可以直接观看最新的影视节目、播放音乐、进行其他的消遣 等。许多影视节目、音乐可以在计算机网络上下载,供人们免费或有偿欣赏。 

1.6 计算机系统的抽象分层

计算机系统是一个复杂的事物,如何认识它呢?计算机系统可以抽象地看成是一个层次 结构,由许多层构成。每个分层在整个计算机系统设计中都扮演一个特定的角色。计算机系统 的分层如图 1.12 所示,本书将按照该层次结构自下而上探讨计算机系统的各个方面。 图 1.12  计算机系统的分层 本书把各个分层逐个地从计算机系统中剥离出来,每次只探讨一个分层。这样每个分层 自身就显得清晰简单。 事实上一台计算机真正所做的只是非常简单的任务, 它盲目快速地执行 这些任务, 根本不知道可以把许多简单的任务组织成较大的复杂任务。 当把各个计算机分层组 织在一起,让它们各自扮演自己的角色,这种简单的组合将会产生惊人的结果。 最低的一层是信息表示层,反映了在计算机上表示信息的方式,它是一个纯概念层。计 算机上的所有信息都采用二进制数字 1 和 0 表示。 所以, 要理解计算机处理信息的方式和相关 技术,首先必须理解二进制数制以及它与其他数制(如人们日常使用的十进制)的关系。如何 获得多种类型(如数字、文本、图像、音频和视频)的信息,以及如何用二进制形式表示它们。 这些问题将在第 2 章探讨。 硬件层探讨计算机系统的物理硬件组成。计算机硬件由最基本的门和电路构成,它们按 照某些基本原理控制电流。 由这些核心电路和门构成较复杂的具有一定功能的专用部件 (如计 算机的中央处理器 CPU 和存储器), 多个部件按照一定方式构成计算机硬件系统。第 3 章将详 细介绍门、电路、部件以及由部件构成计算机硬件系统及其基本工作原理。 前两层详细介绍了记数系统以及各种类型的信息在计算机中的表示,以及计算机的硬件 构成,重点在“计算机系统是什么” ,后续各章节的重点将转移到“如何使用计算机” 。 程序设计层负责解决人们的一些问题,用于实现计算的指令以及管理数据。程序有多种 形式,可以在许多层面上执行,由各种语言实现。尽管程序设计问题多种多样,但是它们的目 的是相同的,即解决问题。第 4 章将探讨用计算机解决问题的基本方法,各种程序设计语言,

(20)

以及如何更好地用各种语言编制程序的问题。 操作系统 OS 用来管理计算机的各种资源,提供人与计算机交互的接口。如 Window XP、  Linux 或 Mac OS 等操作系统让用户与计算机系统进行交互,管理硬件设备、程序和数据。了 解操作系统的功能是理解计算机系统的关键。第 5 章将讨论这些问题。 计算机系统的下面四层能够使计算机系统更好地运转,许多应用软件可以直接在下面四 层的基础上运行。 然而计算机不再只是个人桌面上的孤立系统, 使用通信技术使不同地方的计 算机可以相互交换信息。 网络通信是计算机系统运行的基础。 计算机连接到网络上共享信息和 资源。Internet  逐渐演化成了全球性的网络,所以利用计算机和通信技术,可以与地球上任何 地方通信。World  Wide  Web 使通信变得相对容易,它从根本上改变了计算机的使用价值,即 使一般大众也能使用它。第 6 章将讨论这些有关计算机通信的话题。 应用软件层的重点则是将计算机与一个实际应用领域相结合,使计算机成为一个多功能 的设备。通过运行应用软件来发挥计算机在其他领域中的作用,例如设计一个建筑或打游戏。 领域专用的计算机软件工具范围广,涉及计算机的几个子学科,如信息系统、人工智能和图形 图像处理系统等。当然,很多应用软件需要用到网络通信,使计算机的应用范围更广泛,如电 子商务、移动应用系统等。因此本书第 7 章首先讨论了与软件系统开发相关的话题,然后讨论 了与计算机的常见应用相关的分支学科的相关内容。 计算机系统的这种层次是抽象的一个例子,抽象是思考问题的一种方式,它删除或隐藏 了复杂的细节,只保留实现目标所必需的信息。当用户与计算机系统的一个分层打交道时,没 有必要考虑其他分层。如在编写程序时,不必关心硬件是如何执行指令的。同样地,在运行程 序时, 也不必关心程序是如何编写的。 抽象是计算的关键。 计算系统的分层表现了抽象的概念。 抽象还以各种形式出现在各个分层中。 

1.7 小结

计算机系统由构成设备的硬件、机器执行的软件及由前两者操作的数据组成,本书将对 计算机系统进行概括性的研究。 计算系统可以抽象地分为多个层次, 本书将按照自下而上的顺 序逐一介绍每一个分层。从信息表示层开始,到网络通信层结束。目的是让读者理解和掌握计 算机系统的框架和一些基本概念。 计算机的发展使大家了解了现代计算机的来源。计算的历史很早,经过了一个漫长的发 展过程,科学家发明了各种各样的计算工具,才出现了今天的计算机。计算机的发展被划分为 四个时代, 每个时代都以用于构建硬件的元件和为了让用户更好地利用这些硬件而开发的软件 工具为特征。 计算机具有广泛的用途,随着应用的广泛和深入而发展为多种类型的计算机。计算机的 分类方式有多种,可以按照用途分,也可以按照工作原理和设计目的分,最常见的一种分类方 式是根据运算规模来分,分为巨型机、大型机、小型机、微型机、工作站、服务器和嵌入式计 算机。每一种计算机的出现都是根据需要应运而生的。 在购买或评价计算机时,常常需要了解计算机的性能指标,一般从  CPU、内存和外设三 方面来看,通过对 CPU 的字长、时钟频率和运算速度,内存的存储容量、存取时间,外设的 最大数据传输速率来衡量。

(21)

1.8 练习

一、简答题  1.什么是计算机系统?包括哪几部分?  2.简述计算机硬件各个时代的主要特征。  3.简述计算机软件各个时代的主要特征。  4.计算机是如何分类的?  5.计算机具有哪些特点?  6.衡量计算机性能的指标有哪些?  7.计算机主要应用在哪些方面?还能举出更多的应用吗?  8.简述计算机系统的抽象分层及每一层的功能。

參考文獻

相關文件

某项货物的单位价格是指该项货物的贸易货值与其货量之比。季度单位价格指数是计算当季各

某项货物的单位价格是指该项货物的贸易货值与其货量之比。季度单位价格指数是计算当季各

经营费用:包括自用物料、水费、燃料、电费、保养及维修、场所租金、机器及设备租金、机动车租赁、连司机的

 基准制的选用原则是:优先选用基孔制 ;只有在下列条件 下才使用基轴制 :①直接使用有一定公差等级而不再进行机

某项货物的单位价格是指该项货物的贸易货值与其货量之比。季度单位价格指数是计算当季

经营费用:包括自用物料、水费、燃料、电费、保养及维修、场所租金、机器及设备租金、机动车租赁、连司机的汽车租

一、 重积分计算的基本方法 二、重积分计算的基本技巧 三、重积分的应用.. 重积分的

一、 曲线积分的计算法