计算机科学基础(第2版)(txt+pdf+epub+mobi电子书下载)


发布时间:2020-10-18 08:24:43

点击下载

作者:陆汉权

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

计算机科学基础(第2版)

计算机科学基础(第2版)试读:

第2版前言

4年前,本书的第1版由电子工业出版社以双色印刷出版,期间还勘误过一次,更正了一些出错的地方。2年前,出版社就提出再版要求,大概是因为这几年计算机的发展太快了,计算机类的教材如果不能及时更新,会让人觉得落伍,套用网络语言就是OUT了。

我知道,本书的大多数读者都能够熟练使用计算机,其中不乏高手。我见过我的许多学生,他们敲打键盘和使用手机的熟练程度令人目不暇接,这非一日之功。如今在大学读书的新一代大多数是在互联网开始发力的1995年之后出生的,换句话说,他们是与网络一起长大的。因此就使用计算机、上网等操作而言,他们已经是轻车熟路了,不需再告诉他们如何使用计算机,因此本书不是告诉读者如何使用计算机的教材。

有一个学生告诉我,她认为计算机科学基础这门课很水,因为她从小就使用计算机,中小学都学过计算机,大学里上计算机基础课对她不会有新的帮助。课程开始不久,她就在课程网上留言:我感到很吃惊,居然计算机科学基础这门课的内容大多数都是我不知道的。也不是所有学生都持相同的看法,有学生抱怨这书太难了,“我们需要知道这些吗?”我给他们的回答是,你们是对的,本书的大多数内容你们不需要知道,但知道的好处比不知道的好处要多:如果你期望计算机对你的未来有帮助,那么就应该好好了解它,了解它究竟能够做些什么,不能做什么,还应该了解它究竟是怎么做的。哪怕是一个很简单的工具,知道它的原理比只知道它能干什么要重要得多:科学的精神就在于知道是什么、为什么以及如何做到的。作为一门学科,计算机和数学、物理差不多,我们学习它们并不意味着我们就以此为职业,我们需要学习多种学科知识,以提升自己的学习能力和科学素养,提升未来的职业能力。也许你不会和我一样是以计算机为职业的,但计算机将与你终生为伴,它在这方面的作用无疑是更大的。

这本书虽然是第2版,但我第一次写计算机基础教材是2003年。12年来,我有5次再版过该书,每次修订都是因为教学对象在变:他们的计算机技能不断提高。因此,教学内容需要重新组织,过时的内容要删减,某些章节也要重新编排,以便更适合当时的教学对象,但全书体系一直并没有大的变化。我一直在思考并坚持的就是:本书应该有基础性课程所具有的知识体系的基本稳定性。尽管计算机技术发展很快,但是它的科学基础并没有变,至少在可预见的未来也不会有多大变化。计算机科学的基础就是数制、逻辑、体系、数据组织和表达、算法、语言、软件原理等。新技术,如Web、即时通信等,都不是新的,而是新一代人对计算机、网络的天然亲和性,导致相关的市场开始变得兴旺,无关乎技术。

如上,希望本书的读者能够领会我想表达的意思:计算机是科学,也是工具,而且是一个不可或缺的科学工具,它改变着我们、改变着社会,好好地了解它吧,它能更好地帮助你。

我得抱歉地说,与前面出版并勘误过的第1版一样,本书仍然会有各种失误和错误,希望读者能够不吝指出,将在再次印刷时予以更正。在此深谢你们的宽容和帮助。

最后,我得感谢我在浙大一起教授本课程的各位同事,他们是本书的最大贡献者,他们给予我的帮助是巨大的、无私的。感谢很多校内校外的老师和读者,他们也给予本书许多建设性的意见。特别要感谢学院的章文老师和冯晓霞老师,她们仔细阅读了书稿、纠正了很多错误的地方,也提出了很多很好的建议。再次感谢出版社编辑章海涛对本书编写的关心和帮助,使本书能够再次得以顺利出版。

陆汉权

于浙江大学紫金港校区

第1章 引论

计算机科学(Computer Science)是一个宽泛的概念,它涵盖了计算机的方方面面。这里讨论的并不是计算机的全部,而是介绍作为科学的计算机和作为工具的计算机所需要的一些基本知识。本章从“计算机是什么”这个问题开始,介绍数据处理机模型、现代计算机模型和计算机系统、信息系统等基本概念,使读者对计算机有初步的、整体的概念。更为详细的相关知识将在后续章节中讨论。

1.1 计算机是什么

今天的在校学生对于“计算机”的熟悉程度远非十多年前可比。早在17世纪,英文Computer(计算机)一词是指从事计算工作的人。到20世纪40年代的第二次世界大战时期,为破译通信密码和解决新型火炮弹道的复杂计算,美国开始研制自动计算机装置,从此“计算机”被赋予了机器的含义。

计算机已经被公认为是人类科学史上发展最快、影响最大的学科,计算机科学(Computer Science)、计算机技术(Computer Technology)、计算机工程(Computer Engineering)等术语越来越多地出现在各种学科的文献中,相应而生的信息技术产业(Information Technology,IT)在20世纪90年代就已经成为了全球第一大产业。

与70多年前相比,现在的计算机的外在形式和内涵都发生了巨大的改变,但基本原理并没有本质性的变化。从技术上讲,越来越精细的大规模集成电路使计算机的体积越来越小,如现在几乎普及的移动设备(便携式计算机、智能手机等);计算机的功能越来越强,从最初单纯的计算发展到现在的以事务处理为主;从用途上看,过去昂贵的计算机从被放置在专用机房,今天则已摆放在办公桌上、背在身上、握在手里了:计算机不但是科研、信息通信、工业生产中重要的设备,而且是学习和交流的工具,计算机进入家庭,成为了消费品,也是更新换代速度很快的最大消费类电子产品。

计算机与计算(Computation)是密切相关的。计算是数学的基础,也是计算机的基础。最初人们期望计算机实现数学意义上的“自动计算”,但是随着计算机科学和技术的迅速发展,人们对计算机的巨大潜能开始有了新的认识:客观世界的许多形态都能够被“数字化”,也就是说,我们生存的这个世界上的各种物质的形态都能够被计算机所存储、处理、交换以及分析运用。如今,工程师使用计算机进行产品的设计、制造,导演使用计算机帮助拍摄电影、电视,科学家使用计算机进行研究,学生使用计算机帮助学习,等等。

