专业英语翻译(1).doc_第1页
专业英语翻译(1).doc_第2页
专业英语翻译(1).doc_第3页
专业英语翻译(1).doc_第4页
专业英语翻译(1).doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1-2普适计算的挑战 逐渐放弃计算机的这种方式并不容易。这不是图形用户接口问题,而是对于机器和外接的整个上下文的使用的物理属性:键盘,重量和屏幕桌面的位置,等等。问题不在于“接口”。同样原因,也不在于上下文,这不是多媒体问题,源于任何能力方面特殊的缺乏来展示包含各类实时数据或是整合它们到应用软件程序。(确实,多媒体在意于与难看清的普适计算思想的相反方面)。困难在于创建一种新的人机关系,这种关系使计算机在摒弃兵大大优于原有计方式中占主导地位,因而人们能够在生活中随意使用。 对于普适计算的工作仍然处于初级阶段。目前大多数工作仍致力于无线网络设备。因为普适计算预想数以百计的无线计算机坐落于每一个办公室,它需要庞大的无线带宽。例如,我在一个非常大有300个员工一起工作的地方,假如一个员工有100带宽设备,每人需要256kibt每秒,我们用7.5G总带宽在一个独立的建筑物内。就目前的带宽技术这是很难实现的预想。 第二个困难是基础设备的手动操作。在过去20年的网络发展伴随这样一个假想,一个机器的名字,和它的地址,是一样的。然而,一旦一台计算机能从一个网络到另一个网络,这个假想就错了。现有的协议如TCP/IP和OSI并不是为处理不改变机器可移动性准备的。一个调查委员会目前正致力于增加或者代替手动操作现有协议。 第三个困难是基础设施的窗口系统。大多数窗口系统,如那些苹果或DOS,不能通过网络打开远程窗口。尽管窗口系统是为了网络设计的,如X,已经成为人们可移动性假想的一部分。举例来说,它使得奖一个运行着的应用程序从一个屏幕移动到另一个是非常困难的,然后这恰恰是一个人走出他们的办公室去参加一个会议时所需要的。这将是第一阶段无处不在的计算:来对比,部署,并向环境计算表格、信笺、或者板子学习。这只是第一阶段,因为它几乎不可能实现最优的无形化。(后面的阶段也待定)。但它是最基本的开始方向,对于计算机科学,远离机器的影响,并回归人们他或她的日常生活,娱乐,还有家庭生活。1-3使普适计算成为中间空间随着普适计算的应用,我们预想一个计算成为环境一部分的未来。通过我们与计算机的形式(工作站,个人计算机,个人数字处理,游戏玩家)的关系在这个新的计算的世界算法将只占据一个小的适当的位置,我们和普适计算的关系与我们当前和计算机的关系有着根本上的不同。当算法成为环境的部分时,大多数人机相互影响将是隐式的,并且它不得不把物理空间考虑在内。物理空间很少关系到当前人机的相互影响,但是就像计算机的设备成为家具,墙,和衣服的部分,物理空间成为一个必要考虑。首先,多个人可占据一个空间,其次,空间内个体做事而不是与计算机相互作用:来来往往,并且可能更显著,个体之间相互作用不是与计算机之间。最后,物理空间提供一系列空间:个体把空间与事件和经常发生的活动联系在一起。人与普适计算之间浮现的关系有时被理想化为一种“聪明空间”:这种无缝的人,计算和物理现实的集成,这个主题集成与一种特别的聪明空间,这种“中间的空间”,空间的理解和参与多人相互作用就在其中。在与中间空间有联系的环境中通过提供信息管理将拓展人类能力。这种通过记录空间内的相互影响和从外界输入信息将被创造出来。个体与空间明确地相互作用目的是恢复和分析它包含的信息,并且隐含地通过它们言语方式和手势被加到环境中。中间空间视觉的实现将需要在后台技术(设备怎样协调它们的活动)和界面技术(空间怎样送给人和空间怎样处理多人交互)方面的发展。这个主题探究方法在它们区域的挑战,检查后台设备或显示描述和环境维持的需要,还有暗喻和理解自然的人与人相互交谈的界面问题。2-2人们用计算机系统干什么?作为一个用户,你应该关注计算机系统的能力,强度,和限度。你应该对你所使用的命令有更好的理解。当你所用的程序运行时你应该明白发生了什么。你将对你的计算机设备和应用程序有个前瞻性的决定。你将更清楚的明白什么是操作系统,怎样更有效的利用它,怎么样使它对你更有利。你要明白什么时候手工做事更好,什么时候用计算机做事更好。你要明白什么是“联机”,什么是对你有益的。你要提高你和系统分析员,程序员,和别的计算机专家的交流能力。作为一个程序员,它允许你写更好的程序。你能应用机器的特性去使你的程序运行更有效。举例来讲,为变量选择正确的数据形式能使工作效果更明显有效的。一会你就会明白为什么会这样,以及怎么样做这么正确的决定。许多的计算机在做整数计算时都会出错,如果整数超出了规定的范围,而且不会警告用户出错了。你将学会这个怎么能发生,而且要确保你的程序运行时能得到正确结果。你将会发现一些计算机在处理巢式循环时更快的,如果标志变量是反的。一个更惊奇的想法,或许是你将明白为什么这是对的。你将会明白为什么程序写作用像C或Pascal等汇编语言时运行经常要比那些用翻译语言BASIC语言要快很多。作为一个程序分析员,你将希望在购买时为你自己或你的组织明确说明计算机系统。你会购买那些适合应用需求的计算机。为了比较不同的选择和匹配用户的需求你要能读或明白技术的含义。这本书将教你你需要去知道的购买系统的技巧。你要明白精简指令集和复杂指令集之间的优缺点。你要知道什么硬件适合你的组织文件,那些要求联系不同的计算机,和那些特殊系统的速度和型号的限制。你要比较Windows和UNIX之间的特性及决定那个是对你重要的。你要学会计算机销售人员的行话以及判断销售声明是否有效。你要站在一个更好的位置去决定你的计算机是否是一个好系统对一个特殊工作而言,或者是否不同的系统是更恰当的。或许拥有Alpha CPU的工作站是更适合你的应用比一个拥有奔腾的个人计算机。你将更好的准备去分析更好的路径方法去提供恰当的设备去迎合用户的需要。在这技术日新月异的纪元里,你可能区别那些不能显著改进你的工作的过时的技术及那些表面真正有必要替换其他设备的主要技术的进展。作为一个系统管理员,你的工作是去扩大你的系统的效率。你需要去明白你系统完成的报告和去用报告中的信息去改变系统将使得系统运行各更好的。你需要知道什么时候传统的资源被占领,去明确恰当的选择。你要明确和确认操作系统的参数界限,设置文件系统,提供系统资源,和完成别的许多系统任务。大型系统的配置是非常具有挑战的。这篇文章将让你明白操作系统工具是非常有潜力的去让系统更有效的。简而言之,当你读完这本书,你会明白什么是硬件和软件,数据和程序在计算机系统里是怎么联系的。你将会明白计算机硬件和软件怎么构成计算机系统以及它们在系统里都担当什么样的角色。你将会有一个更好的了解计算机里面发生了什么当你作为一个用户与计算机交流时。你将会写作程序更有效率的。你将会明白计算机系统不同构件的性能以及去确定计算机系统用一个有用的途径。你将会明白你作为一个系统管理员的选择。在这技术日新月异的纪元里,计算机的基本风格停留在一个规定的基本原理里以至于在过去的50年里改变的非常少。了解了计算机的结构可能使你跟上技术的变化以及了解这些变化促成的改进和这些变化所能满足的要求。这种形式的理解是在非常基础的作为有能力和成功的系统分析员,系统管理员,或程序员的基础上的。为了驾驶汽车也许没有必要去了解汽车发动机的工作情况,但是你敢说当一个第一流的赛车手透彻了解他的汽车发动机就能用它获取比赛的胜利。2-3性能设计随着计算机系统的性能和容量一年又一年显著地持续提升,计算机系统的价格也在显著地持续下降。你可以花不到1000美元在当地的货仓里买到一个装备有10年前IBM主机的个人计算机。包括微处理器、主存和一些其他芯片在内,你在那台个人计算机里可以得到大约100,000,000晶体管。花这么少钱你买不到100,000,000别的任何东西。100,000,000片的厕纸也将花费超过100,000美元。因此说,我们实际上拥有“免费”的计算机资源。而且这种持续的技术革新为高度复杂而又强大的应用程序的发展提供条件。举例来说,需要今天的基于微处理器的系统的强大支持的桌面应用程序包括:l 图像处理l 语音识别l 电视会议l 多媒体编写l 文件的声音和录像注释像模拟系统一样,工作台系统支持高度精细的工程和科学上的应用程序,也具有把工作组原理应用到图像和视频应用程序中的能力。进一步讲,商业越来越多的依靠强大的服务器去处理事务和进行数据库处理,也用来支持庞大的客户-服务器网络,该网络在不久前取代了主机型计算机中心。从计算机组织及结构的观点来看,所有这些令人惊讶的是,一方面在于今天所成就的计算机方面的奇迹实际上差不多是五十年前IAS计算机所取得的。而另一方面,从现有材料中获取最后一丁点儿信封能方面潜力的技术已大大复杂了。在这本书中这些评论作为引言的一个指导原则。在我们通过计算机的各种各样的元素和组成部分前进时,有两个目标。第一,这本书解释了在考虑范围内的各个领域的基本功能。第二,这本书探索那些可以实现最大性能的技术要求。这部分的其余部分中,我们强调一些在性能设计的需求下的推动因素。微处理器速度处理器芯片制造商对速度的不断追求使得Pentium或Power PC拥有惊人的能力。这些机器的发展不断表现出所谓的摩尔定律。英特尔的主席高登摩尔在二十世纪六十年代中期观察指出,通过每年收缩硅中构成晶体管的电路的细线大约10%的尺寸,芯片制造商每三年就可以推出新一代的拥有四倍晶体管的芯片。对于存储器芯片,基于计算机主存的基本技术,动态随机存储器每三年扩充四倍容量。在位处理器方面,自从英特尔在1979年推出其X86系列以来,从减少电路间的距离而得到新增加的电路以及速度的提高已经获得每三年改善性能四至五倍。但是微处理器实际的速度将无法实现其潜力,除非它提供形成电脑指令的稳定的工作流。任何对路径畅通的破坏削减了处理器的能力。因此,虽然芯片制造商一直在忙于学习如何制造更大的芯片和更大的密度,处理器设计者必须拿出更加详细的技术。在技术建设到当代处理器是:l 分支预测:处理器在展望中预测,其中软件和分支机构,或指令群体,很可能在下一个处理。如果猜测正确的处理器的大部分时间,它可以正确的指令预取和缓冲,从而使处理器是忙碌。更复杂的例子,这一战略预测不仅仅是分行,但在未来多个分支机构领先。因此,分支预测增加了大量可用于处理器来执行的工作。l 数据流分析:该处理器分析这些指示是依赖于对方的结果,或数据,建立了一个优化的时间表指示。事实上,指示预定执行的时候,独立于原始程序秩序。这可以防止不必要的延误。l 推断执行:使用分支预测和数据流分析,一些处理器推测执行指示的实际提前出 现在程序执行,将结果在临时地点。这使得处理器保持其执行引擎忙碌可能执行的指示,很可能是必要的。 这些和其他一些先进的技术是必要的绝对权力的处理器。他们使人们有可能利用原材料高速处理器。性能平衡 虽然处理器的功耗已提前在比赛惊人的速度,其他的重要组成部分的计算机有没有跟上。其结果是需要寻求业绩的平衡:一个调整的组织和架构,以弥补之间的不匹配的能力的各个组成部分。 任何地方的问题所造成的不匹配更关键比之间的接口处理器和主存储器。虽然处理器速度和内存容量的迅速增长,加快了数据可以主内存之间传输和处理器已经落后严重。之间的接口处理器和主内存是最关键的通路在整个计算机,因为它是负责进行不断流动的程序指令和数据的内存芯片和处理器。如果内存或途径未能跟上处理器的坚持要求,该处理器在一个摊位等待状态,和宝贵的处理时间的损失。这些趋势的影响在图2.1生动的表现出来 。主存储器的数量需要的是增长,但DRAM的密度上升速度更快。最终的结果是,平均而言, DRAM在每个系统的数量正在下降。图中实心的黑线表明,固定大小的内存,DRAM的数量,是需要的下降的。但是,这已经影响了传输速率,因为用较少的DRAM ,有较少的机会并行数据传输。阴影带显示,对某一特定类型的系统,主存大小已经慢慢增加,而DRAM的数量有所下降。 系统结构可以解决这个问题有许多方式,所有这些都反映了当代计算机设计。一些例子:l 增加在同一时间处理的位数,通过使用全总线数据传输路径,使内存“更宽” ,而不是“更深” 。l 改变DRAM的接口,使之更有效率,包括高速缓存或其他DRAM芯片的缓冲计划。 减少记忆体存取频率纳入日益复杂和高效率的高速缓存结构之间的处理器和主存储器。这包括将一个或多个缓存的处理器芯片,以及一个接近处理器芯片的片外缓存。l 增加互连带宽的处理器和内存之间使用高速巴士和使用等级巴士缓冲区和结构数据流。另一个设计领域的重点是处理I / O设备。随着电脑更快更精干,更复杂的应用软件的开发,支持使用外设与密集的I / O要求。表2.1给出了一些典型的例子,在外围设备上使用的个人计算机和工作站。这些设备创造了巨大的数据吞吐量的需求。虽然目前这一代的处理器能处理的数据抽取了这些设备,仍然存在着这个问题得到的数据之间移动处理器和外设。战略这里包括高速缓存和缓冲计划以及使用高速互连总线和更详细的结构巴士。此外,使用多处理器配置可以帮助满足的I/O要求。在这所有的关键是平衡。设计者都不断努力使吞吐量和加工要求的处理器组成,主记忆体,I/O设备,以及互连结构平衡。这设计必须不断地重新考虑,以应付不断变化的两个因素: 1.性能的各个技术领域(处理器,公共汽车,内存,外设)的变化速率因内容元素而大不相同。 2.新的应用和新的周边设备的不断变化,改变了系统需求方面的典型的指令轮廓和数据访问模式。因此,计算机设计是一个不断演变的艺术形式。这本书试图呈现这种艺术形式的基础,并且呈现对这艺术现代状况的全面观察。3-2精简指令集计算机的定义 自1980年精简指令集计算机被提出的八年时间里,它经历了一个不平凡的发展。有二十个工业公司卖,制造和发展精简类型的商业产品,对精简指令计算机体系的积极研究和发展在全世界的学术界被指导着。有关RISC的东西基本通过文章和报道传播,在书籍,专著和书的章节都能看到他的踪迹。RISC在数字计算机上实现是趋向不同的外延。在计算机设计上对立的趋势是所谓的复杂指令集计算机。CISC系统一般是微程序方式赋予高质量的机器语言指令,寻址方式,指令格式,许多有效的指令长度。这些多菜单的操作导致在系统CPU中配有很复杂的控制装置。在详细讨论RISC系统原理时,看几个CISC系统的例子是有益的,在这之后,RISC的属性就能容易点被认知,CISC原理将在后来的说明(后面段落中RISC的定义紧跟在后)。考虑到流水线操作,你能看如果所有指令用相同的时间周期去取和执行。如所有上面的指令用一个时钟周期,那么以现有的工艺操作将会很快。设计者所以就要完成统一时钟周期,取和执行操作,为指令在现行计算机中实现。让所有的指令在同一个长度,能使一个单周期取指达到。标准指令长度必须和计算机系统基本字长相等,这是和在系统总线(连接存储器(程序存储位置)和CPU的)条数相等。在任何取指周期,一个完整的指令将被传送到CPU中。举个例子,如果基本字长是32位,并且系统总线中的数据部分也是32位,那么标准指令长度必须是32位。使所有指令统一执行比达到统一取指更难。一些指令执行可能涉及到在CPU寄存器中简单的逻辑操作,并且没有任何问题的在一个简单的CPU时钟周期里被执行。另外一些指令可能涉及到存储器访问(装载或存储到存储器,取数据),或多周期指令,这些可能不能在一个恶单周期中执行,为了达到较好的效果,设计者必须完成一个情况(那就是大部分的特征指令能在一个恶单周期中被执行)理想地,我们会想到流水型和统一指令形式,那就是对所有的指令取指和执行都占用相同的时间爱你(愿望的一个单周期)。这是第一个并且最重要的原理中的研究中基本的一个。所有指令从存储器到CPU(它们在这里执行)在一个稳定的流.每个指令以相同的步伐被执行,并且没有一个指令需要等待,CPU一直保持着忙碌状态。被争论那么早,一些有效条件来达到这种流水线操作是:(a) 指令标准固定长度和计算机字长,数据总线宽度相同。(b) 所有指令标准执行时间应该在单CPU周期之内。有人会提出下面这样的疑问:为什么不把两个指令压缩到一个简单的字中呢,通过数据总线进入CPU中?这好像是增加了速度。在另一个方面,在大多数现代计算机中,标准字长是32位,一个16位标准指令可能不实用。当然,许多可考虑的单操作数指令可能是16位的。现代计算机涉及的走向是拥有3操作数的指令。这就允许有效的操作编码能有不能的原操作数和一个不同的目的操作数在一个单指令上(有两个操作数的格式,两个指令可能是必要的)。一个32位形式对于3操作数指令是需要的。这也需要允许以个大范围位立即数和地址替换。既然使指令只有半字(16位)是不合实际的,它们需要一个整字(32位)长。使指令长为16位和32位和使所有指令统一长度是相违背的,可能不允许在任何时候保持一个流水态。使所有的指令统一长度不是在本质上充分地确定对于人设情况下流水线操作。这也本质的需要相对简单译码和控制系统。一个复杂的控制装置将在处理控制信号时会引入多余的延迟,这最终会趋向影响所有指令期望流水线和统一操作。一个明显减少控制装置复杂度方法应该是提供少数选择精简菜单指令,数据格式和寻址方式。减少可操作的数量将简化涉及及加快系统译码操作,因为系统只需识别少得多的项。既然只有少数的指令和寻址方式,则控制装置只需更少的逻辑电路去实现它们。对于一个精简菜单,控制装置将变得更简单及设计,制造,测试费用少。精简指令集是RISC最初提名者提出的关键点。精简到什么程度?这个问题没有规范的回答。你可以通过与CISC菜单比较来检查现存的RISC类型系统(例如VAX拥有304条指令,16种寻址方式及超过10种不同指令长度,基于大多数现存系统为RISC菜单可以适应下面的约束:指令的数目,少于或等于128,寻址方式的数目,少于或等于4,指令格式的数目,少于或等于4.认识到希望所有的志龙都在一个单周期内执行完是不现实的,因此,人们可以要求至少有75%的指令应该在一个周期内执行完。什么指令必须被选到精简指令集中去呢?明显的回答是经常被用到的。早期研究提出相对少比例的指令(10%20%)占据80%90%执行时间在基准程序扩展区。大量执行的指令是数据转移,算术和逻辑操作。另一个选择准则是是否能支持高级语言。这是一个重要的考虑方面,能缩小基本机器设计和高级语言设计的差距,尤其因为超过90%的程序的用高级语言写的。换句话说,必须提供一般支持高级语言特征(例如支持过程处理,参数传递和处理组织),相对于不支持高级语言的(例如pascal或FORTRAN)。我们应该回头来讨论这些重要体系在后面的章节。在之前就提到,阻止一个指令在一个单周期执行的原因中的一个是访问存储器去取操作数或存储结果的访存的可能需要。结论很明显我们必须尽可能地最小化在执行期间访存指令的次数。这考虑使后来的RISC原理向前发展,适应所有现存的系统:(a) 在执行里,只有装载和存储指令能访问存储器。(b) 除了装载和存储外,在CPU内的所有指令都是从寄存器到寄存器。大多数的CISC系统是微程序的,由于微程序提供给设计者的灵活性。不同指令有不同的微例行程序。这就是说每条指令将占用不同周期去执行。这是和流水线和统一原则相反的。这样做能够同过硬布线来实现,这个也快。所以RISC类型系统必须用硬布线控制,但当每条指令都有一个一对一的单一微指令使得这个恶规则成一个类外。每一个微例行程序都由一个单控制语句组成。这种一种设计可能与使用硬布线控制一样快和高效,而且也让设计者从微编程中得到好处。未了使大多数像寄存器装置将允许中间结果(在后来的操作中作为操作数)的临时存储在CPU寄存器文件中。这最终就通过减少程序中装载和存储操作的次数,提高运行时间来减少访问存储器的次数。最小化的32个通用CPU寄存器,事实上被大多数的工业RISC设计者采用的。RISC定义基本点的概括(在这部分讨论的)在表3.1中给出。它不是一个严格的被所有人认同的定义。事实上,一些系统,被称为RISC类型,但违反一些表3.1中的要点。这以上的要点应该被视为一个准则,解释RISC的本质。不严格的说,一个系统满足大多数这些要点,可以被接受为RISC体系。自然的,要点满足的越多,那它就更接近名副其实的RISC体系。为什么在计算机设计中RISC的研究在相对短的时间里就抓住这个可考虑的部分?什么是它的优点和什么是它们的不足?这些问题将在下一章节提到。这章剩下的部分将致力于采纳RISC体系的设计实践的讨论,来看RISC发展的历史。4-2操作系统结构这个机器指令方法从用户方法到核心方法(也是作为管理方法所周知),依次控制操作系统,(大多数CPU有两种方法:核心态,对于操作系统,期中所有的指令都是允许的;用户态:对于用户程序,期中I/O和某些其他的指令是允许的。) 操作系统之后仔细检查指令的规范,以便去确定系统指令已经执行了。接下来,操作系统索引一个表格,这个表格控制k位置指向执行系统指令k步骤。这项操作,认出然后被调出服务程序。最后,系统指令结束,控制权返回给用户指令。 这个体系表明了操作系统基本的结构:1. 求助于服务程序的主要程序。2. 一组执行系统指令的服务程序。3. 一组帮助服务程序的使用程序。 在这种模型中,对于每个系统指令有一个服务指令处理它。使用程序执行的结果提供给数个服务指令,例如,从用户程序提取数据。程序的分享进入到第三层。4-2-2虚拟机最初版本的OS/360都是严格批处理系统。尽管如此,许多360的用户希望系统有分时性,因此IBM内外的不同群体,决定增加分时系统。 IBM公司的官方分时系统, TSS/360 ,到后期系统变得又大又慢并不适用于其它计算机。在消耗了约50万美元后,最终放弃了它的发展。但是一组在马萨诸塞州剑桥的IBM科学中心制作了一个能被IBM公司最终接受的,完全不同的系统,现已广泛使用。这个系统最初命名为CP / CMS,现在称为VM/370,是基于一个细微的区别:一个是分时系统提供和一个是比裸机拥有更方便界面的扩展机。 VM/370的本质是完全分开这两种职能。系统的核心是指虚拟机监视器在运行硬件和多道程序设计时是否提供不是一个,而是多个虚拟机的下一层,如图4.3 。然而,不同于其他的操作系统,这些虚拟机都没有延长设备,档案和其他器件。相反,它们在硬件上异常相似,包括其内核/用户模式, I / O接口,中断设备,以及其他一切真实机器。由于每个虚拟机在硬件上是相同的,每一个都可以在在硬件上运行所有的操作系统。不同的虚拟机通常可以运行不同的操作系统。有些可以运行OS/360系列系统的其中一个进行批处理作业,而其他的可以运行一个单用户,CMS互动系统的分时用户。当CMS程序执行一次系统调用是, 此调用便陷入到操作系统自己拥有的虚拟机中, 而不是陷入到VM/370中,这就像是它自己在一台实际的机器中(而不是在虚拟机中)运行程序时发生的情况一样。CMS然后会向正常的硬件输入输出签发读虚拟磁盘或需要执行调用的指令。这些输入输出指令陷入VM/370中来虚拟实际的硬盘的操作。 提供分离的可多任务编程的功能和虚拟机, 每个部分变得更简单,灵活和易维护。4-2-3 客户-服务器模式VM/370通过简化的把很大部分传统操作系统编码移到高层,CMS。然而,VM/370本身是个复杂的程序,因为模拟一系列的370虚拟机的过程不简单(尤其是要合理有效的利用时)现代的操作系统的趋势是把编码移到更高层的位置,并且从操作系统中移出尽可能多的编码使内核更小。通常的方法是在用户程序中补充系统的大部分功能。请求服务时, 如读取文件,用户进程(客户进程)会发送给服务器进程 ,响应后发送回结果。这个模型中,所有内核要做的就是协调用户进程和服务器进程的交互。把操作系统分为不同部分,每部分处理一方面,如文件服务,进程服务,终止服务或内存服务,每部分够小够灵活方便。而且所有的服务器在用户模式下而不是内核模式下运行,不直接对硬盘操作。结果当文件服务器出现错误时,可能会崩溃,但不会使整个机器瘫痪。另一个优点是客户端服务器模型,其适应性使用分布式系统中。如果用户端与服务器通过发送消息来进行交流,客户端不需要知道是否由在他的机器里受本地地操控,或者它是否通过网络发送到在远程计算机上的服务器。至于客户端而言,同样的事情发生在这两种情况:发送请求和答复回来。 图上描绘的是只处理从客户机到服务器发送消息和回答的内核,是不完全能被实现的。一些操作系统的功能(如载入命令到物理的I / O设备表)这样做从用户空间的程序是困难的,甚至是不可能的。有两种方式处理这一问题。一个方法是有一些重要的服务器程序(例如, I / O设备驱动程序)实际运行在内核,伴随着完整地从所有的硬件存取,但仍与其他程序使用正常的消息机制。另一种方式是建立一个最低限度机制进入内核,但战略性的决定会从用户空间的服务器上脱离。例如,内核可能会意识到,把信息传送到某些特殊的地址就意味着提取消息目录和把它载入到磁盘的I / O设备登记表,启动磁盘读取。在这个例子中,内核甚至不检查字节的信息,以了解他们是否是有效的或有意义的,它只会盲目地复制到磁盘的设备登记表。 (显然,一些限制此类消息的计划只有授权进程必须使用。)机制和政策的分裂是一个重要的概念,它将一次又一次地出现在作业系统的各种情况中。4-4 Linux概述Linux and UNIX 最初Linux是为支持Intel个人电脑而特别设计的。Linux最开始是一个计算机科学的个人项目,这个项目是赫尔辛基大学名叫Linus Torvarled的学生的。当时学生们正在使用一个名叫Minix的程序。这个程序突出了不同的UNIX特点。Minix是有Andrew Tannebaum教授创造的,并在因特网上被广泛的分配给世界各地的学生使用。Linux的目的是为Minix用户创造一个有效的UNIX的PC版本。Linus把它命名为Linux,在1991年他发行的0.11版的Linux在因特网上广泛地传播。几年之后,其它编程人员对它进行改进和补充,合并了许多在标准UNIX系统中存在的应用和特点。所有主要的窗口管理都添加了硬件接口在Linux上。Linux有所有的因特网实用软件,如FTP文件传输支持软件,Web浏览器以及PPP远程连接。它也有一整套编程软件,如C+编译程序和调试程序。综合所有特点,Linux操作系统是轻小稳定快速的系统。在最小模式下,Linux能够在2MB的内存上快速运行。尽管Linux在因特网的自由开放环境下得到发展,但它仍然依赖于正式的UNIX标准。由于过去几十年里UNIX版本增多,IEEE为美国国家标准组织制定了一个独立的UNIX标准。这个新的UNIX ANSI标准被叫做计算机环境的可移植操作系统界面。这个标准定义了像UNIX这样的系统应该如何操作,确定了如系统调用和界面这样的细节问题。POSIX定义了一个所有UNIX版本必须依赖的全球化标准,当前大多数受欢迎的UNIX版本都是以POSIX为标准的。LINUX开始是根据POSIX标准被发展起来的。LINUX也依赖于LINUX文件系统标准,它规定了在LINUX文件结构下,文件的存储单元和使用方法。更多详情请看/fhs5-2实现这一惊人的增长速度将是极为困难的,除非计算风格进化为像这样一个情形,很大一部分的用户可以使用电脑而不用故意去考虑它,思维方式类似开车。我们大多数人可以租汽车,车程在几分钟即使我们不熟悉车的特定原理。我们要做的是找到主要的控制,确保有汽油,并打开点火。如果我们有培训的汽车修理工,才可以使用汽车,或者,如果每次我们想驱动汽车时我们不得不穿上我们的护目镜和曲柄轴,就不会有许多汽车在道路上被我们今天所使用。感谢使之成为可能的工程师,我们不需要关心汽车的工作原理是什么。相反,我们的精力可用于决定如何从一个地方到另一个地方。工程师的责任是生产汽车令我们满意。我们普通百姓,只要使用他们作为运输工具。不幸的是,使用计算机时并非如此,。乔尔比恩鲍姆(副总裁和研究经理的惠普实验室在加利福尼亚州帕洛阿尔托)曾指出, “在美国现在有比人更多的计算机,微处理器现在生产速度可能超过每天100万台。 “很显然,大多数潜在的非专业电脑用户专业的愿望不是成为计算机科学家和程序员,计算机作用为能使他们的工作完成的工具。然而,我们大多数的软件仍然是设计成如果用户是专业的程序员。有历史的原因,不重视人的方便,直到近年来计算机科学家,在过去的三十年里,都集中在机械效率。计算成本高,人力成本相对较低。早年的计算,它是有道理的,效率优先于易于编程。完全人性化机器是不太合理的幻想。从某种意义上说,被直接获取的是一个程序。这一高级语言发展目的是必须能够验证使程序能得到充分执行的规范(在申请方面给一些必要的规范的描述) 。从这个角度看,那么它也许是更适当说明发展模式的规划,其中一个范例必须被理解为一套机制或准则,告诉我们如何使用这些机制。程序提供了第一抽象机制以外的水平和宏汇编语言。程序中发挥着重要作用的方法,逐步求精地介绍了学校的结构化编程。逐步求精使得对复杂算法的说明逐渐的越来越详细。计划核查的数额确定是否执行了算法的一种编程语言符合其规范中给出的数字逻辑条件。在人所共知的Hoare逻辑基础上的验证方法(该逻辑通过引入生命及建立满足预置及后置的所有特定过程)是与结构编程学派相关的。其他编程语言发展的研究,目的是提供方法,以更直接地捕捉数学逻辑意义上的一个程序。这些事态发展导致了一些功能的编程语言(例如ML语言,米兰达)和逻辑编程语言,其中Prolog语言是最有名的。Lisp语言的变成语言可能也会在这方面被视为一种功能性语言。面向对象程序设计的历史可追溯到对抽象数据的关注,这些数据在处理算法设计复杂的数据结构时是必须的。对象的概念,最初引进的是西谬拉(达尔和尼高,1966年)已大大影响了许多后来的设计语言,(例如CLU,调制和ADA)。第一个著名的面向对象语言Smalltalk ,原先制定了计划的Dynabook,一种机器,现在是我们熟悉的膝上电脑或笔记本电脑。在Smalltalk,数据方面的物体隐藏已结合的机制,集成,允许对代码的重复使用定义的行为对象。Smalltlak对象的概念隐藏的主要动机,作为一种机制来管理复杂的图形用户界面,现在已经证明了自身价值。因为它遵循了大多数厂商的图形用户界面和视窗系统。从历史的角度来总结,采用面向对象的方法可被视为一个自然延伸至前的事态发展的编程实践中,出于需要以应付复杂的新的应用。历史不会就此打住。后来的注释以艾菲尔为代表的并在一定程度上的发展的C+,更清楚的反映了关注抽象和核查,这本质上是属于支持这些语言的抽象数据类型的概念。5-3可视化编程5-3-1为什么“可视化编程”?试图编程容易,当然,这并不是新的。多年来,人们一直在努力设计或改进易于使用的编程语言。然而,语

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论