**
**前言**为什么在计算机系统领域需要有一本新书和高中生谈论计算机会让人感到兴奋。人们对“盒子(计算机机箱)里”有什么东西有一种神秘感,正是那个盒子里的东西使计算机能够完成诸如让用户玩有很棒图形的视频游戏、播放音乐(不管是RAP还是交响乐)、发送即时消息给用户的朋友等功能。本书的目的就是与读者一起开展一段揭示盒子里有什么秘密的旅程。作为即将开展的旅程的一瞥,让我们在一开始就表明,让这个盒子变得有趣的并不仅仅是硬件,还包括软件和硬件是如何结合起来完成各种功能的。因此,本书所采用的途径是把软件和硬件放在一起观察,看它们是如何相互帮助以及如何协同起来让计算机变得有趣而且有用的。我们把这个过程称作“打开盒子”—即揭开盒子里有什么这个秘密:我们查看盒子内部并理解如何设计关键的硬件单元(处理器、内存以及外设控制器),理解要管理计算机中的所有硬件资源,包括处理器、内存、I/O和硬盘、多处理器以及网络所需的操作系统抽象。因此,这是一本计算机系统教学的入门课程教材,采用了一种新颖的集成教学法来介绍相关内容。本书的目标是让学生在本科生涯(计算机科学或计算机工程专业)的早期就在相关主题方面接触足够宽泛的知识。本书的内容是为用软硬件集成的方式进行课程教学而写的,这种方式使得学生可以了解计算机体系结构和系统软件之间的关系。书中的材料可以作为4学分的半年学期课程教材,或者作为5学分的季度课程教材,或是作为每季度3学分的两季度的课程系列的教材。基于本书的课程可以为学生打下很好的基础,以进一步深入学习计算机体系结构、操作系统和网络的高级课程或研究生课程,在这些领域进一步深造。此外,这类课程可以尽早激发学生对计算机系统的兴趣,对学生在本科期间参加研究工作也有帮助。本书的主要特点(除了处理器和内存系统之外)如下:1)详细介绍了存储系统;2)专门用一章介绍了网络问题;3)专门用一章介绍了多线程和多进程编程。教学风格本书采用的教学风格是“发现”而非“教导”或“灌输”。此外,内容是以“自顶向下”的方式展现的,读者首先看到我们要解决的问题,然后看到解决方案。以内存管理部分(第8章)为例。我们首先提出问题“什么是内存管理”,一旦理解了内存管理的需求,我们再开始探讨内存管理所需的软件技术和相应的硬件支持。因此,本书是以一种讲故事的方式来进行概念展现,学生们看起来很喜欢这种方式。在适当的地方,我们在不同章节用一些例题来阐明观点。我们在撰写本书的时候始终以学生为中心。书中包含大量例题,可以帮助学生固化刚刚讨论过的概念。从我们作为教师的经验来看,学生确实喜欢了解历史背景(那些对计算的演化起到重要影响的著名的计算机科学家和机构)和现状,以及我们是怎么一步一步发展过来的。这些历史片段遍布在全书中。除此之外,在必要的时候,在若干章我们都包括了一节从历史角度进行的回顾。我们从学生那里学到并采用的另一个措施是在文中直接给出参考文献,而不是在文末才给出。读者可以看到贯穿本书的大量脚注。此外,我们在每章末尾专门有一节给出外部链接(教材和开创性的著作),包括参考文献和扩展阅读的建议,这些内容在正文中不一定都被引用了,但是有助于增强学生的知识基础。今天,随着因特网上的信息日益丰富,为附加的信息提供URL链接是一件很有诱惑力的事情。但是,我们拒绝了这一诱惑(除了那些权威信息源的可靠链接)。尽管如此,我们知道现在学生在去图书馆之前会先搜索因特网,当然他们也应该这么做。在这种情况下,我们给学生一个提示:在利用因特网作为信息源的时候要慎重。通常,使用Google搜索是获取某种信息的最快方法。但是,必须对这些信息进行筛选以保证其准确性。作为经验法则,使用因特网上的信息来满足好奇心或是回答与流言有关的问题。(DEC是如何衰落的?为什么Linux成功了而Unix BSD却没有?Burroughs公司的历史是什么?计算机系统的真正先驱是哪些人?)对于技术问题(Pentium 4处理器的流水线结构是什么?VAX 11/780的指令集体系结构是什么?)则要从已出版的书籍、相关会议和期刊论文(当然它们中的大多数也可以在线获取)中寻求答案。佐治亚理工学院计算机学院从1999年秋季学期开始,每学期都开设这门软硬件集成的课程,本教材就是这门课程的副产品。在一开始,本书作者为课程开发了完整的讲义和幻灯片,并使用两本标准的教材(一本体系结构教材和一本操作系统教材)作为课程的背景参考资料来补充课程的材料。从2005年春季开始,我们将课件转换成了本教材的手稿,因为学生一直想要一本与课程内容和风格匹配的教材。本教材的在线版本从2005年春季开始在佐治亚理工学院用于本课程,使用集成的方法介绍计算机系统。本课程每年开设3次(包括夏季学期),每学期有80多名学生选课。因此,书稿在付印之前经过了连续15个学期的教学,从选修本课的学生那里接受了持续不断的反馈与改进意见。在设计产生本书的课程时,以及在撰写本书的时候,我们从其他机构开设的系统入门课程以及一些优秀教材中学到了很多东西。例如,MIT的计算机系统入门课程拥有很长的历史和传统,而且是真正独一无二的。从这门课程中总结的教材[Saltzer,2009]对激发学生深入学习计算机系统来说是极好的资源。在撰写本书的时候,我们坦承受到了[Ward,1989]和[Kurose,2006]的教学法的启发。
第1章 概述1.1 盒子里有什么1.2 计算机系统中的抽象层次1.3 操作系统的作用1.4 盒子里正在发生什么事1.5 计算机硬件的演化1.6 操作系统的演化1.7 本书导读1.8 练习题第2章 处理器体系结构2.1 处理器设计涉及什么2.2 如何设计指令集2.3 常见的高级语言功能集2.4 表达式和赋值语句2.5 高级数据抽象2.6 条件语句和循环2.7 检查点2.8 编译函数调用2.9 指令集体系结构选择2.10 LC-2200指令集2.11 影响处理器设计的问题2.12 小结2.13 练习题第3章 处理器实现3.1 体系结构与实现3.2 处理器实现涉及什么3.3 重要的硬件概念3.4 数据通路设计3.5 控制单元设计3.6 控制单元设计的另一种选择3.7 小结3.8 练习题
相关资源:计算机系统系统架构与操作系统的高度集成 下载