图书介绍

现代操作系统 第2版【2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载】

现代操作系统 第2版
  • (荷)Andrew S.Tanenbaum著;陈向群,马洪兵等译 著
  • 出版社: 北京:机械工业出版社
  • ISBN:711116511X
  • 出版时间:2005
  • 标注页数:552页
  • 文件大小:58MB
  • 文件页数:567页
  • 主题词:操作系统

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

现代操作系统 第2版PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

目录1

出版者的话1

专家指导委员会1

译者序1

前言1

第1章 引论1

1.1 什么是操作系统2

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

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

1.2 操作系统的历史3

1.2.1 第一代(1945~1955):真空管和插件板3

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

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

1.2.4 第四代(1980~至今):个人计算机7

1.2.5 个体的重复发展9

1.3 操作系统大观10

1.3.1 大型机操作系统10

1.3.2 服务器操作系统10

1.3.3 多处理机操作系统10

1.3.4 个人计算机操作系统10

1.3.5 实时操作系统10

1.3.6 嵌入式操作系统11

1.3.7 智能卡操作系统11

1.4 计算机硬件介绍11

1.4.1 处理器11

1.4.2 存储器13

1.4.3 I/O设备15

1.4.4 总线17

1.5 操作系统概念19

1.5.1 进程19

1.5.2 死锁20

1.5.3 存储管理21

1.5.4 输入/输出21

1.5.5 文件21

1.5.6 安全23

1.5.7 shell23

1.5.8 概念的重用24

1.6 系统调用25

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

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

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

1.6.4 其他系统调用30

1.6.5 Windows Win32 API30

1.7 操作系统结构32

1.7.1 单体系统32

1.7.2 分层系统33

1.7.3 虚拟机33

1.7.4 外核34

1.7.5 客户机-服务器模型35

1.8 有关操作系统的研究36

1.9 本书其他部分概要37

1.10 公制单位37

习题38

4.7 有关实现的问题38

1.11 小结38

第2章 进程与线程41

2.1 进程41

2.1.1 进程模型41

2.1.2 进程的创建42

2.1.3 进程的终止43

2.1.4 进程的层次结构44

2.1.5 进程的状态44

2.1.6 进程的实现45

2.2.1 线程模型46

2.2 线程46

2.2.2 线程的使用48

2.2.3 在用户空间中实现线程51

2.2.4 在内核中实现线程53

2.2.5 混合实现53

2.2.6 调度程序激活机制54

2.2.7 弹出式线程54

2.2.8 使单线程代码多线程化55

2.3 进程间通信57

2.3.1 竞争条件57

2.3.2 临界区58

2.3.3 忙等待的互斥59

2.3.4 休眠与唤醒61

2.3.5 信号量63

2.3.6 互斥信号量64

2.3.7 管程65

2.3.8 消息传递69

2.3.9 屏障70

2.4 经典的IPC问题71

2.4.1 哲学家就餐问题71

2.4.2 读者-写者问题73

2.4.3 睡眠理发师问题74

2.5 调度75

2.5.1 调度介绍76

2.5.2 批处理系统中的调度79

2.5.3 交互式系统中的调度81

2.5.4 实时系统中的调度84

2.5.5 策略和机制85

2.5.6 线程调度85

2.6 有关进程和线程的研究86

习题87

2.7 小结87

第3章 死锁91

3.1 资源91

3.1.1 可抢占资源和不可抢占资源91

3.1.2 资源获取92

3.2 死锁概述93

3.2.1 死锁的条件93

3.2.2 死锁建模94

3.3 鸵鸟算法95

3.4 死锁检测和死锁恢复96

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

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

3.4.3 从死锁中恢复99

3.5 死锁避免100

3.5.1 资源轨迹图100

3.5.2 安全状态和不安全状态101

3.5.3 单个资源的银行家算法101

3.5.4 多个资源的银行家算法102

3.6 死锁预防103

3.6.1 破坏互斥条件103

3.6.2 破坏占有和等待条件103

3.6.3 破坏不可抢占条件104

3.6.4 破坏循环等待条件104

3.7 其他问题104

3.7.1 两阶段加锁105

3.7.2 非资源死锁105

3.7.3 饥饿105

3.8 有关死锁的研究105

3.9 小结106

习题106

4.1 基本存储管理109