不论你将来从事什么工作,都离不开计算机。如果你需要把工作做得更好,就需要更好地利用计算机。因此,你不但需要知道计算机究竟能够帮助你做什么,还应该知道它是如何做到的。有科学家把这个问题归结为“计算思维”(Computation Thinking),也就是说,对客观世界中的问题进行抽象表示,再由计算机处理。

这里,我们的第一个问题是,计算机是什么?有许多种回答,几乎每本教科书的答案都是不同的。按照《计算机科学技术百科全书》的说法:计算机是一种现代化的信息处理工具,它对信息进行处理并提供结果,其结果(输出)取决于所接收的信息(输入)及相应的处理算法。

按照上述定义,计算机科学与技术的核心包括计算机的设计、制造,以及运用计算机进行信息的获取、表示、存储、处理、控制等的相关理论、原则、方法和技术。计算机科学研究其现象和揭示其规律,计算机技术侧重研制机器和使用计算机进行信息处理的方法和手段。

1.2 计算机模型

模型(Model)是一个最常用的科学描述方法。理解计算机的最好方法也是通过模型。为了解释或者设计计算机,科学家和工程师们建立了多种计算机模型。从理解计算机的角度,最典型的是黑盒模型和具有程序处理能力的处理机模型。

在上述计算机定义中,计算机被看成信息处理机(Data Processor)。信息(Information)和数据(Data)是计算机的两个重要概念,很多情况下这两个词被混用,尽管它们之间存在着差异。通常,数据有广义和狭义之分,广义的数据可以被认为就是信息,狭义的数据概念则被看成待处理的原始记录。因此可以认为,“信息”是经过对“数据”进行加工处理后得到的,且是有特定的意义的。例如,一个数(数据的基本形态之一)可以代表一个物体的量,也可以视为一个特定的标记。所以可以认为,数据是“原材料”,而信息是“制成品”。1.2.1 黑盒模型

黑盒(Black Box)模型被用于许多学科,计算机也使用黑盒模型解释其基本原理。从功能的角度看,如果不考虑计算机的内部结构,计算机就是一个黑盒子,如图1-1所示。

黑盒模型也称为数据处理机模型,是计算机原理的经典模型之一,也是对计算机定义的诠释。这个模型指出,数据输入到计算机中后,经过计算机的处理,输出结果。黑盒模型指出,计算机在数据处理过程中,如果输入的数据相同,那么输出结果将能够重现;如果给出不同的输入数据,那么输出结果也能够随之改变。图1-1 黑盒模型

黑盒模型定义了计算机的功能,给出了计算机的基本属性(Property),即计算机就是处理数据的机器。对大多数使用计算机而非计算机专业的用户而言,他们并不需要考虑计算机处理数据的过程和复杂的细节,只需理解运用计算机可以进行数据处理、期望得到处理结果即可。

黑盒模型的缺点也很明显,它只给出了数据处理的一个不透明的过程,没有告诉我们它是如何实现这个过程的,即如何计算的(专业术语叫算法)。事实上,计算机强大的功能体现在它的复杂性、灵活性。另外,黑盒模型也无法描述机器所处理数据的类型,当然也无法给出基于这个模型的计算机能够完成的操作类型和数量。因此,计算机的数据处理能力是如何被体现出来的这件事需要用新的模型进行定义和说明。1.2.2 具有程序能力的数据处理机

具有程序能力的数据处理机如图1-2所示,它是在黑盒模型的黑盒子上增加了一部分——程序(Program)。程序是计算机中一个非常重要的概念,尽管其种类繁多,有的程序其复杂度堪比目前已知的人类工程或机器,但它可以简单地被理解为“按照预定的步骤进行工作”。

在这个模型中,计算机的输出结果取决于程序。在同一个程序的控制下,相同的数据能够得到的输出结果也是相同的,这就是所谓的“一致性”。反之,如果程序不同,那么相同的输入数据得到的输出结果也可能不同。例如,通过程序对一组输入数据进行累加,得到的结果是和数;但使用排序程序对同一组数据进行操作,那么输出结果就与求和计算完全不同了。进一步,不同的数据采用了不同的程序,也可能产生相同的输出结果。图1-2 具有程序能力的数据处理机

显然,具有程序能力的处理机模型很好地解释了计算机的信息处理能力。与黑盒模型相比,这个模型更好地诠释了计算机的定义。正是有了各种各样的程序,计算机能够服务于一个跨国企业的管理,也可以帮助个人发送邮件。计算机既能在科学研究中进行分析处理,也能帮助我们在学习过程中搜索需要的信息。

计算机之所以如此灵活,是因为它能够按照“程序”进行工作,而程序是事先编制好并存放在计算机内部的。程序功能充分体现了计算机的数据处理能力:只要让计算机执行不同的程序,就可以得到各种期望的数据处理结果,这就是极为重要的“程序原理”。

中文文献中使用“计算机”作为正式名称,但广泛地被大家使用的词是“电脑”。本书中主要使用专业名词“计算机”,但有时对这两个词不加区分地使用。

1.3 现代计算机模型

数据处理机模型对帮助人们理解计算机的基本原理是有意义的。事实上,计算机模型需要回答的问题还有很多,如计算机接收的数据是什么形式,在其内部以什么形式存储,如何存储,如何使数据能够长久保存,输出结果如何能够让用户理解等。

计算机模型不仅要有功能性定义,还需要定义其内部结构。因此能够进一步表述现代计算机的模型如图1-3所示。与前述数据处理机模型相比,现代计算机模型更精准地诠释了计算机的定义。很长时间以来,这个模型被称为冯·诺依曼模型[1],在一些文献和教材中,还是沿用了“冯·诺依曼计算机”这一说法。计算机的诞生和发展得益于无数科学家的才智,但回头看看它的历程,既有耀眼夺目的明星科学家们的卓越贡献,也有难以理清的争议和难解之谜。现代计算机究竟谁是第一贡献者,就是其中之一。图1-3 现代计算机模型

