现代操作系统(原书第4版)pdf下载

现代操作系统(原书第4版) 内容简介本书是操作系统领域的经典教材,主要内容包括进程与线程、内存管理、文件系统、输入/输出、死锁、虚拟化和云、多处理机系统、安全,以及关于UNIX、Linux、Android和Windows的实例研究等。第4版对知识点进行了全面更新,反映了当代操作系统...

现代操作系统(原书第4版) 内容简介

本书是操作系统领域的经典教材,主要内容包括进程与线程、内存管理、文件系统、输入/输出、死锁、虚拟化和云、多处理机系统、安全,以及关于UNIX、Linux、Android和Windows的实例研究等。第4版对知识点进行了全面更新,反映了当代操作系统的发展与动向。本书适合作为高等院校计算机专业的操作系统课程教材,也适合相关技术人员参考。

现代操作系统(原书第4版) 目录

出版者的话

译者序

前言

作者简介

第1章引论1

1.1什么是操作系统2

1.1.1作为扩展机器的操作系统2

1.1.2作为资源管理者的操作系统3

1.2操作系统的历史4

1.2.1第一代(1945~1955):真空管和穿孔卡片4

1.2.2第二代(1955~1965):晶体管和批处理系统4

1.2.3第三代(1965~1980):集成电路和多道程序设计6

1.2.4第四代(1980年至今):个人计算机8

1.2.5第五代(1990年至今):移动计算机10

1.3计算机硬件简介11

1.3.1处理器12

1.3.2存储器14

1.3.3磁盘15

1.3.4I/O设备16

1.3.5总线18

1.3.6启动计算机19

1.4操作系统大观园20

1.4.1大型机操作系统20

1.4.2服务器操作系统20

1.4.3多处理器操作系统20

1.4.4个人计算机操作系统20

1.4.5掌上计算机操作系统21

1.4.6嵌入式操作系统21

1.4.7传感器节点操作系统21

1.4.8实时操作系统21

1.4.9智能卡操作系统21

1.5操作系统概念22

1.5.1进程22

1.5.2地址空间23

1.5.3文件23

1.5.4输入/输出25

1.5.5保护25

1.5.6shell25

1.5.7个体重复系统发育26

1.6系统调用28

1.6.1用于进程管理的系统调用31

1.6.2用于文件管理的系统调用32

1.6.3用于目录管理的系统调用32

1.6.4各种系统调用34

1.6.5WindowsWin32API34

1.7操作系统结构35

1.7.1单体系统36

1.7.2层次式系统36

1.7.3微内核37

1.7.4客户端–服务器模式38

1.7.5虚拟机39

1.7.6外核41

1.8依靠C的世界41

1.8.1C语言41

1.8.2头文件41

1.8.3大型编程项目43

1.8.4运行模型43

1.9有关操作系统的研究44

1.10本书其他部分概要45

1.11公制单位45

1.12小结46

习题46

第2章进程与线程48

2.1进程48

2.1.1进程模型48

2.1.2进程的创建49

2.1.3进程的终止51

2.1.4进程的层次结构51

2.1.5进程的状态51

2.1.6进程的实现53

2.1.7多道程序设计模型54

2.2线程54

2.2.1线程的使用54

2.2.2经典的线程模型57

2.2.3POSIX线程60

2.2.4在用户空间中实现线程60

2.2.5在内核中实现线程63

2.2.6混合实现63

2.2.7调度程序激活机制64

2.2.8弹出式线程64

2.2.9使单线程代码多线程化65

2.3进程间通信67

2.3.1竞争条件67

2.3.2临界区68

2.3.3忙等待的互斥68

2.3.4睡眠与唤醒71

2.3.5信号量73

2.3.6互斥量74

2.3.7管程78

2.3.8消息传递81

2.3.9屏障82

2.3.10避免锁:读–复制–更新83

2.4调度84

2.4.1调度简介84

2.4.2批处理系统中的调度88

2.4.3交互式系统中的调度89

2.4.4实时系统中的调度92

2.4.5策略和机制93

2.4.6线程调度93

2.5经典的IPC问题94

2.5.1哲学家就餐问题94

2.5.2读者–写者问题96

2.6有关进程与线程的研究97

2.7小结97

习题98

第3章内存管理102

3.1无存储器抽象102

3.2一种存储器抽象:地址空间104

3.2.1地址空间的概念104

3.2.2交换技术106

3.2.3空闲内存管理107

3.3虚拟内存109

3.3.1分页110

3.3.2页表112

3.3.3加速分页过程112

3.3.4针对大内存的页表114

3.4页面置换算法117

3.4.1最优页面置换算法117

3.4.2最近未使用页面置换算法118

3.4.3先进先出页面置换算法118

3.4.4第二次机会页面置换算法118

3.4.5时钟页面置换算法119

3.4.6最近最少使用页面置换算法119

3.4.7用软件模拟LRU120

3.4.8工作集页面置换算法121

3.4.9工作集时钟页面置换算法123

3.4.10页面置换算法小结124

3.5分页系统中的设计问题124

3.5.1局部分配策略与全局分配策略124

3.5.2负载控制126

3.5.3页面大小126

3.5.4分离的指令空间和数据空间127

3.5.5共享页面128

3.5.6共享库128

3.5.7内存映射文件130

3.5.8清除策略130

3.5.9虚拟内存接口130

3.6有关实现的问题131

3.6.1与分页有关的工作131

3.6.2缺页中断处理131

3.6.3指令备份132

3.6.4锁定内存中的页面132

3.6.5后备存储133

3.6.6策略和机制的分离134

3.7分段134

3.7.1纯分段的实现136

3.7.2分段和分页结合:MULTICS136

3.7.3分段和分页结合:Intelx86138

3.8有关内存管理的研究141

3.9小结141

习题142

第4章文件系统147

4.1文件148

4.1.1文件命名148

4.1.2文件结构149

4.1.3文件类型149

4.1.4文件访问151

4.1.5文件属性151

4.1.6文件操作152

4.1.7使用文件系统调用的一个示例程序152

4.2目录154

4.2.1一级目录系统154

4.2.2层次目录系统154

4.2.3路径名154

4.2.4目录操作156

4.3文件系统的实现157

4.3.1文件系统布局157

4.3.2文件的实现157

4.3.3目录的实现160

4.3.4共享文件162

4.3.5日志结构文件系统163

4.3.6日志文件系统164

4.3.7虚拟文件系统165

4.4文件系统管理和优化167

4.4.1磁盘空间管理167

4.4.2文件系统备份171

4.4.3文件系统的一致性174

4.4.4文件系统性能

4.4.5磁盘碎片整理

4.5文件系统实例

4.5.1MS—DOS文件系统

4.5.2UNIXV7文件系统

4.5.3CD—ROM文件系统

4.6有关文件系统的研究

4.7小结

习题

第5章输入,输出

5.1I/O硬件原理

5.1.1I/O设备

5.1.2设备控制器

5.1.3内存映射I/O

5.1.4直接存储器存取

5.1.5重温中断

5.2I/O软件原理

5.2.1I/O软件的目标

5.2.2程序控制I/O

5.2.3中断驱动I/O

5.2.4使用DMA的I/O

5.3I/O软件层次

5.3.1中断处理程序

5.3.2设备驱动程序

5.3.3与设备无关的I/O软件

5.3.4用户空间的I/O软件

5.4盘

5.4.1盘的硬件

5.4.2磁盘格式化

5.4.3磁盘臂调度算法

5.4.4错误处理

5.4.5稳定存储器

5.5时钟

5.5.1时钟硬件

5.5.2时钟软件

5.5.3软定时器

5.6用户界面:键盘、鼠标和监视器

5.6.1输八软件

5.6.2输出软件

5.7瘦客户机

5.8电源管理

5.8.1硬件问题

5.8.2操作系统问题

5.8.3应用程序问题

5.9有关输入/输出的研究

5.10小结

习题

第6章死锁

6.1资源

6.1.1可抢占资源和不可抢占资源

6.1.2资源获取

6.2死锁简介

6.2.1资源死锁的条件

6.2.2死锁建模

6.3鸵鸟算法

6.4死锁检测和死锁恢复

6.4.1每种类型一个资源的死锁检测

6.4.2每种类型多个资源的死锁检测

6.4.3从死锁中恢复

6.5死锁避免

6.5.1资源轨迹图

6.5.2安全状态和不安全状态

6.5.3单个资源的银行家算法

6.5.4多个资源的银行家算法

6.6死锁预防

6.6.1破坏互斥条件

6.6.2破坏占有并等待条件

6.6.3破坏不可抢占条件

6.6.4破坏环路等待条件

6.7其他问题

6.7.1两阶段加锁

6.7.2通信死锁

6.7.3活锁

6.7.4饥饿

6.8有关死锁的研究

6.9小结

习题

第7章虚拟化和云

7.1历史

7.2虚拟化的必要条件

7.3第一类和第二类虚拟机管理程序

7.4高效虚拟化技术

7.4.1在不支持虚拟化的平台上实现虚拟化

