计算机专业英语教程翻译.docx
《计算机专业英语教程翻译.docx》由会员分享,可在线阅读,更多相关《计算机专业英语教程翻译.docx(24页珍藏版)》请在冰点文库上搜索。
计算机专业英语教程翻译
1.1细看处理器与主存储器
我们已经了解到所有计算机有类似的能力且能执行相同的功能,尽管一些可能比其他的快。
我们知道电脑系统有输入、输出、仓储、加工的元件,还知道处理器是计算机系统的“智能”部分,并且知道一个简单的计算机系统可以有几个处理器。
我们已经讨论了在电脑系统中数据以被称作位的电子状态来表示。
我们现在准备阐释计算机系统核心的内部活动——处理器。
电脑的内部操作很有趣,但真的没有什么奥秘的事。
这种神秘性存在于那些道听途说和相信科幻作家的人心中。
计算机是不会思考的电子设备,它必须插入电源,就像一台烤面包机或一盏灯。
毫不夸张地讲,市场上有几百种不同类型的计算机在销售。
每种类型可能都很复杂,但每个处理器,有时被称为中央处理器或者说CPU,只有两个基本部分:
控制单元,算术和逻辑单元。
主存储器在处理器的内部发挥着重要作用。
这三个——主存、控制单元,算术和逻辑单元——一起工作。
让我们来看看他们之间的功能和联系。
与磁辅助存储设备,如磁带、磁盘相比,主存没有移动部件。
没有机械的运动,数据可以以电子的速度被存取访问,接近光速。
今天大多数电脑的主存使用DRAM(动态随机访问存储器)技术。
先进的DRAM芯片大约有1/8邮票那么大,大约可以储存256,000万位或多于25,600,000字符的数据。
主存储器,或者主存,提供给处理器的程序和数据暂时的存储。
在可执行程序或数据可以被处理之前,所有的程序和数据必须被从输入设备(如VDT)或从辅助存储(如磁盘)转移到主存储器。
主要的存储空间总是很少;因此,在一个程序被执行后,它占领的储藏空间会被重新分配给另一个等待执行的程序。
图1-1说明了所有的输入/输出(I/O)“读”或“用”主要的存储。
图中(输入)探讨是在VDT上。
消息被查询的形式,是通过一个渠道到主存储器(如同轴电缆)。
消息被解释,处理机从辅助存储设备取出所需的程序和数据。
程序和数据被“装好”,或移动,从辅助存储器到主存储器。
这是一个无损阅读过程。
也就是说,程序和数据被从主要存储器(暂时的)和辅助存储器(永久)中读取。
数据根据程序指令被操作,报告被从主存储器写入到打印机。
一个程序指令或一块数据保存在的特定的主存单元被称为地址。
地址允许程序指令和数据被存储,访问和加工。
每一个地址的内容随着不同程序的执行和新的数据的处理是不断变化的。
主存储器的另一个名字是随机存取存储器,或RAM。
一种特殊类型的主存储器,称为只读存储器(ROM),不能被程序员改写。
ROM的内容被制造商作为“只读”所固化(设计在芯片的逻辑上)。
当你打开微机系统,一个ROM中的程序自动启动计算机系统。
然后ROM程序初步显示屏幕提示。
ROM的一种变种是可编程的只读存储器(PROM)。
RPOM是让用户能装载“只读”的程序和数据的ROM。
一旦一个程序被加载到PROM,它简直从不改变。
然而,如果你需要能够修改内容的PROM,有EPROM,可擦写的PROM。
在写操作之前,所有的储存单元必须被删除到同样的初始状态。
一个更具有吸引力的形式的主读存储器是电可擦可编程只读存储器(EEPROM)。
在任何时候都可以写入,不需擦除原先内容,且只是更新寻址到的字节或多个字节。
EEPROM把非易失性优点和可更新、需更新的地方的灵活性结合起来,修改时使用普通的总线控制线、地址线和数据线。
另一种形式的半导体内存是闪存(这样命名因为速度)。
闪存在耗费和功能上介于EPROM和EEPROM之间。
和EEPROM一样,闪存使用的是电擦除技术。
整个闪存在一个或几秒钟内可以被消除,这比只读存储器快得多。
另外,可能消除只是块的内存,而不是整个晶片。
然而,闪存不提供字节级的擦除。
与EPROM一样,闪存每位只使用一个晶体管,所以能达到EPROM的高密度。
高速缓冲存储器
程序和数据从辅助存储装载到RAM,因为从RAM访问一个程式指令或者一段数据所需要的时间远远低于从辅助存储器。
从磁盘存储器上存取单个数据所花的时间,可以从RAM中存取几千条指令或数据]。
RAM实质上是一种数据和程序的高速起降缓冲区。
事实上,没有什么真正发生在计算机系统中,直到程序指令和数据转移到处理器。
这转移到处理器的指令和数据可能是费时的,即使在微秒级速度。
为了促进指令和数据更快的转移,大多数电脑到处理器被设计通过高速缓冲存储器。
高速缓冲存储器主要被电脑设计师用于增加吞吐量(计算机系统的工作速率)。
像RAM一样,高速缓存是一项高速起降缓冲区程序数据和指令。
然而,缓存存储器使用静态存储器(静态的内存)技术,大约有RAM的10倍速度和100倍的花费。
只有RAM一小部分的内存容量,高速缓存只保持下一步可能需要由处理器处理的程序和数据。
两种类型的高速缓冲存储器广泛应用于电脑。
第一个被称为内部缓存和建在中央处理器的芯片。
第二个,外部高速缓存,位于靠近CPU的地方。
计算机可以有几个不同层次的高速缓冲存储器。
一级缓存几乎总是建成芯片。
二级缓存曾经是外部高速缓存,但现在通常像一级缓存一样也建到CPU。
1.2总线互连
总线是连接两个或多个设备的通信通路。
总线的关键特征是,它是一条共享传输介质。
多个设备连接到总线上,任一个设备发出的信号可以为其他所有连接到总线上的设备所接收。
如果两个设备同时传送,它们的信号将会重叠,引起混淆。
因此,一次只能有一个设备成功地(利用总线)发送数据。
典型的情况是,总线由多条通信通路或线路组成,每条线(路)能够传送代表二进制1和0的信号。
一段时间里,一条线能传送一串二进制数字。
总线的几条线放在一起能同时并行传送二进制数字。
例如,一个8位的数据能在8条总线线上传送。
计算机系统包含有多种不同的总线,它们在计算机系统层次结构的各个层次提供部件之间的通路。
连接主要计算机部件(处理机,存储器,I/O)的总线称为系统总线。
系统总线通常由50~100条分立的(导)线组成。
每条线被赋予一个特定的含义或功能。
虽然有许多不同的总线设计,但任何总线上的线都可以分成三个功能组:
数据线、地址线和控制线。
此外可能还有为连接的模块提供电源的电源线。
数据线提供系统模块间传送数据的路径,这些线组合在一起称为数据总线。
典型的数据总线包含8、16或32根线,线的数量称为数据总线的宽度。
因为每条线每次传送1位,所以线的数目决定了每次能同时传送多少位。
数据总线的宽度是决定系统总体性能的关键因素。
地址线用于指定数据总线上数据的来源和去向。
例如,如果处理机希望从存储器中读一个字的数据,它将所需要字的地址放在地址线上。
显然,地址总线的宽度决定了系统最大可能的存储器容量。
控制线用来控制对数据线和地址线的访问和使用。
由于数据线和地址线被所有部件共享,因此必须用一种方法来控制它们的使用。
控制信号在系统模块之间传送命令和定时信息。
定时信息指定了数据和地址信息的有效性,命令信号指定了要执行的操作。
大多数计算机系统使用多总线,这些总线通常设计成层次结构。
图1.3显示了一个典型的高性能体系结构。
一条局部总线把处理机连接到高速缓存控制器,而高速缓存控制器又连接到支持主存储器的系统总线上。
高速缓存控制器集成到连接高速总线的桥中。
这一总线支持连接到:
高速LAN、视频和图形工作站控制器,以及包括SCSI和FireWire的局部外设总线的接口控制器。
低速设备仍然由分开的扩充总线支持,用一个接口来缓冲该扩充总线和高速总线之间的通信流量。
快速外设部件互连提升性能
在过去的十年里,PCI总线一直是PC机和服务器的主流I/O架构。
PCI传送由微处理器、网卡、图形卡和与它相连的其他子系统所产生的数据。
然而,随着计算元件的速度和性能的提高,PCI的带宽限制和并行效率低下逐渐成为系统性能的瓶颈。
PCI是一种有多个适配器的单向平行总线体系结构,必须争夺可利用的总线带宽。
虽然PCI接口的性能几年来不断得到改进,但信号偏离(数据位到达目的地太晚),信号路由以及无法降低电压或提高频率等问题,无不表明该架构走到了尽头。
额外的努力去提高它的性能将会花费很大而且不切实际,一些卖主,包括业内一些最大最成功的系统开发商,发起了一项被称为PCIExpress的I/O架构(最初被称为第三代I/O,或3GIO)。
PCIExpress是点对点的切换体系结构,创造了高速、CPU和系I/O统之间的双向链接(开关是由主桥连接到CPU上)。
每一个这些链接都有一个或多个包含四条线的线缆——两条用来传送数据两条用来接收数据。
这些线缆的设计能使其在低电压下的使用(导致低力量的使用),减少电磁排放,消除信号偏离,降低成本自然也提高了性能。
在最初的设计实现中,PCIExpress可以得到在每条线路上的每个方向以2.5Gbit/秒的速度转移。
相比之下,PCI-X1.0版本的PCI架构,是如今最常见的,提供1Gbit/秒的吞吐量。
PCIExpress卡的吞吐量可在四或八线配置(称为x4和x8),x4PCIExpress卡所能提供的吞吐量高达20Gbit/秒,而x8PCIExpress卡所能提供的吞吐量高达40Gbit/秒。
早期尝试创建一个新的PCI架构失败了,这在一定程度上是因为他们需要太多的变化到系统和应用软件。
驱动程序,实用程序和管理应用均需要被改写。
PCIExpress的开发人员消除了对新操作系统支持的依赖,让PCI兼容的驱动程序和应用程序无需改变就能在PCIExpress硬件上运行。
未来总线
开发人员正在提高PCIExpress的可扩展性.当前服务器和桌面系统支持PCIExpress适配器和图形卡高达8通道,这种体系结构在将来能够支持多达32个通道。
第一个光纤通道主机数据适配器被设计来支持四通道而不是八通道,部分原因是由于服务器开发商已经将他们的系统设置成了四通道插槽,。
甚至更大的带宽是必须的,执行一条八通道道设计能够将性能提高一倍,假如系统中没有其他瓶颈。
这种可伸缩性加上每个通道的速度有望加倍,达到5Gb/s(兆位/秒),将保持PCIExpress在可预见的未来仍然是设计师课实施的方案。
PCIExpress是PCI上重大的提高,并且,在它的发展路上正逐步形成对PC机,服务器的更多的新的标准。
它不仅可以降低成本,提高可靠性,但是它也大大提高了性能。
应用程序如音乐、视频流、视频点播、网络电话和数据存储将受益于这些改进。
2.4外部接口:
SCSI和火线
I/O模块到外设的接口必须按该外设的性质和操作来设计改制。
接口的一个主要特性是串行还是并行。
在并行接口中,连接I/O模块和外设的线有多根,同时传送多位,就象在数据总线上同时传送一个字的所有位。
在串行接口中,只有一条线用于传送数据,每次传送一位。
通常,并行接口用于高速外设,诸如磁盘和磁带。
串行接口更常用于打印机和终端。
什么是USB?
在计算机周围呆过2到3年以上的人都知道USB试图解决的问题——在过去,把储设备连接到计算机一直是头痛问题!
●打印机连接到并行打印机端口,而大多数计算机只有一个。
Zip驱动器那些设备需要一个计算机的高速连接也将使用并行端口,经常很少成功且速度不快。
●调制解调器使用串口端口。
大多数计算机最多有两个串行端口,并且在大多数情况下,它们是很慢的。
●需要更快连接的设备有它们自己的卡,这些卡必须插入计算机机箱内相符合的卡槽口。
遗憾的是,卡槽口的数目有限,并且你需要一个博士生为某些卡安装软件。
USB的目标是结束所有这些头痛问题。
通用串行总线给你一个单一的、标准的、容易用的方法,把多达127个设备连接到一台计算机上。
把一台USB设备连接到计算机是简单的——你只要在你的机器背后或正面找到USB插头插入即可。
如果它是一个新设备,操作系统自动检测到它,并要求该设备的驱动程序盘。
如果该设备已经安装,计算机就激活它并开始与它通话。
USB设备可以在任何时间连接和断开。
一根USB电缆有两根线用于电源(+5伏和地线),一根双扭线传送数据,低功率设备(为鼠标)能够直接从USB总线获得它们的电源。
高功率设备(为打印机)有它们自己的电源并从总线获得极小的电源,单根USB电缆能延伸5米长;用几个集线器,设备可以离主机30米(6根电缆)。
许多USB设备有它们自己的内部电缆,且该电缆有一个“A”连接。
如果没有内部电缆的话,那么该“A”插口上行接向计算机
●“B”插口下行接到个别的设备
通过在上行端口和下行端口使用不同的插口,就不可能搞混乱——如果你把任何USB电缆的“B”插头连接到一个设备,那你知道它会正常工作。
类似地,你可以把任何“A”插头插入任何“A”插座,并知道它会正常工作。
USB2.0
2000年4月发布了USB2.0版本的标准,它作为USB1.1的升级版。
USB2.0(高速USB)为多媒体和存储应用提供附加的带宽,并且比USB1.1快40倍的数据传输率。
为了使消费者和制造商能平滑的过度,USB2.0与原先的USB设备完全向前和向后兼容,并且也能用为原先的USB制造的电缆和连接器工作。
由于支持3钟速度方式,USB2.0支持低带宽设备,如键盘和鼠标,以及高带宽设备,如高分辨率Web相机、扫描仪、打印机和高兼容存储系统。
USB2.0的使用已使PC工业界领导者们加速开发下一代PC外设来补充现有的高性能PC。
USB2.0的传输速率也推进了开发下一代PC和应用程序。
除了改进功能和鼓励革新,USB2.0提高了用户应用程序的生产率,并且允许用户同时运行多个PC应用程序或若干高性能外设
数据传输
当主机开机时,它询问所有连接在通用串行总线上的设备,且分配每个设备一个地址。
这个过程称做计数——当设备连接到总线时设备也被计数。
主机也从每个设备查出它希望进行哪一种数据传输。
●中断模式——鼠标或键盘等设备,发送很少的数据会选择中断模式。
●成批模式——打印机等设备以大的数据包接收数据,所以使用成批传输模式。
一块数据发送给打印机(64个字节块)且被检验确定它是正确的。
●等时模式——流设备使用等时模式,数据在设备和主机之间以实时方式流动,且没有错误校正。
主机也能用控制包发送命令或查询参数。
火线串行总线
随着处理机速度到达1GHz,以及存储设备有几千兆位,个人计算机和服务器对I/O的要求是很苛刻的。
因此,对开发一种高速接口来替换SCSI和其他小型系统的I/O接口一直存在着很大的兴趣。
其结果是高性能串行总线的IEEE标准1394,通常称为火线。
火线比SCSI和其他I/O接口有许多优点。
它的速度快、价格便宜而且容易实现。
事实上,火线不仅在计算机系统,而且在消费者电子产品,如数码相机、VCR和电视机都很受欢迎。
在这些产品中,火线用于传送视频图像,这些视频图像正在越来越多地来自于(诸如数码相机,数码摄相机等)数字化设备。
火线接口的强项之一是采用串行传送(每次一位)而不是并行传送。
并行接口,如SCSI,需要较多的线,这意味着较宽、较贵的电缆以及较宽、较贵的带有更多引脚(要弯曲或断开)的连接器。
一条带有多根线的电缆需要屏蔽保护以避免线之间的电干扰。
此外,恰恰在计算机增加计算能力和I/O要求时,它们的体积正变得更小。
手提式和袖珍式计算机给连接器很小的空间,但却需要高速数据传输率来处理图象和视频。
火线的目的是提供单个接口,带有简单的连接器,它能够通过单个端口来处理许多设备,因此,鼠标、激光打印机、SCSI、外部磁盘驱动器、声音,和局域网连接都能用这单个连接器所取代。
这种连接器是受NintendoGameboy中所用的连接器的启发。
它的使用是如此方便,用户只要在机器背后插入即可。
火线使用菊花链配置,从单个端口可连接多达63个设备。
而且多达1022条火线总线能用桥接器互连,使得系统能支持所需要那么多的外设。
火线提供大家所知的热插入,它不需要关闭计算机系统或重新配置系统就能连接和断开外设。
3.1C++和面向对象的程序设计
一些面向对象的程序设计概念在语言间渗透。
例如微软QuickPascal是允许使用对象的第一批语言中的一个。
C++有什么使得它是一种适合于开发面向对象程序的语言?
如同先前所提到的,答案是类(class)数据类型。
给该语言建立对象之能力的是建立在C结构类型之上的C++类(class)类型。
还有,C++把另外几个特性引入面向对象的程序设计,这些特性并不包含在简单地利用对象的其他一些语言中。
C++的优点包括强类型、运算符重载和较少地强调预处理。
的确你能使用其他一些产品和采用其他一些语言来进行面向对象的程序设计,但是采用C++的众多好处是显著的。
这是为面向对象的程序设计而设计的语言,并非(现有语言的)式样翻新。
面向对象的程序设计是一种程序设计技术,使得你能把一些概念看作各种各样的对象。
通过使用对象,你能表示要被执行的任务、它们之间的相互作用和必须观察的某些给定的条件。
一种数据结构经常形成某个对象的基础;因此,在C或C++中,结构类型能形成某种基本对象。
与对象的通信,如前提到的,能通过使用消息来完成。
消息的使用类似于在面向过程的程序中对函数的调用。
当某对象收到一个消息时,包含在该对象内的一些方法作出响应。
方法类似于面向过程程序设计的函数。
然而,方法是对象的一部分。
C++的类是对C和C++结构类型的扩充,并且形成了面向对象程序设计所需要的抽象数据类型。
类能包含紧密相关的一些条目,它们共享一些属性。
更正式地说,对象只不过是类的实例。
最终,应该出现包含很多对象类型的类库,你能使用这些对象类型的实例去拼合程序代码。
在你更详细地考察这些术语之前,一个好的主意是熟悉与C++和面向对象程序设计相关的另外几个概念,如同下面几节所述的。
封装
封装指的是每个对象把它的成员数据和成员函数(方法)组合成单个结构的方式。
图3-1举例说明了你如何能组合数据域和方法以建立对象。
典型地,一个对象的描述是一个C++类的一部分,且包括对该对象内部结构的描述、该对象如何与其他对象相关,以及把该对象的功能细节和该类的外部相隔离的某种形式的保护。
C++类结构做到了所有这些。
在一个C++类中,你使用私有的、公共的和/或受保护的描述符来控制对象的功能细节。
在面向对象的程序设计中,公共(public)部分一般用于接口信息(方法),使得该类可在各应用中重用。
如果数据或方法被包含在公共部分,它们在该类外部也可用。
类的私有部分把数据或方法的可用性局限于该类本身。
包含数据或方法的受保护部分被局限于该类和任何派生子类。
类层次结构
C++类实际上用作创建对象的模板或模式。
从类描述形成的对象都是该类的实例。
开发类层次结构是可能的,其中有一个主类和几个子类。
在C++中,做这事的基础是派生类。
父类表示更一般化的任务,而派生子类执行一些特定的任务。
例如,早先讨论的林肯类也许包含整个林肯系列公共的数据和方法,诸如引擎、检测仪表、电池、制动能力和操纵。
从父类派生的子类,诸如TourCar、MarkⅧ和Continental可能包含该类专用的一些款项。
例如,1995Continental是该系列中唯一具有主动悬架系统的汽车。
继承
面向对象程序设计中的继承使得一个类能继承某对象类的一些性质。
父类用作派生类的模式,且能以几种方式被改变(在下一章中你将了解成员函数能被重载、新的成员函数能被添加,并且成员存取特权能被改变)。
如果某个对象从单个父类继承其属性,称为单继承。
如果某个对象从多个父类继承属性,便称为多继承。
继承是一个重要概念,因为它使得无须对代码做大的改变就能重用类定义。
继承鼓励重用代码,因为子类是对父类的扩充。
多态性
与类层次结构相关的另一个重要的面向对象概念是公共消息能被发送到诸父类对象和所有派生子类对象。
按正式的术语,这称为多态性。
多态性使每个子类对象能以一种对其定义来说适当的方式对消息格式作出响应。
试设想收集数据的一个类层次结构。
父类可能负责收集某个个体的姓名、社会安全号、职业和雇佣年数,那末你能使用子类来决定根据职业将添加什么附加信息。
一种情况,一个管理职位会包括年薪,而另一种情况,销售员职位会包括小时工资和回扣信息。
因此,父类收集一切子类公共的通用信息,而子类收集与特定工作描述相关的附加信息。
多态性使得公共的数据收集消息能被发送到每个类。
父类和子类两者都以对该消息是恰当的方式作出响应。
多态性促进现有代码的可扩充性。
虚函数
多态性赋予对象以当对象的精确类型还未知时响应来自例行程序之消息的能力。
在C++中这能力是迟绑定的结果。
使用迟绑定,地址在运行时刻动态地确定,而不是如同传统的编译型语言在编译时刻静态地确定。
这静态的(固定的)方法往往称为早绑定。
函数名被替换为存储地址。
你使用虚函数来完成迟绑定。
在随后的派生类将通过重定义函数之实现而重载该函数时,在父类中定义虚函数。
当你使用虚函数时,消息不是直接传给对象,而是作为指向对象的指针传送。
虚函数利用了地址信息表,该表在运行时刻使用构造符而被初始化。
一个构造符每当创建它的类的一个对象时被调用。
这里构造符的工作是把虚函数与地址信息表链接,在编译运转期间虚函数的地址是未知的;相反,给出的是(在运行时刻确定的)地址表中将包含该函数(入口)地址的位置。
3.3java介绍
Java是为了应对在异构条件下、全网分布式环境的应用开发背景的挑战而设计的。
其中最重要的挑战就是在系统资源消耗最低的情况下的安全传送应用,可以运行在任何硬件和软件平台,可扩充动态变化。
Java开发源于一个研究计划的一部分,开发在多种多样的网络设备和嵌入式系统中使用的先进软件。
目标是发展一个体积小、可靠性高、便携式的、分布式的、实时操作平台。
当项目开始时,C++是精选的语言。
但随着时间的推移,由于C++产生的问题逐渐显著,最好的解决方法就是创造一种全新的语言平台。
设计和架构决策从各种各样的语言中得出,如Eiffel,SmallTalk,ObjectiveC和Cedar/Mesa。
对于开发一套安全的、分布式、基于网络环境的,最终用户应用程序从网络兼容设备到万维网和桌面的程序来说,结果得到的语言平台被证明是理想的。
Java的设计需要是被计算环境的本性所驱使,在其中软件必须被展开。
大量增长的因特网和万维网引领我们以一个全新的角度看待软件的发展和分布。
为了在电子商务和分布式环境中生存,在异构的分布式网络中,Java必须保证有应用在多个平台的安全性,高性能和鲁棒性。
在多平台的异构式网络的操作,使传统方案的二进制分布、发布、升级、补丁等变得无用。
为了在这激烈的竞争中生存,Java必须是总体结构不带偏向性的、可移植的,且能动态地自适应的。
Java系统的出现很容易地满足了这些需求,所以它可以很容易地被大多数开发者应用进行编程;同样地,当前的开发者可以非常容易地学习Java;面向对象,利用现代软件开发方法和融入分布式客户端-服务器应用程序中;多线程,对高性能应用程序,需要完成多个并发活动,如多媒体;可解释,为了获得最大的可移植性和动态能力。
此外,上述要求的集合了相当多的时髦术语,所以让我们应在使用之前检测他们以及他们各自的优点。
Java和他的实时系统以全新的方式相结合产生了灵活的强大的编程系统。
你的应用程序使用Java开发的软件可在多种机器总体结构、操作系统和图形用户接口间移植,安全、高性能。
使用Java,你作为一名软件开发者的工作更容易了——基于Java的坚实基础,集中你的全部的注意力在运行创新的产品的最终目标上。
更好的软件方式开发是在这里,现在,给你带来Java语言平台。
很有力的语言Lisp,TCL,和SmallTalk经常用于原型构造技术。
他们成功的原因之一是它们具有鲁棒性——你不必担心释放或损坏内存。
同样,,在Java编程时程序员可以相对无所畏惧的处理内存问题;无用单元回收系统使程序员的工作大为容易;卸下了程序员肩上的存储管理之负担,存储分配错误不再发生。
一般认为像LISP、TCL、和SmallTalk这样一些语言十分适合于原型法的另一理由,是因为它们不要求你