现代计算机模型或冯·诺依曼模型给出了计算机的功能,还定义了计算机内部的结构,解决了数据处理机模型中许多未能定义的问题。因此,这个模型是教科书中多年保留的现代计算机模型。1.3.1 计算机的五个组成部分

在图1-3所示的模型中,计算机由输入、运算器、存储器、控制器和输出五部分组成。

虚线标记的运算器(Arithmetic Logic Unit,ALU)和控制器(Controller)在现在的计算机中被集成在一个芯片上,称为中央处理器(Central Processing Unit,CPU),完成计算和控制功能。控制器对计算机的所有部件实施控制,协调整个系统有条不紊地工作:控制器连接到其他四部分的连线的方向标记了其核心地位。

计算机中的输入、输出(Input and Output,I/O)也被看成一个整体。因此,现代计算机也被认为由三个子系统组成:处理器子系统、存储器子系统和输入/输出子系统。

输入设备(Input)输入数据和程序,输入的数据和程序被存放到存储器(Memory)中。运算器从输入设备、存储器中获取数据,其运算结果存放到存储器或直接输出到输出设备(Output)。输入、输出通常被称为人机交互(Human-Computer Interface,HCI)。

最早提出类似如图1-3所示模型的是19世纪初的英国数学家查尔斯·巴贝奇(Charles Babbage,1792—1871年),他设计的叫做差分机的计算机的原理为IPOS(Input,Processing,Output and Storage)。今天的计算机原理源于IPOS,因此巴贝奇被称为计算机之父。

还有另外一种计算机结构模型叫做“哈佛结构”(Harvard Architecture),它的系统组成也可以用图1-3表示。哈佛结构与现代计算机模型所不同的是它的存储器,图1-3所示的模型将程序和数据存放到一个存储器中,而哈佛结构将数据和程序分开存放。在今天的计算机中,这两种结构都在使用,不过哈佛结构多用于某些专用处理器系统和通用CPU芯片的内部,以提升CPU的处理效率。

前面已经介绍过几种计算机模型,实际上还有很多模型用于不同类型、不同规模的计算机,如多处理器的流水线结构、并行结构等,就其基本原理而言应该是类似的。在许多文献和教材中,为了将现代计算机模型与流水线、并行结构等模型加以区别,前者使用“传统计算机模型”一词,后者则被冠于“非计算机传统模型”。1.3.2 程序存储原理

如前述可知,计算机的灵活、复杂是因为有程序,因此程序被看成计算机的灵魂。在冯·诺依曼模型中,程序被要求在执行前存放到存储器中,还要求程序和数据采用同样的存储格式。这就是非常有名的程序存储原理。这个原理也是冯·诺依曼最早发表在其论文中的。现代计算机模型还要求程序的长度(指令序列,详见第5章)必须是有限的。计算机执行程序时,只要给出程序所在的存储器位置,程序将自动运行,直到程序的任务完成。

现在看来,程序存储是一个简单的、显而易见的原理,然而在计算机发展的开始阶段,这一直是困扰计算机科学家的难题,即如何使计算机自动执行程序。早先的计算机往往是在机器启动后通过面板上的开关来组合成操作命令,一个命令执行后,再拨动开关组成下一个操作命令。可以想象,当时使用计算机是一件多么枯燥且容易出错的事情。

使用程序存储的另一个重要的理由是程序的“重用”。许多计算任务往往只需要改变输入的原始数据,而计算过程本身是相同的。如果每个计算机的任务都需要重新编制程序,那么计算机的使用和程序编制本身都将是很难的事。同时,在程序执行之前就将数据存放好,不但有效地提高了计算机的运行效率,而且使得程序的执行过程实现了自动化。

1.4 计算机系统

计算机不仅是一台机器,而是被称为一个系统,即计算机系统(Computer System)。我们知道,被称为“系统”的肯定是由多个部分组成的,单一的东西是不能称为系统的,因此计算机系统是一个大概念。

简单地说,计算机系统是由计算机硬件和软件组成的,进一步,计算机的硬件和软件也是“系统”。再深入就会发现,计算机也只是计算机系统中的一部分而已,信息系统基于计算机,还包括所处理的数据以及使用计算机的用户(User)等。

表1-1概略地给出了组成计算机系统的硬件系统和软件系统。第3章将对硬件系统进行更详尽的介绍,第4、5、6、7章将对软件系统中的几个组成部分进行讨论。1.4.1 硬件系统表1-1 计算机系统的组成

组成计算机的物理设备称为硬件(Hardware),也称为硬件系统(Hardware System)。计算机的主要元器件是电子的,由实现计算机操作过程及输入、输出功能的各种电子设备互连组成。术语“计算机设备”(Device)既可以指一个价值数亿的巨型计算机系统,也可以指一个只有数十元的鼠标器。

1.计算机硬件史

在计算机问世的初期,计算机就是指计算机的硬件。由于硬件是计算机的物理实体,因此在计算机发展史中主要依据硬件的技术特征作为标志。

计算机的全称是电子数字自动计算机。一般来说,20世纪40年代前的各种计算机器,如算盘、手摇计算机、机械式计算机等,都不被认为是计算机,因为这些计算装置不能实现“自动计算”。人们把1946年的ENIAC(Electronic Numerical Integrator And Computer,电子数字积分计算机)作为第一台现代计算机,也是第一代计算机的典型代表,它采用电子管作为主要元件。这一阶段后期,开始使用磁记录设备作为计算机的存储器。

到了20世纪50年代后期,计算机开始使用晶体管,被称为第二代计算机(1959—1963年)。与电子管相比,晶体管体积小、功耗低,且速度快、可靠性高、成本低廉,适合大批量生产。这一时期,计算机发展开始提速,逐步用于科学计算之外的事务处理,同时开始使用电话线进行计算机的数据通信,这就是计算机网络的萌芽阶段。

与此同时,集成电路(Integrated Circuits,IC)诞生,它开始被用于制造计算机,即第三代计算机(1963—1975年)。这一时期的另外一个与计算机相关的重大事件是发射了同步通信卫星,从而可以在地面和卫星之间实现数据通信。

1970年,计算机的运算器和控制器被集成在硅片上,即发明了CPU集成电路,由此计算机进入了大规模集成电路的第四代(1975年至今)。20世纪80年代开始发展起来的微型计算机(Microcomputer)也叫个人计算机,即PC(Personal Computer),至此计算机从实验室走到了办公室的桌面上,开创了计算机发展的全新时代。这个时代,高速计算机网络也得到迅猛发展,今天的Internet不但连接了全世界数十亿计的计算机和网络设备,而且创造了被称为继报纸、杂志、广播及电视之后的“第四种媒体”,也是影响最大的新型传媒。

2.计算机的类型

个人使用的计算机多半是桌面机器(台式机)或者手持式(如笔记本电脑、智能手机)的,都被称为微型计算机。计算机还有其他类型。

并没有一个标准给计算机划分类型,通常按计算机的规模及销售价格进行划分,有价值千万美元以上的巨型计算机(Supercomputer,超级计算机),这类机器通常用于极为复杂的、海量的数据处理领域,如地震模拟、核武器试验、气象分析、生物信息处理等;有价值数百万美元的大型计算机(Mainframe Computer),这类计算机通常用于跨国企业的信息系统,如银行、航空公司等;也有价值数万至数十万美元的小型计算机,这类计算机通常作为企业、政府、学校等机构的网络服务器,或者用于研究机构和较大型工程设计领域。

巨型、大型、小型机的价格较为昂贵,而价格低廉的微型计算机(如PC)具有最大的用户群,也是计算机市场份额中最大的一类机器。PC曾是桌面机的专用名词,来源于世界上最大的计算机制造商IBM(International Business Machines Corporation)的微型计算机的商标,后来成为个人计算机的代名词。

今天的大多数实验室仪器、工业生产设备都带有数据处理能力,这种处理能力依赖于嵌入其中的计算机CPU芯片,这类系统被称为嵌入式系统。事实上,一些高档的家用电器(如电视机、电冰箱、洗衣机等)也内嵌处理器,以实现更高级的功能。随着移动通信开始取代传统的语音通信业务,“智能手机”也大行其道。本质上,智能手机就是内嵌计算机芯片并使用了计算机技术的个人通信设备。当然,这里的“智能”只是一种商业名词而已,并没有真正意义上的智能。

3.硬件的三个子系统

不管哪种类型的计算机,都是由表1-1所列的那些设备和软件组成的。根据现代计算机模型的定义,计算机都是由处理器、存储器和输入/输出三个子系统构成的。

大型计算机系统的主机系统可能由很多个处理器组成。如2014年11月Top500.org公布的排名世界第一、广州超级计算机中心的“天河二号”超级计算机,其主机的高性能处理器(CPU)达到3.2万个,每个处理器为12核(进一步解释请见第3章),总的处理器数量达到16312万个,运算速度达到了每秒5.49×10(亿亿)次浮点数(见第2章)。价格低廉的PC使用的是单个处理器芯片,最新的微机有使用多核处理器芯片,如双核(Core)或四核。这里的核不是指多个处理器芯片,是指一个CPU芯片上集成了多个处理器。

计算机系统中的存储器系统也是一个复杂的子系统,其任务是存储数据、程序和参与运行程序。价格昂贵的机器的存储器容量是巨大的,而微机的存储器通常“比较小”,当然这是与大型机的比较。尽管如此,今天的微机存储器容量也很大,足以存放多部百科全书。

计算机的输入/输出设备有很多种,最常见的输入设备有键盘和鼠标器,输出设备有显示程序界面的各种显示器和输出程序运行结果的打印机等。

研究计算机硬件相关的互连,使得计算机更有效、更高速、更可靠的学科称为计算机体系结构,当然也包括研究如何使机器的体积更小等内容。最典型的例子是近来被广泛注意的可穿戴式数码产品,如可以直接拍摄照片和视频的眼镜、数码手表等。更多、更详细的硬件知识将在第3章中重点介绍。1.4.2 计算机软件

计算机的另一个重要组成部分是软件(Software)。我们把计算机“看得见”的那一部分称为硬件,则把使计算机运行以完成任务的程序称为软件。这一部分是“看不见”的,却是不可或缺的。

1.软件系统

除了计算机硬件之外的所有与计算机相关的文档、程序、语言等都可以被归类为软件,因此软件也是一个系统,而且是非常复杂的一个系统。

按照表1-1所述,软件系统是计算机所有软件的总称,由系统软件和应用软件两部分组成。我们把服务于计算机本身的那些软件称为“系统软件”(System Software),包括管理计算机资源和为使用计算机提供帮助的操作系统(Operating System,如PC所用的Windows系统、Apple计算机使用的iOS、平板电脑和智能手机使用的Android系统)、计算机语言系统和对计算机硬件进行检测、管理的一些工具软件。第4章将深入讨论操作系统系统,第5章将介绍有关计算机语言、程序和软件等概念。

另一类软件被称为应用软件(Applications Software),所谓的APP就是application的简称,是解决特定问题的一类软件,如最常见的办公系统(如字处理软件)、访问互联网的浏览器、电子邮件系统和实时通信系统(如微信)等。很多计算机应用都需要专门的软件,如学校的教务系统软件就是为了进行课程安排、成绩记载和打印、学籍管理等工作。

2.软件的进化

软件也是随着计算机科学的发展和技术的进步而“进化”的,计算机从完全由专业人员操作到今天的普及应用,在很大程度上应归功于软件。今天的软件得益于程序设计技术的飞速进步,特别是智能技术的发展使得操作计算机更加容易、高效。

第一代计算机使用的是二进制代码语言编写的程序,它是内置在机器内部、被计算机处理器直接执行的指令代码。这一时期并没有“软件”概念,只有“编程”(Programming)概念。当时的计算机主要用于科学计算、数据处理,程序员需要非常熟悉机器指令代码。这个时代的程序员多为数学家和计算机专业工程师。