4.1.1 无交换或分页的单道程序设计109

第4章 存储管理109

4.1.2 固定分区的多道程序设计110

4.1.3 建立多道程序设计模型111

4.1.4 多道程序设计系统的性能分析111

4.1.5 重定位和保护112

4.2 交换113

4.2.1 使用位图的存储管理114

4.2.2 使用链表的存储管理115

4.3 虚拟存储器116

4.3.1 分页116

4.3.2 页表118

4.3.3 转换检测缓冲区121

4.3.4 倒排页表122

4.4 页面置换算法123

4.4.1 最优页面置换算法123

4.4.2 最近未使用页面置换算法124

4.4.3 先进先出页面置换算法124

4.4.4 第二次机会页面置换算法125

4.4.5 时钟页面置换算法125

4.4.6 最近最少使用页面置换算法125

4.4.7 用软件模拟LRU126

4.4.8 工作集页面置换算法127

4.4.9 工作集时钟页面置换算法129

4.4.10 页面置换算法小结130

4.5 建立页面置换算法模型131

4.5.1 Belady异常131

4.5.2 栈式算法131

4.6 分页系统的设计问题133

4.5.4 页面失效率预测133

4.5.3 距离字符串133

4.6.1 局部分配策略与全局分配策略134

4.6.2 负载控制135

4.6.3 页面大小136

4.6.4 分离的指令空间和数据空间136

4.6.5 共享页面137

4.6.6 清除策略138

4.6.7 虚拟存储器接口138

4.7.1 与分页有关的操作系统138

4.7.2 页面失效处理139

4.7.3 指令备份139

4.7.4 锁定内存中的页面140

4.7.5 后备存储140

4.7.6 策略和机制的分离141

4.8 分段142

4.8.1 纯分段的实现144

4.8.2 分段和分页结合:MULTICS144

4.8.3 分段和分页结合:Intel Pentium146

4.9 有关存储管理的研究149

4.10 小结149

习题150

第5章 输入/输出153

5.1 I/O硬件组成原理153

5.1.1 I/O设备153

5.1.2 设备控制器153

5.1.3 内存映射I/O154

5.1.4 直接存储器存取156

5.1.5 重温中断158

5.2.1 I/O软件的目标160

5.2 I/O软件原理160

5.2.2 程序控制I/O161

5.2.3 中断驱动I/O162

5.2.4 使用DMA的I/O163

5.3 I/O软件层次163

5.3.1 中断处理程序163

5.3.2 设备驱动程序164

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

5.3.4 用户空间的I/O软件169

5.4 盘170

5.4.1 盘的硬件170

5.4.2 磁盘格式化179

5.4.3 磁盘臂调度算法181

5.4.4 错误处理183

5.4.5 稳定存储器185

5.5.2 时钟软件187

5.5 时钟187

5.5.1 时钟硬件187

5.5.3 软定时器189

5.6 面向字符的终端190

5.6.1 RS-232终端硬件190

5.6.2 输入软件192

5.6.3 输出软件194

5.7 图形用户界面195

5.7.1 个人计算机键盘、鼠标和显示器硬件195

5.7.2 输入软件198

5.7.3 Windows输出软件198

5.8 网络终端203

5.8.1 X Window系统203

5.8.2 SLIM网络终端206

5.9 电源管理207

5.9.1 硬件问题208

5.9.2 操作系统问题209

5.9.3 退化的操作212

5.10 关于输入/输出的研究212

5.11 小结213

习题213

第6章 文件系统217

6.1 文件217

6.1.1 文件命名217

6.1.2 文件结构218

6.1.3 文件类型219

6.1.4 文件存取220

6.1.5 文件属性221

6.1.6 文件操作221

6.1.7 使用文件系统调用的一个示例程序222

6.1.8 内存映射文件224

6.2 目录224

6.2.1 一级目录系统224

6.2.2 两级目录系统225

6.2.3 层次目录系统225

6.2.4 路径名225

6.2.5 目录操作227

6.3 文件系统的实现228

6.3.1 文件系统布局228

6.3.2 文件的实现228

6.3.3 目录的实现231

6.3.4 共享文件233

6.3.5 磁盘空间管理234

6.3.6 文件系统的可靠性237

6.3.7 文件系统性能242

6.3.8 日志结构文件系统244

6.4 文件系统实例246

