深入理解计算机操作系统

所需积分/C币:45 2015-04-14 11:25:00 31.22MB PDF
收藏 收藏 1
举报

程序的执行,处理器的结构介绍,系统的整个程序的运行以及虚拟存储器的说明,适合对操作系统进一步理解的需求者
国外经典计算机科学教材 Computer Systems A Programmer' s Perspective 深入理解 计算机系统 Randal e. bryant [美] David o hallaron 龚奕利霄迎春译 网中图电当 opower con Computer Systems: A Programmer's Perspective(ISBN O-13-0344074-X) Randal e. bryant, Dat'd R O'Hallaron Copyright G200. Prentice Hall, Tnc Original english Language Edition Published by Prentice Hall, Inc Al rights reserved Translation edition published by PEArSON EDUCAtioN ASIA LTD and CHINA ELECTRIC POWER PRESS Copyright 9 2004. 本书翻译版由 Pearso■ Education授权中国电力出版社在中国境内(香港、澳门特别行政区和台湾地区除 外}独家出版、发行。 未经出版者书面许可,不得以任何方式复制或抄袭本书的任何部分。 本书封面贴有 Pearson education防伪标签,无标签者不得销售 北京市版权局著作权合同登记号图字:01-2003-1020号 图书在版编目(CIP)数据 源入理解计算机系统/(美)布赖愍特( Bryant, R E:等著;龚爽利,雷進春译.北京 中国电力出版社,2004 (国外经典计算机科学教系列) ISBN T50832175-8 l深…且布②龚.③俌….Ⅲ计算机系統统一高等学校一教材ⅣTP30 中固版本图#馆CP数据核字(2004)第04328号 丛书名:国外经典计算机科学教材系列 书名:涣入理解计算机系统 编著:(美) Randal e, Bryant, Davide o hallaron 翻译:龚奕利舌迦春 责任编辑:姚胜 出版发行:中国忠力出版社 地址:北京市三里河路6号邮政编码:1004 电话:(〔0)88515918 传真:(010)8858169 印刷:礼鑫印务有限公司 开本:787X092116 印·张:53.25 字数:1209千字 书号:ISBN7-5083-2175 版次:2004年5月北京第1版2004年5月第1次印刷 定价:350元 版权所有翻印必究 出版说明 但纠的朝阳刚刚露出丝抹微红,如火如茶的全球信息化浪潮便洲涌而至,让人无时无刻 感受到新珨户业革命的气息。如何饣这场变革屮山尽先机,既是对民族信息业的挑吠,也是机 遐。从而,作为民族信息广业发展是的高等教育事业就被赋j了比以往更重的责仁:对和 近就我2世纪的代新人提出了更高的要求。但在计算机科学突飞猛进的同时,专业教材的 发展却严重滞后,越米越成为人才培养的瓶颈。时,以美国为代表的西方国家计算机科学教育 经历了允分的发展,产生了一批有着巨大影晌力的经典教材,因此,以批判、借鉴的惑度有选择 地引进这些圳外经典讣算枞所,将促进国内教学体系和国外接轨,大大推动我国订算机教育事 业的发戒 中民电力H版衬进入计算机图书市场已冇近6个年头,通过持“高端、精品、经典”战略 致力∮与外著名出版机灼合作,出版了人批博很计算机业界和教育界赞誉的作品,通过与信息技 术教育界人∷的疒泛汋通.冂时依托的出版资源,巾国屯方出版刘适时推了“国外经典计算 科学教材”的出版计划。个次教出版计划是和关国最大的计算教育版机构—— Pearson教 育集团( Addison- wesley, Prentice-Ha等曲为其下属」公可)合作,依托其数十年累的人批 经典教材资源,确保了教村选题的杈威经舆 为似证这套教材的含金最,并做到有的放矢,我们在国内组织了出中型科学院、北桌人学等 流阢校教组成桁专家揹导委员厶,对高校课程教学体系了系统、详纽肭调査,吓取了众多 教育专家、仃业专家的愿儿,刈教育部的教育规钆进釘了认真研究:并深入了解舛大学实际教 学选用的教灲状况,对国外教材做了理性的分析.砷立了依托国家教育计刘、传播先让教学理念 为培养符合社公需娈的高森质创新坐人片服务,来作为本次“外纶典计算机科学教材”出版计 以的尔旨 我们从2002牛的下半年开始着手这套教材的策划工作,并多次组织了专家研讨会、座谈会 等,分忻现有教材的优点勹不足,采其粘华,并力争体现本套教材的质量和特色 深入理解国内的教学体系结对,片比照国外相冂专业的课稈没置,既具作现实的适性 义立赶发展眼光,具备一定的前瞻性 2、以计算机专业的咳心课程为基础,同时配合专业教学汁划,争取覆盖专业选倦课程和专 业任选果利 3.选取国外的最新教材版本,司时刘照国内问专业课程的学刑要求,对不适用版本进行 剔除,充分满足|内救学要求 4.根捋专业对口和必须具备同课程教学经验的要求,严格挑近译者,并严把质量关,确保 教材觀译的启质量 5.通过从原出版社对站下载勘误表及与原书作者进行沟通的方式,对原书中的错误一一做 了修改。 6.对教材出版杓后期工作、如官校、编辑、排版、印剧进行了严格的质量把关。 纤过专家指导委员会的集体讨论,并;泛听段广高等院校师生的意见,反复比發,从数 种国外教材中遴选出数!种,列入第一阶段的出版计划。这些救材的作者刀:不是学高的大 师,如 Stallings,Dae, Ullman,Aho, Bryant, Sedgewick等,他们的作品均是一版再版,井被 众多国外一流学如 Stanford University,MT, UC Bekerley, Carnegie Mellon Univeristy University of Michigan等釆用为教材,拟订的第一阶段出版计划包30种图书、肉容发盖程字 设计、数据结构、操作系统、计算机体系结构、数据库、編译原理、软件「程、图形学、通信与 网络、离散镦学等计算机专业核小基础课稈,基本满足国内计算机专业的救学要求 此外,为了帮助广大饪课教师加深对本系列教材的理解,减轻他作的备课难度,我们从外 出版机构引进了大批的课程教学辅助资料,并积极延速内优秀教炯,根据其使用该系外教材中 教学经验,着于编写更加适合国内应用状况的教辅材料。 于我们对国内高校计算机教育存在认识深度上的不足,在选题、翻译、编粗加工出版等方 的「作中还有许多有待提高之处,恳请广大师生和读者提出批评和建议并期待有更多的人加 入到我们的工作中来。我们的联系方式是: 宄子邮件;shook@icep.com.cl 联系电话:010-88515918-300 联系地址:北京市西城区三里河路6号中国电力出版社 邮政编码:10044 译序 作为个程序员,我们经常被一些奇怪保的程序问题所团扰。例如最近,我的一位朋友从经典的数 据结构书上抄了一段为于计算有向图的函数实现代码,这个圣数实现在gc环塘下的编详一点问题都 没有,但只要一实际运行,就会报没错误。我看了这段代码后,立刻就意识到问题出现在哪里了 他在函数实现里分配了一个16MH的局部变量导致栈出。类似这样的问题,还会有许多。不过在这 些问题中,让程序员有麻烦的亠经不是编程语言木身的闰题,而是需要程序员更好地理解计算杋系统, 知道程序如何在计算杌上被行。理解计算机系统,不是简单地从转市上购买一些介绍计算机系统的 书.读一读而已迄今为,我对市面上这类节的了解是;对于大多数程序员而言它们都过于专业化 书的内容和语言组织上都偏重于厦理的介绍,一般程序员很难有时间和精力去消化和吸收书中的 内容,更无从用这些亡算机系统的知识来帮助自己解决程序问题 事实上,高级语言編程和计算机系统被编程环境如gc划分成两怅皮,尽管程序员能用高级语 言动计算机完成指定的计算任务,可是却不一定能很清楚地知道计算机是如何解释翔执行科序代 码的。 我本人是-个计算机专业科班出身的人,学生期间学习到许名关于计算机系统的知识可在实 际妍究⊥作中,过去所学的计算机系统知识变得遥远和模糊。19年初,出于研究兴趣的的,我 计了一个高性能网络服务器绪构,并编写了它的实现。在此期间,使我明白一个高性能服务器程序 计算机系统之间的唇齿相依的关系。过去,促使我建立高级语言和计算礼系统的联系来主要自于研 究的压力,其采用的力法是遍寻国外关于系统编释的邮件列表,并结合以往所学的计算机系统知识。 这种方沄固然能帮助我解决实际所碰到的问题,但却需要花费大量的时间且没有条理。203年元月, 编辑節让我帮助他佾从一批刚出版的外文书中挑一些可以在国内推广的书,我一眼就看中了这本由 Bryant #n o'Hallaron所著的 Computer System: A Programmer's Perspective,它就是我过去想要的书, 我相信也是每一个想了解计算机系统的程序员想要的书我迫不及待地从编辑手十抢下此书的翻译工 作,这个临时添加的任务改变了我和另一位译者2003年的生活。2003年8月底,终于完成此书的翻 译工作,并起中文名为《深入理解计算机系统》 深入理解计算机系统》的最大优点是为程序员描述计算机系统的实现细节,帮助其在人脑中 构造一个层次型的计算机系统,从最底层的数据在内存中的表示(如大多数程序员一直陌生或疑惑的 浮点数表小),到流水线指令的构成,到虚拟存储器,到编译系统,到动态加载库,到最后的用户态 应用。默串本的条主线是使程序员在设计程序时,能充分意识到计算礼系统的重要性,建立起坡 所吁程序可能被执行的数据或指令流图,哄白当程序被执行时,到底发生了什么事。从而能设计出 个高效、可移植、健壮的程序,并能够更快地对程序排错、调整程序性能等。 本书是通过程序员的视角来介绍计算机系统,即首先把高级语言转换成计算机所能理解的一种 牛问格式(如汹编语言),然后描述计算机如何解释和执行这兰十间格式的程序,是系统的哪-部分 影响程序的执行效率。所以,在讲述计算机系统知识的同时,也顺便给出了关于C浯言和汇编语言 〔有可能是绷译系统产生的〕的编程和阅读技巧,以及基本的系统编程技巧和工具,同时,还给出 些方法帮助程序员基于对计算机系统的理解来度量利改善屋序的性能、及其它竦于问趣 本书的主要内衮是关于计算机体系结构(级谀件汝计}与编详器和操作系统的交互,包 数据表小;汇编语言和汇编级计算札体系结构;处理器设计;程序的性能度量和优化:科序为加载器 链接器和編译器:包开0和设备的存储器层次结构:虚拟存储器:外部你储管理:中断、信号和进 程控制。对这些不同领域知识约产绍使我们能左编写系统程序时,基于系统性能的考虑,来取一个更 好的折中方案。 本书强调对计算机系统的概念的理解,但并不意味着不动手。如果按照本书的安排做每一章后 面的习题,将有助于理解和加深正文所述的概念和知识,并且有时候,可以从实际动手中学习到新的 知识。如果不动手,空洞地去看文字,是很难理解文字背后的意义的。我个人的经验是,有多系统 设计和概念,看似简单或不理解,可-且自己动于做同样的试验,才更明白当刘的设计者为汁么要如 此设计。计算机系统就像白然界的生态坏境,对每个部件的设计都要求它能融洽地和系统内其也部 件和平葙处,我们不能站在-个徵观的视角去看待系统部件的设计是否最优,应该从观来观察利 思考。 为方便解本书的內容,本书的读者假定兵备C话言编程的能力。由于书是卡内基梅騷大 学(CⅦU)约教材,且被其他—些著名的大学也选用为教材,因此,本书的读者不仅仅是邡些因 为工作和兴趣前关注本书的人,还包括些在校的大学生,作为他们的教材或辅助性资和个人认 为,在校学生越早接趣本书的内容,将越有利于他们学习计算机的相关果程,培养对计算机系统的 研究兴趣。 总而言之,《深入堐解计算机系统》一书是一个桥梁;它帮助程序员衔接了计算机系纷的各个领 域的知识,为菥序员构造了一个概念性框架。对于冬个领域〔如计算机系统结构、处理器、萊作系缭、 蝙译器、网络、并发编程丶的知识进一步获取,还需要参考相关书籍。 参加翻译的还有龚奕利、易金华和陈永兴等,在此也特别表示感谢 H于此书的内容量大,加上翮译时间并不很宽裕,尽管我们十分努力,但还是难以避免现错误, 以及有在许多不尽人意的地方,欢迎广大读者批评指正,以便改进。 迎春 2c042.15 于北京中关村(中科院)青年公寓 关于术语的翻译 本跨越计算机的多个领域,涉及了许多专业的术语。在翻译的过程中,我们尺可能地忠实反映 原文的意思,佔并不是每个术语的翻译都那么恰当。符合每个读者的阅读少惯。不叮避免地,对某些 术语的翻详带了我们个人的:惯和偏好,希望读者谅解,卜面、我们解释在本书中频繁出现的一些术 语的翻绎。 directive 这个单词多用米茄述C语中类似# Include的语句,或乳编语言中类似ps的语句=按照我的认 识,这^单词应该译徹“指令”比较恰当,起着指导或导引的作用。但是,在 directiy单词出现的地 方,还司时出現了 Instruetion单(这种现象以第3章为主〕,其中文的含义也是“指令”。相比于 directive、 anstruction显然是一个更强势的单词,为了从中义字面上区分这两个单词,方便读者阅读, 我们在不影响基本意思的前提下,翻译 directive为合令。 operation 这是个遮巾全"的单词。它众多的意思中两个是:“操作”和“运算。对这个单词的翻详, 我们没有采用一刀切的方法,而是尽可能采用国内读者的习愤来翻译。根据我自d的切身体会,以及 网友对 operation译法的讨论,我们更倾向于在数学的领域内使用“运算”,而在计算机领域使用“操 作”。基于这个认识,以及章节内容的安排,我们把2章(该章涉及大量的数学描述)中出现的 operation主要译做“运算”,而把其他章中的 operation主要翻译为“操作”。需要注意的是,这种 划分并是绝对的 memory与 storage emory是一个我们非常熟悉的术语,我们一般把它习惯地称为“内存"但是,通过本书第6 草对 memory的解释来看,仅有这样的理解是不足够的、本书认为 memory可以是不同容量、成本和 访问时间的存储设备,我们过去所认识的 Tien ory只是DRAM。所以,不能把 memory简单地翻译为 内仔" 从 nemory和 storage这两个单词的中文意思米看, tteinoty是“白储器"而 storage是“储, 存储器”另外,我们还观察到、 memory更多地以名词出琪,描达一个静态的物理设备,而 Storage 除了可以作为名词出现外,还有砌词的形式(sore、srng和 stored)。所以,我们取 emory的中文 意思为“存储器”,咖取 storage(以及soe、 stoning和sed)泊咔文意思为“存储η。除此之外,如 東在句话巾,有memy和s的ge同时出现时,我们除了给出 storage的中文释义外,还尽可能地 附英文单词,以示与 menory的区别 hazard 这是·个很扰人的体系结构领域的术语。在本书中,我们选用它的中文释义为“险"。实际上 我们在做学生时,大都直呼它的英文,很少说它的中文,选择它的中文详法真的是一件很麻烦的事情。 曾经有一个网友告诉我,他看到一个“险象”的译法比较贴切。呵呵,为了这个术语的翻泽:我和他 在网上争论了两天。仔细想想“险象”这种译法,确实不为错,但还不能完全说服我选用它。因为, 这个释义太过生,许多读占可能无法联想到其对应的英文单词。而选用“冒险”,尽管不是那么完 美,但是大名数研究体系结构的读者会很熟悉。所以,对“冒险”的选用只是一种与惯和默认 timer tier约中文释义有:“定时器,计时器"ε尽管这两个中文释义都可以描述一个现象:间隔一段 时间后产生:个事件,但是我们认为这两者之间是有区别的。从中文字面来说,定时器约间隔更多是 固定的,倾向于静态性;而计时器的间隔更多是不固定的,有计算射意思,倾向于动态性。所以,在 本书的笫9章中(该章主要描述系统评价),我们主要把tner翻译为计时器,而在其他章节翻详为 定时器。 local loa的中文释义是:“本地:局部”。我们没严格地区分它,完全是根据上下文描述的方便, 来选用不同的群义。 原书还出现了一些错误,这些错误只是我们个人认为的,很有可能是我们理解错了。所以,我们 在“篡改”原文的意思时,还尽可能地给出了原文的意思,以再助读者甄别。 我很喜欢这本书,且认为它的内容在5~10年内都有它存在的价值。但是,鉴于我们的能力和时 间有跟,不能保证完全忠实、准确地重述原文的意思,还需要广大读者的支持,希望广大速者阅读 本书的时候能积极地给我们指出其中错误,改善此书的质量,方便后来的读者从中更顺畅地获取知识。

...展开详情
试读 127P 深入理解计算机操作系统
立即下载 低至0.43元/次 身份认证VIP会员低至7折
    抢沙发
    一个资源只可评论一次,评论内容不能少于5个字
    关注 私信 TA的资源
    上传资源赚积分,得勋章
    最新推荐
    深入理解计算机操作系统 45积分/C币 立即下载
    1/127
    深入理解计算机操作系统第1页
    深入理解计算机操作系统第2页
    深入理解计算机操作系统第3页
    深入理解计算机操作系统第4页
    深入理解计算机操作系统第5页
    深入理解计算机操作系统第6页
    深入理解计算机操作系统第7页
    深入理解计算机操作系统第8页
    深入理解计算机操作系统第9页
    深入理解计算机操作系统第10页
    深入理解计算机操作系统第11页
    深入理解计算机操作系统第12页
    深入理解计算机操作系统第13页
    深入理解计算机操作系统第14页
    深入理解计算机操作系统第15页
    深入理解计算机操作系统第16页
    深入理解计算机操作系统第17页
    深入理解计算机操作系统第18页
    深入理解计算机操作系统第19页
    深入理解计算机操作系统第20页

    试读已结束,剩余107页未读...

    45积分/C币 立即下载 >