机器码编程不但设计和编码工作繁杂、费时,而且极易出错,因此后来开始使用符号化的汇编语言,它使用英文缩写表示机器代码。汇编语言仍然与机器相关,而且最初还需要人工翻译成机器代码,这个翻译工作后来也被发展为用程序来实现。编写这类语言翻译程序的程序员就是最早的“系统程序员”。

到了20世纪50年代后期的第二代计算机时期,计算机的硬件功能变得强大,对程序的要求自然随之提高。这一时期,类似于英文表达的程序设计语言被开发出来,称为计算机高级编程语言。当时典型的高级语言有两个:FORTRAN语言和COBOL语言。

此时,系统程序员仍然致力于计算机语言工具,而使用计算机语言开发应用程序的程序员被称为“应用程序员”。随着语言系统功能的不断强大,程序开发开始逐步脱离硬件的限制。这个时期的另一个重要的变化是,计算机业界的巨头IBM公司放弃了软件随硬件捆绑的政策,使得应用软件的开发步入快速发展轨道,有更多的软件公司进入计算机市场。而在这之前,软件的开发一直被硬件供应商独占。

20世纪60年代中期到70年代初,也就是第三代计算机时期,出现了操作系统。最初是因为输入时只有输入设备工作,其他设备需要等待;处理数据时,输入/输出设备也都处于等待状态,硬件资源利用率很低,而那时的硬件极为昂贵。为此需要对计算机程序的运行过程进行调度,提升系统硬件的利用率,如计算机调度运行多个程序以减少等待时间等。完成这个调度的程序就是“操作系统”,即第三代软件。

第三代软件除了操作系统,也出现了大量的程序设计高级语言和专门求解某一问题的软件包,如著名的统计软件SPSS(Statistical Package for the Social Sciences,社会科学统计程序包)。在这一时期,使用计算机的人不再必须是计算机专业人员,因此“计算机用户”这个重要的角色出现了。

在第四代计算机时期,软件的产业特征开始显露。特别是20世纪70年代末以后,面向过程的结构化编程方法被提出,推进了程序设计技术的发展。结构化编程语言(如BASIC、C语言等)加快了各种系统软件、应用软件的开发速度。作为操作系统标准的UNIX系统以及运行在PC上的DOS(Disk Operating System,Windows系统的前身)都开始朝着标准化方向发展。在操作系统支持下的应用软件(如文档处理、电子表格、数据库系统)大量出现,极大地推动了计算机应用的发展。尤其是PC的快速普及,带来的最明显变化是非专业人员成为计算机的主要用户群。

自20世纪90年代以来,以图形界面为特征的Windows取代之前的字符界面的DOS系统,成为PC的主流操作系统。用户再也不需要记忆复杂的命令,只需通过鼠标对屏幕上的图形标记(图标)点击操作来使用计算机。这不仅是一种操作方式的变化,而是出现了以图形用户接口(GUI)技术为特征的新的面向对象的编程技术,使得程序设计不再从初级代码开始。另一方面,计算机硬件的性能不断提升,机器的价格越来越便宜,软件的功能越来越强,所以计算机的应用也深入到生产、社会、管理、制造甚至娱乐业等领域,软件作为产业已经超过了硬件,因此出现了一个新的行业名词:服务。这个商业模式也是IBM公司首创的。1.4.3 计算机是如何运行的

前面简单介绍了有关计算机系统、计算机硬件、计算机软件的知识,在此我们应该考虑一下:计算机究竟是如何运行(Operating)的?

以PC为例,无论是桌面机还是便携机,只要连接上电源,按下电源开关,显示器的屏幕上就会出现不断滚动显示的信息,最后给出一个像飘扬着的旗子的微软公司的商标(见图1-4),表示Windows被加载和运行。

事实上,只要通电启动,机器就开始执行程序,直到关机为止。如上所述,计算机执行的程序要么是系统软件,要么是应用软件。前者是为了帮助用户使用计算机,后者是为了让计算机完成用户需要让它执行的任务。图1-5给出了计算机运行的示意图。图1-4 Windows系统的Logo图1-5 计算机运行示意图

如前所述,按照“程序存储原理”,程序和程序运行需要的数据已经存放在磁盘存储器中。计算机通电后,CPU执行启动程序BIOS(Basic Input and Output System,基本输入/输出系统),其基本任务就是把存放在磁盘中的操作系统调入内存执行,此后将在操作系统的管理下直接操控计算机的硬件。BIOS完成引导任务后,计算机就由操作系统管理和控制,为用户使用计算机提供帮助和运行各种应用程序。

在程序执行过程中,显示器显示程序的各种状态以及程序执行需要输入数据的提示,由输入设备(如键盘、鼠标器)完成输入操作(图1-5中没有画出输入设备)。如果需要,可以在程序的控制下,将程序运行的结果输出到打印机上。

1.5 信息系统

今天使用网络是一件很平常的事情,如我国的高考已经使用“网络”了,考生信息、考试成绩、填报志愿、录取信息都是通过网络处理和查询的,包括录取过程也在网上进行。对考生的各种信息进行存储和处理的计算机及网络就是一个信息系统(Information System)。这类信息系统已经遍及社会生活的各方面,如超市、商场的销售系统,车站、机场的票务系统,学校的教务系统,银行的账务系统,证券公司的交易系统……不胜枚举。

信息系统是一个基于计算机的复杂系统。一个大型的信息系统,其复杂程度可以与大型的工业制成品相匹敌,甚至有过之而无不及。现代的工业制造也是在计算机控制下进行的,且它本身也由相关的信息系统所管理。信息系统的基本功能是为需要者提供特定的信息,支持用户迅速、有效地输入、存储、处理和获取信息。例如,图书信息系统可能包含许多读者需要的各种图书信息。

今天,信息已经被认为是人类的重要资源,因此对信息资源的开发、运用也成为社会生活、经济活动的重要组成部分,并且成为衡量一个国家现代化程度的标志,有效地开发、运用和拥有信息资源已经被提升到国力的高度。

要构成一个信息系统,计算机是必要的组成部分。从计算机的角度看,信息处理是一个“计算过程”,一般认为信息系统有如下6个要素。

①硬件,指计算机或包含计算机的装置。

