计算机专业英语教程翻译
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.5
Gbit/秒的速度转移。相比之下,PCI-X1.0版本的PCI架构,是如今最常见的,提供1
Gbit/秒的吞吐量。PCIExpress卡的吞吐量可在四或八线配置(称为x4和x8),x4PCI
Express卡所能提供的吞吐量高达20Gbit/秒,而x8PCIExpress卡所能提供的吞
吐量高达40Gbit/秒。
早期尝试创建一个新的PCI架构失败了,这在一定程度上是因为他们需要太多的
变化到系统和应用软件。驱动程序,实用程序和管理应用均需要被改写。PCIExpress
的开发人员消除了对新操作系统支持的依赖,让PCI兼容的驱动程序和应用程序无需
改变就能在PCIExpress硬件上运行。
未来总线
开发人员正在提高PCIExpress的可扩展性.当前服务器和桌面系统支持PCI
Express适配器和图形卡高达8通道,这种体系结构在将来能够支持多达32个通道。
第一个光纤通道主机数据适配器被设计来支持四通道而不是八通道,部分原因是
由于服务器开发商已经将他们的系统设置成了四通道插槽,。甚至更大的带宽是必须
的,执行一条八通道道设计能够将性能提高一倍,假如系统中没有其他瓶颈。
这种可伸缩性加上每个通道的速度有望加倍,达到5Gb/s(兆位/秒),将保持PCI
Express在可预见的未来仍然是设计师课实施的方案。
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这样一些语言十分适合于原型法的另一理
由,是因为它们不要求你受早期决定的约束——这些语言的语义是很丰富的。
Java有恰恰相反的性质:它强迫你做出明确的选择。伴随这些的选择还有很多辅
助方法——你可以写方法调用,如果你有什么错了,它会在编译时将这些告诉你。你不
必担心方法调用错误。
4.1操作系统概述
操作系统是作为软件之间的接口电脑用户和计算机硬件。操作系统的目的是提供
一个环境,让用户可以执行程序的。最基本的目标是一个操作系统,使计算机系统使用
方便。次要目标是使用电脑硬件在一条有效途径。
我们可以认为一个操作系统为一种资源分配程序。计算机系统可以有很多资源要
解决的一个问题:比如CPU时间、内存空间,文档保存、输入/输出(I/O)设备等等。
操作系统作为这些内容的管理者及分配于一些特定的程序和用户所需要的任务。因为
可能有很多,可能相互矛盾的,资源的需求、操作系统必须决定哪些请求是分配的资
源,以公平和有效率地操作计算机操作系统。
早期的计算机是从控制台运行(物理)很大的机器。程序员将编写一个程序,
然后直接从该操作员的控制台运行该程序。软件如汇编、装载机和编译器改进了方
便的编程系统,但还需要大量的设置的时间。为了减少启动时间、经营者被雇用和类
似的工作是成批排在一起。
批处理系统允许自动工作被常驻监控程序排序,很大的改善了综合利用计算机。
计算机已经不再有等人类的操作。CPU利用仍然很低,但是由于移动的缓慢速度相对I
/O设备到中央处理器。离线运行试验设备缓慢。
缓冲是另一个方法提高系统性能的输入、输出重叠,并给出计算一个单一的工作。
最后,允许中央处理器重叠设备工作的输入和输出计算与其他的工作。
后台还提供了许多已读取和正在等待运行的工作。这份工作支持多道程序设计的
概念池。与多道程序设计中,几项工作,保持在记忆在同一时间,中央处理器被转回之
间穿行以增加CPU利用率、降低总实时用来执行一个工作。
为了提高效率而发展的多道程序设计,也允许时间共享。
共享操作系统允许许多用户(从一个到数百)交互地在同一时间内使用计算机系
统。由于系统从一个用户到下一个用户的快速的转换,每个用户都会有他拥有自己的
电脑的感觉。其它的操作系统类型包括实时系统与多处理器系统。
,实时系统经常在专用应用系统被用作控制装置。传感器将数据传给计算机。计
算机必须分析数据,很有可能调整控制来修改传感器的投入。控制科学实验的系统,医
学计算机系统,工业控制系统,以及一些显示系统都是实时系统。实时多任务操作系统
具有明确的固定的时间限制。处理必须在规定的时间内完成,否则系统将失效。
多处理器系统上有一个以上的CPU。明显的优势是更大的计算能力和可靠性。对
于多处理器和多处理计算机有各种类型的操作系统。这是对于多个CPU系统某种程度
的可能区分两种类型的操作系统,松散耦合的,如网络操作系统和分配操作系统,和紧
耦合的,如并行操作系统。我们应该看到,松与紧耦合的软件是大致类似于松与紧耦
合的硬件。
操作系统必须能够确保计算机系统的正确运行。为了防止用户程序干扰系统的正
确运行,硬件修改为两个模式:用户模式和监控模式。许多的指令(如I/O指令,停止
指令)有特权,并且只能在监控模式下运行。监控程序所在的内存也必须保护起来以防
用户修改。定时器可以防止死循环。一旦对基本的计算机结构作了这些改变(两种方
式,特权指令,内存保护,时钟中断),就有可能写出正确的操作系统。
4.3窗口管理程序
窗口管理程序管理那些用来交换应用程序和用户之间信息的设备。输出设备包括
视频显示器和声音合成器。输入设备包括键盘和指点器,诸如鼠标、操纵杆、控制球、
或光笔。窗口管理程序与输出设备的设备驱动程序交互把信息呈现给用户,与输入设
备的设备驱动程序交互获取表示用户正在输入信息的消息。应用程序和脚本执行引擎
把表示成位图或PostSript表示法的图像传给窗口管理程序,窗口管理程序把这些图
像呈现给用户。窗口管理程序把用户通过输入设备输入的消息返回给应用程序和脚本
执行引擎。
窗口管理程序已十分普及,因为它们支持许多对终端用户和应用程序开发者两者
都十分有用的特性。
用户与多个进程交互。窗口管理程序把窗口分配给每个进程。如果每个进程与一
个显示在显示屏上的窗口相关,那么多个进程可以共享一个视频显示屏。用户通过观
看分配给进程的窗口之内容和向其窗口处于激活状态的进程发命令来观察进展(即
执行情况)和控制各进程。
用户容易在应用程序之间移动信息。窗口给用户提供了一种在应用程序之间传
送信息的方法。图4-1举例说明了一个有3个窗口的显示屏。一个窗口分配给正文编
辑程序,另一个分配给电子表格程序,而第三个窗口分配给数据库程序。在这个例子
中,用户首先用数据库应用程序从数据库检索某些数据。然后用户从检索得到的数据
中选择某些,并把这些数据移到第二个窗口中的电子表格程序。电子表格应用程序计
算合计和总计信息,然后用户把计算结果移到分配给正文编辑程序的窗口。用户使用
正文编辑程序把总计信息集成到正在用正文编辑程序准备的报告中。
用户访问远程应用程序。一些窗口管理程序能够通过通信系统把一个窗口分配给
运行在远程计算机上的一个进程。例如,工作站的用户希望访问某台大型机上的数据
库。该用户请求窗口管理程序创建窗口,在该窗口中用户可以输入对那台大型机上的
数据库管理系统的请求。在该请求被处理后,窗口管理程序在该窗口中显示从数据库
管理系统来的结果。
用户对一个进程有多个视图。一些窗口管理程序可以把几个窗口分配给一个应用
程序:每个窗口把该应用的某个方面显示给用户。多个窗口对用户可能是有用的,可
提供该应用程序的多方面视图。例如,在图4-2中,两个窗口已分配给一个计划系统。
一个窗口显示图形,展示在一个项目的各任务之间的优先关系。另一窗口显示了每个
任务完成的百分比。
用户接收事件。当一个进程发现用户应该知道的某些非正常事件,该进程通知窗
口管理程序显示一个描述该事件的消息。用户将注意到该消息的出现,并采取适当的
动作。
用窗口管理程序可以构造复杂的用户接口。大多数窗口管理程序都有程序库,包
含各种各样的、可重用的交互对象,这些对象可用来构造复杂的用户接口。
终端独立性。一些窗口管理程序工作在一大类终端和工作站上,并且对应用程序
隐藏了这些终端和工作站之间的差别。终端独立性增加了应用程序对各种各样的终端
和工作站的可移植性。
5.1互联网
世界上存在许多网络,经常用不同的硬件和软件。有一个网络连接的人经常想要
与另一个网络的人们相交流。这个欲望需要把不同的,经常是不可兼容的网络连接到
一起,有时候需要使用名叫网关的机器来连接,和提供需要的翻译,同时依据硬件和
软件。一个相互连接的网络的集合被称为互联网络或因特网。
因特网的一个普通形式石油广域网连接的局域网的集合。因特网(标记为大写字
母I)意味着一个特定的世界范围的互联网,他是广泛用于连接大学、政府机关、企
业和私人个体的。
到1995年,有许多的主干网,数以百计的中级网络,成千上万的局域网,上百
万的主机,和上千万的用户。这个大小每年大概会翻倍。大部分的增长来自于网络与
因特网间存在的连接。将因特网连接在一起的粘合剂是TCP/IP参考模型和TCP/IP协
议栈。TCP/IP是普遍服务成为可能,并且可以与电话系统和19世纪的铁路采用的标
准轨距相比。
因特网是现实世界中人们的巨大的全球性社区。在这个网上,人们在众多主题上
不断推出的有价值的资料是你一辈子也读不完的。如果你还没有利用网络,这就是你
所缺少的:
电子邮件。让你发信息到俄罗斯、日本等等。
文件传送协议(FTP)。从世界各地成千上万的电脑上免费下载。
网络论坛。其内容比你从射箭术到股票行情所能读到的一切更有趣,更热闹和更
多智慧。
万维网。一个快速发展的图形电子文档全球网,你可以浏览,与其交互,甚至可
以建立自己的文档。
新科技。全球聊天,视频会议,传真,自由的国际电话和更多。万维网是一个访
问链接文档的体系结构框架,它通过因特网传播到成千上万的机器上。
由于网络基本上是一个客户端—服务器系统,我们同时讨论客户端(例如用户)
和服务器端。
从使用者的观点,网页是世界性巨大的文档集成,通常简称为页。每个页包含指
向其他相关页面的连接(指针),在世界的任何一个角落。使用者可以跟随连接,这
个链接把用户带到所指向的页面。进程可以无限制的重复,在这个过程中可能通过上
百个链接页面。指向其它页面的页被说成是超文本。网页可以包括色彩桌面设计,超
文本链接,交互脚本,声音,图像,甚至虚拟现实。当超文本页面混合其他媒体,结
果就成了超媒体。网页以浏览器的形式观看。
每个网站都有一个服务器进程听从TCP80端口连接客户(通常是浏览器)。建立
连接后,客户发送一个请求,服务器发送一个答复,然后这个连接被释放。定义合法
的请求和答复的协议被称为超文本传输协议。使用它的一个简单例子可能会提供一个
网络服务器如何工作的合理想法。
举个例子,我们可以想象用户刚点击了某篇文本或者也许是一个指向页面的图
标,名字(统一资源定位器)是……。URL有三部分:协议的名字,页面所在机器的
名字,包含页面的文件的名字。用户点击页面和页面被显示之间发生的步骤如下:
1.浏览器决定体育统一资源定位器
2.浏览器向DNS请求……的IP地址。
3.DNF答复……
4.浏览器向80端口做传输控制协议……
5.然后它发送一个……命令
6.……服务器发送文件
7.TCP连接被释放
8.浏览器显示……的所有文本
9.浏览器获取并显示……里的图片
网上冲浪
当你的网页浏览器打开,你被连接到互联网时,目前被指定为你的浏览器的开始
页或者主页的页面将显示在浏览器窗口。通常这一页是你的浏览器、学校或互联网服
务供应商的网站的主页,但是通常它可以变成使用你的浏览器的选项或优先权对话框
的任何网页。
所有的浏览器都有导航工具通过你目前网页访问量来帮助你向前或向后,以及因
特网会话的菜单选择按钮或打印的网页,如有需要。图5-2阐明了最常见的微软因特
网浏览器和网景导航浏览器的零件。
使用统一资源定位器和超链接
从开始网页转到新的网页,您可以在浏览器的地址栏或位置栏键入适当的统一资
源定位器,然后按回车键。你可以编辑现有的统一资源定位器或删除它并建立一个新
的类型。要确定准确地匹配拼写、大写和标点。如果你不知道何种统一资源定位器是
合适的类型,你可以搜索一个合适的网页,作为简短的讨论。
如果网页上显示了一个你想去的超链接,简单的点击这个链接。记住,超链接可
以是文本或者基于图片的。如果你不确定网页上的某个东西是否是一个链接,把你的
鼠标箭头放在它上面一会儿。如果它是一个链接,这个箭头就会改变来表明它是一个
连接。新页的统一资源定位器也被显示在浏览器的状态栏里。一旦你点击这个超链接,
适当的网页会被显示。要回到前一个网页,就点击浏览器工具栏上的后退键。要打印
当前的网页,使用浏览器打印键或从浏览器的文件菜单选择打印。
你可能在网页上遇到的东西
当你搜索万维网时,你将会在网页上遇见许多不同的对象。尽管我们不能在各种
可能的网页组件上进入一个深入的讨论,但是熟悉最常见的事物是有好处的,这样你
就会在遇到它们的时候知道如何处理它们。你会遇到的一些常见的事物展示在图5-3。
5.2连接方式
在前一章作为讨论,有各式各样的有线和无线方式连接到因特网。几乎所有的设
置,你的计算机通常是连接到称为地区性网络的大网络,在每个国家内部连接到区域
网络的主要高速网络称为骨干网络。在一个国家内的骨干网络和在其他国家的骨干网
络连在一起形成因特网。
下面的章节讨论最常见的互联网连接。
1.拨号连接
拨号连接通常工作在固定电话线路。连接到互联网时,你的调制解调器(或其他合适
的接口设备)拨拨号并且将一台调制解调器连接到你的ISP电脑。当你连接上,你的电
脑被分配一个临时的IP地址为当前的状态。在网络会话的结尾,你脱离你的ISP电脑,
以便另外一个使用户连接回到自己的位置。使用拨号上网的一个好处是安全。因为你
不是不断连接,它是不太可能通过因特网获得对你的计算机的访问权限,去获得信息
或破坏你电脑中的数据。或者更为一般地用某种非法的或不道德的方式使用你的计算
机。这些类型的黑客活动都是以后进行讨论。
电话拨号连接在上网时你的电话线会被占用,除非你有其他的电话线路。在你连接到
因特网期间,当有电话进来时,一些互联网呼叫等待或呼叫转接服务会通知你。他们
通常是建立允许离开的人短消息,一些新系统可以一个较短的时间离开一会儿网络,
拿起电话,如果必要的。更新的拨号调制解调器预计将促进某种类型的呼叫等待服务。
标准拨号
标准拨号上网服务所用传统拨号调制解调器额定最大的数据传输率56kbps。这些
调制解调器常用与个人计算机和互联网装置.便携式设备也可以使用传统的拨号调制
解调器,如果真是这样的话,他们需要连接标准电话插座上网。标准型拨号上网服务从
免费到每月将近25美元。
ISDN
另一个拨号选项ISDN。ISDN(综合服务数字网络)允许数字传输的数据在普通电话
线上。它需要一种特殊的ISDN适配器或调制解调器和能传输数据了128kbps
2.直接相连
不像拨号连接,只有连接到你的备用的计算机时,你需要上网,直接连接让你不断
地连接到英特网。直接(always-on)连接,你的电脑通常是发布了一个静止
(non-changing)的IP地址被用来来回传递数据通过互联网与网络的连接.PCs总有一
个互联网连接提供---网络访问只需要开一个浏览器。
直接连接的类型包括通过学校或办公室里的局域网,以及数字用户专线、电缆、
卫星、及固定无线连接。虽然,在理论上,宽带上网可以100倍于使用拨号上网速度,
实际现在则更像是25到50倍。对于数字用户线路典型的下载速度大约150Mbps;卫星
及固定无线通常500Kbps到1Mbps。几乎所有这些服务使用较慢的上传速度。最显著
特点是每一种类型的宽带上网都讨论了下一个。
学校或办公室区域网络
大部份的学校或者办公室局域网,从电话公司或网上信息提供者租一条高速专线
(如ISDN或T1专线)直接连接到互联网。这种类型的速度上网取决于学校、办公室
和他们的互联网提供商之间的连接速度以及速度局域网本身。
DSL
DSL(数字用户线路)目前只对那些较靠近电话交换站(3英里或更少)有能力处理
DSL电话线的用户可用,并且常要等待长时间安装。不过,DSL是一项很受欢迎的宽带
的选择。DSL有时提供不同的速度来适应不同的需求和预算,比如个人选择较慢较便宜
的,商用则选择更快的。标准的DSL服务每月花费约50美元。
电缆
第三种类型的直接互联网连接--电缆--是目前应用最广泛的家用宽带的选择。接
线的连接都非常快,可以和任何升级了系统接入网络的用户相连。现在几乎所有的电
缆上网都是双向的(全双工),电缆被用于数据双向传送。电缆的一个缺点是,在邻近地
区的所有用户发生共享他们的当地的带宽。尽管这并不能证明是一个问题,在一天的
高峰时间——比如傍晚--你的邻居上网时网速显著变慢。费用是40美元/月,除了常
规的电缆费用。
卫星
在农村地区卫星互联网接入通常是唯一的宽带选项。它需要人造卫星的调制解调
器和安装在室外的无线电收发机。如今双向卫星服务是可实现的,如星带,只是在强降
雨天气南方天空需要一个自由的视野。典型的费用约为70美元每月。
固定无线连接
最后一种宽带访问是固定无线,这种访问方式对消费者是相当新的,但显示出很
大的前途。这种类型的服务,例如直接短波,与卫星服务相似,它需要一个调制解调器
和外部安装收发机,但通常只有在大的城市地区有。在收发器和提供商的无线传输塔
之间需要有一条无障碍的视线通路,传输塔在用户的收发器和因特网间传播信息。服
务成本约50美元每月。
不管使用什么类型连接,对所有直接上网的用户来说极为重要的一点就是保护计
算机不受到未经授权的访问或黑客的攻击。虽然大多数学校和办公室有某种类型的防
火墙,许多家庭却没有。尽管不太可能会有人以这样的方式进入你的家庭个人电脑,随
着家庭直接联网变得越来越普遍这种可能性将会继续增长。为了保护你自己,所有使
用直接连接的计算机应该使用个人防火墙程序--特别是允许文件共享的家庭网络。防
火墙程序除了阻止其他电脑访问到您的个人电脑以外,还允许你指定你的个人电脑里
哪些程序能上网。一些防火墙软件,如区域报警软件,为家庭免费提供借阅。一些防火
墙保护开始被纳入其他程序,如WindowsXP。
3.移动无线连接
不像卫星和固定无线连接,它使用电缆线连接调制解调器接到某种类型的固定收
发器,移动无线连接允许设备从一个地方移动到另一个地方。因而,绝大多数手持电
脑及其它移动设备(如Web-enabled手机)使用移动无线连接访问互联网正如移动电话
和一些通讯设备一样。现在大多数能访问因特网的移动电话都处于无线因特网就绪状
态并且能直接用来检索Web内容,只要无线Web服务包括在该手机的服务计划中。许
多手提电脑也有内置的互联网连接;如果没有,一个无线调制解调器可以使用。另一种
方式,一台调制解调器或其他类型的适配器可以把设备连接到手机。个人笔记本电脑
能连接到网络或公共网络的使用的是一个无线调制解调器或微型的调制解调器。今
天,一些笔记本电脑内置无线联网能力。
6.1网络通信的两种方法
不管通信网络提供的是一台计算机与另一台计算机之间的连接还是终端与计算
机之间的连接,通信网络可以分成两种基本类型:电路交换(有时叫做面向连接的)
和分组交换(有时叫做无连接的)。电路交换网络运行时在两点之间形成一条专用连
线(线路)。美国电话系统使用电路交换技术,即一个电话呼叫建立一条线路,从发
起呼叫的电话机通过本地交换局、穿过中继线到一个远程交换局,最后到达目的电话
机。在线路存在时,电话设备对话筒的输出重复采样,把采样进行数字编码,并通过
线路把它们传送到接收方。发话方确信采样一定会被传输和重新生成,因为线路提供
了一条被保证的64kbps(千比特每秒)数据路径,这个速率是发送数字化的语音所必
需的。电路交换的好处在于它的容量有保证:一旦建立一条线路,没有其它网络活动
会减少这条线路的容量。电路交换的缺点是代价大:线路的费用是固定的,与通信量
无关。例如,一个人要为一个电话交付固定的费用,即使两边没有交换。
分组交换类型的网络通常用于连接计算机,它采用完全不用得方法。在一个分组
交换网络中,网络上传输的数据被分成一个个小的片,叫做分组,分组被多路复用在
大容量的机器间的连接上。一个分组,通常含有几百个字节的数据,载有使网络硬件
知道怎样把它发送到指定目的地的标识信息。例如,一个要在两台机器间传送的大文
件,必须被分成许多分组,在网络上一个一个地传送。网络硬件把分组传送到指定目
的地,在那里,软件把它们重新组装成一个文件。分组交换的额主要优点是计算机之
间的多路通信可以并行进行,机器间连接被正在通信的各对机器所共享。当然,它的
缺点是,随着网络活动的增加,一对通信的计算机所获得的网络容量就会减少。也就
是说,每当一个分组交换网络超载,那么,使用这个网络的计算机在可以继续发送分
组之前,必须等待。
尽管分组交换网存在不能保证网络容量的潜在缺点,分组交换网络已成为非常流
行的。采用分组交换的动机是从成本和性能方面考虑的。因为多机可以共享网络硬件,
所以只要求较少的几个连接,费用低;而且工程师们已经能制造高速网络硬件,容量
通常不成为问题。因此,许多计算机互联都使用分组交换,所以本书后面,术语“网
络(network)”将仅指分组交换网络。
7.1数据库系统概述
让我们考虑航空公司这样的企业,它有大量的数据长时间保存在计算机中。这
些数据,例如,可能包括关于乘客、航班、飞机与乘务组人员的信息。可能表示的典
型关系包括订票(哪些乘客在哪些航班上订有座位?)、航班乘务组(在哪些航班上
谁是驾驶员,谁是副驾驶员,等等),以及服务记录(每架飞机最后是何时由谁服务
的?)。
我们把上述那样的不同程度地长久存储在计算机中的数据成为数据库。
使得一个人或许多人能使用和/或修改这些数据的软件是数据库管理系统
(DBMS)。DBMS的主要目标是提供这样的环境,在从数据库中检索信息和把信息存储
在数据库中时使用起来既方便,功效又高。
数据抽象
显然,在处理二进位的计算机和处理像航班或把乘务组人员分派到飞机这样一
些抽象的最终用户之间将存在很多层抽象。关于抽象层的相当标准的观点如图7-1所
示。在那里我们看到3个不同抽象层的单个数据库,它可能是使用同一个DBMS软件
的很多个数据库中的一个数据库。
最底层,也即物理层,把数据存储在硬件设备上。用户程序不能直接存取它们。
它们必须通过逻辑层存取数据。外部层按外部或用户程序之需要定义数据库的不同试
图。一个用户程序不可能需要数据库中的所有数据,因此用户/应用程序仅观察所需
的数据库信息。这意味着取决于对数据的需求,不同的程序对同一个数据库将有不同
的视图。这样一些视图是数据库外部的,因而在外部层规定。不同的视图也不必须要
包含完全不同的数据。在不同的视图中会存在公共的信息。
概念层描述整个数据库,它是由数据库管理人员使用的,它们必须决定什么信
息要被保存在数据库中。
数据模型
数据模型是一组概念工具,用来描述数据、数据关系、数据语义和数据限制。
数据模型分成三类,就是基于对象的逻辑模型、基于记录的逻辑模型和物理数据模型。
基于对象的逻辑模型用于描述概念层与视图层的数据。它们非常接近于人的逻
辑。很多不同的模型可用来描述基于对象的逻辑模型,其中最重要的是语义数据模型
和实体关系模型。语义数据模型提供了表达数据库中数据之意义的设施。实体关系模
型(E-R模型)是基于这样的认识:现实世界是由一组称为实体的对象和这些对象之
间的关系组成的。实体是对象,它能与其它对象唯一的却别开。例如,名称、物理尺
寸和每单位长度的重量唯一的描述一段特定的钢材。相同类型的所有实体之集合和相
同类型的各种关系分别称作实体集合和关系集合。实体集合的例子有:
一座建筑物中的所有房间
在一个有限网络中的所有元素
一台机器中的所有轴承
实体和关系要被区别开,并且数据库模型应指明这如何能实现。这用主关键字
概念来实现。实体关系模型可以定义数据库的内容必须遵守的某些限制。一个重要的
限制是某个实体能经由一个关系与其相关的其它实体之个数。对于涉及两个实体集合
的关系,可能存在像一对一、一对多、多对一和多对多那样的关系,这些关系的图解
表示如图7-2所示
基于记录的逻辑模型定义数据库的整个逻辑结构以及其实现的更高级描述。三
种不同的基于记录的逻辑模型被广泛使用。它们是:
1.层次模型
2.网络模型
3.关系模型
物理数据模型用于描述最低层的数据。只有很少的几种物理数据模型在使用。广
泛知道的是:
1.统一模型
2.框架存储
7.2SQL引言
理想地,一个数据库语言必须使我们能够创建数据库和表结构;它必须使我们能
够执行一些基本的日常数据管理工作(添加、删除和修改数据);并且它必须使我们
能执行设计来把原始数据变换成有用信息的复杂查询。此外,它必须让用户以最小的
努力来完成这样一些基本功能,而且它的命令结构和语法必须是易于学习的。最后,
它必须是可移植的,亦即,它必须与某个基本标准一致,以致当从一个RDBMS改变为
另一个时不必要重头开始学习。
SQL很好地满足这些理想化的数据库语言需求。首先,SQL覆盖范围归入三个范
畴:
1.数据定义创建数据库及其表结构。
2.数据管理使用一组命令来对数据库表内的数据进行键入、校正、删
除和更新。
3.数据查询使用一组命令来探索数据库内容并使得用户能把原始数据
转换成有用信息。
其次,SQL是相当容易学的:它通过使用由大约30个命令组成的基本词汇表来执
行所需的数据库功能。还要好地,SQL是一个非过程式语言:你必须做的仅仅是发出
要做什么的命令;不必操心它是如何做的。
最后,美国国家标准协会(ANSI)规定了一个标准SQL。毋须介意,ANSI标准是
如此有限制,以致所有的商用SQL产品都胜过它。事实上,某些厂商已经符合要在1993
年实施的所提议的ANSISQL2标准,因而,极少可能不做某些改变便把某个基于SQL
的应用程序从一个RDBMS换到另一个RDBMS。不过,不同的SQL方言版本共享相同的
基本命令集和结构,因此使我们能得出这样的结论:存在有一个可使用的标准。我们
将使用这标准作为我们之介绍的基础。然而,我们也将介绍几个SQL增强特性,特别
是考虑到这些增强特性广泛地为很多RDBMS供销商所共有。
不要因存在几个SQL方言版本而泄气。因为各种SQL方言版本之间的差异是微小
的,适应于你的软件需求几乎没有什么麻烦。不管你是使用XDB、ORACLE、dBASEⅣ、
DB2、Dos下的R:BASE、IBM的OS/2数据库管理程序,还是任何其他一致公认的RDBMS
软件,我们的经验是:如果你了解本章中介绍的材料,对软件手册花上几个小时将足
以使你成功地使用SQL。简而言之,你在本章获得的知识是可用于他处的。
关于学习SQL基础,有几个很好的理由:
1.ANSI标准化努力已导致关系数据库的一个事实上的查询标准。事实上,很多
关系数据库专家倾向于主张:“如果不是SQL,便不是关系型的”。
2.SQL已成为现在的和预期的将来的DBMS集成努力的基础,使我们能把层次型
的、网络型的和关系型的数据库链接起来。
3.SQL已成为开发分布式数据库和数据库客户机/服务器体系结构的催
化剂。
8.4同步
先进的多媒体系统以独立的、时间有关和时间无关媒体的集成的、计算机控
制的产生、存储、通信、处理和演示为特性。提供集成的关键问题是任何数据的数字
表示和各种种类的媒体和数据的同步。
单词‘同步’指的是时间。多媒体系统中的同步指的是多媒体系统中媒体对
象之间的时序关系。在更普遍更广泛使用的意义上,一些作者认为多媒体系统中的同
步包括内容、空间和媒体对象之间的时序关系。我们区分时间有关和时间无关的媒体
对象。一个时间有关的媒体对象被表示成媒体流。在媒体流的连续单元之间存在时间
关系。如果一个时间有关的媒体对象的所有单元的演示时间都相同,则称它为连续媒
体对象。一个视频由许多有序的帧组成,其中每个帧有固定的演示时间。一个时间无
关的媒体对象是任何一种传统的媒体,如正文和图像。各个内容的语义与演示的时间
没有关系。
媒体对象之间的同步包括时间有关媒体对象和时间无关媒体对象之间的关
系。连续媒体之间同步的一个日常例子是电视中视觉和听觉信息之间的同步。在多媒
体系统中对音频和移动图片也必须提供类似的同步。时间有关媒体和时间无关媒体之
间的时序关系的例子是放映幻灯片。幻灯片的放映与解释的声音流同步。为了在多媒
体系统中实现放映幻灯片,图的展示必须与声音流的一些适当的单元同步。
许多系统成分,包括OS、通信系统、数据库、文档都致力和支持同步,甚至
应用程序也经常致力和支持同步。因此,在多媒体系统中必须在几个层次上考虑同步。
OS和较低的通信层处理单个媒体流,其目标是避免在一个媒体流的诸单元演
示时的抖动。例如,如果一个音频播放被短时停顿或在音频剪辑的播放中点击引起短
的间隙,则用户会讨厌。
在这一层的上面设置一层对多个媒体流同步的运行时间支持。这一层的目标
是维护各媒体流之间的时序关系。特别是必须限制各媒体流之间的偏离。例如,如果
用户发现演讲者的嘴唇动作不对应说出来的话,用户会不舒服。
下一层是对时间有关和时间无关媒体,连同用户交互的处理之间的同步的运
行时间支持。其目标是在一个可容忍的时间区间内开始和停止时间无关媒体的演示,
如果时间有关媒体对象演示到达某些先前定义的演示点。如果幻灯片跟不上讲解,则
看幻灯节目的观众是不满意的。解说开始后的短暂延迟是可容忍的,或者甚至是有用
的。
各媒体对象之间的时序关系必须指明。这些关系可以在捕获媒体对象期间隐
式地指明,如果一演示的目标是以原来媒体被捕获时相同的方式演示它们的话。这是
音频/视频摄制和播放的情况。
在演示是由独立捕获或用其它办法(独立)制作的媒体对象所组成的情况,这
些时序关系也可以显式地指定。在放映幻灯片的例子中,演示设计者选择适当的幻灯
片、创建音频对象并且规定声音播放流中那些必须播放幻灯片的单元。同样,用户的
交互性也可能是播放的部分,并且在媒体对象和用户交互之间的时间关系也必须指
明。用来指明这种时间关系的工具位于先前几层的上面。
12.5地理信息系统(GIS):查看事物数据的新方法
地理信息系统是发展最快的事物应用软件之一。这十年(指20世纪90年代)后期
它会像处理软件和电子表格应用软件一样普及。
GIS,如同美国国家基金会所定义的,是用于捕获、存储、检索、分析和显示空间
(例如探测所确定的)数据的计算机化数据库管理系统。
一个GIS有下列三部分组成:
——GIS软件
——硬件。运行GIS所需的硬件依赖于三个相互相关的可变因素:(1)作用范围:
用途数、应用程序数与用户数;(2)数据的规模:地图越详细,所需硬件的功能越要
强;(3)功能度:要对数据执行的功能或操作的数目与各种功能的复杂性。
——数据库,内部的和外部的两者。
开发GIS系统的关键是地理信息编码法。地理信息编码是把属性数据连接到地图的
过程。街道地址地理信息编码是事物地理的基础技术。据说,大约80%的事物数据有
某种类型的地理成分。
地理信息编码看来简单,但要做好,确要复杂的多。在目录中查找地址概念上是容
易的,但会由于软件、地理信息编码参考目录或数据地址本身中的一些缺点而失败。
GIS系统允许一系列的地图彼此覆盖,通过观察诸计算机化地图的组合,零售商能
立即看到他的销售额是高还是低,并且他的竞争对手是强还是弱。
GIS系统允许以各种各样的方式存取数据。大多数全功能GIS系统结合了三种基本
类型的功能:(1)表示映射,(2)使用地图作为组织工具,(3)空间分析。
GIS系统有助于其业务开张的领域包括:(1)房地产,(2)直销,(3)保险,(4)
金融,(5)服务行业,(6)制造,(7)运输和销售,(8)零售。
分析人员说,GIS市场正由几个因素所驱动:
1.更便宜更快的硬件。PC价格正迅速下跌,而台式计算机正变得功能更强
2.改进的GIS软件。今天GIS软件更对用户友善,使得无使用GIS经验的用户能迅
速学会这些系统。
3.降低了的软件价格。抵挡GIS系统花几千美元能够买到,而只有有限数据分析功
能的简单桌面地图绘制系统不到500美元便可买到。
4.种类更多的人口统计数据。
更广泛地使用于商业。
世界范围内,估计大约有100个销售商提供各种各样的GIS系统,其中大约60个以
北美为基地,而大约24个在欧洲设立总部。所有分析人员一致认为:GIS市场份额居
首位的两个公司是亚拉巴马的Intergraph公司和加利福尼亚的环境系统研究所公司
(ESRI)。
在市场上存在两类GIS应用程序。“开放系统”使得能从电子表格或数据库程序直接
输入数据;“封闭系统”则不能。一般地,开放系统更为使用,但是它们使用上是更
有争论的。准备输入GIS的属性数据的责任落在了用户肩上。封闭系统是更易于使用
的,属性数据整齐地排列在你的面前供你使用。
GIS设计过程涉及四个基本要素:地理数据、属性数据(内部的与外部的)、地
图绘制软件,以及硬件。关于地理数据,要问的第一个问题是:“我对哪个地理区域
感兴趣?”属性数据必须与GIS兼容,使得它能被输入到GIS。地图绘制软件应支持
数据录入、数据分析、数据输出和显示,以及数据管理。至于硬件,GIS将很快超过
GIS销售商所推荐的做小系统需求。努力获取比你目前需要的更多。
非空间的、内部的和外部的属性数据是开发GIS的另一个主要成本。购买诸如商业
人口统计数据库这样的外部数据和开发内部数据库总共能占到GIS系统总成本的80%
之多。
在设计GIS时,主要关心的是为作业选择恰当的属性数据。在美国,很多商业数据
库是以美国人口统计局的数据为基础的。最主要的商业人口统计数据库销售商们对于
消费者和商业数据两者都使用了复杂的分段技术,使基本的、原始的人口统计数据成
为有价值的数据。外部数据也可以以较少的成本,或者无成本,从政府代理、行业协
会、大学、非盈利团体和其他一些机构处获得。
GIS程序包,其范围从基于PC、差不多仅仅显示数据、因而往往成为桌面地图绘制
系统的产品,一直到进行复杂的数据建模且能以逼真细节和3D质量显示地图的高级
系统。
GIS事务应用软件能分成三个范畴:
1.经营(性)的:在这些应用软件中,GIS支持经营活动和事务的决定。
2.策略(性)的:这类GIS应用软件涉及由中层管理员进行的“半结构式的”决策。
3.战略(性)的:这些类型的GIS应用软件是为上层管理而设计的,他们一般进行
“非结构式决策”。
13.2什么是“电子商务”?
电子商务将创造变化类似于工业革命所引起的那些。它会影响我们的业务、社会
和政府的治理。
电子商务是信息技术的整合,尤其是互联网进入业务流程,改变组织和形成新的
组织。它特别影响组织单位和单位之间的界面。在过去的30年,信息技术在使过程更
加有效和高效的中扮演了重要的角色,但它并没有改变他们。电子商务改变他们。
与IT是一个支持功能的先前模型不同,在电子商务中,IT已嵌入到各种商务
过程中。一个关键的区别是如果IT系统无法正常工作,过程是否都根本无法运转。
一个订房部职员使用预订系统使航空订票不是电子商务的一个例子。一个航空公司系
统,一名乘客,直接进行了预定,获取电子客票,在经过视网膜扫描识别后上了飞机是
电子商务的一个例子。
电子商务为一系列不同的电子处理过程形成了一把雨伞,沿着从供应商到消费者
的链,其中大部分都包括物理的类似物。这些电子商务过程实际上将包含整个人类活
动,从商业金融、从教育到娱乐和从政府到宗教(图13-2):
电子商务是企业对企业(BTB)买卖实际的货物(交易)。
EDI商业是传统的、布线、预定贸易,常见于汽车、航空航天和初级产品的大型
零售商环境(那些需要生产产品的环境)。
电子商务是新的、开放的贸易,穿透所有的工业部分。特别用于二次商品(那些辅
助生产的产品:办公用品(例如)
电子零售是企业对消费者(BTC)买卖物理的货物
电子银行是电子买卖银行物品为企业和个人服务。
电子金融投资是由商业和个人电子交易股票、债券和其他金融工具。
电子保险是为商务和各人买卖保险业务。它还包括投资、索赔提交和支付流程。
电子旅行服务包括购买产品和服务项目,如个人和企业的票和预定。
电子娱乐休闲包括过多的游戏、赌博、爱好、娱乐和可以在因特网上获得的利息
活动。
电子政务包括为企业和个人交互的过程。它包括授权生成;企业和个人记录;警
方、法律、法院、调节和立法过程;和表决。
电子教育和培训包括在因特网上远程教育。
电子保健服务包括诊断,帮助服务、表现和保留系统等。
电子出版是小说、新闻、研究、特殊利益和其他只有可在书籍、杂志和报纸提供
的信息的分布。
电子信息服务,是个人和商业信息的买卖。
电子社区服务包括体育、宗教、工会、扶轮社、协会和其它组织。
电子的“其它服务”包括不另外归类的那些服务的购买和销售。
也有内部电子商务系统,提供电子营销、客户服务、招聘、培训和更多。
电子商务经营的一个简单的定义是“电子的做生意”。那听起来很神秘,但是实际
上是准确的。电子商务的范围一直在扩大。电子商务包括执行互动,inter-business
过程。
电子商务可分为两种类型取决于一个组织主要涉及个人或其他业务(图13)。尽管
媒体的关注致力于BTC零售业,但产生最大收益且将继续如此下去的却是BTB部
分。
电子商务是不一样的电子商务——虽然这两个术语通常可以互换。在我们的治疗,
电子商务,是一个子集,表示在BTB中货物的买与卖。它有两个组成部分:传统的电
子数据交换(EDI)服务和全球互联网商务服务(图13-4)。
墙上写是传统EDI。随着互联网商务应用程序变得更加复杂,电子数据交换(EDI)
的局限性更加明显,因特网商务将增长更快的速度增长,迅速吞噬BTB形式的业务
电子交易(表13-1)。到2003年,因特网商务是EDI市场的四倍。
或基于因特网或基于EDI的BTB贸易的这两个不同领域不是相互排斥的,而是
事实上将合并。
14.1软件工程概述
世界范围内的商业活动就在其经营的基础上越来越依赖于软件。今天单是美国公
司就有1000亿行程序代码在使用中。这代码花费2万亿美元来创建,而一年花费300
亿美元来维护。典型的Fortune1,000公司维护3500万行代码。软件设计的质量和
商业服务的质量日益相联系。我们认为每天从预定服务、电话、自动柜员机和信用卡
委托应用所获得的便利是天经地义的。我们能认为这些便利是当然的,直到它们“崩
溃”或出了“故障”。软件工程师们开发了这些系统,他们应用来开发应用程序的工
程技能远不只是书写高质量的程序。软件工程师们需要的技能是调度和管理公司的数
据、软件、硬件和通信业务资产。这些计算机相关的资产现在占全美国商业投资的几
乎一半。
软件工程师是能对商业牟利起实际影响的熟练专业人员。单词专业人员在这里是
关键,软件开发众所周知地难以管理;软件项目惯例地超过预算和落后于预定计划。
计算机程序员因缺乏对商业的理解或兴趣,他们(所写的软件)是不切实际的。是专
业人员的软件工程师更可能按时且在预算内管理和交付有质量的项目。本文的一个目
标是向你挑战要求制定个人优秀的高标准:成为专业人员并与众不同。
本课向你介绍本书以及要在后面几章中更详尽地涉及的一些论题。本课的目标
是:(1)回顾你可能已经知道的知识,(2)给你一个讨论应用程序用的字汇表和(3)
介绍本文的一些论题。使用本课来了解基本定义并开始在脑海中构筑不同的软件工程
方法如何工作的一幅图案。你将在后面几课中学习细节。
软件工程是对软件的系统开发、运转、维护和引退。软件工程师(SE)脑海中有
一个在开发应用程序中使用的技能“工具箱”。作为信息系统的学生,你了解的是关
于工具箱的零碎知识,本文将向你展示如何一起使用各个工具,并将添加到你已经知
道的知识上。例如,你该已经了解数据流图(DFD)。DFD是很多工具中的一个,包括
诸如进程层次结构、进程依赖性和对象图之类的新图。没有一个工具是理想或完备的。
软件工程师因为了解这些工具的长处和不足而知道如何选择工具。尤其是,一个软件
工程师不局限于试图用单个工具强制适合于一切情况。
软件工程是重要的,因为它给你一个作为信息系统开发专业人员发展事业的基
础。在课程结束时,你将了解对机构中的信息系统进行分析、设计、程序设计、测试
和维护的各种方法。你将知道开发应用程序的各种选择,并且你将知道如何和何时从
它们中进行选择。你将能比较和对照方法论差异,并将知道支持各方法论的主要计算
机辅助软件工程(CASE)工具。最后,你将对软件工程的作用和它们在应用程序开发
中如何与项目管理人员一起工作有一个正确评价。下面这个对话可能在管理人员办公
室中不经意地听到:
咨询管理员:“行,玛丽,明天你开始在我们正在为ABC视频公司开发的租赁处
理应用程序方面工作。玛丽,你是项目管理员,准备好了吗?”
玛丽:“是的,我们的第一件工作是关于该应用程序查明更多的东西。然后,萨
姆和我将决定我们的开发方法和需要的文档。ABC的经理Vic愿意向我们提供我们需
要的东西。然后我们将完成可行性分析和…”
玛丽正在描述为现代软件工程师在开发基于计算机的应用程序中所采用的前面
几个步骤。软件是用一种或多种程序设计语言写的指令序列,它们构成了使某个商业
功能自动化的计算机应用程序。工程是在问题求解中工具和技术的使用。把两个单词
放在一起,软件工程是在开发基于计算机的应用程序中工具和技术的系统应用。
软件工程师是把广泛范围的应用开发知识应用于为机构系统地开发应用程序系
统的人。软件工程师习惯于把他们的工作考虑作为认真开发结构良好的计算机程序。
然而,随着活动范围的演化,系统分析员把系统分析作为一个任务来执行。现在,开
发应用程序的(技术)方法、工具和技术激增,软件工程师的工作已演化到现在包括
评价、选择和使用特定的系统方法对软件进行开发、运转、维护和引退。开发开始于
决定开发一个软件产品,而当交付产品时结束。运转是发生的日常处理。维护围绕为
修复错误、为业务变化做准备或使软件功效更高而对系统和程序的逻辑所做的改变。
引退是把当前的应用程序替换为提供该工作的某个其他方法,通常是一个新的应用程
序。
本文发布于:2022-11-24 19:11:54,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/90/13713.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |