计算机英语参考译文和练习答案
更新时间:2023-05-05 23:59:01 阅读量: 实用文档 文档下载
- 电子电气员英语参考译文推荐度:
- 相关推荐
《计算机英语》参考译文和练习答案
目录
第一单元 (2)
课文A:计算机概览 (2)
第二单元 (4)
课文A:计算机硬件 (4)
第三单元 (7)
课文A:操作系统 (7)
第四单元 (10)
课文A:编程语言 (10)
第五单元 (12)
课文A:计算机程序 (12)
第六单元 (16)
课文A:分布式计算机系统 (16)
第七单元 (19)
课文A:进入关系数据库的世界 (19)
第八单元 (22)
课文A:电信与计算机 (22)
第九单元 (24)
课文A:计算机网络 (24)
第十单元 (26)
课文A:网络拓扑结构 (26)
第十一单元 (29)
课文A:因特网是如何工作的? (29)
第十二单元 (31)
课文A:信息革命 (31)
第十三单元 (34)
课文A:电子商务简介 (34)
第十四单元 (37)
课文A:计算机安全 (37)
第十五单元 (40)
课文A:比尔?盖茨文摘(1): (40)
比尔?盖茨文摘(2): (41)
练习答案 (43)
第一单元
课文A:计算机概览
一、引言
计算机是一种电子设备,它能接收一套指令或一个程序,然后通过对数值数据进行运算或者对其他形式的信息进行处理来执行该程序。
如果没有计算机的发展,现代的高科技世界是不可能产生的。在整个社会,不同型号和不同大小的计算机被用于存储和处理各种数据,从政府保密文件、银行交易到私人家庭账目。计算机通过自动化技术开辟了制造业的新纪元,而且它们也增强了现代通信系统的性能。在几乎每一个研究和应用技术领域,从构建宇宙模型到产生明天的气象报告,计算机无不是必要的工具,并且它们的应用本身就开辟了人们推测的新领域。数据库服务和计算机网络使各种各样的信息源可供使用。同样的先进技术也使侵犯个人隐私和商业秘密成为可能。计算机犯罪已经成为作为现代技术代价组成部分的许多风险之一。
二、历史
第一台加法机,数字计算机的先驱,是1642年由法国科学家、数学家兼哲学家布莱斯?帕斯卡设计的。这个装置使用了一系列有10个齿的轮子,每个齿代表从0到9的一个数字。轮子互相连接,从而通过按照正确的齿数向前移动轮子,就可以将数字彼此相加。在17世纪70年代,德国哲学家兼数学家戈特弗里德?威廉?莱布尼兹对这台机器进行了改良,设计了一台也能做乘法的机器。
法国发明家约瑟夫―玛丽?雅卡尔,在设计自动织机时,使用了穿孔的薄木板来控制复杂图案的编织。在19世纪80年代期间,美国统计学家赫尔曼?何勒里斯,想出了使用类似雅卡尔的木板那样的穿孔卡片来处理数据的主义。通过使用一种将穿孔卡片从电触点上移过的系统,他得以为1890年的美国人口普查汇编统计信息。
1、分析机
也是在19世纪,英国数学家兼发明家查尔斯?巴比奇,提出了现代数字计算机的原理。他构想出旨在处理复杂数学题的若干机器,如差分机。许多历史学家认为巴比奇及其合伙人,数学家奥古斯塔?埃达?拜伦,是现代数字计算机的真正先驱。巴比奇的设计之一,分析机,具有现代计算机的许多特征。它有一个以一叠穿孔卡片的形式存在的输入流、一个储存数据的“仓库”、一个进行算术运算的“工厂”和一个产生永久纪录的打印机。巴比奇未能将这个想法付诸实践,尽管在那个时代它在技术上很可能是可行的。
2、早期的计算机
模拟计算机是在19世纪末期开始制造的。早期型号是靠转动的轴和齿轮来进行计算的。用任何其他方法都难以解答的方程,可以用这样的机器来求其近似数值。开尔文勋爵制造了
一台机械潮汐预报器,这实际上就是一台专用模拟计算机。第一次和第二次世界大战期间,机械模拟计算系统以及后来的电动模拟计算系统,被用作潜艇上的鱼雷航线预测器和飞机上的轰炸瞄准具的控制器。人们还设计了另一个系统,用于预测密西西比河流域春天的洪水。
3、电子计算机
第二次世界大战期间,以伦敦北面的布莱切利公园为工作地点的一组科学家和数学家,制造了最早的全电子数字计算机之一:“巨人”。到1943年12月,这个包含了1500个真空管的“巨人”开始运转了。它被以艾伦?图灵为首的小组用于破译德国用恩尼格码加密的无线电报,他们的尝试大部分是成功的。
除此而外,在美国,约翰?阿塔纳索夫和克利福德?贝里早在1939年就在艾奥瓦州立学院制造了一台原型电子机。这台原型机和后来的研究工作都是悄悄完成的,而且后来因1945年电子数字积分计算机(ENIAC)的研制而显得相形见绌。ENIAC计算机被授予了专利。但是,数十年后,在1973年,当该机被揭露吸收了在阿塔纳索夫―贝里计算机中首次使用的原理后,这项专利被废除。
ENIAC计算机(见图1A―1)含有18,000个真空管,具有每分钟几百次的运算速度,但是最初程序是通过导线传送到处理器内的,必须由人工更改。根据美籍匈牙利数学家约翰?冯?诺伊曼的想法,后来制造的机器带有一个程序存储器。指令像数据一样存储在“存储器”中,使计算机在执行过程中摆脱了纸带阅读器的速度限制,并使问题在不给计算机重新接线的情况下得以解决。
20世纪50年代末,晶体管在计算机中的应用,标志着比真空管机器更小、更快、更通用的逻辑元件的出现。由于晶体管使用的功率小得多,寿命也长得多,仅这项发展本身就导致了被称之为第二代计算机的改良机器的产生。元件变小了,元件的间距也变小了,而且系统的制造成本也变得低得多。
4、集成电路
20世纪60年代末,集成电路得到采用,从而有可能将许多晶体管制作在一块硅衬底上,集体管之间以覆镀固定的导线相连接。集成电路导致价格、尺寸和故障率的进一步降低。20世纪70年代中期,随着大规模集成电路和后来的超大规模集成电路(微芯片)的采用,成千上万个彼此相连的晶体管被蚀刻在一块硅衬底上,于是微处理器成为现实。
那么,再回过头来看看现代计算机处理开关值的能力:20世纪70年代的计算机一般一次能够处理8个开关值。也就是说,在每个循环中,它们能处理8个二进制数字或比特的数据。8个比特为一组,称为一个字节;每个字节包含着256个开与关(或0与1)的可能模式。每个模式相当于一条指令、一条指令的一部分或者一个特定的数据类型,如一个数字、一个字符或者一个图形符号。例如,11010010这个模式可能是二进制数据——在这种情况下,代表210这个十进制数字——或者它可能是一条指令,告诉计算机将存储在其交换设备中的数据与存储在存储芯片某个位置的数据进行比较。
一次能处理16、32和64比特数据的处理器的研制,提高了计算机的速度。一台计算机能够处理的全部可识别模式——操作总清单——被称为其指令集。随着现代数字计算机的不断发展,这两个因素——能够同时处理的比特数和指令集的大小——在继续增长。
三、硬件
不论尺寸大小,现代数字计算机在概念上都是类似的。然而,根据成本与性能,它们可分为几类:个人计算机或微型计算机,一种成本相当低的机器,通常只有桌面大小(尽管“膝上型计算机”小到能够放入公文包,而“掌上型计算机”能够放入口袋);工作站,一种具有增强的图形与通信能力、从而使其对于办公室工作特别有用的微型计算机;小型计算机,
一般就个人使用而言太昂贵,其性能适合于工商企业、学校或实验室;以及大型机,一种大型的昂贵机器,具有满足大规模工商企业、政府部门、科研机构或者诸如此类机构需要的能力(其中体积最大、速度最快的称为巨型计算机)。
一台数字计算机不是单一的机器。确切地说,它是由5个不同的要素组成的系统:(1)中央处理器;(2)输入设备;(3)存储设备;(4)输出设备;以及(5)被称作总线的通信网络,它将系统的所有要素连接起来并将系统与外界连接起来。
四、编程
一个程序就是一系列指令,告诉计算机硬件对数据执行什么样的操作。程序可以内嵌在硬件本身里,或以软件的形式独立存在。在一些专业或“专用”计算机中,操作指令被嵌入其电路里;常见的例子有计算器、手表、汽车发动机和微波炉中的微型计算机。另一方面,通用计算机尽管含有一些内嵌的程序(在只读存储器中)或者指令(在处理器芯片中),但依靠外部程序来执行有用的任务。计算机一旦被编程,就只能做在任何特定时间控制它的软件所允许它做的事情。广泛使用的软件包括一系列各种各样的应用程序——告诉计算机如何执行各种任务的指令。
五、未来的发展
计算机发展的一个持续不断的趋势是微小型化,亦即将更多的电路元件压缩在越来越小的芯片空间上的努力。研究人员也在设法利用超导性来提高电路的功能速度。超导性是在超低温条件下在某些材料中观察到的电阻减少现象。
计算机发展的另一个趋势是“第五代”计算机的研制工作,亦即研制可以解决复杂问题而且其解决方法或许最终会与“创造性的”这一形容名副其实的计算机,理想的目标是真正的人工智能。正在积极探索的一条道路是并行处理计算,亦即利用许多芯片来同时执行数个不同的任务。一种重要的并行处理方法是模仿神经系统结构的神经网络。另一个持续不断的趋势是计算机联网的增加。计算机联网现在使用由卫星和电缆链路构成的世界范围的数据通信系统,来将全球的计算机连在一起。此外,大量的研究工作还投入在探索“光”计算机的可能性上——这种硬件处理的不是电脉冲而是快得多的光脉冲。
第二单元
课文A:计算机硬件
一、引言
计算机硬件是计算机运行所需要的设备,由可进行物理处理的元件组成。这些元件的功能一般分为3个主要类别:输入、输出和存储。这些类别的元件与微处理器相连接,特别是
与计算机的中央处理器相连接,而后者是通过被称之为线路或电路的总线来提供计算能力和对计算机进行控制的电子电路。
另一方面,软件是计算机用来处理数据的一套指令,如字处理程序或者视频游戏。这些程序通常被存储起来,并由计算机硬件调入和调出中央处理器。软件也控制着硬件如何使用;例如,如何从存储设备中检索信息。输入与输出硬件的交互作用是由基本输入输出系统(BIOS)软件控制的。
尽管微处理器在技术上仍被认为是硬件,其部分功能也与计算机软件有关系。既然微处理器同时具有硬件与软件方面的特征,它们因此经常被称作固件。
二、输入硬件
输入硬件由给计算机提供信息和指令的外部设备——亦即计算机中央处理器以外的元件——组成。光笔是具有光敏端头的输入笔,用来在计算机屏幕上直接写画,或者通过按光笔上的夹子或用光笔接触屏幕来在屏幕上选择信息。这种笔含有光传感器,能够识别屏幕上笔经过的部分。鼠标是为一只手抓握而设计的指示设备。它在底部有一个检测装置(通常是一个圆球),使用户通过在一个平面上移动鼠标能够控制屏幕上指针或光标的运动。当鼠标滑过平面的时候,光标随着在屏幕上移动。要在屏幕上选择项目或命令,用户就点击鼠标上的按钮。操纵杆是由一根杆子组成的指示设备,该杆以向多个方向移动来操纵计算机屏幕上的光标或者其他图形对象。键盘是一个像打字机的设备,它使用户得以向计算机键入文本和命令。有些键盘有特殊功能键或集成的指示设备,如轨迹球或者可以让用户通过手指的移动来移动屏幕上光标的触敏区。
光扫描仪利用光感应设备将图片或文本等形式的图像转换成计算机能够处理的电子信号。例如,一张照片能够被扫入一台计算机,然后包括在该计算机建立的文本文件中。最常见的两种扫描仪类型是平板式扫描仪和手持式扫描仪,前者类似一台办公复印机,后者用手动的方式从要处理的图像上扫过。麦克风是将声音转换成可被计算机存储、处理和回放的信号的设备。语音识别模块是将说的话转换成计算机能够识别和处理的信号的设备。
调制解调器代表调制器―解调器,是将计算机与电话线连接、允许信息传给或接自另一台计算机的设备。每台发送或接收信息的计算机都必须与调制解调器相连接。计算机发送的信息由调制解调器转换成音频信号,然后通过电话线传送到接收调制解调器上,由其将信号转换成接收计算机能够理解的信息。
三、输出硬件
输出硬件由将信息从计算机中央处理器传给计算机用户的外部设备构成。视频显示器或屏幕将计算机生成的信息转换成可视信息。显示器一般有两种形式:阴极射线管视频屏幕和液晶显示视频屏幕。基于阴极射线管的屏幕或监视器看起来就像一台电视机。从中央处理器输出的信息,使用电子束显示出来,其过程是电子束扫描荧光屏,而荧光屏则发出光并产生图像。基于液晶显示器的屏幕将可视信息显示在比基于阴极射线管的视频监视器更平、更小的屏幕上。液晶显示器常常用于膝上型计算机。
打印机将计算机输出的文本和图像打印在纸上。点阵打印机使用细小的金属丝打击色带,从而形成字符。激光打印机使用光束在磁鼓上画图像,然后由磁鼓吸起被称之为色粉的微小黑粒。色粉熔凝到纸上,形成图像。喷墨打印机将小墨滴喷射到纸上,形成字符和图像。
四、存储硬件
存储硬件为计算机检索提供信息和程序的永久性存储。两种主要的存储设备是磁盘驱动器和存储器。磁盘驱动器有几种类型:硬盘、软盘、磁光盘和光盘。硬盘驱动器将信息存储在盘中嵌入的磁性颗粒中。硬盘驱动器通常是计算机的固定部分,能存储大量的信息并对其进行快速的检索。软盘驱动器也将信息存储在磁性颗粒中,但这些颗粒是嵌入在可移动的盘中,而这些盘既可能是软的也可能是硬的。软盘比硬盘存储的信息少,检索该信息的速度也慢得多。磁光盘驱动器将信息存储在对激光和磁场都敏感的可移动盘上。它们可存储的信息通常与硬盘一样多,但检索速度稍微慢一点。由反射材料制成的光盘,其表面烧蚀出凹陷区。光驱(CD-ROM)就是将信息存储于此。存储在光盘上的信息不能擦除或用新信息改写。它们能够存储和硬盘差不多的信息量,但信息检索速度比其慢。
存储器是指存储信息供中央处理器快速检索的计算机芯片。随机访问存储器(RAM)用来存储操作计算机程序的信息和指令。通常,程序由磁盘驱动器的存储区调到随机访问存储器中。随机访问存储器也称作易失性存储器,因为当计算机的电源关闭时,计算机芯片中的信息随着丢失。只读存储器(ROM)包含必须永久可供计算机操作使用的关键信息和软件,如从开机到关机一直指挥计算机的运行的操作系统。只读存储器称之为非易失性存储器,因为当计算机的电源关闭时,存储芯片中的信息不会丢失。
有些设备有不止一种用途。例如,软盘也可用作输入设备,如果它们含有计算机用户要使用和处理的信息的话。此外,它们也可用作输出设备,如果用户想将计算结果存储在它们上面的话。
五、硬件的连接
要想运转,硬件需要物理连接,使元件之间能够交流和相互作用。总线提供了一种常见的互连系统,它由一组导线或电路组成,在计算机的内部组成部分之间协调和移动信息。计算机总线由两条通道组成:一条由中央处理器用来给数据定位,叫做地址总线;另一条用来将该数据送往那个地址,叫做数据总线。总线可用两个特征来描述:一次可处理的信息量,称为总线宽度,和传送这些数据的速度。
串行连接是一根或一组导线,用于将信息从中央处理器传送到外部设备,如鼠标、键盘、调制解调器、扫描仪和一些类型的打印机。这种连接一次只能传送一段数据,因此很慢。使用串行连接的好处在于它能提供远距离的有效连接。
并行连接使用多组导线来同时传送数个信息块。大多数扫描仪和打印机使用这种连接方式。并行连接比串行连接快得多,但是它在中央处理器和外部设备之间的传输距离仅限于不到3米(10英尺)。
第三单元
课文A:操作系统
一、引言
在计算机科学中,操作系统(OS)是控制计算机的基本软件。它具有3个主要功能:协调与操作计算机硬件,如计算机存储器、打印机、磁盘、键盘、鼠标和监视器;在各种存储介质上编排文件,如软盘、硬盘、光盘和磁带;以及处理硬件错误和数据丢失。
二、操作系统是怎样工作的
操作系统控制不同的计算机进程,如运行一个电子表格程序或访问计算机存储器里的信息。一个重要的进程是解释使用户得以与计算机进行通信的命令。有些命令解释器是面向文本的,要求将命令键入。另一些命令解释器是面向图形的,允许用户通过指向并点击图标,即屏幕上代表具体命令的图片,来进行通信。初学者一般觉得面向图形的解释器使用起来容易一些,但是许多有经验的计算机用户更喜欢使用面向文本的命令解释器,因为它们的功能更强大一些。
操作系统或者是单一任务处理的,或者是多任务处理的。早期的单一任务处理操作系统每次仅能运行一个进程。例如,当计算机打印文件时,在打印结束之前,计算机不能开始另一个进程或响应新的命令。
所有现代操作系统都是多任务处理的,可以同时运行数个进程。在大多数计算机中,只有一个中央处理器(CPU)(计算机的计算与控制单元),因此多任务处理操作系统造成一种假象,即数个进程同时在中央处理器上运行。用来造成这种假象的最常见办法是时间片多任务处理,依靠这种方法每个进程都单独运行固定的一段时间。如果进程在分配的时间内没有完成,它即被暂停,而另一个进程开始运行。进程之间的这种切换被称为上下文转换。操作系统进行“簿记”,保存被暂停进程的状态。它还有一种确定下一步运行哪个进程的机制,称之为调度程序。调度程序快速运行短进程,以尽可能缩短可察觉的延迟。由于用户对时间的感觉要比计算机的处理速度慢得多,因此多个进程看似在同时运行。
操作系统可以使用虚拟内存,以运行所需主存空间大于实际可用主存空间的进程。使用这种技术,硬盘驱动器上的空间被用来模拟所需的额外内存。然而,访问硬盘驱动器比访问主存耗时多,因此计算机运行起来很慢。
三、当前的操作系统
个人计算机常用的操作系统有UNIX、Macintosh OS、MS-DOS、OS/2以及Windows。
1、UNIX
在计算机科学中,UNIX是一种多用户、多任务处理操作系统,最初由肯?汤普森和丹尼斯?里奇于1969年在美国电话电报公司的贝尔实验室里开发,用于小型计算机。UNIX以
各种形式和实现方式存在;这其中包括加利福尼亚大学伯克利分校开发的版本(称为“伯克利软件发行中心版本”)和美国电话电报公司发行的版本——其最新版本是“美国电话电报公司系统V”。UNIX被认为是一种功能强大的操作系统。因为是用C语言编写的,它比其他操作系统更具有可移植性——受机器限制比较少。UNIX还有几个相关的系统形式,包括:AIX,由IBM公司改写的UNIX版本(在基于精简指令集计算机的工作站上运行);A/UX (用于苹果计算机公司的麦金托什个人计算机上的图形版本);以及Mach(一种重写的但基本上与UNIX兼容的操作系统,用于NeXT计算机)。
UNIX的流行,在很大程度上是由于被称作因特网的计算机互联网络的发展,因为因特网使用的软件最初是为运行UNIX的计算机设计的。UNIX的变种包括SunOS(由太阳微系统股份有限公司发布)、Xenix(由微软公司发布)和Linux。UNIX及其克隆产品支持多任务处理和多个用户。其文件系统提供了一种编排磁盘文件的简便方法,并允许用户保护其文件而防范其他用户。然而,UNIX中的命令不很直观,要掌握这个系统比较困难。
2、MS-DOS
MS-DOS是“微软磁盘操作系统”的首字母缩拚词。在计算机科学中,MS-DOS同其他操作系统一样,管理下面一类的操作:磁盘输入与输出、视频支持、键盘控制以及与程序执行和文件维护有关的许多内部功能。MS-DOS是带有命令行界面的单个任务处理、单用户操作系统。
3、OS/2
OS/2,或称“第二代操作系统”,是20世纪80年代中期由IBM公司和微软公司为个人计算机开发的一种操作系统。1987年末,OS/2推出时,最常见的个人计算机是运行MS-DOS 的IBM兼容机和由苹果计算机公司生产、运行其麦金托什个人计算机操作系统(Mac OS)的计算机。麦金托什个人计算机操作系统包含多任务处理功能,一个使计算机能够同时运行数个应用程序的特征。在一个计算机网络中,多任务处理允许不同计算机上的数个用户同时访问同一个应用程序或数据集。OS/2是为IBM兼容个人计算机设计、允许多任务处理的第一个操作系统。
OS/2的第一个版本,1.0版本,是面向文本的,没有允许用户通过使用计算机鼠标等指向与点击输入设备来输入命令的图形用户界面(GUI)。一年后,IBM和微软发布了OS/2的1.1版本,它包括一个称为表示管理程序的图形用户界面。表示管理程序界面包含图标,亦即屏幕上用户可以用鼠标点击来输入指令的图片或文字。OS/2的1.1版本也允许用户打开多个窗口(窗口是屏幕上的一个部分,每个窗口包含一个不同的文件或程序),并包括用户可以用鼠标点击来进行选择的下拉式命令清单。
1991年,在微软发布了Windows软件——在MS-DOS上运行的多任务处理环境——之后,IBM和微软结束了它们在OS/2上的合作。1992年,IBM发布了OS/2的2.0版本。该版本运行微软的Windows程序,并可以执行DOS操作下的多任务处理。它也包含面向对象的编程环境,允许软件设计者使用高级的面向对象编程语言编程。
OS/2后来的版本增强了性能和多媒体能力。1994年,IBM宣布,自OS/2推出后已售出5百多万份。同一年,IBM推出OS/2的一个新版本,称为OS/2 Warp。其特色为:改善的性能、增强的多媒体能力、一系列的集成应用程序和方便的因特网接入。IBM公司继续对OS/2 Wrap进行升级和扩充。
4、Windows
在计算机科学中,Windows是由微软公司出售的一种个人计算机操作系统,它允许用户通过指示和点击设备,譬如鼠标,来代替键盘输入命令。Windows操作系统为用户提供了一个图形用户界面,允许用户操作计算机屏幕上称之为图标的图片来发出命令。Windows 是世界上使用最广泛的操作系统。它是微软的磁盘操作系统(MS-DOS)的扩充和替代品。
Windows图形用户界面旨在为用户提供一个自然或直观的工作环境。使用Windows,用户可以用鼠标在计算机屏幕上移动光标。通过将光标指向图标并点击鼠标上的按钮,用户可以给计算机发出命令,让其执行一个动作,如启动一个程序、访问一个数据文件或复制一个数据文件。其他命令可以通过下拉或点击式菜单项来访问。计算机将用户正在工作的活动区域显示为计算机屏幕上的窗口。当前正在使用的活动窗口可以与先前使用的、仍然在屏幕上打开着的其他活动窗口重叠。这种类型的图形用户界面被说成是包含了WIMP特征:窗口、图标、菜单和指点设备(如鼠标)。
施乐公司帕洛阿尔托研究中心的计算机科学家,在20世纪70年代初创造了图形用户界面这个概念,但是这个创新没有马上取得商业上的成功。1983年,苹果计算机公司在其Lisa 计算机上采用了一种用户图形界面。这种用户图形界面在其1984年推出的麦金托什个人计算机中得到升级和改善。
微软于1983年开始开发用户图形界面,作为其MS-DOS操作系统的扩展。微软的Windows 1.0版本在1985年首次出现。在这个版本中,窗口是平铺式的,也就是互相挨着,而不是重叠显示。1987年推出的Windows 2.0版本,在设计上类似于IBM的OS/2表示管理程序——另一种用户图形界面操作系统。Windows 2.0版本具有重叠窗口的特征。1990年推出的功能更加强大的Windows 3.0版本和后来的3.1与3.11版本,迅速使Windows成为个人计算机操作系统的市场领头商品,其部分原因在于它被预先捆绑在新的个人计算机上。它还成为受欢迎的软件开发平台。
1993年,微软推出了Windows NT(新技术)。Windows NT操作系统提供32位的多任务处理,使计算机具有了高速地同时或并行运行数个程序的能力。这种操作系统与IBM的OS/2展开竞争,争做许多企业的密集型高端联网运算环境的平台。
1995年,微软发布了用于个人计算机的一个Windows新版本,称作Windows 95。Windows 95与以前的版本相比,用户图形界面造型更加优美,也更加简单。它提供了32位进程处理、高效的多任务处理、网络连接和因特网接入。
几乎没有计算机用户直接运行MS-DOS或OS/2。他们更愿意选择UNIX的各种版本或者带有图形界面的窗口型系统,如Windows 98或Macintosh OS,因为它们使计算机技术更容易利用。然而,与面向命令的操作系统相比,图形系统一般具有需要更多硬件的缺点,如速度更快的中央处理器、更多的内存和更高质量的监视器。
五、未来的技术
操作系统在不断地演进。最近开发的一种称之为分布式操作系统的操作系统类型,是为共享硬盘驱动器等资源的一批连接在一起、但相互独立的计算机设计的。在分布式操作系统中,一个进程可以在网络中的任何一台计算机(可能是一台空闲的计算机)上运行,以加快该进程的执行。操作系统的所有基本功能——如维护文件系统、确保合理的行为以及在发生部分故障的情况下恢复数据——在分布式系统中变得比较复杂。
用语音或手写的方法代替键盘输入的研究工作也在进行中。目前,这些类型的输入还不很准确,因为人们在词的发音和书写上有很大的不同,使计算机难以识别不同用户的相同输入。然而,这个领域取得的发展已经带来了能够识别由各种不同的人所说的少数单词的系统。另外,经过训练能够识别一个人的手迹的软件也已经开发出来。
第四单元
课文A:编程语言
一、引言
在计算机科学中,编程语言是用来编写可被计算机运行的一系列指令(计算机程序)的人工语言。与英语等自然语言相类似,编程语言具有词汇、语法和句法。然而,自然语言不适合计算机编程,因为它们能引起歧义,也就是说它们的词汇和语法结构可以用多种方式进行解释。用于计算编程的语言必须具有简单的逻辑结构,而且它们的语法、拼写和标点符号的规则必须精确。
编程语言在复杂性和通用程度上大相径庭。有些编程语言是为了处理特定类型的计算问题或为了用于特定型号的计算机系统而编写的。例如,FORTRAN和COBOL等编程语言是为解决某些普遍的编程问题类型而编写的——FORTRAN为了科学领域的应用,而COBOL 为了商业领域的应用。尽管这些语言旨在处理特定类型的计算机问题,但是它们具有很高的可移植性,也就是说它们可以用来为多种类型的计算机编程。其他的语言,譬如机器语言,是为一种特定型号的计算机系统,甚至是一台特定的计算机,在某些研究领域使用而编写的。最常用的编程语言具有很高的可移植性,可以用于有效地解决不同类型的计算问题。像C、PASCAL和BASIC这样的语言就属于这一范畴。
二、语言类型
编程语言可划分为低级语言和高级语言。低级编程语言或机器语言,是编程语言中最基础的类型,能被计算机直接理解。机器语言的区别取决于制造商和计算机的型号。高级语言是在计算机能够理解和处理之前必须首先翻译成机器语言的编程语言。C、C++、PASCAL 和FORTRAN都是高级语言的例子。汇编语言是中级语言,非常接近于机器语言,没有其他高级语言所表现出的语言复杂程度,但仍然得翻译成机器语言。
1、机器语言
在机器语言中,指令被写成计算机能够直接理解的被称之为比特的1和0的序列。机器语言中的一条指令通常告诉计算机4件事情:(1)到计算机主存储器(随机访问存储器)的哪个位置去找一或两个数字或者简单的数据段;(2)要执行的一个简单操作,例如将两个数字加起来;(3)将这个简单操作的结果存放在主存储器的什么位置;以及(4)到哪里找要执行的下一条指令。虽然所有的可执行程序最终都是以机器语言的形式被计算机读取,但是它们并非都是用机器语言编写的。直接用机器语言编程极端困难,因为指令是1和0的序列。机器语言中的一条典型的指令可能是10010 1100 1011,意思是将存储寄存器A的内容加到存储寄存器B的内容中。
2、高级语言
高级语言是利用人类语言中的词和句法的一套相对复杂的语句。它们比汇编语言和机器语言更类似于正常的人类语言,因此用来编写复杂的程序更容易。这些编程语言允许更快地开发更庞大和更复杂的程序。然而,在计算机能够理解之前,高级语言必须被称之为编译器
的另外一种程序翻译成机器语言。因为这个原因,与用汇编语言编写的程序比较起来,用高级语言编写的程序可能运行的时间更长,占用的内存更多。
3、汇编语言
计算机编程人员使用汇编语言使机器语言程序编写起来更简单一些。在汇编语言中,每条语句大致对应一条机器语言指令。汇编语言的语句是借助易于记忆的命令编写的。在典型的汇编语言的语句中,把存储寄存器A的内容加到存储寄存器B的内容中这一命令,可以写成ADD B, A。汇编语言与机器语言具有某些共同特征。例如,对特定的比特进行操作,用汇编语言和机器语言都是可行的。当尽量减少程序的运行时间很重要时,程序员就使用汇编语言,因为从汇编语言到机器语言的翻译相对简单。当计算机的某个部分必须被直接控制时,如监视器上的单个点或者流向打印机的单个字符,这时也使用汇编语言。
三、高级语言的分类
高级语言通常分为面向过程的、函数式的、面向对象的或逻辑的语言。当今最常见的高级语言是面向过程的语言。在这种语言中,执行某个完整功能的一个或多个相关的语句块组成一个程序模块或过程,而且被给予诸如“过程A”的名称。如果在程序的其他地方需要同样的操作序列,可以使用一个简单的语句调回这个过程。实质上,一个过程就是一个小型程序。一个大程序可以通过将执行不同任务的过程组合在一起而构成。过程语言使程序变得比较短,而且更易于被计算机读取,但是要求程序员将每个过程都设计得足够通用,能用于不同的情况。
函数式语言像对待数学函数一样对待过程,并允许像处理程序中的任何其他数据一样处理它们。这就使程序构造在更高、更严密的水平上得以实现。函数式语言也允许变量——在程序运行过程中可以被用户指定和更改的数据符号——只被赋值一次。这样,通过减少对语句执行的确切顺序给予关注的必要性,就简化了编程,因为一个变量没有必要每次在一个程序语句中用到,都重新定义或重新赋值。函数式语言的许多观点已经成为许多现代过程语言的关键部分。
面向对象的语言是函数式语言的发展结果。在面向对象的语言中,用来编写程序的代码和程序处理的数据,组合成叫做对象的单元。对象进一步组合成类,而类则定义对象必须具有的属性。类的一个简单例子就是书这个类。这个类中的对象可能是小说和短篇小说。对象还有某些与其相关的功能,称为方法。计算机通过使用对象的某种方法来使用这个对象。方法对对象中的数据执行某个操作,然后将值返回给计算机。对象的类也可更进一步组合成层,而在层中一个类的对象可继承另一个类的方法。面向对象的语言中所提供的这种结构,使面向对象的语言对于复杂的编程任务非常有用。
逻辑语言将逻辑用作其数学基础。一个逻辑程序由一系列的事实与“如果……则”规则组成,来具体说明一系列事实如何可以从其他实事中推断出来,例如:
如果X语句为真,则Y语句为假。
在这样一个程序的执行过程中,一条输入语句可以按照逻辑从程序中的其他语句推断出来。许多人工智能程序使用这种语言编写。
四、语言的结构与成分
编程语言使用特定类型的语句或指令,来给程序提供功能结构。程序中的一条语句是表达一个简单意思的基本句子,其目的是给计算机一条基本指令。语句对允许的数据类型、数
据如何处理以及过程和函数的工作方式进行定义。程序员利用语句来操作编程语言的常见成分,如变量和宏(程序中的小型程序)。
数据声明语句给予称为变量的程序元素以名称和属性。变量在程序中可以赋予不同的值。变量可以具有的属性被称作类型,它们包括:变量中可能存储什么样的值,值中使用何种程度的数值精度,以及一个变量可以如何以有组织结构的方式——如以表或数组的形式——代表一组比较简单的值等等。在许多编程语言中,一种关键的数据类型是指示字。指示字变量本身没有值;相反,它们含有计算机可以用来查找某个其他变量的信息——也就是说,它们指向另一个变量。
表达式是语句的一段,描述要对一些程序变量执行的一系列运算,如X+Y/Z,其中X、Y和Z为变量,运算方法为加和除。赋值语句给一个变量赋予得自某个表达式的值,而条件语句则指定要被测试、然后用于选择接下来应该执行的其他语句的表达式。
过程与函数语句将某些代码块定义为以后可在程序中返回的进程或函数。这些语句也规定程序员可以选择的变量与参数种类,以及当一个表达式使用过程或函数时代码将返回的值的类型。许多编程语言也容许叫做宏的小型翻译程序。宏把使用程序员定义的语言结构编写的代码段翻译成编程语言可以理解的语句。
五、历史
编程语言几乎可以追溯到20世纪40年代数字计算机发明之时。最早的汇编语言,随着商业计算机的推出,出现于20世纪50年代末。最早的过程语言是在20世纪50年代末到20世纪60年代初开发的:FORTRAN语言由约翰?巴克斯创造,然后由格雷斯?霍珀创造了COBOL语言。第一种函数式语言是LISP,由约翰?麦卡锡于20世纪50年代末编写。这3种语言今天仍在广泛使用,但经历过大量修改。
20世纪60年代末,出现了最早的面向对象的语言,如SIMULA语言。逻辑语言在20世纪70年代中期随着PROLOG语言的推出而变得广为人知;PROLOG语言是一种用于编写人工智能软件的语言。在20世纪70年代,过程语言继续发展,出现了ALGOL、BASIC、PASCAL、C和Ada等语言。SMALLTALK语言是一种具有高度影响力的面向对象的语言,它导致了面向对象的语言与过程语言在C++和更近期的JA V A语言中的结合。尽管纯粹的逻辑语言受欢迎的程度有所下降,但其变体以现代数据库所使用的关系语言——如结构化查询语言——的形式,变得至关重要。
第五单元
课文A:计算机程序
一、引言
计算机程序是指导计算机执行某个功能或功能组合的一套指令。要使指令得到执行,计算机必须执行程序,也就是说,计算机要读取程序,然后按准确的顺序实施程序中编码的步
骤,直至程序结束。一个程序可多次执行,而且每次用户输给计算机的选项和数据不同,就有可能得到不同的结果。
程序可分为两大类:应用程序和操作系统。应用程序直接为用户执行某项功能,如字处理或玩游戏。操作系统管理计算机和与之相连的各种资源和设备,如随机访问存储器、硬盘驱动器、监视器、键盘、打印机和调制解调器,以便使其他程序可以使用它们。操作系统的例子包括:DOS、Windows 95、OS/2和UNIX。
二、程序开发
软件设计者通过特殊的应用程序来开发新程序,这些应用程序常被称作实用程序或开发程序。程序员使用称作文本编辑器的另一种程序,来以称作编程语言的特殊标记编写新程序。使用文本编辑器,程序员创建一个文本文件,这个文本文件是一个有序指令表,也称为程序源文件。构成程序源文件的单个指令被称为源代码。在这个时候,一种特殊的应用程序将源代码翻译成机器语言或目标代码——操作系统将认作真程序并能够执行的一种格式。
将源代码翻译成目标代码的应用程序有3种:编译器、解释器和汇编程序。这3种应用程序在不同类型的编程语言上执行不同的操作,但是它们都起到将编程语言翻译成机器语言的相同目的。
编译器将使用FORTRAN、C和Pascal等高级编程语言编写的文本文件一次性从源代码翻译成目标代码。这不同于BASIC等解释执行的语言所采取的方式,在解释执行的语言中程序是随着每条指令的执行而逐个语句地翻译成目标代码的。解释执行的语言的优点是,它们可以立即开始执行程序,而不需要等到所有的源代码都得到编译。对程序的更改也可以相当快地作出,而无需等到重新编译整个程序。解释执行的语言的缺点是,它们执行起来慢,因为每次运行程序,都必须对整个程序一次一条指令地翻译。另一方面,编译执行的语言只编译一次,因此计算机执行起来要比解释执行的语言快得多。由于这个原因,编译执行的语言更常使用,而且在专业和科学领域几乎总是得到采用。
另一种翻译器是汇编程序,它被用于以汇编语言编写的程序或程序组成部分。汇编语言也是一种编程语言,但它比其他类型的高级语言更接近于机器语言。在汇编语言中,一条语句通常可以翻译成机器语言的一条指令。今天,汇编语言很少用来编写整个程序,而是最经常地采用于程序员需要直接控制计算机某个方面功能的场合。
程序经常被编写作一套较小的程序段,每段代表整个应用程序的某个方面。各段独立编译之后,一种被称为连接程序的程序将所有编译好的程序段组合成一个可以执行的完整程序。
程序很少有第一次能够正确运行的,所以一种被称为调试程序的程序常被用来帮助查找被称为程序错误的问题。调试程序通常在运行的程序中检测到一个事件,并向程序员指出事件在程序代码中的起源。
最近出现的编程系统,如Java,采取多种方法相结合的方式创建和执行程序。编译器取来Java源程序,并将其翻译成中间形式。这样的中间程序随后通过因特网传送给计算机,而这些计算机里的解释程序接下来将中间程序作为应用程序来执行。
三、程序元素
大多数程序只是由少数几种步骤构成,这些步骤在整个程序中在不同的上下文和以不同的组合方式多次重复。最常见的步骤执行某种计算,然后按照程序员指定的顺序,进入程序
的下一个步骤。
程序经常需要多次重复不长的一系列步骤,例如,浏览游戏得分表,从中找出最高得分。这种重复的代码序列称为循环。
计算机所具有的使其如此有用的能力之一,就是它们能够作出条件判定,并根据正在处理的数据的值执行不同的指令。if-then-else(如果-则-否则)语句通过测试某个数据段,然后根据结果从两个指令序列中选出一个,来执行这个功能。这些选择对象中的指令之一可能是一个goto语句,用以指引计算机从程序的另一个部分选择下一条指令。例如,一个程序可能比较两个数,并依据比较的结果而分支到程序的另一个部分:
If x is greater than y
then
goto instruction #10
else continue
程序经常不止一次地使用特定的一系列步骤。这样的一系列步骤可以组合成一个子例程,而子例程根据需要可在主程序的不同部分进行调用或访问。每次调用一个子例程,计算机都会记住它自己在该调用发生时处在程序的那个位置,以便在运行完该子例程后还能够回到那里。在每次调用之前,程序可以指定子例程使用不同的数据,从而做到一个通用性很强的代码段只编写一次,而被以多种方式使用。
大多数程序使用几种不同的子例程。其中最常用的是函数、过程、库程序、系统程序以及设备驱动程序。函数是一种短子例程,用来计算某个值,如角的计算,而该值计算机仅用一条基本指令无法计算。过程执行的是复杂一些的功能,如给一组名称排序。库程序是为许多不同的程序使用而编写的子例程。系统程序和库程序相似,但实际上用于操作系统。它们为应用程序提供某种服务,如打印一行文字。设备驱动程序是一种系统程序,它们加到操作系统中,以使计算机能够与扫描仪、调制解调器或打印机等新设备进行通信。设备驱动程序常常具有可以直接作为应用程序执行的特征。这样就使用户得以直接控制该设备。这一点很有用,例如,在彩色打印机更换墨盒后,需要重新调整以达到最佳打印质量的情况下。
四、程序功能
现代计算机通常将程序存储在计算机可以随机访问的某种形式的磁性存储介质上,如固定放在计算机中的硬盘或者便携式的软盘。这些磁盘上被称为目录的额外信息,指明盘上各种程序的名称、它们写入盘中的时间以及它们在磁盘介质上的开始位置。当用户命令计算机执行一个特定应用程序时,操作系统就浏览这些目录,找到程序,并将一个副本读入随机存储器。操作系统然后命令中央处理器在程序的起始位置开始执行指令。程序起始位置的指令为计算机处理信息作好准备,其方法是在随机存储器中找到闲置内存位置来容纳工作数据,从盘中取回用户指出的标准方式选项和默认值的副本,并在监视器上绘制初始显示。
应用程序通过调用系统程序而对用户输入的任何信息都要求一个副本。操作系统将如此输入的任何数据转换成标准的内部形式。应用程序然后使用该信息决定下一步干什么——例如,执行某项期望的处理功能——如重新定义一页文本的格式,或者从盘上的另一个文件获取某些额外信息。两种情况无论是哪一种,都要调用其他系统程序,以事实上完成结果的显示或对盘上文件的访问。
运行结束或接到退出的提示时,应用程序进行进一步的系统调用,以确保所有需要保存的数据已写回磁盘。然后,应用程序向操作系统进行最后一次系统调用,指明它已运行结束。操作系统接下来释放随机存储器和该应用程序使用的任何设备,并等待用户的命令,以开始运行另一个程序。
五、历史
人们用程序的形式存储一系列指令已经有几个世纪了。18世纪的音乐盒和19世纪末与20世纪初的自动钢琴,就可以播放音乐程序。这些程序以一系列金属针或纸孔的形式存储,每一行(针或孔)表示何时演奏一个音符,而针或孔则表明此时演奏什么音符。19世纪初,随着法国发明家约瑟夫―玛丽?雅卡尔的由穿孔卡片控制的织机的发明,对物理设备更精巧的控制变得常见了。在编织特定图案的过程中,织机的各个部分得进行机械定位。为了使这个过程自动化,雅卡尔使用一张纸质卡片代表织机的一个定位,用卡片上的孔来指示该执行织机的哪个操作。整条花毯的编织可被编码到一叠这样的卡片上,同样的一叠卡片每次使用都会编出相同的花毯图案。在开发和使用的程序中,有的由24,000多张卡片构成。
世界上第一台可编程的机器是由英国数学家和发明家查尔斯?巴比奇设计的,但从未完全制造成。这台叫做分析机的机器,使用和雅卡尔的织机类似的穿孔卡片来选择每个步骤应执行的具体算术运算。插入不同的卡片组,就会改变机器执行的运算。这种机器几乎能在现代计算机中找到所有的对应物,但它是机械化的,而非电气化的。分析机的制造从未完成,因为制造它所需要的技术当时不存在。
供分析机使用的最早卡片组程序是由诗人拜伦勋爵的女儿、英国数学家奥古斯塔??埃达?拜伦开发的。由于这个原因,她被确认为世界上第一位程序员。
现代的内部存储计算机程序的概念是由美籍匈牙利数学家约翰??冯?诺伊曼于1945年首先提出来的。冯?诺伊曼的想法是使用计算机的存储器来既存储数据又存储程序。这样,程序可被视作数据,可像数据一样被其他程序处理。这一想法极大地简化了计算机中的程序存储与执行的任务
六、未来
由于计算机使用的增加,自20世纪50年代以来,计算机科学领域发展迅猛。作为对用户需求和技术发展的反应,计算机程序在这一时期经历了许多变化。计算领域的新思想,如并行计算、分布式计算和人工智能,从根本上改变了一度决定程序形式与功能的传统概念。
工作在并行计算——其中多个中央处理器合作同时处理同一个问题——领域中的科学家,推出了许多新的程序模型。在并行计算中,一个问题的组成部分由不同的处理器同时处理,这样就加快了问题的解决速度。由于并行处理计算机的极端复杂性以及使其尽可能有效地运行所包含的困难,为这种系统设计程序的科学家和工程师面临着许多挑战。被称为分布式计算的另一种并行计算,使用许多互相连接的计算机的中央处理器来解决问题。用来在分布式计算应用环境中处理信息的计算机,常常通过因特网互相连接。因特网的应用正在成为分布式计算的一种特别有用的形式,尤其是在使用Java等编程语言的情况下。在这种应用中,用户登录到一个站点,并下载一个Java程序到其计算机上。该Java程序运行时,就与其主站点上的其他程序进行通信,也可以与不同计算机或站点上运行的其他程序进行通信。
人工智能(AI)的研究,已经导致几种其他的新程序设计风格的产生。例如,逻辑程序不是由供计算机盲目执行的单个指令构成,而是由成套的规则组成:如果x发生,则执行y。一种被称为推理机的特殊程序,在向其提出一个新问题时,就使用这些规则来“推理”出一个结果。逻辑程序的用途包括对复杂系统的自动监控和证明数学定律。
一种全然不同的计算方法称为神经网络,在这种计算中没有传统意义上的程序。神经网络是一组旨在模拟大脑的具有高度互连性的简单处理单元。神经网络不是像传统计算机那样通过程序来指导信息处理,而是依靠其处理单元的连接方式来处理信息。给神经网络编程的
实现方法是,给其提供输入与输出数据的已知模式,并调整处理单元之间各种互连的相对重要性,直到完成所期望的模式匹配。神经网络通常是在传统计算机上模拟,但是不同于传统的计算机程序,神经网络具有经验学习的能力。
第六单元
课文A:分布式计算机系统
一、引言
分布式计算领域在过去10年间经历了急剧的发展。随着用于大规模计算的分布式计算系统的使用的增长,提高其可靠性的需要也在增长。然而,多方式分布式系统中的单个处理节点的故障概率并非可略而不计。因此,有必要开发有关的机制,在其中一个节点发生故障的情况下——无论是瞬态硬件故障(总线差错或分段错误)还是永久性故障(断电或通信网络故障)所致,可以防止在分布式处理节点上执行的计算归于无用。
通信技术的进步和在不同工作地点环境中采用的各种工作方式,自然导致信息处理的更大分布。起初,大多数分布式系统是同构的,但是现在许多分布式环境是异构的。因此,分布式系统的设计必须着眼于异构型环境,而将同构系统视作异构世界中的特例。分布式系统设计中的关键问题包括特定的功能应放在信息基础结构的何处。
二、什么是分布式系统?
分布式系统是独立计算机的集合体,而这些计算机在系统用户看来像是一台计算机。几乎所有的大型软件系统势必是分布式的。例如,企业范围的商业系统必须支持多个用户在不同的地点运行公用应用程序。
一个分布式系统包含各种各样的应用程序、它们的基本支持软件、它们借以运行的硬件以及连接分布式硬件的通信链路。最大、最为人熟识的分布式系统是构成万维网的那一整套计算机、软件和服务。万维网遍布各地,与大多数其他现有分布式系统共存或连接。最常见的分布式系统是联网的客户/服务器系统。分布式系统都具有以下描述的一般特性。
1、资源共享
将一组计算机连接成分布式系统的最常见原因,是允许其分享物理资源和计算资源(例如,打印机、文件、数据库、邮件服务、股票行情和合作应用程序等)。支持资源共享的分布式系统组件发挥类似于操作系统的作用,且与其越来越难以区分。
2、多节点
分布式系统的软件在节点或多台独立的计算机(不仅仅是同一台计算机上的多个处理器,因为这属于并行计算的领域)上执行。这些节点可以是个人计算机、高性能工作站、文件服务器、大型机和巨型计算机。每个节点所扮演的角色可以是向其他节点要求服务的客户;可以是向其他节点提供计算或资源服务的服务器;也可以是兼备两者功能的对等体。一个分布式系统可以小至两个节点,假如存在软件连通性。这种安排如图6A-1所示。
3、并行性
分布式系统中的每个节点既独立工作,又与所有其他节点并行工作。每个节点多于一个进程(执行程序),每个进程多于一个线程(并行执行任务),可在系统中充当组件。大多数组件具有反应性,对来自用户的命令和来自其他组件的消息不断地进行响应。像操作系统一样,分布式系统旨在避免终止,因此应始终保持至少部分可用的状态。
4、异构性
系统中包含的节点可以由不同的计算与通信硬件组成。组成系统的软件可以包括不同的编程语言和开发工具。有些异构性问题可以通过使用共同的消息格式或者在不同平台(如个人计算机、服务器和大型机)上易于执行的低级协议来解决。其他的可能要求构建将一套格式或协议转变为另一套的网桥。更彻底的系统集成可以通过这样的方式达到,即要求所有的节点支持对独立于平台的程序指令进行处理的共同虚拟机。使用Java编程语言的系统就采用这种方式。
5、多种协议
大多数分布式消息传送与在顺序程序范围内使用的调用种类(如过程调用)有相当大的区别。分布式通信的最基本形式是异步的。与邮政系统中邮寄的信件类似,发送者发送消息而不指望其接收者收到或答复。这种基本的分布式消息抵达接收者通常要比本地调用花的时间长得多。它们有时以不同于发送的顺序到达接收者,而且可能根本就不能到达接收者。为了避免这种情况,必须构建更复杂的协议。这些协议可能包括:
●过程消息接发,在这种消息接发中发送者等待完整的答复;
●半同步消息接发,在这种消息接发中发送者在继续之前等待收到消息的确认;
●事务处理协议,在这种协议中一个给定的会话期或事务处理内的所有消息要么全部
被处理,要么全部不被处理;
●回叫协议,在这种协议中接收者过后给发送者发回不同的消息;
●超时协议,在这种协议中发送者在继续之前仅在一定的时间段内等待回应;
●多址通信协议,在这种协议中发送者同时给一组其他的节点发送消息。
这些以及其他的协议常常被扩充和专门化,以提高可靠性、安全性和效率。
6、容错
在单独一台计算机上运行的程序,其可靠性充其量仅与该计算机的可靠性相等。而另一方面,大多数分布式系统需要至少保持部分可用和发挥作用的状态,即使其节点、应用程序或通信链路有些出故障或不正常情况。除彻底出故障外,应用程序可能因为带宽不足、网络争用、软件开销或其他系统限制而出现服务质量难以接受地低的情况。因此,在分布式系统的构建中,容错的需求提出了一些最为重要且困难的挑战。
7、安全性
只有特许用户可访问敏感数据或执行关键操作。分布式系统的安全性本质上是个多层次问题:从每个节点的常驻硬件与操作系统所提供的基本安全保证;到信息加密与验证协议;到为隐私、内容适宜性和个人责任等问题提供支持的机制。
解决可靠性问题的技术,包括使用数字证书和阻止组件编码执行修改磁盘文件等可能具有危险性的操作。
8、消息传送
不同计算机上的软件通过建立于若干联网协议(如TCP/IP)基础上的结构化消息传送规程来进行通信。而这些协议则可以在若干连接技术(如以太网和调制解调器)之任一种的基础上运行。大多数分布式系统的节点是完全相连的——任一节点可给任一其他节点发送消息。消息传递由基本的路由算法和相关的联网支持来完成。
消息包括命令、服务请求、事件通知、多媒体数据、文件内容,甚至完整的程序。应注意的是,大多数多处理器通过共享存储器而不是消息传送来进行通信,因此不是分布式的。
9、开放性
大多数顺序程序被认为是封闭的,因为在执行开始后它们的配置一直保持不变。在一定程度上,大多数分布式系统是开放的,因为在系统运行期间,可以添加或改变节点、组件和应用程序。这就提供了容纳扩展所必需的可扩展性,以及随着系统所驻留的环境的变化而变化并应对之的能力。
开放性要求每个组件遵守一组最起码的策略、惯例和协议,以确保更新或添加的组件之间具有互操作性。以往,最成功的开放式系统是那些提出最低限度要求的系统。例如,超文本传输协议的简易性就是万维网成功的一个主要原因。
国际标准化组织和美国国家标准协会等标准组织,与对象管理组等工业财团一起,制定了构成许多互操作性保障之基础的基本格式和协议标准。另外,单个分布式系统还依赖于和环境细节或域相关的策略和机制。
10、隔离
每个组件在逻辑上或物理上是独立存在的,仅通过结构化信息协议来与其他组件进行通信。另外,出于功能、性能或安全的考虑,一组组的组件也可能被分开。例如,尽管一个公司用分布式系统的连通性可能延伸到整个因特网,但其基本功能可能(常常通过防火墙)限定于只在防火墙之内运行的局域网。这样,它与系统的其他部分进行通信,要通过限定的安全协议。
11、持久性
至少有些数据与程序保留在持久性介质上,其持久性大于特定应用程序的执行时间。可在文件系统、数据库系统或编程语言的运行时支持机制等层次上作出持久性安排。
12、分散控制
单独的计算机无需对整个系统的配置、管理或策略控制担负责任。分布式系统反而是通过自主主体协议连接的域,而这些自主主体为提供聚合功能要达成足够的共同策略。分散化在有些方面是可取的,如为容错而预先采取的措施。分散化在另一些方面则是必不可少的,因为集中控制不能适应当代系统所支持的节点与连接数量。然而,对系统范围的策略实施管理的工具则可能限于特定用户使用。
三、优点和缺点
1、分布式系统的优点
分布式系统具有很多内在的优点,尤其是与集中式系统相比较而言。而且,有些应用程序本质上就是分布式的。一般来说,分布式系统:
●产生较高的性能;
●提供较高的可靠性;
●允许递增的发展。分布式计算比单个中央处理器提供的返回率高;
●构建由大量的用高速网络连接起来的中央处理器组成的系统,既可行又易行;
●满足了共享分散在这些中央处理器上的数据的需要;
●提供了共享昂贵的外围设备的方法;
●允许一个用户在许多不同的机器上运行程序。
2、分布式系统的缺点
分布式系统尽管具有许多优点,但的确也存在一些缺点。其中有:
●需要新的操作系统为其提供支持;
●依靠网络通信;
●需要提高安全性;
●不能给操作系统提供好的分类;
●使用松散与紧密耦合的系统。
四、结论
我们想充分利用异构的计算环境,其中不同类型的处理资源和互连技术得到有效的利用。使用分布式资源,提供了使各种各样的科学与分布式应用程序的性能与成本效益达到最大化的潜力。
由联网的不同种类的工作站构成的分布式计算环境,正在成为工程和科研环境的标准配置。然而,统一的并行计算模型(与冯?诺伊曼模型对应的并行模型)的缺乏,意味着现行的并行应用程序是不可移植的。
第七单元
课文A:进入关系数据库的世界
一、什么是关系数据库?
在今天的商界,信息技术正在充分发展。数据处理和信息提取已经成为现今计算环境的焦点。视其以后的使用方式,数据可以各种各样的方式存储。这种数据存储被称为数据库。数据存储的最原始形式是一种不带任何属性、特征或链接而存储数据的文件。要处理这种数据需要大量的编程工作,于是演变出了关系数据模型。关系数据模型将数据和数据元素之间的关系表现出来。这种模型基于现实世界的情况,包括被称为实体的基本对象以及构成这些实体间关系的互连方式。这种概念的表示方式被称为实体关系图。我们来看一个书店数据库的简单例子。书名和作者是该数据库(许多实体)中的两个实体。作者与书之间的关系是,许多作者可以写一本书,或者一个作者可以写数本书。这种关系称为“一对多”关系。任意两个实体(如“A”和“B”)可以具有以下关系类型中的一种:
●一对一
“A”只与“B”的一个值相关,反之亦然。
●一对多
“A”可以与“B”的多个值相关,但“B”只与“A”的一个值相关。
●多对一
“A”只与“B”的一个值相关,而“B”则可以与“A”的多个值相关。
●多对多
“A”与“B”的一个或多个值相关,反之亦然。
识别所有的实体及其关系是关系型数据建模的第一步。这也称为“逻辑数据库设计”。一旦逻辑设计完成,就需要创建某种类型的物理对象(称为“表”)来存储这种信息。我们可能需要一个能够使实体及其属性与关系的存储变得容易的系统。该系统也应提供检索关于实体的所需信息的能力。
二、数据库管理系统的介绍
数据库管理系统是记录相互关联数据的基于计算机的系统,它为访问数据提供界面。数据库系统旨在处理大量的数据,使用起来既方便又高效。
1、数据库管理系统的目的
数据库系统的总体目的是以适当的方式保存信息,以便:
●减少数据冗余
数据重复应尽可能减少,这是消除数据不一致的有效存储策略。如果同一个数据项存储在数据库的两个不同地方,却仅在一个地方进行了修改,就会导致数据的不一致。为避免这种情况,数据要以适当的方式存储,以使重复最小化。
●保持数据完整性
存储在数据库中的数据应准确。导致数据不准确的原因可能是数据不一致(如前所述)或未遵循某些有效的约束——例如,2月30号是一个不准确的数据值。因此,数据库中存储的数据值必须满足一定的约束,才能使数据准确。
●便于访问数据
数据访问是任何数据库系统的关键特征之一。除非可以对数据进行处理,生成信息,否则数据是无用的。因此,一个数据库管理系统应提供良好的工具和界面来访问数据。
●确保数据安全
一个数据库管理系统可以支持多个用户,但不是每个用户都应该能够访问所有的数据。为了保证安全,数据库管理系统提供了限制用户访问的措施。
●能够处理并行访问异常现象
这一点的起因也是由于多个用户可以同时使用一个数据库。如果两个人想以不同的值修改同一个数据项,那么结果就可能产生不准确的数据。数据库管理系统提供了处理这种情况的功能。
●可以共享数据
数据库管理系统允许不同的应用程序共享所存储的同一个数据。
2、典型的数据库管理系统结构
数据库系统分成数个模块,来实现总的功能。它与操作系统密切协作,以获得基本的服务——例如,磁盘的输入/输出。数据在磁盘上的存储方式要么是放在文件系统之上,要么是直接置于原始磁盘本身上。数据库管理系统为数据访问提供查询语言。因此,一个“查询”就是用户为访问数据而发出的一个查询语言语句。查询由系统进行处理,并将结果返回给用户。最常见的查询语言是SQL(结构化查询语言)。它由IBM开发,而美国国家标准协会则为SQL制定了标准。SQL是访问数据库的直接方法。
访问数据的另一种方法是通过程序。这些被称为“应用程序”的程序,是用主机语言编写的,并嵌入了用以与数据库管理系统进行交互的数据修改语言调用。数据修改语言是一种用户通过它可以用编程方法访问或处理数据的语言。SQL通常也被称为数据修改语言,但它不能由应用程序直接使用。
数据库管理系统的主要组件有:
●存储引擎
存储引擎管理磁盘存储的空间分配。它也保存用户数据和元数据(所有用户数据库的数据库)。
●数据库管理器
这是数据库中存储的低级数据与应用程序及查询的接口。
●查询处理器
查询处理器将查询语言中的语句翻译成传送给数据库管理器的低级指令。它也为最有效的查询执行生成策略。这种策略被称为“查询执行计划”,而这种计划的生成过程则称为“查询优化”。
●语言预编译程序
这是数据库管理系统所提供的主机语言的预编译程序。它将嵌入应用程序的数据修改语言语句转变为常规的过程调用。预编译程序与查询处理器进行交互,以处理嵌入的SQL代码。(见图7A-1)
三、不同的计算模型
到目前为止,我们仅着重讨论了数据库管理系统的功能。现在我们退回一步,来看一下更广阔的图景,这便是整个的计算模块。数据库的整个应用可以分为3个主要范畴:
●数据表示
数据是如何表示给终端用户的——例如,报表的格式化等。
●事务逻辑
数据是如何根据应用程序规则和要求处理的。
●数据存储
存储用户数据并保证其安全。
在大型机环境中,这3种功能都在一台集中式服务器上执行,用户可在终端上或通过打印的报表看到结果。这种模型具有一定的优点,如应用程序代码的可维护性(所有的组件都驻留于中心位置),但是它要求保持高成本计算机。为了尽可能降低这些昂贵计算机的运行成本,分布式计算的想法产生了。
1、客户/服务器计算
在客户/服务器计算中,处理工作分布在两台机器上进行——客户机和服务器。客户机类似于大型机环境中的终端,而服务器仍然是集中式主机。在这种环境中,客户机负责数据表示和大部分事务逻辑执行工作。服务器负责数据存储和某些事务逻辑工作。因为处理工作现在是分布式的,服务器就没有必要像大型机那样大。相反,资源可以添加到客户机上,这样更具有成本效益。现在的问题是,这种处理如何分布。客户向服务器发出命令,该命令在服务器上得到处理,而处理的结果返回给客户机。这听起来很像大型机的环境,但不同的是对命令的预处理和后处理。在命令送往服务器之前,某些处理已在客户机上进行。客户机对数据进行有效性检查,并给服务器创建一个非常简单的请求。服务器处理完命令之后,数据表示的格式化也在客户机上进行。因此,客户机也对数据进行处理,以减轻服务器的负载。一个设计良好的客户/服务器应用程序,在使用客户机和服务器资源上能够做到最佳平衡。
多个用户通过网络连接到服务器上,因此网络成为客户/服务器计算环境极其重要的部分。要高效率地运行任何客户/服务器应用程序,需要高速且稳定的网络环境。为了不造成网络瓶颈,应用程序应设计合理。客户机应该总是只取回所需要的数据,并且可能每次仅以较小的数据块形式取回。
客户/服务器计算也有其缺点。在一个大规模用户环境中,可维护性和可缩放性成为限制因素。随着应用程序版本的变化而更新每台客户机,是一项巨大的工程。处理能力被限制到最小的客户机上。如果应用程序的客户部分需要额外的资源,所有的客户机都需要进行升级。为了解决客户/服务器计算环境存在的问题,演化出了分层的体系结构。
2、多层计算
正在阅读:
计算机英语参考译文和练习答案05-05
2012大气污染控制工程试卷2(含答案)01-11
广西壮族自治区药械集中采购平台 - 图文03-25
北师大考博环境专业课真题回忆版11-29
写给女朋友的情书02-19
2022年贵州省黔南州中考语文试卷04-11
(最新版)车辆工程专业本科毕业论文设计10-15
冬天不下雪作文4篇02-05
道德经--论不争03-13
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 英语
- 译文
- 练习
- 答案
- 参考
- 计算机
- 钢筋混凝土T形简支梁桥
- 五年级上册语文期中测试试卷分析
- 心病还须心药医《精神焦虑症的自救》给你阳光
- 英语小升初衔接班下载资料重点讲义资料
- 2018年清华大学经济管理学院845经济学之宏观经济学考研冲刺狂背五套题
- 2020年初级经济法时间考点汇总
- 2020年公共卫生服务健康教育工作总结
- (完整)外研版小学英语(三起)四年级下册Module2Unit1单元巩固练习
- 行政事业单位预算管理制度
- 高考英语阅读真题_2013高考备考试题汇编
- 项目质量管理复习资料(计算题部分)
- 2016年中国政法大学701法学综合一《国际私法》考研导师圈定必考题汇编及答案
- 职业技术学校办公室主任近三年考核工作总结
- 高中优秀作文青春梦扬 圆梦中华
- 化疗白血球低吃什么食物能补?
- 高考物理最新力学知识点之分子动理论真题汇编含答案解析
- 苏教版五年级科学《研究透镜》教学设计
- 神奇的魔术作文400字
- 四川射洪市东岳乡农村集体产权制度改革档案整理方案
- 2000年3月高级口译笔试真题完整版(含答案)