②软件,控制硬件完成特定的工作任务。

③ 数据/信息。例如,一个商场销售系统对各种商品的批零价格和销售数据进行处理,就可以得到销售额、盈亏等有用的信息数据。

④用户(User)。计算机有两类用户,一类是以计算机为职业的,这类用户从事与计算机相关的技术工作,如软件设计、信息系统管理等;另一类用户主要是使用计算机的,大多数用户属于这一类。

⑤ 过程(Processing),或称为处理。这一要素反映了信息系统完成处理任务,以及与用户在执行任务中的协调作用。简单地说,“过程”就是如何操作这个系统的一系列步骤。

⑥ 通信(Communication)。通信作为信息系统的组成要素,不仅反映在硬件和软件之间、用户和机器之间,还反映在不同的计算机之间。例如,网络就是把多台计算机互连起来,因为信息的交换就是通信。

信息系统中,计算机承担的“计算”任务只占很小的部分,而大部分任务是信息处理、事务处理、控制等。因此,实际上“计算机”这个名词被沿用是一个历史进程,并不反映它真正的作用。

从使用计算机的角度观察,计算机本身也是一个信息系统,任何一个用户使用计算机都有一定的任务需要计算机去帮助完成,完成这些任务同样可以用这6个要素来归纳。

1.6 因特网和万维网

单台计算机,即使有很大的存储空间,有很快的运算速度,其作用总是有限的。尤其是其他机器上有你需要、别人也愿意提供给你的信息,那么最简单的方法是把其他机器与你的机器“连起来”。通俗地说,两台以上的计算机互连就可以认为是一个网络(Network)。目前,联网类型有多种,最大的网络就是因特网(Internet)。即使是价值数亿的超级计算机也无法与之相比。有意思的是,网络互连技术也被成功地运用于超级计算机的制造。

1.因特网

全世界有数十亿台各种类型的计算机互连起来成为一个巨大的网络,使之能互相交换信息(专业术语是“资源共享”),这个网络就是因特网(Internet)。因特网始建于20世纪60年代末,经过几十年的发展,已成为唯一覆盖全世界的、也是最大的计算机网络。

因特网是“网络的网络”,它已经是计算机应用的一个组成部分。因特网上的机器无论是巨型机还是手机,其逻辑地位是等同的。因特网没有采用像计算机系统那样的中心控制结构,而是以主机(host)互连,入网的每台机器无论大小统一赋予一个主机地位(本书第8章重点介绍网络和因特网),这就是因特网的开放性,也是吸引无数用户的直接原因。现在的计算机无论大小都具备接入因特网的功能。

今天的因特网,从一般的信息检索,到信息通信、社交活动,到网上交易(电子商务),已经成为一个“虚拟社会”。当然,现实社会的各种形态在这个虚拟社会上几乎全被复制了。同样地,各种现实社会的丑恶也在因特网上如出一辙地呈现出来。

对因特网的争议并没有影响到它以极快的速度发展。我国已经有世界上最大的因特网用户群和最多的入网机器,有数亿用户每天在网络上发表数以亿万计的信息,并依托网络进行各种活动,甚至赖以生存。

2.万维网

因特网发展到今天,为适应不同用户的应用需求,提供了多种服务,如World Wide Web(WWW,简称Web,中文名为万维网)不仅是因特网上最大的一种服务,其他服务如电子邮件(E-mail)、电子公告板(BBS)等也纷纷转移到Web平台上。对许多用户而言,因特网就是Web,尽管这个说法并不准确。

建立因特网的最初目的之一是建立一个计算机通信网,让联网的人员能够互相交换信息。1990年,欧洲粒子物理研究所(CERN)的技术员蒂姆·伯纳斯-李(Tim Berners-Lee)使用了一种标记格式,也就是后来制作Web的超文本置标语言(HyperText Markup Language,HTML),设计了一个程序,能将分隔在不同地域、不同计算机上的文档“页面”联系起来,现在叫链接(Link)。访问者通过“链接”能立即跳转到网络上千里之外另一台计算机的“页面”(Webpage)上。李的这个程序供CERN使用,有人问他这是什么,他戏称是“World Wide Web”,万维网因此而得名,李也被冠以“万维网之父”。因特网的第一个网址是http://info.cern.ch。

1992年,美国伊利诺依大学超级计算中心(NCSA)的马克·安德里森(Mark Andresen)参照李的方法设计了因特网的Web浏览器(Browser)软件Mosaic,这就是网景(Netscape)公司1994年推出的商业软件网络浏览器Navigator的前身。

Web为用户访问因特网提供了简单的方法,就是基于超文本技术的分布式的、用于浏览和检索信息的系统。除了文本之外,超文本(Hypertext)还包括视频、音频、动画、图片等其他数据。Web访问(Access)有许多实现技术,也有为支持Web服务通信的协议。

对大多数因特网用户而言,上网意味着使用浏览器访问因特网的Web网站,以获取自己需要的信息或进行各种交互活动。Web网站(Website)是承载很多Web页面的、构成多种Web资源的、为因特网用户提供访问服务的计算机。这类计算机通常被称为网络服务器。

Web访问(Access),即到Web网站上获取需要的信息,桌面机、便携机使用浏览器进行,如微软公司的浏览器Internet Explorer(IE)。本质上,浏览器是用于解释超文本格式文档的软件,按照格式标记的要求将Web文档以窗口的形式呈现在用户的显示器上。微机版的浏览器还有遨游(Maxthon)、火狐(Firefox)、Opera以及Google公司的Chrome等数十种,且大多数是免费软件。近年来,国内多家公司也推出了浏览器产品,如QQ、360、UC等,影响力也日渐显露。

在移动系统中也有上述浏览器的移动版本。

我们将在本书的第8章中详细介绍有关网络、因特网和Web的知识。

1.7 计算机文化和计算思维

计算机对人类的影响力之大已经无人质疑,已经成为一种生活形态,也是一种计算机文化形态。通常,人们用计算机文化(Computer Literacy)一词表述计算机成为超越机器设置学科之外的广泛性,而我们更多地认为,计算机文化是指“理解计算机是什么,以及它如何被作为资源使用,并改变着人类的生活、学习、交流方式的”。

