如果你使用计算机,那么也会使用计算机操作系统来利用计算机的能力。对计算机的操作系统知道得越多,就越能够享受计算机的各种各样的功能。本书打开了一扇理解计算机的操作系统的大门。此外,本书还使你能够了解多种类型的操作系统,因此你可以为个人和专业应用比较每种操作系统的优点。
在本书中,你将学习目前使用的*流行的操作系统:
* Windows XP。
* Windows Vista。
* Windows 7。
* Windows Server 2003和Windows Server 2003 R2。
* Windows Server 2008和Windows Server 2008 R2。
* UNIX/Linux,包括Fedora Linux。
* Mac OS X Leopard和Snow Leopard。
你可以使用本书学习一种、两种或者所有的操作系统。本书从基本的级别开始,逐步增加难度,循序渐进地介绍每一章的知识,使你走上正确的轨道,成为每种操作系统的熟练用户。
本书以清晰的语言通过动手操作的、实用的方法讲解操作系统。研究多个操作系统的优点是:你可以在学习时把每种操作系统的功能放在一块进行比较。如果你正在参加一个入门性的操作系统课程或者操作系统概论课程,本书为掌握操作系统提供了坚实的基础。此外,如果你正在为一个或多个计算机认证(例如硬件系统、网络、编程或安全)做准备,将发现本书为你的准备工作提供了一个至关重要的背景。本书尤其适合于作为CompTIA A+认证的背景。如果你对计算机比较陌生,本书将从基础开始帮助你建立信心。如果你在计算机方面有更多的经验,将会发现许多有用的信息,它们可以进一步帮助你建立知识和经验库。
本书读者对象
本书是用简单、直观的语言编写的,适合任何使用计算机并且想要学习更多知识的人阅读。无需任何先前的计算机经验,尽管具有一些以前使用计算机的基本经验是有帮助的。本书中的“动手项目”使用了多种操作系统。如果你能够访问书中介绍的一种操作系统或它们的组合,就可以学习一些概念。可供你使用的操作系统越多,比较它们特性的机会也就越好。一般来讲,这些项目可以在教室、计算机实验室或者家里执行。
本版本的新增内容
本版本进行了广泛的更新,包含了*近的操作系统和操作系统特性。其中包括对Windows 7、Windows Server 2008、Windows Server 2008 R2、带有GNOME桌面的Fedora Linux以及Mac OS X Leopard和Snow Leopard的全新介绍,而大幅缩减了对遗留操作系统(例如Windows 3.x、Windows 95、Windows 98、Windows 2000以及Mac OS X Panther和Tiger)的介绍,在书中提及它们主要是为了提供一种历史观点。同时还保留了对Windows XP、Windows Vista、Windows Server 2003和Windows Server 2003 R2的介绍,因为这些操作系统仍然在许多地方使用。
本书还包括针对新硬件以及新的操作系统安装和管理活动的广泛更新。新硬件介绍包括了*新的CPU和外围设备。操作系统与新的存储设备之间的交互也进行了显著的更新,新的联网能力也是如此,包括无线联网的发展和云计算。
截屏图、图形和表格实质上都是全新的。“动手项目”也针对新的操作系统进行了全面更新或者就是全新的。其他的章末复习和学习材料也进行了重大更新,以帮助读者使他们的知识保持*新。
各章描述
本书对各章涵盖的内容进行了平衡,从而提供关于每个主题的完整信息。下面总结了你将在每一章中所学的知识。除了通过各章的正文提供的指导之外,还可以使用各章末尾的“动手项目”“案例项目”“关键术语”和“复习题”增长知识,以及对自己在每一章中所取得的进步进行评价。
* 第1章“操作系统理论”:对操作系统进行了基本的介绍,包括操作系统的类型以及它们是如何工作的。你还可以学习有关操作系统的历史。
* 第2章“流行的操作系统”:深入描述了Windows XP、Windows Vista、Windows Server 2003/Server 2003 R2、Windows Server 2008/Server 2008 R2、Linux和UNIX,以及Mac OS X Leopard和Snow Leopard。你将简要学习早期的Microsoft操作系统。本章将给你提供一个起点,可以通过它比较操作系统的特性以及了解*新版本中的 发展。
* 第3章“操作系统的硬件组件”:使你能够理解处理器是如何工作的以及现代处理器的必要特征。本章*后概述了流行的现代处理器。
* 第4章“文件系统”:解释了所有文件系统的公共功能,然后描述了由不同操作系统使用的特定文件系统,包括FAT的简要介绍和NTFS、ufs/ext、HFS、HFS+的深入介绍。
* 第5章“安装和升级操作系统”:展示了如何为安装操作系统做准备,然后说明了如何安装在本书中讨论的每一种操作系统。你将从头开始学习安装操作系统以及如何升级操作系统。
* 第6章“配置输入和输出设备”:解释了像显示器、键盘、鼠标、磁盘驱动器、网卡这样的设备以及其他设备怎样与操作系统对接。你将学习用于现代操作系统和计算机的*新的输入和输出技术。
* 第7章“使用和配置存储设备”:描述了流行的存储设备,包括硬盘驱动器、可移动驱动器、RAID、CD和DVD技术,闪存和固态驱动器存储、网络存储、USB设备以及*新出现的技术。本书介绍了操作系统的存储设备配置,你将学习如何为Windows、UNIX/Linux以及Mac OS X操作系统执行备份。
* 第8章“调制解调器和其他通信设备”:使你准备好通过广域网技术与外界通信。你将学习相对低速的调制解调器通信乃至通过有线电视、DSL、卫星、无线及其他方式实现的高速通信,还将学习为Internet上的通信配置操作系统。
* 第9章“网络连通性”:介绍了网络是如何工作的,包括网络拓扑和协议。你将学习如何在每种操作系统中配置协议,并将学习局域网和广域网的基本结构,还将学习操作系统如何对接到网络。
* 第10章“网络上的资源共享”:显示了通过网络共享资源的各种方式,例如共享磁盘、文件夹和打印机。本章除了介绍如何共享资源之外,还讨论了如何通过账户、组和访问特权保障它们的安全。
* 第11章“标准操作和维护程序”:展示了许多维护系统的技术,例如清理未使用的文件、磁盘碎片整理、执行文件系统修复、虚拟内存调优以及寻址问题。本章还讨论了备份计划以及如何进行系统调优,以获得*佳的性能。
* 附录A“操作系统的命令行命令”:说明了如何访问每种操作系统中的命令行,并且展示了一些表格,它们总结了一般的命令和网络命令。这个附录使你能够快速查找或复习操作系统命令。
* 附录B“结合使用本书与Fedora”:讨论了Linux的Fedora 13 Live Media分发版。这个附录中说明了如何直接从光盘运行Fedora,以及如何在硬盘驱动器上安装Fedora。
本书特点
为了帮助你充分理解操作系统的概念,本书中设计了许多特色内容,旨在提升本书的教学价值。
* 本章目标。本书每一章的开始处都提供了在该章中要掌握的概念的详细列表,这个列表提供了对该章内容的概览,同时也是一种有用的学习帮助。
* 插图与表格。大量的操作系统屏幕和概念的插图通过可视化地展示常见的安装步骤、理论和概念,从而给你提供帮助。此外,许多表格还提供了实用与理论信息的细节和对照。
* “经验之谈”故事与示例。每一章都包含一些排成特殊字体的文本以及来自作者的广泛经验的示例,它们通过介绍现实的情况给本书增色。
* 本章小结。每一章的正文后面都对该章介绍的概念做了小结。这些小结提供了一种有益的方式,用于概述和重温每一章中介绍的思想。
* 关键术语。在每一章末尾都列出了那一整章中介绍的术语清单以及它们的定义。
* 复习题。章末评估以一组复习题开始,它们强化了每一章中所介绍的思想。
* 动手项目。本书的目标是给你提供实用的知识和技能,以便安装和管理桌面以及服务器操作系统,从而把它们用于个人和商业目的。为此,除了理论解释之外,每一章还提供了大量的“动手项目”,旨在给你提供真实的实施体验。
* 案例项目。每一章末尾都提供了一个由多部分组成的案例项目。这些广泛的案例允许通过真实的操作系统支持和管理方案实施在各章中学到的技能和知识。
特殊栏目说明
在本书很多适当的位置以栏目的形式添加了额外的信息与活动,以帮助你更好地理解相关章节所讨论的内容。全书中的栏目可以提醒你关注额外的材料。本教材中使用的栏目如下:
“注意”用于介绍与所描述的主题相关的额外的有用材料。
“提示”来自作者的经验,用以提供关于如何配置操作系统、应用概念或者解决问题的额外信息。
“警告”用于帮助你预先考虑潜在的问题或错误,使你可以阻止它们发生。
“动手项目”是实践练习。
“案例项目”是更复杂、基于场景的作业。在案例项目中,将要求你运用所学的知识。
教师的材料
当在课堂环境中使用本书时,可以使用下面的补充材料。所有补充材料都可以通过本教材的Web站点在线获取。
教师的电子手册——包括额外的教学材料,用于帮助进行课前准备,其中包括有关课堂活动、讨论主题以及额外活动的建议。
解决方案--教师的资源包含所有章末材料,包括“复习题”“动手项目”和“案例项目”的解决方案。
ExamView——本教材带有配套的ExamView,它是一个功能强大的测试软件包,允许教师创建和管理书面、计算机(基于LAN)和Internet考试。ExamView包括与本书中介绍的主题相对应的数百个问题,使学生能够生成详细的学习指导,包括页码索引,以便进一步复习。基于计算机的测试和Internet测试组件允许学生在他们的计算机上参加考试,并通过自动给每次考试评分来节省教师的时间。
PowerPoint演示文稿——本书带有针对每一章的Microsoft PowerPoint幻灯片。在课堂演示中包括了它们,作为一种辅助教学工具,使学生可以在网络上复习各章内容,或者把它们打印出来在课堂上发放。教师可以自由地添加要在课堂上介绍的额外主题的幻灯片。
图形文件——本书中的所有图形和表格都以位图格式作为教师的资源。与PowerPoint演示文稿类似,在课堂演示中也包括了它们,作为一种辅助教学工具,可供学生在复习时使用,或者把它们打印出来,在课堂上分发。
请访问login.cengage.com并且登录,以访问提供给教师的资源。
要访问额外的课程材料,可以访问www.CengageBrain.com。在CengageBrain.com主页上,使用页面顶部的搜索框搜索图书的ISBN(在图书的封底可以找到它)。这将把你带到本书的页面,可以在其中找到这些资源。
系统与实验室需求
无须任何硬件,就能够学习本书中的操作系统概念。截屏图及其他插图有助于支持这里展示的讨论。不过,为了*大限度地获取本书中的知识,你应该逐步完成“动手项目”。为此,将需要访问至少一台计算机和一种操作系统。要像本书中展示的那样完整、广泛地学习操作系统,将需要多台计算机和多种操作系统,也可以使用服务器或者提供了虚拟服务器或桌面环境的台式机,其中将运行不同的操作系统。
下面给出了针对本书中介绍的每一种操作系统的建议:
Windows XP
Windows XP是对Windows 98/Windows Me操作系统的重大升级,其中Home(家庭)版本适用于休闲娱乐的用户,而Professional(专业)版本则适用于办公以及网络环境。对于Home版本,建议使用500MHz或更快的处理器、256MB的RAM、1.0GB的硬盘驱动器以及一个DVD/CD-ROM驱动器;对于Professional版本,则建议使用900MHz或更快的处理器以及512MB的RAM。
Windows Vista
Windows Vista是对Windows XP的重要升级,对于视频能力则尤其如此。建议使用1GHz或更快的CPU、1GB以上的RAM、40GB或更大的硬盘驱动器、一个DVD/CD-ROM驱动器,以及一个与Windows Display Driver Model兼容的图形处理器。
Windows 7
Windows 7 是2009年推出的Windows桌面操作系统,许多读者都在他们的台式机或笔记本计算机上安装了它。建议使用1GHz或更快的CPU、1GB以上的RAM、50GB或更大的硬盘驱动器、一个DVD/CD-ROM驱动器,以及一个与Windows Display Driver Model兼容的图形处理器。
Windows Server 2003和Windows Server 2003 R2
对于这些服务器操作系统,建议至少使用550MHz的处理器,但是如果使用更快的处理器(例如900MHz或更快),则将获得更好的响应。还建议使用至少512MB的RAM、40GB或者更大的硬盘驱动器以及一个DVD/CD-ROM驱动器。
Windows Server 2008和Windows Server 2008 R2
这些服务器操作系统代表服务器能力方面的重要提升。对于这些服务器操作系统,建议使用1GHz或更快的处理器;并且注意Windows Server 2008 R2只能运行在64位的处理器上。还建议使用至少2GB的RAM、50GB或更大的硬盘驱动器以及一个DVD/CD-ROM驱动器。为了获得将加载多个操作系统(例如通过Microsoft Hyper-V)的虚拟服务器能力,还需要一个支持Intel-VT或AMD-V的处理器。
Mac OS X Leopard和Snow Leopard
尽管Mac OS X Leopard不需要Intel处理器,但是Mac OS X Snow Leopard需要。为了在学习本书时获得*佳的效果,建议Macintosh计算机使用Intel处理器、1~2GB的RAM、超过10GB的磁盘空间以及一个DVD/CD-ROM驱动器。
UNIX/Linux
为了使用Fedora 13 Live Media DVD,建议计算机使用400MHz或更快的处理器、512GB以上的RAM以及一个DVD/CD-ROM驱动器(硬盘空间对于运行Live Media分发版不是一个问题,除非执行了需要10GB或更多磁盘空间的硬盘安装)。
致谢
第4版的修订是一种非常有价值的经历,这部分是由于我们有机会与许多才华横溢的人共事。我们想要感谢组稿编辑Nick Lombardi对本书的兴趣与支持,也非常感谢高级产品经理Michelle Ruelos Cannistrici组建了我们的团队并自始至终支持我们的工作。我们要特别向开发编辑Deb Kaufmann致敬,他令人难以置信地通过清晰的语言、准确性、汇集评论以及总是提出合理的建议,在各个方面确保本书可以获得一个高质量的结果。我们还要感谢PreMediaGlobal的生产阶段的项目经理Sumathy Kumaran所做的工作,对文字编辑Marcia Youngman也一并表示感谢。Cengage Learning的高级内容项目经理Kara A. Dicaterino在生产阶段的末尾也发挥了重要的作用。
John Bosco在Green Pen Quality Assurance的优秀工作人员彻底地测试了书中每一处的概念、按键和鼠标点击。我们还想感谢本书的评审者对每一章的各个方面都提供了必要的反馈,他们是西部州长大学的Gwendolyn Britton、常春藤技术社区学院的Alan Bunning、皮特社区学院的Emily Harrington、瓦伦西亚社区学院的Heith Hennel、埃奇库姆社区学院的Wes Hill以及奥沙克技术社区学院的David Pope。
献辞
Michael Palmer——我要把本书再次献给Deb Kaufmann,他代表了开发编辑的黄金 标准。
Michael Walters——我要把本书献给我的岳母Dorothy Oliver,她在我们共处的时光里给了我那么多的快乐和决心。
第1章 操作系统理论 1
1.1 操作系统简介 1
1.2 操作系统简史 3
1.3 了解操作系统的工作原理 9
1.3.1 内核 9
1.3.2 资源管理器 10
1.3.3 设备驱动程序和操作系统 11
1.3.4 应用软件的作用 12
1.3.5 BIOS的作用 13
1.3.6 操作系统元素小结 15
1.4 操作系统的类型 16
1.4.1 分时系统 18
1.4.2 实时系统 19
1.4.3 多用户系统 19
1.5 单任务与多任务 21
1.6 单用户与多用户操作系统 24
1.7 当前的操作系统 25
1.8 本章小结 26
1.9 关键术语 26
1.10 复习题 29
1.11 动手项目 31
1.11.1 动手项目1-1 32
1.11.2 动手项目1-2 33
1.11.3 动手项目1-3 34
1.11.4 动手项目1-4 35
1.11.5 动手项目1-5 35
1.11.6 动手项目1-6 37
1.11.7 动手项目1-7 38
1.11.8 动手项目1-8 39
1.11.9 动手项目1-9 40
1.11.10 动手项目1-10 41
1.11.11 动手项目1-11 42
1.11.12 动手项目1-12 43
1.11.13 动手项目1-13 44
1.11.14 动手项目1-14 45
1.12 案例项目 46
1.12.1 案例项目1-1:基本的操作系统功能 46
1.12.2 案例项目1-2:设备驱动程序 46
1.12.3 案例项目1-3:选择新的服务器 46
1.12.4 案例项目1-4:选择新的桌面系统 46
1.12.5 案例项目1-5:新发布的操作系统的问题 46
第2章 流行的操作系统 47
2.1 早期的Microsoft操作系统 47
2.1.1 MS-DOS和PC DOS 47
2.1.2 Windows 3.x 47
2.1.3 Windows 95 48
2.1.4 Windows 98/Windows Me 49
2.1.5 Windows NT 51
2.1.6 Windows 2000 51
2.1.7 Windows 2000 Server和Windows 2000 Professional 53
2.1.8 Windows 2000 Server、Windows 2000 Advanced Server和
Windows 2000 Datacenter Server 53
2.2 当前的桌面和服务器操作系统 54
2.2.1 Windows XP 54
2.2.2 Windows Server 2003 58
2.2.3 Windows Server 2003 R2 58
2.2.4 Windows Vista 67
2.2.5 Windows Server 2008 77
2.2.6 Windows Server 2008 R2 79
2.2.7 Windows 7 82
2.2.8 UNIX System Release 4 86
2.2.9 Mac OS 90
2.3 本章小结 94
2.4 关键术语 94
2.5 复习题 97
2.6 动手项目 99
2.6.1 动手项目2-1 99
2.6.2 动手项目2-2 102
2.6.3 动手项目2-3 103
2.6.4 动手项目2-4 104
2.6.5 动手项目2-5 105
2.6.6 动手项目2-6 105
2.6.7 动手项目2-7 106
2.6.8 动手项目2-8 108
2.6.9 动手项目2-9 109
2.7 案例项目 110
2.7.1 案例项目2-1:会计部升级 110
2.7.2 案例项目2-2:遗留的开账单系统 110
2.7.3 案例项目2-3:用于市场部的新计算机 111
2.7.4 案例项目2-4:总裁的问题 111
2.7.5 案例项目2-5:首席财务官的考虑 111
2.7.6 案例项目2-6:服务器升级 111
第3章 操作系统的硬件组件 112
3.1 理解CPU 112
3.1.1 设计类型 113
3.1.2 速度 116
3.1.3 缓存 116
3.1.4 地址总线 117
3.1.5 数据总线 117
3.1.6 控制总线 118
3.1.7 CPU调度 118
3.2 流行的PC处理器 118
3.2.1 Intel处理器 118
3.2.2 AMD处理器 121
3.2.3 其他处理器 122
3.3 本章小结 123
3.4 关键术语 123
3.5 复习题 125
3.6 动手项目 127
3.6.1 动手项目3-1 127
3.6.2 动手项目3-2 127
3.6.3 动手项目3-3 130
3.6.4 动手项目3-4 131
3.6.5 动手项目3-5 131
3.6.6 动手项目3-6 132
3.7 案例项目 134
3.7.1 案例项目3-1:服务器升级 134
3.7.2 案例项目3-2:桌面计算 134
3.7.3 案例项目3-3:硬件过热 134
第4章 文件系统 135
4.1 了解文件系统的功能 135
4.1.1 设计目录结构 137
4.1.2 磁盘存储的基础知识 141
4.1.3 块分配 141
4.1.4 分区 142
4.1.5 格式化 145
4.2 Windows文件系统 148
4.2.1 FAT16和扩展FAT16 148
4.2.2 FAT32 149
4.2.3 FAT64 150
4.2.4 NTFS 151
4.2.5 CDFS和UDF 157
4.3 UNIX文件系统 158
4.4 Macintosh文件系统 165
4.5 本章小结 170
4.6 关键术语 171
4.7 复习题 175
4.8 动手项目 178
第3章 操作系统的硬件组件
在阅读完本章内容并且完成了练习之后,你将能够:
* 解释操作系统的硬件组件,包括设计类型、速度、缓存、地址总线、数据总线、控制总线和CPU调度。
* 描述流行的PC处理器的基本特性和系统体系结构。
* 理解硬件组件怎样与操作系统交互。
操作系统和硬件协作,使计算机可用于商业、教育、个人、网络和云计算应用程序。用于特定应用程序的操作系统的特性依赖于硬件的能力。在许多情况下,现代操作系统不支持较旧的硬件。当升级一个操作系统时,可能也需要升级硬件,以匹配新操作系统的 能力。
本章将介绍硬件的基础知识,包括CPU的设计、时钟速度和计算机总线的类型。此外,还将介绍CPU以及特定的操作系统如何使用CPU。
3.1 理解CPU
正如在第1章中所学到的,操作系统的主要功能之一是在计算机上运行的多种应用程序与其内的硬件之间提供接口。理解硬件的核心在于计算机的系统体系结构,它构建在CPU或处理器的基础之上。系统体系结构(system architecture)包括硬件中的CPU的数量和类型以及CPU与其他硬件组件(比如内存和磁盘存储器)之间的通信路由,称为总线(bus)。
CPU是执行实际的计算和逻辑工作的芯片。大多数的现代PC都具有这样一个芯片,称为单处理器计算机(single-processor computer)。实际上,为了具有完整的功能,CPU将需要多个支持芯片,比如帮助管理与设备和设备驱动程序之间的通信的芯片。
随着多核处理器的出现,芯片技术也在继续发展。处理器是CPU的一部分,用于读取和执行非常基本的指令,比如从内存中读取数据或者把数据发送到屏幕。处理器*初被创建成只有一个核心,因此一次只执行一条指令。核心(core)是实际地读取和执行指令的处理器区域。多核处理器具有两个或更多的核心,比如双核处理器和4核处理器,前者包含两个核心,后者则具有4个核心。
也有一些计算机具有多个CPU。许多计算机具有两个CPU,一些计算机则具有多达128个以上的CPU。这些计算机一般称为多处理器计算机(multiprocessor computer)。在本章后面将更详细地探讨单处理器、多处理器和多核计算机。
可以按多个硬件元素对CPU进行分类,以下是其中*重要的元素:
* 设计类型。
* 速度。
* 缓存。
* 地址总线。
* 数据总线。
* 控制总线。
* CPU调度。
在下面几节中将逐一介绍所有这些元素。
3.1.1 设计类型
在今天的计算机中使用两种常规的CPU设计:CISC(Complex Instruction Set Computing,复杂指令集计算)和RISC(Reduced Instruction Set Computing,精简指令集计算)。二者的主要区别是芯片可以处理的不同指令数。当在计算机上执行一个程序时,CPU将从程序中一条接一条地读取指令,以执行程序希望完成的任务。当CPU读取到这样一条指令时,它将执行与之关联的操作。CPU在低端每秒可以处理多达2000万个复杂的操作,在高端则可以处理数十亿个操作。时钟速度和CPU设计是确定可以多快地执行操作的因素。显然,可以使用许多指令来执行不同的操作对于程序员来说是很方便的。
例如,假定程序员希望把两个数字相乘。可以很方便地给CPU提供这两个数字,然后告诉它把它们相乘起来,并显示结果。由于不同类型的数字(比如整数和实数)必须以不同的方式处理,如果具有对各种数字类型执行这种乘法的功能,那将非常美妙。可以看到,当我们需要CPU执行越来越多的功能时,指令数也可能会快速增长。当程序执行更多的功能时,CPU可以理解并执行的指令集(instruction set)或命令列表可能变得相当复杂。像这样工作的处理器就称为CISC CPU。当CISC CPU获取一条命令时,它将给芯片的不同部分分配特定的指令。当一条命令完成并且CPU获取下一条命令时,它通常会使用在执行这条命令之前使用的芯片的相同部分。基于CISC的芯片通常可以识别200多条不同的指令,Intel x86计算机家族就基于CISC CPU。
CISC CPU既有优点,也有缺点。一个重大的优点是:只需通用硬件即可执行命令,而不需要为特定目的设计的硬件。如果以后想要给芯片的新版本添加新的命令,就可能利用相同的通用硬件完成。另一个重大的优点是:芯片主要由软件驱动,它的制作费用比硬件更便宜。CISC设计的主要缺点包括:执行许多功能所需的硬件比较复杂,并且芯片上使硬件做正确事情所需的软件也比较复杂。具有讽刺意味的是,它的一个更重大的缺点是:需要持续不断地对芯片上的硬件重新编程。前面使用了芯片上的某个部分执行乘法运算,如果要使用芯片的相同部分来加一个数字——两种功能显然是相关的,但是稍有区别——就必须在乘法运算与加法运算之间重新配置硬件。这种配置将把CPU从乘法改为加法,需要花一点时间,这是CISC芯片可能比RISC芯片慢一点的一个原因。
此外,当使用通用硬件执行特定的功能时,这些功能不会始终以*高效的方式执行,这可能会减慢程序代码的CPU执行速度。这个问题的一种解决方案是为特定的功能自定义硬件。例如,可以添加一个模块,将其优化成执行所有的计算功能(数学协处理器,math coprocessor)。添加这样的模块可以提升CPU的性能,但它也会提高价格,硬件的速度越快,价钱越昂贵。
注意?早期的系统体系结构具有一个处理器和一个可选的插槽,用于安装数学协处理器。数学协处理器用于执行复杂的数学计算,比如电子数据表中所需要的那些计算。现代系统体系结构中的CPU具有内置的数学协处理器。
考虑CISC CPU设计的缺点,很容易理解另一种主要的CPU设计(即RISC CPU)背后的思想。CISC CPU执行的复杂操作会降低它的速度,因为必须配置芯片上的各类硬件以执行特定的功能。另一方面,对于特定的任务,RISC CPU只需要非常少的配置,因为它的芯片上的硬件是专门设计的,并且优化成执行特定的功能。这种方法的缺点是:需要许多硬件来执行指令,这将使芯片更昂贵,因为它将更复杂。这是RISC CPU具有如此少的指令的主要原因;它所执行的大多数指令都是由芯片上的硬件执行的,它们专用于只执行某种功能。由于RISC CPU上的大多数硬件都不共享许多指令,RISC CPU通常使用一种称为流水线(pipelining)的技术,它允许处理器在操作一条指令的同时,从操作系统或应用程序中获取一条或多条后续的指令。全世界大约有95%的移动电话都使用ARM(Advanced RISC Machine,高级RISC机器)芯片。
注意?今天,还在继续生产CISC CPU和RISC CPU。人们用和稀泥的方式化解了关于它们二者谁更好的争论,即在RISC CPU中吸收CISC的特性,反之亦然。Intel处理器仍被认为是CISC CPU。
图3-1中的示例解释了RISC方法与CISC方法之间的区别,它显示了每种CPU设计在一定数量的时钟周期或时钟脉冲内如何执行5个乘法运算。
图3-1 CISC与RISC处理方式的对比
执行乘法运算的一般步骤如下:
(1)从内存中读取*个数字。
(2)从内存中读取第二个数字。
(3)把两个数字相乘。
(4)把结果写回内存。
(5)为其余的4个乘法运算依次重复执行步骤(1)~(4)。
在简单的CISC CPU上,首先将把CPU配置成获取(读取)数字,然后它就会读取数字。接下来,将CPU配置成把数字相乘,然后它就会把数字相乘。再接下来,将CPU配置成把结果写回内存,然后它就会把数字写到内存中。如果你希望以这种方式把5组数字相乘,就必须把整个过程重复5次。
在简单的RISC CPU上,这个过程看上去稍有不同。CPU的一个部分专用于读取*个数字。当这个操作完成时,CPU的另一个部分将读取第二个数字。当后面这个操作完成时,CPU还有一个部分用于把结果写到内存。如果这个操作必须接连发生5次,那么在获得用于*个操作的第二个数字时,RISC硬件中专用于从内存中获得*个数字的那个部分将获得用于第二个操作的*个数字。并且当把前两个数字相乘时,将从内存中获取用于第二个操作的第二个数字,同时获得用于第三个操作的*个数字。当把*个结果写回内存时,就执行第二个乘法运算,同时从内存中读取用于第三个操作的第二个数字,并且从内存中读取用于第四个操作的*个数字,依此类推。可以看到,当必须执行许多操作时,RISC CPU的流水线技术将比CISC CPU高效得多。Intel、Motorola和AMD是这种CPU的3家*受欢迎的制造商。
RISC处理器设计演变成一个名为EPIC(Explicitly Parallel Instruction Computing,显式并行指令计算)的概念,它是由Intel和HP(Hewlett-Packard)联合创建的。EPIC通过实现大存储区域以及执行并行指令集,使处理器能够同时处理大量的操作。EPIC技术使单个处理器一次能够执行多达20个操作。
EPIC使芯片能够预计和推测将来哪些操作是可能发生的。例如,如果已经请求了许多数学运算以获得某些数据并把它们相乘,EPIC就预计在将来会发生额外类型的操作。通过预计和推测,芯片实际上会在请求某些操作之前先执行它们。对于其他的操作,它会建立内存区域和工作区域,使得用于类似操作的工具已经存在,并且会一个接一个地处理那些操作。EPIC可以支持*多256个64位的寄存器,这比CISC和传统的RISC处理器要多得多。通过使用更多的寄存器,EPIC减少或消除了处理器上的瓶颈,这使处理器能够工作得更快。
基于RISC的EPIC处理器的另一个优点是:它可以把3条指令构建到一个“字”中。字(word)就像是与处理器之间的单独一条通信,在CISC和传统的RISC处理器中每个字使用一条指令。EPIC通过每个字使用3条指令,使处理器的工作速度要快得多。此外,还可以把EPIC指令结合进指令组中,从而组成多个字,如果可能,它将尝试同时执行一个组中的所有指令。一个指令组中的指令数量理论上是无限的。
通过执行并行操作,EPIC处理器可以同时做几件事情。例如,回到图3-1上来,CISC处理器花费20个时钟周期来执行5个乘法运算,RISC处理器则只需要花费8个时钟周 期。基于RISC的EPIC处理器(比如Intel Itanium处理器)在1个时钟周期内就可以执行 5个乘法运算,同时它还可以预计额外的任务,或者为不同的软件应用程序完成其他的 任务。
……