7.4.2虚拟化的开销

7.5虚拟机管理程序是正确的微内核吗

7.6内存虚拟化

7.7I/O虚拟化

7.8虚拟装置

7.9多核CPU上的虚拟机

7.10授权问题

7.11云

7.11.1云即服务

7.11.2虚拟机迁移

7.11.3检查点

7.12案例研究:VMware

7.12.1VMware的早期历史

7.12.2VMwareWorkstation

7.12.3将虚拟化引入x86的挑战

7.12.4VMwareWorkstation解决方案概览

7.12.5VMwareWorkstation的演变

7.12.6VMware的第一类虚拟机管理程序ESXServer

7.13有关虚拟化和云的研究

习题

第8章多处理机系统

8.1多处理机

8.1.1多处理机硬件

8.1.2多处理机操作系统类型

8.1.3多处理机同步

8.1.4多处理机调度

8.2多计算机

8.2.1多计算机硬件

8.2.2低层通信软件

8.2.3用户层通信软件

8.2.4远程过程调用

8.2.5分布式共享存储器

8.2.6多计算机调度

8.2.7负载平衡

8.3分布式系统

8.3.1网络硬件

8.3.2网络服务和协议

8.3.3基于文档的中间件

8.3.4基于文件系统的中间件

8.3.5基于对象的中间件

8.3.6基于协作的中间件

8.4有关多处理机系统的研究

8.5小结

习题

第9章安全

9.1环境安全

9.1.1威胁

9.1.2入侵者

9.2操作系统完全

9.2.1可信系统

9.2.2可信计算基

9.3保护机制

9.3.1保护域

9.3.2访问控制列表

9.3.3权能字

9.4安全系统的形式化模型

9.4.1多级安全

9.4.2隐蔽信道

9.5密码学原理

9.5.1私钥加密技术

9.5.2公钥加密技术

9.5.3单向函数

9.5.4数字签名

9.5.5可信平台模块

9.6认证

9.6.1使用物理识剐的认证方式

9.6.2使用生物识别的认证方式

9.7软件漏洞

9.7.1缓冲区溢出攻击

9.7.2格式化字符串攻击

9.7.3悬垂指针

9.7.4空指针间接引用攻击

9.7.5整数溢出攻击

9.7.6命令注入攻击

9.7.7检查时间/使用时间攻击

9.8内部攻击

9.8.1逻辑炸弹

9.8.2后门陷阱

9.8.3登录欺骗

9.9恶意软件

9.9.1特洛伊木马

9.9.2病毒

9.9.3蠕虫

9.9.4间谍软件

9.9.5rootkit

9.10防御

9.10.1防火墙

9.10.2反病毒和抑制反病毒技术

9.10.3代码签名

9.10.4囚禁

9.10.5基于模型的入侵检测

9.10.6封装移动代码

9.10.7Java安全性

9.11有关安全的研究

9.12小结

习题

……

第10章实例研究1:UNIX、Linux和Androd

第11章实例研究2:Windows8

第12章操作系统设计

第13章参考书目与文献

现代操作系统(原书第4版) 精彩文摘

随着并行的增加,有效的同步和锁机制对性能而言非常重要。如果等待时间短的话,自旋锁会很快,但如果等待时间长,则会浪费CPU周期。如果有很多竞争,那么阻塞此进程,并仅当锁被释放的时候让内核解除阻塞会更加有效。然而,这却带来了相反的问题:它在竞争激烈的情况下效果不错,但如果一开始只有很小的竞争,那么不停地内核切换将花销很大。更糟的是,预测锁竞争的数量并不容易。

一个引人注意的致力于结合两者优点的解决方案称作“futex”,或者“快速用户空间互斥”。futex是Linux的一个特性,它实现了基本的锁(很像互斥锁),但避免了陷入内核,除非它真的不得不这样做。因为来回切换到内核花销很大,所以这样做可观地改善了性能。一个futex包含两个部分:一个内核服务和一个用户库。内核服务提供一个等待队列,它允许多个进程在一个锁上等待。它们将不会运行,除非内核明确地对它们解除阻塞。将一个进程放到等待队列需要(代价很大的)系统调用,我们应该避免这种情况。因此,没有竞争时,futex完全在用户空间工作。特别地,这些进程共享通用的锁变量——一个对齐的32位整数锁的专业术语。

本文来自止步投稿,不代表电子书资源网立场,如若转载,请联系原作者获取。

打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
() 0
上一篇 02-16
下一篇 02-16

相关推荐

评论列表

联系我们

在线咨询: QQ交谈

邮件:admin@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信