一个简单的例子是,数十年前的学生撰写一篇课程学习报告需要到图书馆查找资料,今天大多数学生会用计算机到网上去搜索信息。当然,计算机不只能够做这些,但它究竟能够做什么?也许比较合适的答案是无所不能。当然,这个回答也过于笼统。你了解到计算机具有更多的功能,或者说了解了计算机能够做什么、不能够做什么后,那么在遇到需要你解决的问题时,你会有更多的选择,会知道即使很复杂的问题也应该通过分解这些问题,借助计算机来帮助自己完成任务。如果你能够有这样的能力,就可以说你有了“计算思维”(Computational Thinking)。虽然这种说法未必准确,但是认识计算机,不但要知道计算机“如何工作”,更需要知道计算机“能够”做的工作。

按照专家的观点,计算思维是指运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。计算思维建立在计算过程的能力和限制之上,由人或机器执行。计算思维的本质是抽象(Abstraction)和自动化(Automation)。如果说数学思维是“对象和关系”,那么计算思维则表现为“状态和过程”。抽象就是要求能够对问题进行抽象表示、形式化表达(这些是计算机的本质),设计问题求解过程达到精确、可行,并通过程序(软件)作为方法和手段对求解过程予以“精准”地实现,也就是说,抽象的最终结果是能够机械式地一步步自动执行。

表1-2列出了计算思维倡导者之一的周以真教授(卡耐基·梅隆大学计算机系)总结的有关计算思维是什么和不是什么的描述。可以看到,该观点已经超越了计算机科学本身,也就是说,它成为一种自觉的、自然的思维方式。换句话说,具有计算思维能力就是指人们理解计算机处理问题的能力应该成为一种常识,如同人们对数学的理解一样。表1-2 计算思维的特征

事实上,无论用什么观点进行分析和解释,一个儿童从对计算机的喜爱到离不开计算机,最终他对计算机的认识肯定会随着年龄的增长、阅历的提升和知识的积累,自然而然地知道如何运用计算机去帮助自己解决遇到的各种问题。当然,理想的情况是,他使用计算机处理问题的每次选择都是正确的。

本章小结

本章介绍了有关计算机及其一些相关的基本知识。

计算机是一种现代化的信息处理工具,它对信息进行处理并提供结果,其结果取决于所接收的信息及其相应的处理算法。

计算机科学技术研究的内容包括计算机的设计、制造,以及运用计算机进行信息的获取、表示、存储、处理、控制等相关理论、原则、方法和技术。计算机科学研究现象并揭示其规律,而计算机技术侧重研制计算机和使用计算机进行信息处理的方法和手段。

数据处理机模型指出,数据输入到计算机中后经过处理得到输出数据。而具有程序能力的处理机模型则指出,计算机处理后的输出结果还受程序的控制。

现代计算机模型将计算机分为输入、存储器、运算器、控制器和输出五个组成部分。最早的计算机采用的是IPOS原理。今天的计算机将运算器、控制器集成在一个芯片中,该芯片称为CPU。

计算机有处理器、存储器、输入/输出三个子系统。

程序存储原理要求程序和数据在执行前被存放到计算机的存储器中,且采用同样的存储格式。

计算机系统包括硬件系统和软件系统。

组成计算机的物理设备称为硬件,其主要元件是电子器件。

第一代计算机采用的电子器件是电子管,第二代计算机采用的是晶体管,第三代计算机运用了集成电路技术,而第四代计算机采用的是大规模集成电路。

按照计算机的规模,计算机可以分为巨型机、大型机、小型机,以及微型计算机、嵌入式设备和移动设备、可穿戴设备等。

计算机系统结构研究计算机硬件互连技术,使得计算机更有效、更高速和更可靠,当然也包括机器的体积更小。

计算机的软件系统包括系统软件和应用软件。

系统软件是管理计算机所需要的那些软件,如操作系统、程序设计语言系统、工具软件等。

应用软件是解决特定的应用问题所用的那些软件。

计算机是自动运行程序的,它从存储器加载程序并在CPU中执行,在执行过程中也从存储器中读取数据和保存数据,或者输出数据到外部设备上。

信息系统是计算机的一个重要应用领域,从计算机的角度看,构成信息系统有6个要素,分别是计算机硬件、软件、用户、数据、过程和通信。

计算机互连组成了网络,主要目的是资源共享。因特网具有开放性,因特网已成为一个虚拟的社会形态。

因特网上有各种应用服务,其中Web是因特网上最广泛、影响最大的一种服务。Web使用超文本格式标记各种文档信息,并使之相互链接。

计算机文化是指能够理解计算机是什么,以及它如何被作为资源使用。

人们应该如同使用数学思维那样去认识计算思维,能够运用计算机科学的基础概念、基本知识进行问题的求解、系统设计。计算思维的本质是对问题进行抽象表示以及通过形式化表达,使得问题的求解达到精确、可行之目的。

习题1

一、思考题

1.回忆一下你使用计算机的经历,列举你使用计算机做过的事情。你是否考虑过将研究计算机作为你的职业?为什么?

2.运用你能够获取的各种资源,如报纸、杂志、书籍及因特网进行相关资料的收集,针对以下主题写一篇1000字以内的短文。

①世界上最快的计算机。

②计算机在艺术领域中的应用。

③使用计算机拍摄、制作电视和电影。

④计算机在金融系统中的应用。

⑤使用计算机研究生命科学。

⑥人类基因图研究与计算机。

⑦计算机实时通信。

3.我国经济高速发展得益于20世纪末推行的“信息化与工业化的融合”。通过网络收集这方面的资料,思考“什么是信息化与工业化的融合”,以及国家提出的“工业4.0”和“互联网+”的概念。

二、填空题

1.计算机是一种现代化的信息 工具,它对信息进行 并提供结果。

2.建立计算机模型,一种是 模型,它不考虑计算机的内部结构。改进的模型加入了一个 部分,认为计算机对数据的处理是受到这个加入部分控制的。

3.现代计算机模型将计算机分成五个组成部分,它们是、、、和。

4.今天的计算机采用的是大规模集成电路技术,其标志之一就是计算机的和 集成在一个芯片中,这个芯片被称为CPU,即(这里回答CPU的中文名字)。

5.程序存储原理要求程序在执行前被存放到 中,且要求程序和 采用同样格式。

6.计算机系统是由 和 组成的。

7.第一代计算机采用的电子器件是,第二代计算机使用的则是,第三代计算机使用的是IC,即,第四代计算机使用了LSIC,即。

8.计算机硬件主要包括三个子系统,它们是、和。

9.计算机的外部设备分为 设备和 设备。最为常见的,前者是和鼠标器,后者是 和打印机。

10.计算机系统结构研究计算机的硬件互连,使得计算机、和。

11.程序设计主要有面向 的技术和面向 设计技术。

12.Windows使用的是以GUI即 为特征的一种最常见的、用于桌面机的操作系统软件。

13.要计算机被加电开始进入工作状态,它就开始执行,直到关机为止。计算机在工作过程中,一直在 的控制下,运行各种应用系统完成用户任务。

14.信息系统是基于计算机的复杂系统,一般认为它有6个要素,分别是、、、用户及、。

15.Internet的中文名字是,它是“网络的网络”。Internet的特性是其。

16.WWW,或者简称为,它的中文名字是,它已经是Internet上最大的应用,使用HTML即 语言,能够将发布在不同地域的计算机上的文档进行链接,以实现跳转访问。

17.除了一般的文本格式之外,超文本还包括视频、、和等多种数据。

18.计算机文化是指能够理解计算机是什么以及它是如何作为 被使用的。

19.运用计算机科学的基础概念和知识进行问题求解、系统设计,以及人类行为理解等一系列思维活动称为。

20.计算思维的本质是 和。如果说数学思维是“抽象和关系”,那么计算思维则是“状态和过程”。

三、选择题

1.计算机的核心是CPU,它包含了计算机的运算器和。

A.输入/输出设备 B.控制器

C.ALU D.存储器

2.程序存储是计算机的重要原理,是指程序在执行之前被存放到 中,且要求程序和数据采用相同的格式。

A.光盘 B.磁盘

C.控制器 D.存储器

3.采用数据处理机的黑盒模型描述计算机原理,认为输入相同的数据后,。

A.输出结果是确定的 B.输出结果是不确定的

C.能得到不同的输出结果 D.得到相同的输出数据

4.具有程序概念的数据处理机,其输出结果取决于。

A.处理机的规模 B.处理机的类型

C.控制处理的程序 D.输入的数据

5.现代计算机模型所定义了计算机的5个组成部分,核心是运算器和。

A.输出设备 B.控制器

C.输入设备 D.存储器

6.在现代计算机中,系统依据程序存储原理进行工作,是指程序和程序运行所需要的、已经产生的数据在存储器中以 存储。

A.程序运行所要求的格式 B.机器要求的格式

C.不同的格式 D.相同的格式

7.我们可以定义计算机系统是指计算机的所有资源,包括计算机硬件和。

A.系统软件 B.应用软件

C.外围设备 D.A和B

8.计算机的“代”是按照制造机器的电子器件进行划分的,第三代计算机使用的是。

A.大规模集成电路 B.集成电路

C.晶体管 D.电子管

9.目前使用的计算机被认为是“第四代”,它所使用的电子器件是。

A.大规模集成电路 B.集成电路

C.晶体管 D.电子管

10.通常,我们使用的桌面机、笔记本电脑等被称为。

A.通用计算机 B.微型计算机

C.小型计算机 D.专用计算机

11.计算机系统中的存储器系统的任务是 和参与运行程序。

A.输入/输出数据 B.存储数据

C.存储程序 D.存储数据和程序

12.计算机系统软件是计算机软件的一个组成部分,包括操作系统、语言和。

A.程序设计软件 B.工具软件

C.字符界面的DOS D.Windows

13.计算机的存储器系统包括内存和外存。内存一般为半导体存储器,而外存一般需要与内存交换数据,因此主要外存类型是(见图1-5)。

A.磁带 B.光盘CD C.磁盘 D.光盘DVD

14.信息系统的基础是计算机。信息系统的功能是为用户提供特定的信息,支持用户快速、有效地输入、存储、处理和 信息。

A.交换 B.获取 C.传输 D.保存

15.在信息系统中,作为其重要要素之一的 以一定的格式被计算机接收,并处理为信息。

A.数据 B.网络 C.过程 D.程序

16.通信是信息系统的重要因素之一,反映在硬件和软件、用户和机器之间,也反映在。

A.处理和存储之间 B.计算机之间

C.输入和输出之间 D.数据和信息之间

17.因特网的开放结构主要表现为:进入网络的机器可能属于企业、机构、政府甚至个人,它们之间的关系是。

A.平等地位,没有权限的定义 B.由网络管理机构划分权限

C.政府控制用户权限 D.按用户性质划分网络权限

18.因特网是一个庞大的计算机互连形成的网络,构建因特网的主要目的是。

A.电子邮件 B.资源共享

C.提高上网速度 D.各种通信

19.因特网最大的应用服务是Web,即WWW。Web使用(HTML)设计程序,将不同地域、不同计算机上的页面文档链接起来。

A.文档标记语言 B.链接标记语言

C.超文本置标语言 D.链接格式语言

20.计算机文化是指能够理解计算机是什么,以及它如何被当做 使用。

A.通信设备 B.资源 C.娱乐设备 D.工具

21.计算思维的本质是对求解问题的抽象和实现问题处理的。

A.自动化 B.高速度 C.高精度 D.以上都是[1]业界曾认为现代计算机模型的提出者是冯·诺依曼,但现在认定发明权属于阿塔纳索夫(John Atanasoff)和贝里(K.Berry),即ABC计算机(Atanasoff Berry Computer)的发明人。以前一直认为“程序存储”的发明者是冯·诺依曼,但现在知道,最早提出这个概念的是美国宾西法尼亚大学Moore电子工程学院的J.P.Eckert(第一台电子计算机ENIAC的发明者之一),而冯·诺依曼首先公开发表了这个概念。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载