现代操作系统(第三版中文版)

所需积分/C币:47 2014-07-01 21:18:20 27.46MB PDF
收藏 收藏
举报

《现代操作系统(原书第3版)》是操作系统领域的经典之作,与第2版相比,增加了关于Linux、Windows Vista和Symbian操作系统的详细介绍。书中集中讨论了操作系统的基本原理,包括进程、线程、存储管理、文件系统、输入/输出、死锁等,同时还包含了有关计算机安全、多媒体操作系统、掌上计算机操作系统、微内核、多核处理机上的虚拟机以及操作系统设计等方面的内容。此外,还在第2版的基础上对部分习题进行了增删,更有助于读者学习和对知识的理解及掌握。 《现代操作系统(原书第3版)》适合作为高等院校计算机专业操作系统课程教材,也是设计、开发操作系统的重要参考书。
我们将研究许多关于抽象的内容,因为这是理解操作系统的关键。 上述观点是非常重要的,所以值得用不同的表述语句来次叙述。怀着对设计 Jacinto$h机器的工业 设计师的尊重,作者这里不得不说,硬件是丑陋的 真实的处理器、内存条、磁盘和共他装置都是非常 应用程序 复杂的,对于那些为使用某个硬件而不得不编写软 件的人们而言,他们使用的是困难、可怕、特殊和 鸟幽嶝」 不一致的接口。有时这是由于需要兼容旧的硬件, 美丽接口 有时是为了节省成本,但是,有时硬件设计师们并 操作系统 没有意识到(或在意)他们给软件设计带来了多大 的麻烦。操作系统的一个主要任务是隐藏硬件,呈 现给程序(以及程序员)良好、清晰、优雅、一致 丑陋接冂 的抽象。如图12所示,操作系统将丑陋转变为美丽。 硬件 需要指出,操作系统的实际客户是应用程序 (当然是通过应用程序员)。它们直接与操作系统及图12操作系统将丑陋的硬件转变为美丽的抽象 其抽象打交道。相反,最终用户与用户接口所提供的抽象打交道,或者是命令行she者是图形接口。 而用户接口的抽象可以与操作系统提供的抽象类似,但也不总是这样。为了更清晰地说明这一点,请读 者考虑普通的 Window桌面以及面向行的命令提示符。两者都是运行在 Window操作系统上的程序,并 使用了 Windows提供的抽象,但是它们提供了非常不同的用户接口。类似地,运行〔nome或者KDE的 Linux用户与直接在 X Window系统(面向文本)顶部上作的 Linux用户肴到的是非常不同的界面,但是 在这两种情形中,操作系统下面的抽象是相同的。 在书中,我们将具体讨论提供给应用程序的抽象,不过很少涉及用户界面。尽管用户界面是一个 巨大和重要的课题,但是它们毕竞只和操作系统的外围相关。 1.1.2作为资源管理者的操作系统 把操作系统看作是向应用程序提供基本抽象的概念,是一种自顶向下的观点。按照另一种自底向上 的观点,操作系统则用来管理一个复杂系统的各个部分。现代计算机包含处理器、存储器、时钟、磁盘 鼠标、网络接口、打印机以及许多其他设备。从这个角度看,操作系统的任务是在相互竞争的程序之间 有序地控制对处理器、存储器以及其他1O接口设备的分配 坝代操作系统允许同时运行多道程序。假设在一台计算机上运行的三个程序试图同时在同一台打印 机上输出计算结果,那么开始的几行可能是程序1的输出,接着几行是程序2的输出,然后又是程序3的 输出等,最终结果将是一团糟。采用将打印结果送到磁盘上缓冲区的方法,操作系统可以把潜在的混乱 有序化。在一个程序结束后,操作系统可以将暂存在磁盘上的文件送到打印机输出,同时其他程序可以 继续产生更多的输出结果,很明显,这些程序的输出还没有真止送至打印机。 当一个计算机(或网络)有多个用户时,管理和保护存储器、IO设备以及其他资源的需求变得强 烈起来,因为用户间可能会互相T扰。另外,用户通常不仅共享硬件,还要共享信息(文件、数据库等)。 简而言之,操作系统的这一种观点认为,操作系统的主要任务是记录哪个程序在使用什么资源,对资源 请求进行分配,评估使用代价,并且为不同的程序和用户调解互相冲突的资源请求。 资源管理包括用以下两种不同方式实现多路复用(共享)资源:在时间上复用和在空间上复用。当 种资源在时间上复用时,不同的程序彧用户轮流使用它。先是第一个获得资源的使用,然后下一个, 以此类推。例如,若在系统中只有一个CPU,而多个程序需要在该CPU上运行,操作系统则首先把该 CPU分配给某一个程序,在它运行了足够长的时间之后,另一个程序得到cPU,然后是下一个,如此进 行下去,最终,轮到第一个程序再次运行。至于资源是如何实现时间复用的一谁应该是下一个以及运 行多长时间等——则是操作系统的任务。还有一个有关时间复用的例子是打印机的共享。当多个打印作 业在一台打印机上排队等待打印时,必须决定将轮到打印的是哪个作业。 另一类复用是空间复用。每个客户都得到资源的一部分,从而取代了客户排队。例如,通常在若干 运行程序之间分割内存,这样每一个运行程序都可同时入住内存(例如,为了轮流使用CPU)。假设有 掌Ⅰ幸 足够的内你可以存放多个程序,那么在内存中同时放若干个程序的效率,比把所有内存都分给一个程 序的效率要高得多.特别足,如東·^程序只需要整个内存的一小部分时,结果更是这样。当然,如此 的做法会引起公平,保护笭题,这冇赖于操作系绕解决它们。有关间复用的其他资源还随盘。在 许多系统,一个黴盘同时为许多用户保存文件。分配磁迎空间并记录谁正在使用哪个磁盘块,是操作 系统资源管理的典型任务。 1.2操作系统的历史 操作系统巳经存在许多年了。在下面的小节中,我们将简要地分析一些操作系统历史上的重要之处。 操作系统与共所运行的计算杋休系结柯的联系非常密切。我们将分柝连续儿代的计算机,看看它们的操 作系统是什么样的。把操作糸统的分代咴射到计算机的分代上有些粗糙,但是这样做确实有某些作用, 岙町还没冇共他奷办法能够说清楚操作系统的历史 下面给出的有关操作系统的发展主要是按照时间线索叙述的,H在时间上是有重叠的。每个发展并 不是等到先前一和发展完成后才开始。冇在着大呈的重叠,不用说还存在有不少假的廾始相終结时间。 请读者把这里的文宇叙述看成是种指引,而不是盖棺论定 第一台真正的数计算机是英武数学家 Charles babbage(1792-1871)设计的。尽答 Sabbag花 ∫他儿乎一生的时同和财产,试图建造他的“分枥机”,但是他始终札能让机器正常的运转,因为它是 一台纯机械的数字讣算机,他所在时代的技术不能生产出他所需要的高精度轮子、齿轮和轮牙。亳无疑 间,这台分析机没冇操作系统 有一段有趣的史花絮, Babbage认识到他的分析机需要软件,所以他底佣了个名为Ada Lovelace的年轻女女,作为世界上笫个程序员,而她是苹名的英国诗人 Lord byron的女儿。程序设计 语言Ada则是以煺命名的。 121第一代(1945~1955):真空管和穿孔卡片 从 Babbage失畋之后一止到第次世界大战,数字讣算机的建造几乎没有么进展,第二次世界大 战刺激了有关计算凡矸究的爆炸性开。1w州立大学的 hn atanaso授和他的学生 Clifford Berry 建造了据认为是第一台可工作的数字计算机。该机器使用了300个真空管。大约在同时, Konrad luse在 柏林用继电器构建∫3计算机,英格兰布莱切利函的一个小组在194年构建∫ Colossus, Howard Aiken 在哈佛大学建造了Mark1,宾夕法尼业大学的 William Mauchley和他的学士 J Presper eckert建造了 ENIAC。这些机器的是二进制的,有的使川真空管,有的足可编程的,但是都非常始,甚至需要花 費数秒时同才能完哎最简单的运算。 在那个早期年代里,同一个小组的人(通常是工稈师们)设计、建造、编稈.操作并维护-台器 所的程序设计是用纯粹的机器语言缃写的,甚至更*糕,需要通过将上千根电缆接到插件枞上连接成 旽路,以控制机器的基本功能。没有晨序投叶塥言(甚至汇缩培言也没有),橾作系统则从来没有听 说过。使用机器的·般方氏是,程序员在墙上的时表上氐幻一段时间,然后到机房中将他的插件板接 到计算机咀,在接F来的几小时里,期扮正在运行中的两万多个真空管不会烧坏。邦时,所有的计算向 题实际都只是简单的数字运算,如制作正弦,余弦以及对数表等。 到∫20世纪50年代早期有了改进、出现了穿孔卡片,这F就可以将程序写在片上:然后读入计算 机而不用插件板,低其佃过程则依然如旧。 122第二代(1955-1965):品体管和批处理系统 20世紀5年代品休管的发明极大圠改变了整个状况。廿算杌已经很可华,J商可以成批地生产芹销 售计算机给用户,用户可以指馨计算机长时间运行,完成一些有用的工仵。此时,设计人员、生产人员 操作人员、程序人员和维护人员之间第一次有了明确的分工, 这些机器?现在被称作大型机( mainframe),锁在有专用空周的房间中,由专业操作人员运行。只 有少数大公司、重要的政府部门或大学才接受数百万笑元的标价。运行一个作业(job,即个或 组程序),程序员首先将程序写在纸上(用 FORTRAN话言或汇编语言),然后穿孔成卡片;再将卡片盒 带到输入家,交绺操作员,接着就喝咖啡直到输H完成。 计算机运行宁当前的任务后,其计算结果从打即机上输H,操作员到打印秕上撕下运算牿果并选到 輪出室,程序员稱后就可取到结果。然后,操作员从已送到输人宋的卡片盒中读入另个任务。如果需 要 FORTRAN绵详界,操作员还要从文件桁把宀取来读入计算机。当操作员在房里走来走去时许彩机 时被浪费掉了。 H于当时的计算机非常昂责,人们很自然地要想办法减少机时的浪费。通常釆用的解决方法就是砒 处理尕统( batch system)。其思想是:在输入室收集全部的作业,然后用一台相对便宜的计算机,妇 IBM1401计算机,将它们读到磁带上。IBM1401计箅机适川于读卡片、复制磁带和输出打印,但不迺 用于数值运算。屴外用较昂贵肭计算机,如IBMT094来完成真正的计算。这些惰况如图1-3所示 输入 输出 磁带杌 读卡机间 亡带系统磁带磁特 印 1401 704 1401 f 图-3一种早期的批处狸系统:a)程序员将卡片拿到140机处;b)1401机将批处理作业读到磁带卜 操作员将隃人带迭至7094积;d)709机诎行计算;e)操作员将输出磁带遙到140]机:f)1401枓打中输出 在收集了大约一个小时的扯星怍业之后,这些卡片被读进碳带,然后磁带被送到机房里并装到磁带 机上。随后,操作板装入一个特殊的程序(现代譟作系统的菏身),它从磁带上读入第一个作业井运行, 其输出写到第二盘磁带上,而不打印。每个作业结東后,捏作系统白动地从磁t读入下个作业疒运 行。当一批作业完全结東后,操作员取输入和输岀磁骷,将翰λ磁噤换成φ一玭作业,并把出隧带 拿到一台140机器上进行脱机〔不与主计算机朕机)打印 典型的输人作业结构如图1-4所示。一开始是张$JOB卡计,它标识出所需的最大运行时间〔以分钟 为单位)、计赉蚯号以及程序员的名字。着是 SFORTRAN卡片,通知操作系统从系统磁带上装入 FORTRAN语言编译器。之后就是待編译的源程序,然后是OAD卡片,通知璪作系统装入编译好的目 标程序。接着是RN卡片,告诉操仵系统运行该程序井使尹后的数据。最后,$END卡片标识作屮结 束。这些基本的控鼠卡片是现代shl和命令解释器的先驱。 END 程序的数据 FORTRAN序 ORTRAN WOB, 10.6610802 MARVIN TANENBAUM 图14典型的FMS作业结构 第二代大型计算机主要用于科学与程计算,例如,解偏微分方程。这些题目大多用 FORTRAN语 言和礼编语言编写。典型的操作系统是FMS( FORTRAN Monitor System, FORTRAN监控系统)和 第!中 IBSYS(ⅠBM为7094机配备的操作系统}。 123第三代(1965~1980):集成电路芯片和多道程序设计 20世纪60年代初期,大多数计算抛」蔚都有两条不叵并且完全兼容的生产线。一条是面向字的 大型的科学用计算,诸如IBM704,主要用于科学和工程计算。另一条是面向字符的、商用计算机, 请如BM1401,银行和保险公可主用它从事磁燃归档和打印服务 开发和维护两种完会不同的产品,对厂商来说是昂贵的。另外,旿多新的计算机用户开始时只需 要一合小计算机,后来可能又需要一台较大的计算机,而且希望能够更快地执行原有的程序。 IBM公司试图通过引 A Systern360来一次性地解决这两个问题。360是一个件兼容的计算机系列 其低档机与1401相当,髙挡机则比704功能强很多。这些廿算机只在价格和性能(最大存储器容量,处 哩器速度、允许的I设备数量等)上有差异。由于所有的计算机都有相同的体系结构和指令集,因此 在埋论上为一-和型号机器编写的程序可以在其他所有型号的机器上运行。而且360被设计成既可用于 科学计算,又可用于商业讨算,这样,一个系列的计算机便可以满屁所有用广的要求。在随后的儿年里 IBM使用更现代的枝术陆续推出了360的后续机型,如著名约370、4300、3080和3090系列。 Z Serie5是这 个系列的最新机型,不过它与早期的机型相比变化非之大。 360是第一个釆用(小规模)心片(集成电跸)的主流机型,与采用分立晶体笮制造的第二代计算 机相比,其性能/忻格比有很大提高。360很快就获得了成,其他主要厂商也很快采纳了系列兼容机的 思想。这些计算机射后代仍仁大型的计算中心里使用。现在:这些计算机的后代经常用来管理大型数据 库(如航珄定票系統)戍作为web站点的服务器,这些服务器每秒必须处理数于次的请求。 单一家族”思想最大优点同时乜是其最大约缺点。原闲在于所有的软件,包括操作系统OS360, 要能够在所有杋器上运行。从小的代1401把卡片复制到磁带上的机器,到用于代替7094进行气象颜报 及其他煞重计算削大型机。从只能带倀少外部设备的机器到冇很多外设的机器:从商业领地到科学计算 领域等。总之,它要有效地适用于所有这些不同的用途。 IBM(或其他公司〕无法写同吋满足这些相冲突需要的软件。其结果是一个庞人的又极其复杂 的柄作系统,它比下MS人∫2~3个数量级规。其中包含数千饣程序员写的数百万行汇编语言代码 也包含成千万处错误,这就导致IBM不晰地发行新的版丰试图更正这些{误。每个新版本在修正老 误的同时又引人了新错误,所以随着时的流逝,错误的数量可能大致保持不变。 OS/360的设计考之一 Fred Brooks后来写过一本既诙诣叉尖锐的书( Brooks,1996),揹述他在开袋 OS360过程中的经验。我们不可能在这里复述该书的全部内容,不过其封面已经充分表述了 red Brook 的观点,群史前动物陷入泥潭而不能自栊。 Silberschat等人著作(2005)的封面也表达了操作系统如 同恐龙·般的类似观点。 抛开OS1360的虎大和冇的闻题:US/6i和其他公司类似的第三代操作杂统的确合理地满足∫大 多数用户的要求。同时,它们也使第“代操作系统所缺乏的几项关键技术得到广泛应用。其中最要 的应该是多道程序设计( multiprogramming)。在7094机:若当前作业 因等待磁带或其他!O操作而暂停时,CPU就只能简单地踏非直至该I/O完 作业3 成。对于CP操作密集的科学计算问题,IO操作较少,因远浪费的时问 作业2 很少。然而,对F有业数据处理,IO操作等待的时间通常占到8%-90%, 内存 所以必须采取某种措施誠少(昂贳的)CPU室闲时间的浪费。 作业 分 解决方案是将为存分几个部分,每·部分存放不同的作业,如图1-5 操作系统 所示当一个作业等待1O操作完成时,另一个作业可以使用CPU。如果 内中可以同时存放足够多的作业、则CPU利用率可以接近10%。在内图1-5一个内存有三个作 仔中同时驻留多个忤业諾要特殊的硬件来对其进行保护,以避免作业的信 息被窃取或受到攻击。360及其他第三代计算机都配有此类使件 业的多道程序系统 第一代计算机的另个将性是,3片被拿到机房后能够很快地将作业从卡片读入磁盘。厂是,任何 时刻当一个作业运行结朿时,操作系统就能将一个新作业从磁盘读出,装进空出来的内存区域运行。这 种技术叫徹同时的外部设备联杌搡作( Simultaneous Peripheral Operation On Line, SPOOLing),该技 引论 犬同时也用于输出。当采用了 SPOOLin技术后,就不詣媭IMl401l机,也不必再将磁带搬来搬去了 第三代操作系统很适于大型科学计算和繁忙的商务数据处理,但其实质上仍旧是批处理系统。许多 程序员很怀念第一犬计算机的使用方式。那时,他们可以几个小时地独占一台札器,可以即时地满试他 们的程序。而对第三代计算机而吉,从个作业提交到运算结果取回往往长达数小时,更有甚者,一个 逗号的误用就导甕轴失败,而可能浪費了程序半天的时间, 程序员们的希望很快得到了响应,这种需求导致∫分时系统〔 timesharing,)的出现。它文际上是多 道程序的一个变体,每个用户都有一个联机终端。在分时系统中,假设有20个用户登录,共中17个在思 考、谈论或喝咖啡,则CPU可分配给其他三个需要的作业伦流执行。由于调试程序的用户常常只发出筒 短的命令(如編译-个五页的源文件),而很少有长的费时翁令(如上百万条记录的文件排序),所以计 算机能够为许多用户提供快速的交互式股务,同时在CPU空闲时还可能在后台运行一个大作业。第一 通用的分时系统,蒹容分时糸统( Compatible Time Sharing System,CrSs)是M(麻省理工学院)在 合改装过的7094机上开发成功的( Corbato6等人,1962年)。但直到第三代计算机广泛采用了必需的保 护硬件之后,分时系统才逐渐流行廾来。 在CTSS成功研制之后,MIT、贝尔实验室和通用电气公司(G,当时一个主要的计算机制造厂商 决定开发一种“公用计算服务系统”,能够同时艾持数百名分时用户的一种机器。它的模型借鉴」供电 系统—当需要电能时,只需将电气设备接到墙上的辑座即可,十是,在合哩范围内,所需要的电能随 可提供。该系统称作 MULTICS( MULTiplexed Infor'lllation and Computing Service},其设计者着眼 于建造满足波士顿区所有用户计算需求的一台机器。在当时看来,仅仅40年之后,就能成百万台地销 售(价值不到千美)速度是GE-645机10000倍的计算机,完全是科学幻想。这种想法同现在关于 穿越大两洋的超速海底列车的想法样,是幻想。 MULTICS得到一种混合式的成身。尽管这台机器具有较强的IO能力,却要右一台仅仪比Itel36 PC性能强一点的机器上支持数百个用户。可是这个想法并不像表面上那么荒唐,囚为那时的人们已绘知 道如何编与精练的寫效程序,而这种技巧随后逐渐夭失了。有许多原因造成 MULTICS没有能够普及到 全世界,至少它不应该釆用PL编写,因为PL编译器推迟了奸几年才完成,好不容易完成的编译墨又 极少能够成功运行。另外,当时的 MULTICS有太大的野心,非如19世纪中期 Charles babbage的分析机, 简要地说, MULTICS在计算机文献播撒了许多原创的概念,但要将其造成一台真正的机器并想 实现商业上的巨大成功的研制难度超出了所有人的预料。贝尔实验室退出了,通用电气公司也退出了计 算机领域。但是M⊥.工.坚持下来并且最终使MU'CS成功运行。 MULTTICS最后成为商业产品,由购买 通用电气公司计算机业务的公司( Honey well!)销售:并安装在世界各地80多个大型公司和大学中 尽管 MULTICS的数量很小,但是 MULTICS的用户们却非常忠诚,例如,通用汽车,福特和美国国家安 局直到2世纪9代后期,在试图让 Iioneywe更新其硬件多年之后,才关丽了他们 MULTICS系统; 而这已经是在 MULTICS推出之后3年了。 目前,计算服务的概念已经被遗弃,但是这个概念是可以回归的,以大量的、附有相对简单用户机 器的,集中式 nternal股务器形式回归。在这利形式中,主要工作在大型服务器上完成。而回归的动机可 能是多巍人不愿意管理日益过分复杂的计算机系统,宁可让那些运行服务器公司的专业团队大做。电子 度务已经向这个方向演北了,各种公司在多处理器的服务器上经营各自的电了商场:筒单的客户端连接 着多处理器服务器,这同 MULTICS的设计精神非常类似。 尽管 MULTICS在商业上失败了,但 MULTICS对随后的操作系统却有着巨大的影响;详情请参阅有 关文献和书籍(Cor16等人,192; Carba6和 Vysotsky,1965;Daey和 Dennis,1968: Organick, 912;Saltzer,t974)。还有一个曾经(现在仍然)活跃的Web站点www.multicians,rg,上面有大量关 系、设计人员以反其用户的信息资料。 另-个第三代计算机的主要进展是小型机的崛起,以196年DEC的PDP1作为赳点。PDP1计算机 只有4个18位的内存,每台售价120000美元(不到BM7094的5‰),该机型非常热销。对于某些非数 值的计算,它和74几乎一样快。PDP1F辟了一个全新的产业。很快有了一系列PDP机型〔与BM系 列机不同,它们互不兼容),其顶峰为PDP1 位_参加过 MUETICS研制的贝尔实验室计算机科学家 Ken Thompson,后来找到台无人使用的 PDP7机器,并廾始开发一个简化的、单用户版 MULTICS。他的工作后来导致了UNX操作系统的诞生 授著,UNX在学术界,政府部门以及许多公山中流行。 有关UNX的历史到处可以找到〔例如 Salus,1994)。这段敵事的部分放在第10章中介绍。现在 冇充分理由认为,山于到处可以得到源代码,各种机构发屁了自己的〔不兼卒)版本,从而导了混乱 UNIX有两个丰要的版本,源自4&的 System v,以及源自加州伯克利大学的BS( Berkeley Software Distribution)。当然还有些小的变种。为了使编兮的程序能够在任何版本的UNⅣX卜运行,IEEE提出了 UNIX的标准,称作POSX,H前大多数UNx版本都支持它。PQSX定义了…个凡是UNX必须支 持的小型系统调用接口。事实上,某些其他操作系统也支持POSX接凵。 顺便值得一提的是,在1987年,本书作者发布了一个UNX的小型克隆,称为 MINIX,用于教学目 的。在功能上,ⅥNX非常类似于UNX,包括对 POSIX的支持。从那时以后,MNX的原始版本已经 演化为 MINIX3.该系纨是高度模块的,并专注于高可輩性。它具有快速检测和替代有故障甚至已崩 洪糗块(如0设动器)的能力,不用重启也不会下扰运行着的程序。有一本叙述其内部操作,并 在附录中列出源代妈的书(Tanenbaum和Woodhul,2006),该书现在仍然有售,在因特网的地址www. inx3rg上,MENX3是免费使用的(包括∫所有源代码 对UNX版木免费产品(不同于教育日的)的愿塑,导致芬兰学 Linus! torvalds:写∫Ljmu。这 个系统直接受到午MINX开发的启示,而且原本支持各种 MINIX的功能(例如MNIX文件系轨)。管 它已经通过多种方式扩展,但是该系统仍然保留了某些与MINX和UNX共同的低层结构。对ux和开 放源码运动县体万史感兴趣的读者可馮阅读 Glyn Moody书籍(2l)。本书所叙述的有UNX的多 数内容,也适用 f Systcm V、 MINIX、Linx以及UNX的线他版本和克除。 124第四代(1980年至今):个人计算机 随着LSI(大现模集成电路)的发展,饣毎平方厘米的娃片芯上可以集成数千个晶体管,个人计 算机时代到来了。从体系结构上看,个人计算机(最早称为激型计幫机)与PDP-11并无二致,但就价格 而言郾相去甚远。以往,公网的一个部门啦大学里的个院系才配备一台小型机,而微处理器却使每个 人都能拥有自的计算机。 974年,当Itel8080,鸲一代通用8位CPU出现时, Irrel希望有一个用于8R的操作系统,部分是 为了测试月的。 Intel求其顾问 Gary Kildal!写。Kla1位明首先为新推出的 Shugart Associates 8英寸软盘构造了一个控制器,并把这个软磁盘同8080相连,从而制造了第一个配有磁盘的微型计算柷。 然后 Kildal它写了-个基于磁盘的操作系统,称为 CP/M Controf Program for Microcomputer 由于 ncel不认为基于磁盘的微型计算机有什么木来前景,所以当Kda要求CPM的版权时,IRe同意『他的 要求。Kidl1是组建了一家公可 Digital Research,进步开发和销售CPM。 1977年, Digital Research重写了CP/M,使其可以在使用8080、 Zilog 280以及其他CPU芯片的多种 微型计算机上运行,从而使得CPM完全控制了微型计算机仕界达5年之久 在20世纪8年代的早期,IBM设计 IBM PC并寻找可在上面运行的软件。来白BM的人员同B Gate联系有关他的BASC解释器的许可证事,他们也询向是否他知道可在PC机上运行的操作系统。 Gats建议M同 Digital Rescarch联系,时世界上主宰操作系统的公司。在做出毫无疑问是近代历史上 最糟的商业决策后, Kidal绝与M会见,代替他的是位次要人员。为了使事情史*糕,他的律帅甚 至拒绝签暑IBM的有关尚未公开的PC的保密协议。結果,IBM回头询向Gaes可否提供他们一个操作系轨。 TM遐画时 Gaies了解到一家本地计算机制造商, Seattle Computcr Products,有合适的操作系 统DOS( Disk Operating System)。他联系对方并提出购买(宣称7500美元},对方接受了。然后Ges 提供给IBM成套的 DOS/BASIC,BM也接受了。IM希望做某些修改,于是Gate佣那个气DOs的 作者, Tim paterson,作为 Gates的微软公司早期的一个庙员,并开展工作。修改版称为MS-DOS Microsoft Disk Operating System),并且很快主导了BMP场。同Kda试图将CPM次卖给月 个产品相比(至少开始是这样),这玊一个关键因素是 Gates(冋颐起来,极其聪明)的决策,将MS- pos与讣算机公可的硬件捆绑在一起出售。在所有这一切烟消云散之后,Kid突然不幸去世,其原因 引论 从来没有公布过 983年,BMPC后续机型 IBM PCAT推聞,配有inte]80286CPU。此时,MS-DOS已经确立了地 位,而CPM只剩下最后的支撑。 MS DOS后来在80386和80486中得到广泛削应用、犁管 MS-DOS的早 期版本是相当原始的,但是后期的版本提供了更多的先进功能,包括许多源自UNIX的功能。(微软对 UNIX是如此娴熟,其在公川的早期错售过一个微型计算机板本,称为XFNx)。 用于早期微型计算机的CPM、MS-DOS和其他操作系统,都是通过键盘辂入命令的。由于D。ug Engelbart于20世紀6年代在斯坦福硏究院( Stanford Research InstituTe)工作,这种情况最终有了改变。 Doug Engelbart发明了图形用户界面,包括窗凵、图标、菜单以及鼠标。这些思恕被 Xerox parc的研究 人员采用,并用在了他们所研制的机器中 天, Steve Joby(和其他人一赳在汽车库里发明了苹果计算机)访向PARC,Jobs一看到GUI,立 即意识到它的潜在价值,而Xex管理E恰好没有认识到。这种减路失误的庞大比例,导致名为《素 来》书版〔 Smith与 Alexander,年)。J着手设计了带有GU的苹果计算机。这^项 目寻致∫Lisa的崔出,佤是Lis过于品贵,所以它在商业上失败了。Jobs的第二次尝试,即苹果 Macintosh,取得了巨大的成功,这不仪是因为它比La使宜得多,而H它还是对用户友好的(user riny),也就是说,它是为排些不仅汝有计算机知识,而月也根不打算学习计算机的用户们备的。 在图像设计、专业数码摄影,以及专业数字视频生产竹创意世界里, Macintosh得到广泛的应用,这些 用户对苹果公司及 Macintosh有着极大的热情 在微软决定构建MS-DOS的后继产品时,雯到∫ Macintosh成功的巨大影响。微软开发了夕为 Windows的基干Gu系统,早期它运行仁Ms-oS上层(它更像shl面而不像离正的操作系统)。仨从 1985年至1995年的1年之间, Windows只是在MS-DOS上层的一个图形坏境。然而,到了1995年,一个 独立的 Windows版本,具有许多操作系统功能的 windows95发布了。 windows95仅把底层的MS-DOS 作为启动和运行老的MS-DO程序之用。1998年,一个稍做修改的系统, windows98发布。不过 windows9和 Window98仍然使用了大量16位Inel编语言。 另一个微软操作系统是 WindOws nt(NT表示新技术),它在-定的范围内同 Windows95兼容,但 是内部是完全新编写的。它是一个32位系统。 Windows nt的首席设计师是 Dayid cutler;他也是VAX VMS操仵系轨的设计师之一,所以有VMS的概念用在丁NT上。事实上,N有太多的来白ⅤMS的 思想,所以ⅤMS的所有者DEC公司控告丁微钦公司。法院对该案件判决的结果引了…大笔需要用多泣 数字表达的金钱。徹软公司期待NI的第一个版本可以消灭 MS-DOS和其他的 WiNdowS版本,因为NT是 个巨大的超级系统,但是这个想法尖败丁。只有 windows nt4踏上」成功之路,特别在企业网终方 面取得了成功。199年例, windOws nt5,改名为 Windows2000。微软期望它成为 Windows98和 Lindows nt4.的接替者 不过这两个方面都不太成功,于是微软公司发布了 windows98的另一个版本,名为 Windows m 千年版)。2014,发布∫ windows2000的一个硝加升级竹版本,称为 Windows xp。这个版本的寿命 比较长(6年),基本上替代∫ Windows所有原先版本。在207年1月,微软公司发布了 Winows XP的后 继版,名为Va。它有个新的图形接凵Aro,以及许多其也新的成升级的用户稈序。微软公可希望 vs能够完全替代XP,但是这个过程可能需要将近十年的时间 在个人计算机世界却,另“个主要竟争者是UNIX(和它的各种变体)。UNX在网络和企业服务器等 领域强大在台式计算机上,特别是在诸如印度和中国这些发展中国家里.UNX使用也在增加。在基 于 Pentium的计算杋上;Linuκ成为学生和不断增加的企业用白们代 Windows的通行选择。顺便提及, 在本书中,我们使用“ Pentium”这个名词代表 Pentium I,Ⅱ,I和4,以及它们的后继者,诸如Core2 Du等。术语x86有时仍旧用*去示Int公的包括8086的CPU,而 PentiuM”则用于表示从 Pentium I开 始的所有CPU。很显然,这个术语并不完美,但是没史好的方案。人们很奇怪,是Inte公司的哪个天 才把个世界都知晓和尊重的品棘名( Pentium)扔掉,并替代以“Core2Duo”这样一个几乎没有人立 山理解的术语“”是作么意思,而"Du”又是什么意?也许“ Pentium5”(或者“ Pentium:5 dual core”)太难于记忆吧,至干 FreeSI,-个源自于 berkeley的BSD项月,也是一个流行UNX变体。 草1幸 所有现代 Macintosh计算机都运行着 freeBSD的一个修改版。在使用高性能RISC悲片的工作站上,诸如 Hewlett-Peckardl公司和 Sun Microsystem公司销售的那些机器上,UNX系统也是种标配置。 尽答许多UNIX用户,特别是富有经验的程序员们更偏奸基于命令的界而不是GUI,但是几乎所 有的UNX系统都支持由MI开发的称为 X windows的视窗系统(如众所周知的X11)。这个系统处理基 本的视窗管理功能,允阼用户通过鼠标创建、删除、移动和变比视窗。对于那些希望有形系的 UNIX用户,通常在X目之上还提供一个完整的GUI,诸如Gnme或KDE,从而使得UNX在外观和感觉 上类似于 Macintosh或 Microsoft windows。 另一个开始于20世紀80年代中期的有趣发展是,那些运行网络操作系統和分布式操作系统 Tanenbaum和 van Stee,2007)的个人计算机网络的增长。在阙络操作系统中,用户知道多台计算机 的存在,用户能够登录到一台远地机器上井将文件从一台乱器复制到另一台饥器,每台计算机都运行自 己本地的操作系統,并有自已的本地用户(或多个用户)。 网络作系统与单处理器的操作系轨没有卡质区别。視明显,它们需要一^网络接口控制器以及 些低层软件来驱动,同时还需要一些程序来进行远程录和远程文件访间,但这些附加成分并太改变 操作系统的本质结构 相反,分布式操作系统是一种传统单处理器操作系统的炫式出现在用户面前的,尽管它实际上是 巾多处理器组成的。用广应该不細晓他们的程序在何处运行成者他们的义件存版于何处,这些应该由操 作系统白动和有效热处理 真正的分布式操作系统不仅仅是在单机操作系統上增添一小段代码,因为分布式系统与集中式系 有本质的区刿。例如,分布式系统通常允许一个应用在多台处理器上同时运行,因此,需要史复杂的处 理器调度算法来获得最大的并行度优化 网络中的通信延迟往往导致分布式算法必须能适应信息不宗备、信息过甚至倍息不正确的玩境 这与单机系统完全不同,对于后者、操作系统掌握着整个系统的完备信息 13计算机硬件介绍 操作系统与运行该操作系统的计簟机便件联系密切。操作系纨扩展了计算机指令集升管理计算杋的 资源。为了能够工作,操作系统必縯了解大苴的硬件,至少需要了解硬件如何面对程序员。出丁这个原 因,这里我们先管要地介绍现代个人计算机中的计算机硬件,然后开始讨论操作系统的具体工作细芍。 从概念上讲,一台简单的个人计算机可以抽象为类似于图16中的模型。CPU、内存以及O设备都 由条系轨总线连接起来井通过总线与其他设备通信。现代个人计算机结构更加复杂,包含多重总线, 我们将在后面讨论之。目前,这模式还是够用的。在下面各小节中,我们将简要地介绍这些部件,并 且讨诠一些操作系统设计师们所考虑的硬件问题。毫无疑问.这是一个非常简要的概括介绍、现在有不 少讨论计算机硬件利计算机组织的书簫。其中两本有名的书的作者分别是 Tanenbaum(2006)和 Patterson 与 Hennessy(2004)。 监视器 USB 硬盘 盘 打郎机 驱动器 扣吧 CPIN 存值器 视频 镳盘 USB 硬盘 控制器 控制器 控制器 挖制器 总线 图16简单个人计算机中的一些部体