6.4.1 CD-ROM文件系统246

6.4.2 CP/M文件系统249

6.4.3 MS-DOS文件系统250

6.4.4 Windows 98文件系统252

6.4.5 UNIX V7文件系统254

6.5 有关文件系统的研究256

6.6 小结256

习题256

第7章 多媒体操作系统259

7.1 多媒体简介259

7.2 多媒体文件261

7.2.1 音频编码262

7.2.2 视频编码263

7.3 视频压缩265

7.3.1 JPEG标准265

7.3.2 MPEG标准267

7.4 多媒体进程调度268

7.4.1 调度同质进程268

7.4.2 一般实时调度268

7.4.3 速率单调调度270

7.4.4 最早最终时限优先调度270

7.5 多媒体文件系统范型272

7.5.1 VCR控制功能272

7.5.2 近似视频点播273

7.5.3 具有VCR功能的近似视频点播274

7.6.1 在单个磁盘上存放文件276

7.6.2 两个替代的文件组织策略276

7.6 文件存放276

7.6.3 近似视频点播的文件存放278

7.6.4 在单个磁盘上存放多个文件279

7.6.5 在多个磁盘上存放文件281

7.7 高速缓存282

7.7.1 块高速缓存 .282

7.7.2 文件高速缓存283

7.8 多媒体磁盘调度284

7.8.1 静态磁盘调度284

7.8.2 动态磁盘调度285

7.9 有关多媒体的研究286

7.10 小结286

习题287

第8章 多处理机系统289

8.1.1 多处理机硬件290

8.1 多处理机290

8.1.2 多处理机操作系统类型294

8.1.3 多处理机同步297

8.1.4 多处理机调度299

8.2 多计算机302

8.2.1 多计算机硬件302

8.2.2 低层通信软件305

8.2.3 用户层通信软件307

8.2.4 远程过程调用309

8.2.5 分布式共享存储器310

8.2.6 多计算机调度313

8.2.7 负载平衡313

8.3 分布式系统315

8.3.1 网络硬件317

8.3.2 网络服务和网络协议319

8.3.3 基于文档的中间件321

8.3.4 基于文件系统的中间件322

8.3.5 基于共享对象的中间件326

8.3.6 基于协作的中间件329

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

8.5 小结333

习题333

第9章 安全337

9.1 安全环境337

9.1.1 威胁337

9.1.2 入侵者338

9.1.3 数据意外遗失338

9.2 密码学基础338

9.2.1 秘密密钥加密339

9.2.2 钥加密体制339

9.2.4 数字签名340

9.2.3 单向函数 .340

9.3 用户验证341

9.3.1 使用口令验证341

9.3.2 使用实际物体的验证346

9.3.3 使用生物识别的验证347

9.3.4 对策348

9.4 来自系统内部的攻击349

9.4.1 特洛伊木马349

9.4.2 登录欺骗350

9.4.3 逻辑炸弹350

9.4.4 后门陷阱350

9.4.5 缓冲区溢出351

9.4.6 一般安全性攻击352

9.4.7 著名的安全缺陷353

9.4.8 安全设计原则354

9.5.1 病毒破坏的场景355

9.5 来自系统外部的攻击355

9.5.2 病毒工作方式356

9.5.3 病毒如何传播360

9.5.4 反病毒技术和抑制反病毒技术361

9.5.5 因特网蠕虫365

9.5.6 移动代码366

9.5.7 Java安全性369

9.6 保护机制371

9.6.1 保护域371

9.6.2 访问控制列表372

9.6.3 权能字374

9.7 可信系统375

9.7.1 可信计算基376

9.7.2 安全系统的形式模型377

9.7.3 多级安全377

9.7.4 橘皮书安全标准379

9.7.5 隐蔽信道380

9.8 有关安全的研究382

9.9 小结382

习题383

第10章 实例研究1:UNIX和Linux387

10.1 UNIX的历史387

10.1.1 UNICS387

10.1.2 PDP-11上的UNIX388

10.1.3 可移植的UNIX388

10.1.4 伯克利UNIX389

10.1.5 标准UNIX389

10.1.6 MINIX390

10.1.7 Linux390

10.2.1 UNIX的目标392

10.2.2 UNIX接口392

10.2 UNIX概述392

10.2.3 UNIX shell393

10.2.4 UNIX实用程序394

