基本信息·出版社:清华大学出版社 ·页码:684 页 ·出版日期:2009年07月 ·ISBN:7302199507/9787302199502 ·条形码:9787302199502 ·版本:第1版 · ...
商家名称 |
信用等级 |
购买信息 |
订购本书 |
|
|
操作系统 |
|
|
|
操作系统 |
|
基本信息·出版社:清华大学出版社
·页码:684 页
·出版日期:2009年07月
·ISBN:7302199507/9787302199502
·条形码:9787302199502
·版本:第1版
·装帧:平装
·开本:16
·正文语种:中文
·丛书名:国外计算机科学经典教材
·外文书名:Operating Systems,Second Edition
内容简介 《操作系统》主要作为操作系统的专业教程,旨在通过从最基础的内容到高级概念逐步阐述的方法揭开操作系统的神秘面纱。作者用深入浅出的语言探讨了进程管理、信息管理和内存管理的复杂机制,并且阐述了死锁、并发等重要主题。《操作系统》不仅对计算机科学专业的本科生有帮助,而且对于希望了解操作系统内部工作原理的应用程序员也很有用。
作者简介 Achyut S Godbole是“SoftExcel Consultancy Services”广告跨国公司的总经理。他曾就职于IBM、Hindustan Lever、Systime(英国公司)、Syntel、L&T Infotech、Apar和Disha等多家公司,在编程、项目管理、营销、人力资源、系统分析和设计、质保以及软件出口等不同业务方面有着31年之久的工作经验。
Achyut是一位高产的作家,他不仅撰写了多本计算机专业教程,还著有数本管理方面的书籍。
编辑推荐 《操作系统》主要特色:
全面介绍了并行处理
介绍了多媒体操作系统
扩充了有关操作系统安全性和保护的内容
加强了介绍分布式处理的内容
关于Linux、WindowsNT/2000的典型案例分析
目录 第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
2.5.1 汇编器23
2.5.2 指令格式23
2.5.3 加载/重定位25
2.6 0GL(硬件级)语言26
2.6.1 基本概念26
2.6.2 CPU寄存器28
2.6.3 算术逻辑单元(ALU)29
2.6.4 开关30
2.6.5 解码器电路30
2.6.6 机器周期31
2.6.7 一些示例32
2.7 程序上下文35
2.8 中断36
2.8.1 中断需求36
2.8.2 针对中断的计算机硬件36
2.9 关键词41
2.10 总结42
2.11 复习题43
第3章 操作系统——函数和结构47
3.1 什么是操作系统?47
3.2 操作系统的不同服务51
3.2.1 信息管理52
3.2.2 进程管理52
3.2.3 内存管理53
3.3 系统调用的使用54
3.4 可移植性问题55
3.5 操作系统的用户观点56
3.6 图形用户界面(GUI)61
3.7 操作系统结构62
3.7.1 整体(简单的)操作系统63
3.7.2 分层操作系统63
3.7.3 微内核操作系统65
3.7.4 外核操作系统66
3.8 虚拟机66
3.9 引导68
3.10 关键词69
3.11 总结70
3.12 复习题71
第4章 信息管理75
4.1 引言75
4.1.1 磁盘基础77
4.1.2 直接存储器存取(DMA)90
4.2 文件系统91
4.2.1 引言91
4.2.2 块和块编码方案92
4.2.3 文件支持级别95
4.2.4 写记录96
4.2.5 读记录100
4.2.6 操作系统和DMS之间的关系102
4.2.7 文件目录条目106
4.2.8 打开/关闭操作107
4.2.9 磁盘空间分配方法108
4.2.10 目录结构:用户观点123
4.2.11 目录系统的实现127
4.3 设备驱动程序(DD)135
4.3.1 基础知识135
4.3.2 路径管理138
4.3.3 DD的子模块140
4.3.4 I/O过程142
4.3.5 I/O调度程序144
4.3.6 设备处理程序150
4.3.7 中断服务程序(ISR)150
4.3.8 完整的描述150
4.4 终端I/O152
4.4.1 引言152
4.4.2 终端硬件152
4.4.3 终端软件154
4.5 CD光盘(CD-ROM)171
4.5.1 技术细节172
4.5.2 光盘上的组织数据173
4.5.3 DVD光盘174
4.6 关键词174
4.7 总结176
4.8 复习题177
第5章 进程管理181
5.1 引言181
5.2 什么是进程?182
5.3 多道程序设计技术的演化182
5.4 上下文切换184
5.5 进程状态186
5.5.1 运行态186
5.5.2 就绪态186
5.5.3 阻塞态186
5.6 进程状态转移187
5.7 进程控制块188
5.8 进程层次结构193
5.9 对进程的操作195
5.10 创建进程196
5.11 销毁进程199
5.12 调度进程200
5.13 更改进程优先级200
5.14 阻塞进程201
5.15 再次调度进程202
5.16 时间用完的进程202
5.17 唤醒进程203
5.18 挂起/恢复进程204
5.19 进程调度206
5.19.1 调度目标206
5.19.2 优先级和时间片的概念208
5.19.3 调度理论209
5.19.4 调度级别210
5.19.5 调度策略(针对短期调度)211
5.20 多线程技术216
5.20.1 多线程模型218
5.20.2 线程的实现220
5.21 关键词221
5.22 总结222
5.23 复习题224
第6章 进程间通信227
6.1 生产者-消费者问题227
6.2 生产者-消费者问题的解决方案232
6.2.1 中断禁止/启动232
6.2.2 锁标识232
6.2.3 互斥原语233
6.2.4 互斥原语的实现234
6.2.5 替换策略235
6.2.6 Peterson算法236
6.2.7 硬件支持238
6.2.8 信号量240
6.3 经典IPC问题244
6.3.1 算法244
6.3.2 监视器250
6.3.3 消息传递251
6.4 关键词252
6.5 总结252
6.6 复习题254
第7章 死锁257
7.1 引言257
7.2 死锁的图形化解释258
7.3 出现死锁的前提条件260
7.4 死锁策略260
7.4.1 忽略死锁261
7.4.2 检测死锁261
7.4.3 从死锁中恢复265
7.4.4 预防死锁266
7.4.5 避免死锁269
7.5 关键词272
7.6 总结273
7.7 复习题273
第8章 内存管理277
8.1 引言277
8.2 单个连续内存管理279
8.3 固定分区内存管理281
8.3.1 引言281
8.3.2 分配算法282
8.3.3 交换284
8.3.4 重定位和地址转换285
8.3.5 保护和共享287
8.3.6 评价290
8.4 可变分区290
8.4.1 引言290
8.4.2 分配算法292
8.4.3 交换295
8.4.4 重定位和地址转换295
8.4.5 保护和共享296
8.4.6 评估296
8.5 非连续分配法——一般概念297
8.6 分页298
8.6.1 原理介绍298
8.6.2 分配算法301
8.6.3 交换304
8.6.4 重定位和地址转换304
8.7 分段317
8.7.1 引言317
8.7.2 交换320
8.7.3 地址转换和重定位321
8.7.4 共享和保护323
8.8 复合系统325
8.9 虚拟内存管理系统327
8.9.1 引言327
8.9.2 重定位和地址转换331
8.9.3 交换334
8.9.4 重定位和地址转换347
8.9.5 保护和共享347
8.9.6 评估347
8.9.7 虚拟内存的设计考虑348
8.10 关键词351
8.11 总结353
8.12 复习题355
第9章 操作系统——安全性和保护359
9.1 引言359
9.2 安全性威胁360
9.3 对安全的攻击361
9.3.1 身份验证361
9.3.2 浏览361
9.3.3 后门362
9.3.4 无效的参数362
9.3.5 搭线362
9.3.6 电子数据捕捉362
9.3.7 损失线362
9.3.8 不正确的访问控制362
9.3.9 废物恢复363
9.3.10 流氓软件363
9.3.11 隐蔽信道364
9.4 由参数引起的安全性侵犯364
……
序言 从某种意义上讲,我要将这本书献给Narayana Murthy先生,他是一位成功的商人和杰出的计算机科学家。当他离开Patni计算机系统公司(Patni Computer System,PCS)——该公司也就是现在的Patni公司——创办Infosys公司时,我加入PCS接替了他的位置。加入Patni公司时,我发现自己要与大量计算机科学领域尤其是毕业于IIT大学的具有学士、硕士学位的专业人士打交道。当时在Patni工作需要深入理解计算机科学,尤其是操作系统。虽然我毕业于IIT,但只是一个化学工程师,而且我在IIT大学的最后三年更多地阅读了经济学、文学和音乐等方面的著作,而不是工程方面的书籍。
我以前在印度、英国和美国有过应用系统设计和开发的经历,并在那里参与了ERP软件包(MliP Ⅱ)的设计,而且由于优秀的业绩多次受到I。BM表彰。然而,管理计算机科学中那些年轻而且思想活跃的人,实际上对我来说仍是一个挑战。我不信任只“从项层进行管理”。我想自己完全理解这门技术,这样我就可以做出正确的决策,并且在软件行业这样的组织中受到同事们的尊重。
这就促使我阅读了大量关于数字电子学、算法、计算机体系结构以及操作系统的书籍。在阅读了其中一部分著作(20多本)之后,我认识到有很多介绍“操作系统”的好书,但是还需要一个简单而严密的书能够不夸张地为大家解开操作系统的神秘面纱,并逐步解释操作系统的内部结构。这就使得我自己开始写这样一本书。当我第一次写这本书的时候,并没有考虑任何大学的教学大纲。写这本书并没有任何商业目的,而只是想解开这个主题的神秘面纱。因此,每章后面的习题都旨在帮助学生以一种简单的方式掌握这个主题,而不是从“应试”的角度指点学生。
本书出版了。然而,因为本书并不是作为教材编写的,所以它经过了一段时间才在学生中普及。稍后,人口传诵造成了这个样子。“为了考试需要阅读这样那样的书籍,而如果想要真正了解操作系统这个主题就要先阅读Godbole的这本书”,这就是从成千上百个学生和教授口中传出的评价。因此,即使某些大学并未“推荐”这本书,这些大学中的许多学生也都阅读了这本书。成千上百在英国和美国读书的学生也开始将这本书带到世界各国。本书重印20多次,这更证明了它是一本书,而并不是一本教材。当NarayanaMurthy先生和FC Kohli先生(印度软件业的鼻祖)一起在公开场合用“我们知道.Achyut作为CEO或MD在其职业生涯中帮助成立了多家软件公司。然而,其中最重要的一点就是他是亚洲唯一一位已经撰写多部深奥的技术书籍并涉及到像‘操作系统’这样复杂的主题的CEO”这样的话语表扬我时,这就成了本书第一版的终结曲。
文摘 插图:
第1章操作系统发展史
1.1 第0代——机械器件
第一台数字计算机是由一位名叫Char1es Babbage(1791~1871)1拘英国数学家设计的。这台数字计算机是一个机械设计方案,包括轮子、轴承和嵌齿等器件。由于这台计算机运行缓慢而且可靠性低,因此该设计方案实际上并不受欢迎,当然也就没有任何针对该计算机的操作系统。
1.2 第1代(1945~1955)——真空管
几十年后,出现了替代机械设计的电子设计方案。该解决方案的出现是第二次世界大战期间联合努力研究的结果。大约在1945年,哈佛大学的霍华德·艾肯(HowardAiken)、普林斯顿大学的冯·诺伊曼(Von Neumann)、宾夕法尼亚州立大学的J·埃克特(J.Eckert)和威廉·毛葫利(Wi11iam Mauche1y)以及德国的K·祖思(K.Zuse)成功地以真空管作为核心部件设计出了计算机器。
这些机器体积庞大,连续使用会释放大量的热量。真空管经常很快就烧毁(在一台计算机运行期间,会浪费多达10 000~20 000个管子!)程序只能用机器语言编写,因此机器语言被认为是第一代计算机编程语言。