...展开详情
试读 127P 现代操作系统(第三版中文版)
立即下载 低至0.43元/次 身份认证VIP会员低至7折
一个资源只可评论一次,评论内容不能少于5个字
许释卞 确实是经典,值得推荐
2014-09-19
回复
killer_wy1985 清晰度不够,资源还算可以。但是要求10分,慎重下载。
2014-08-01
回复
accplxm126 很经典的书,学习os的不备读物,推荐下载珍藏。
2014-07-16
回复
上传资源赚积分,得勋章
最新推荐
现代操作系统(第三版中文版) 47积分/C币 立即下载
1/127
现代操作系统(第三版中文版)第1页
现代操作系统(第三版中文版)第2页
现代操作系统(第三版中文版)第3页
现代操作系统(第三版中文版)第4页
现代操作系统(第三版中文版)第5页
现代操作系统(第三版中文版)第6页
现代操作系统(第三版中文版)第7页
现代操作系统(第三版中文版)第8页
现代操作系统(第三版中文版)第9页
现代操作系统(第三版中文版)第10页
现代操作系统(第三版中文版)第11页
现代操作系统(第三版中文版)第12页
现代操作系统(第三版中文版)第13页
现代操作系统(第三版中文版)第14页
现代操作系统(第三版中文版)第15页
现代操作系统(第三版中文版)第16页
现代操作系统(第三版中文版)第17页
现代操作系统(第三版中文版)第18页
现代操作系统(第三版中文版)第19页
现代操作系统(第三版中文版)第20页

试读结束, 可继续阅读

47积分/C币 立即下载 >