10.2.5 内核结构395

10.3 UNIX进程396

10.3.1 基本概念396

10.3.2 UNIX中的进程管理系统调用398

10.3.3 UNIX中进程的实现401

10.3.4 引导UNIX406

10.4 UNIX中的存储管理407

10.4.1 基本概念408

10.4.2 UNIX里的存储管理系统调用409

10.4.3 UNIX中存储管理的实现410

10.5 UNIX中的输入/输出415

10.5.1 基本概念415

10.5.3 UNIX中输入/输出的实现417

10.5.2 UNIX中的输入/输出系统调用417

10.5.4 流419

10.6 UNIX文件系统420

10.6.1 基本概念420

10.6.2 UNIX中的文件系统调用423

10.6.3 UNIX中文件系统的实现425

10.6.4 NFS:网络文件系统429

10.7 UNIX中的安全432

10.7.1 基本概念432

10.7.2 UNIX中的安全系统调用434

10.7.3 UNIX中安全的实现434

10.8 小结435

习题435

11.1.2 Windows 95/98/Me439

11.1.1 MS-DOS439

11.1 Windows 2000的历史439

第11章 实例研究2:Windows 2000439

11.1.3 Windows NT440

11.1.4 Windows 2000441

11.2 Windows 2000编程444

11.2.1 Win32应用程序接口444

11.2.2 注册表445

11.3 系统结构447

11.3.1 操作系统结构447

11.3.2 对象的实现452

11.3.3 环境子系统456

11.4 Windows 2000的进程和线程458

11.4.1 基本概念458

11.4.2 管理作业、进程、线程和纤程的API调用460

11.4.3 进程和线程的实现461

11.4.4 MS-DOS仿真465

11.4.5 引导Windows 2000466

11.5 存储管理467

11.5.1 基本概念467

11.5.2 存储管理的系统调用470

11.5.3 存储管理的实现470

11.6 Windows 2000中的输入/输出474

11.6.1 基本概念474

11.6.2 输入/输出的API调用475

11.6.3 I/O实现476

11.6.4 设备驱动程序476

11.7 Windows 2000文件系统478

11.7.1 基本概念478

11.7.2 Windows 2000中的文件系统API调用478

11.7.3 Windows 2000中文件系统的实现480

11.8 Windows 2000中的安全486

11.8.2 安全API调用487

11.8.1 基本概念487

11.8.3 安全的实现488

11.9 Windows 2000中的高速缓存机制489

11.10 小结490

习题491

第12章 操作系统设计493

12.1 设计问题的本质493

12.1.1 目标493

12.1.2 设计操作系统为什么困难494

12.2 接口设计495

12.2.1 指导原则495

12.2.2 范型496

12.2.3 系统调用接口498

12.3.1 系统结构499

12.3 实现499

12.3.2 机制与策略501

12.3.3 正交性502

12.3.4 命名502

12.3.5 绑定的时机503

12.3.6 静态与动态结构503

12.3.7 自顶向下与自底向上的实现504

12.3.8 实用技术505

12.4 性能508

12.4.1 操作系统为什么运行缓慢508

12.4.2 什么应该优化508

12.4.3 空间-时间的权衡508

12.4.4 高速缓存510

12.4.6 利用局部性511

12.4.7 优化常见的情况511

12.4.5 线索511

12.5 项目管理512

12.5.1 人月神话512

12.5.2 团队结构513

12.5.3 经验的作用514

12.5.4 没有银弹514

12.6 操作系统设计的趋势514

12.6.1 大型地址空间操作系统515

12.6.2 联网515

12.6.3 并行系统与分布式系统515

12.6.4 多媒体516

12.6.5 电池供电的计算机516

12.6.6 嵌入式系统516

12.7 小结516

习题517

13.1.2 进程和线程519

13.1.1 简介及概要519

第13章 阅读材料及参考文献519

13.1 进行深入阅读的建议519

13.1.3 死锁520

13.1.4 存储管理520

13.1.5 输入/输出520

13.1.6 文件系统520

13.1.7 多媒体操作系统521

13.1.8 多处理机系统521

13.1.9 安全522

13.1.10 UNIX和Linux523

13.1.11 Windows 2000523

13.1.12 设计原理523

13.2 按字母顺序排序的参考文献525

索引537

热门推荐