操作系统(第2版)
基本信息
- 原书名:Operating Systems,Second Edition
- 原出版社: McGraw-Hill Companies,Inc.
- 作者: (美)Achyut S Godbole [作译者介绍]
- 译者: 狄东宁 战晓苏 侯彩虹
- 丛书名: 国外计算机科学经典教材
- 出版社:清华大学出版社
- ISBN:9787302199502
- 上架时间:2009-7-3
- 出版日期:2009 年7月
- 开本:16开
- 页码:684
- 版次:2-1
- 所属分类:
计算机 > 操作系统 > 操作系统理论 > 综合
内容简介回到顶部↑
本书主要作为操作系统的专业教程,旨在通过从最基础的内容到高级概念逐步阐述的方法揭开操作系统的神秘面纱。作者用深入浅出的语言探讨了进程管理、信息管理和内存管理的复杂机制,并且阐述了死锁、并发等重要主题。本书不仅对计算机科学专业的本科生有帮助,而且对于希望了解操作系统内部工作原理的应用程序员也很有用。.
◆ 全面介绍了并行处理
◆ 介绍了多媒体操作系统..
◆ 扩充了有关操作系统安全性和保护的内容
◆ 加强了介绍分布式处理的内容
◆ 关于linux、windows nt/2000的典型案例分析...
◆ 全面介绍了并行处理
◆ 介绍了多媒体操作系统..
◆ 扩充了有关操作系统安全性和保护的内容
◆ 加强了介绍分布式处理的内容
◆ 关于linux、windows nt/2000的典型案例分析...
作译者回到顶部↑
本书提供作译者介绍
Achyut S Godbole是“SoftExcel Consultancy Services”广告跨国公司的总经理。他曾就职于IBM、Hindustan Lever、Systime(英国公司)、Syntel、L&T Infotech、Apar和Disha等多家公司,在编程、项目管理、营销、人力资源、系统分析和设计、质保以及软件出口等不同业务方面有着31年之久的工作经验。
Achyut是一位高产的作家,他不仅撰写了多本计算机专业教程,还著有数本管理方面的书籍。...
.. << 查看详细
Achyut是一位高产的作家,他不仅撰写了多本计算机专业教程,还著有数本管理方面的书籍。...
.. << 查看详细
目录回到顶部↑
第1章 操作系统发展史. 1
1.1 第0代—— 机械器件 1
1.2 第1代(1945~1955)—— 真空管 1
1.3 第2代(1955~1965)—— 晶体管 2
1.4 第3代(1965~1980)—— 集成电路 6
1.5 第4代(1980~现在)—— 大规模集成 10
1.5.1 桌面系统 10
1.5.2 多处理器系统 12
1.5.3 分布式处理技术 13
1.5.4 集群式系统 13
1.5.5 手持系统 14
1.6 关键词 14
1.7 总结 15
1.8 复习题 17
第2章 计算机体系结构 19
2.1 引言 19
2.2 4gl程序 20
2.3 3gl程序 20
2.4 2gl程序 21
2.5 1gl(机器语言)程序 23
1.1 第0代—— 机械器件 1
1.2 第1代(1945~1955)—— 真空管 1
1.3 第2代(1955~1965)—— 晶体管 2
1.4 第3代(1965~1980)—— 集成电路 6
1.5 第4代(1980~现在)—— 大规模集成 10
1.5.1 桌面系统 10
1.5.2 多处理器系统 12
1.5.3 分布式处理技术 13
1.5.4 集群式系统 13
1.5.5 手持系统 14
1.6 关键词 14
1.7 总结 15
1.8 复习题 17
第2章 计算机体系结构 19
2.1 引言 19
2.2 4gl程序 20
2.3 3gl程序 20
2.4 2gl程序 21
2.5 1gl(机器语言)程序 23
前言回到顶部↑
从某种意义上讲,我要将这本书献给Narayana Murthy先生,他是一位成功的商人和杰出的计算机科学家。当他离开Patni计算机系统公司(Patni Computer System,PCS)——该公司也就是现在的Patni公司——创办Infosys公司时,我加入PCS接替了他的位置。加入Patni公司时,我发现自己要与大量计算机科学领域尤其是毕业于IIT大学的具有学士、硕士学位的专业人士打交道。当时在Patni工作需要深入理解计算机科学,尤其是操作系统。虽然我毕业于IIT,但只是一个化学工程师,而且我在IIT大学的最后三年更多地阅读了经济学、文学和音乐等方面的著作,而不是工程方面的书籍。.
我以前在印度、英国和美国有过应用系统设计和开发的经历,并在那里参与了ERP软件包(MRP II)的设计,而且由于优秀的业绩多次受到IBM表彰。然而,管理计算机科学中那些年轻而且思想活跃的人,实际上对我来说仍是一个挑战。我不信任只“从顶层进行管理”。我想自己完全理解这门技术,这样我就可以做出正确的决策,并且在软件行业这样的组织中受到同事们的尊重。
这就促使我阅读了大量关于数字电子学、算法、计算机体系结构以及操作系统的书籍。在阅读了其中一部分著作(20多本)之后,我认识到有很多介绍“操作系统”的好书,但是还需要一个简单而严密的书能够不夸张地为大家解开操作系统的神秘面纱,并逐步解释操作系统的内部结构。这就使得我自己开始写这样一本书。当我第一次写这本书的时候,并没有考虑任何大学的教学大纲。写这本书并没有任何商业目的,而只是想解开这个主题的神秘面纱。因此,每章后面的习题都旨在帮助学生以一种简单的方式掌握这个主题,而不是从“应试”的角度指点学生。
本书出版了。然而,因为本书并不是作为教材编写的,所以它经过了一段时间才在学生中普及。稍后,人口传诵造成了这个样子。“为了考试需要阅读这样那样的书籍,而如果想要真正了解操作系统这个主题就要先阅读Godbole的这本书”,这就是从成千上百个学生和教授口中传出的评价。因此,即使某些大学并未“推荐”这本书,这些大学中的许多学生也都阅读了这本书。成千上百在英国和美国读书的学生也开始将这本书带到世界各国。本书重印20多次,这更证明了它是一本书,而并不是一本教材。当Narayana Murthy先生和FC Kohli先生(印度软件业的鼻祖)一起在公开场合用“我们知道Achyut作为CEO或MD在其职业生涯中帮助成立了多家软件公司。然而,其中最重要的一点就是他是亚洲唯一一位已经撰写多部深奥的技术书籍并涉及到像‘操作系统’这样复杂的主题的CEO”这样的话语表扬我时,这就成了本书第一版的终结曲。
在多年的默默成功之后,我决定出版这本书的第二版。那时,事情已经发生了变化。大型计算机已经让位于微型计算机,而微型计算机也让位给了实际上功能更为强大的桌面机和便携式笔记本。另外,Windows和UNIX/Linux已经成为全球标准。本书第一版只是简单地介绍了UNIX,但没有提到Linux。有关Windows的内容也需要做大的改动。分布式操作系统、实时操作系统和多媒体操作系统同样正在受到越来越多的欢迎。在新书中需要涵盖所有这些主题,要解释GUI,要用C、C++语言编写的例子替换用COBOL语言编写的例子,而且有关进程间通信(IPC)以及死锁的内容需要更加深刻全面。所有这些都要在保持简单、逐步深入的基础上在本书第二版中进行介绍。这里还有另一个改变。在研究了不同的教学大纲之后,我决定将这本书作为一本合适的教材进行编写。我希望学生不只是从考试的角度找到对自己有用的内容,而且还可以愉快地阅读这本书。
本书主要面向以下5个专业群体:
●第1类主要是设计和编写操作系统的人员。这个群体需要从最深层次知道操作系统的结构和体系结构。他们要知道操作系统中如何编写不同算法,并在不同层次上组织这些算法从而执行不同的功能和系统调用。这类系统架构师和程序员要研究操作系统的内部结构以及位于操作系统底层的计算机体系结构。
●第2类专家就是“系统程序员”。他们需要知道操作系统的内部结构,因为他们要使用系统调用。他们要编写不同的工具包。尤其是,用汇编语言或C语言编写的这些工具包。当操作系统要支持新设备时,也许还要这类人士编写“设备驱动程序”。
●第3类包括系统工程师和系统管理员,他们需要安装操作系统,并确保操作系统的顺利运行。虽然他们不需要设计或编写操作系统,但也需要知道操作系统的不同部分和模块,以及这些组成部分和模块互连在一起的方式。这些人员必须能够为了得到较好的性能而调整操作系统、分配/回收磁盘空间、管理密码和操作系统的安全性等。
●第4类是应用程序员。他们用C、C++、VC++、Java/J2EE或.NET 环境为不同的数据库编写程序。操作系统将用于内存分配、文件I/O和进程同步/调度的不同复杂算法和应用程序员分隔开。然而,这个群体也需要知道操作系统工作原理以及操作系统帮助应用系统开发和执行的方法。
●第5类人员就是那些永远不会对计算机编程,而只使用计算机的终端用户。这个群体也许只会知道如何“使用”操作系统。从根本上讲,这个群体只会关心操作系统的图形用户界面。他们需要知道在哪里点击可以创建文件,或者是执行特定的程序等。
毫无疑问,本书面向前三类专业人士。从理论上讲,第4类应用程序员并不需要知道操作系统的“内部原理”。然而,如果他们要知道其中的内容,就要进行另外的研究学习。最后的终端用户这个群体可以远离操作系统的细节,但是,具有逻辑思维能力的新学者都可以欣赏本书,因为这本书是用操作系统工作最简单的术语阐述的。这也就是为什么本书有一章介绍计算机体系结构内容的原因。
我认为,对任何计算机科学或信息技术专业的学生而言,本书作为入门课本都非常有用。..
本书试图通过逐步深入的方式解释操作系统这个主题,这样任何具有逻辑思维能力的人都可以理解这个主题,而且也不会损失严谨性和准确性,所有5个群体的人都可以从中受益。通常,本书只在解释新术语之后才会使用新术语。
本书按照如下方式组织:
●第1章涉及到操作系统的历史。它涵盖了操作系统历史上的各个里程碑。本章还介绍了操作系统的发展趋势。
●第2章开始先简要介绍了不同级别的编程语言,并给出了每个级别编程语言的视图说明,包括4GL、3GL、2GL和1GL(分别是第4代语言、第3代语言、第2代语言和第1代语言,其中第1代语言是机器语言)。本章描述了各代语言之间的关系,本质上,从不同能力级别抽象地提供了对同一个系统的描述。
●第3章介绍了不同系统调用提供的操作系统功能的概念。它阐述了用户/应用程序程序员以及系统程序员关于操作系统的观点。本章给出了将这些观点连接在一起的方式。它按照三种基本类别讨论了这些系统调用,分别是:信息管理(Information Management,IM)、进程管理(Process Management,PM)和内存管理(Memory Management,MM)。本章还给出了这三个模块之间的关系。
●第4章定义了“块”的概念,并解释了文件的数据在磁盘上的组织方式。本章详细解释了硬盘和软盘的功能,以及操作系统如何完成从逻辑地址到物理地址的转换从而实现实际的记录读/写。最后介绍了应用程序(Application Program,AP)、操作系统(Operating System,OS)以及数据管理软件(Data Management Software,DMS)之间的关系。
●第5章定义了“进程”并讨论了上下文切换和多道编程技术的概念。本章定义了不同的进程状态,并讨论了不同进程状态之间的转移。此外,还介绍了“进程控制块(Process Control Block,PCB)”数据结构的详细内容,并用该数据结构介绍了如何实现对进程的不同操作(如“创建”、“杀死”或“派发”),每个操作都给出了PCB链表如何反映其变化。最后讨论了调度各种进程所用的不同方法。
我以前在印度、英国和美国有过应用系统设计和开发的经历,并在那里参与了ERP软件包(MRP II)的设计,而且由于优秀的业绩多次受到IBM表彰。然而,管理计算机科学中那些年轻而且思想活跃的人,实际上对我来说仍是一个挑战。我不信任只“从顶层进行管理”。我想自己完全理解这门技术,这样我就可以做出正确的决策,并且在软件行业这样的组织中受到同事们的尊重。
这就促使我阅读了大量关于数字电子学、算法、计算机体系结构以及操作系统的书籍。在阅读了其中一部分著作(20多本)之后,我认识到有很多介绍“操作系统”的好书,但是还需要一个简单而严密的书能够不夸张地为大家解开操作系统的神秘面纱,并逐步解释操作系统的内部结构。这就使得我自己开始写这样一本书。当我第一次写这本书的时候,并没有考虑任何大学的教学大纲。写这本书并没有任何商业目的,而只是想解开这个主题的神秘面纱。因此,每章后面的习题都旨在帮助学生以一种简单的方式掌握这个主题,而不是从“应试”的角度指点学生。
本书出版了。然而,因为本书并不是作为教材编写的,所以它经过了一段时间才在学生中普及。稍后,人口传诵造成了这个样子。“为了考试需要阅读这样那样的书籍,而如果想要真正了解操作系统这个主题就要先阅读Godbole的这本书”,这就是从成千上百个学生和教授口中传出的评价。因此,即使某些大学并未“推荐”这本书,这些大学中的许多学生也都阅读了这本书。成千上百在英国和美国读书的学生也开始将这本书带到世界各国。本书重印20多次,这更证明了它是一本书,而并不是一本教材。当Narayana Murthy先生和FC Kohli先生(印度软件业的鼻祖)一起在公开场合用“我们知道Achyut作为CEO或MD在其职业生涯中帮助成立了多家软件公司。然而,其中最重要的一点就是他是亚洲唯一一位已经撰写多部深奥的技术书籍并涉及到像‘操作系统’这样复杂的主题的CEO”这样的话语表扬我时,这就成了本书第一版的终结曲。
在多年的默默成功之后,我决定出版这本书的第二版。那时,事情已经发生了变化。大型计算机已经让位于微型计算机,而微型计算机也让位给了实际上功能更为强大的桌面机和便携式笔记本。另外,Windows和UNIX/Linux已经成为全球标准。本书第一版只是简单地介绍了UNIX,但没有提到Linux。有关Windows的内容也需要做大的改动。分布式操作系统、实时操作系统和多媒体操作系统同样正在受到越来越多的欢迎。在新书中需要涵盖所有这些主题,要解释GUI,要用C、C++语言编写的例子替换用COBOL语言编写的例子,而且有关进程间通信(IPC)以及死锁的内容需要更加深刻全面。所有这些都要在保持简单、逐步深入的基础上在本书第二版中进行介绍。这里还有另一个改变。在研究了不同的教学大纲之后,我决定将这本书作为一本合适的教材进行编写。我希望学生不只是从考试的角度找到对自己有用的内容,而且还可以愉快地阅读这本书。
本书主要面向以下5个专业群体:
●第1类主要是设计和编写操作系统的人员。这个群体需要从最深层次知道操作系统的结构和体系结构。他们要知道操作系统中如何编写不同算法,并在不同层次上组织这些算法从而执行不同的功能和系统调用。这类系统架构师和程序员要研究操作系统的内部结构以及位于操作系统底层的计算机体系结构。
●第2类专家就是“系统程序员”。他们需要知道操作系统的内部结构,因为他们要使用系统调用。他们要编写不同的工具包。尤其是,用汇编语言或C语言编写的这些工具包。当操作系统要支持新设备时,也许还要这类人士编写“设备驱动程序”。
●第3类包括系统工程师和系统管理员,他们需要安装操作系统,并确保操作系统的顺利运行。虽然他们不需要设计或编写操作系统,但也需要知道操作系统的不同部分和模块,以及这些组成部分和模块互连在一起的方式。这些人员必须能够为了得到较好的性能而调整操作系统、分配/回收磁盘空间、管理密码和操作系统的安全性等。
●第4类是应用程序员。他们用C、C++、VC++、Java/J2EE或.NET 环境为不同的数据库编写程序。操作系统将用于内存分配、文件I/O和进程同步/调度的不同复杂算法和应用程序员分隔开。然而,这个群体也需要知道操作系统工作原理以及操作系统帮助应用系统开发和执行的方法。
●第5类人员就是那些永远不会对计算机编程,而只使用计算机的终端用户。这个群体也许只会知道如何“使用”操作系统。从根本上讲,这个群体只会关心操作系统的图形用户界面。他们需要知道在哪里点击可以创建文件,或者是执行特定的程序等。
毫无疑问,本书面向前三类专业人士。从理论上讲,第4类应用程序员并不需要知道操作系统的“内部原理”。然而,如果他们要知道其中的内容,就要进行另外的研究学习。最后的终端用户这个群体可以远离操作系统的细节,但是,具有逻辑思维能力的新学者都可以欣赏本书,因为这本书是用操作系统工作最简单的术语阐述的。这也就是为什么本书有一章介绍计算机体系结构内容的原因。
我认为,对任何计算机科学或信息技术专业的学生而言,本书作为入门课本都非常有用。..
本书试图通过逐步深入的方式解释操作系统这个主题,这样任何具有逻辑思维能力的人都可以理解这个主题,而且也不会损失严谨性和准确性,所有5个群体的人都可以从中受益。通常,本书只在解释新术语之后才会使用新术语。
本书按照如下方式组织:
●第1章涉及到操作系统的历史。它涵盖了操作系统历史上的各个里程碑。本章还介绍了操作系统的发展趋势。
●第2章开始先简要介绍了不同级别的编程语言,并给出了每个级别编程语言的视图说明,包括4GL、3GL、2GL和1GL(分别是第4代语言、第3代语言、第2代语言和第1代语言,其中第1代语言是机器语言)。本章描述了各代语言之间的关系,本质上,从不同能力级别抽象地提供了对同一个系统的描述。
●第3章介绍了不同系统调用提供的操作系统功能的概念。它阐述了用户/应用程序程序员以及系统程序员关于操作系统的观点。本章给出了将这些观点连接在一起的方式。它按照三种基本类别讨论了这些系统调用,分别是:信息管理(Information Management,IM)、进程管理(Process Management,PM)和内存管理(Memory Management,MM)。本章还给出了这三个模块之间的关系。
●第4章定义了“块”的概念,并解释了文件的数据在磁盘上的组织方式。本章详细解释了硬盘和软盘的功能,以及操作系统如何完成从逻辑地址到物理地址的转换从而实现实际的记录读/写。最后介绍了应用程序(Application Program,AP)、操作系统(Operating System,OS)以及数据管理软件(Data Management Software,DMS)之间的关系。
●第5章定义了“进程”并讨论了上下文切换和多道编程技术的概念。本章定义了不同的进程状态,并讨论了不同进程状态之间的转移。此外,还介绍了“进程控制块(Process Control Block,PCB)”数据结构的详细内容,并用该数据结构介绍了如何实现对进程的不同操作(如“创建”、“杀死”或“派发”),每个操作都给出了PCB链表如何反映其变化。最后讨论了调度各种进程所用的不同方法。







点击看大图

加载中...

