图书介绍

现代操作系统 原书第4版PDF|Epub|txt|kindle电子书版本网盘下载

现代操作系统 原书第4版
  • (荷)安德鲁S.塔嫩鲍姆,(荷)赫伯特·博斯著;陈向群,马洪兵等译 著
  • 出版社: 北京:机械工业出版社
  • ISBN:7111573692
  • 出版时间:2017
  • 标注页数:610页
  • 文件大小:164MB
  • 文件页数:626页
  • 主题词:

PDF下载


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

下载说明

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

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

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

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

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

图书目录

第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.4 I/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.6 shell25

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.5 Windows Win32 API34

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.1 C语言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.3 POSIX线程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分段和分页结合:Intel x86138

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文件系统性能176

4.4.5磁盘碎片整理178

4.5文件系统实例179

4.5.1 MS-DOS文件系统179

4.5.2 UNIX V7文件系统181

4.5.3 CD-ROM文件系统182

4.6有关文件系统的研究185

4.7小结185

习题186

第5章 输入/输出189

5.1 I/O硬件原理189

5.1.1 I/O设备189

5.1.2设备控制器190

5.1.3内存映射I/O190

5.1.4直接存储器存取192

5.1.5重温中断194

5.2 I/O软件原理196

5.2.1 I/O软件的目标196

5.2.2程序控制I/O197

5.2.3中断驱动I/O198

5.2.4使用DMA的I/O199

5.3 I/O软件层次199

5.3.1中断处理程序199

5.3.2设备驱动程序200

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

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

5.4盘206

5.4.1盘的硬件206

5.4.2磁盘格式化211

5.4.3磁盘臂调度算法213

5.4.4错误处理215

5.4.5稳定存储器216

5.5时钟218

5.5.1时钟硬件218

5.5.2时钟软件219

5.5.3软定时器221

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

5.6.1输入软件222

5.6.2输出软件225

5.7瘦客户机235

5.8电源管理236

5.8.1硬件问题236

5.8.2操作系统问题237

5.8.3应用程序问题241

5.9有关输入/输出的研究241

5.10小结242

习题243

第6章 死锁247

6.1资源247

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

6.1.2资源获取248

6.2死锁简介249

6.2.1资源死锁的条件249

6.2.2死锁建模249

6.3鸵鸟算法251

6.4死锁检测和死锁恢复251

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

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

6.4.3从死锁中恢复254

6.5死锁避免255

6.5.1资源轨迹图255

6.5.2安全状态和不安全状态256

6.5.3单个资源的银行家算法257

6.5.4多个资源的银行家算法257

6.6死锁预防258

6.6.1破坏互斥条件258

6.6.2破坏占有并等待条件259

6.6.3破坏不可抢占条件259

6.6.4破坏环路等待条件259

6.7其他问题260

6.7.1两阶段加锁260

6.7.2通信死锁260

6.7.3活锁261

6.7.4饥饿262

6.8有关死锁的研究262

6.9小结263

习题263

第7章 虚拟化和云267

7.1历史268

7.2虚拟化的必要条件268

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

7.4高效虚拟化技术271

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

7.4.2虚拟化的开销273

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

7.6内存虚拟化275

7.7 I/O虚拟化277

7.8虚拟装置279

7.9多核CPU上的虚拟机279

7.10授权问题279

7.11云280

7.11.1云即服务280

7.11.2虚拟机迁移280

7.11.3检查点281

7.12案例研究:VMware281

7.12.1 VMware的早期历史281

7.12.2 VMware Workstation282

7.12.3将虚拟化引入x86的挑战282

7.12.4 VMware Workstation解决方案概览283

7.12.5 VMware Workstation的演变288

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

7.13有关虚拟化和云的研究289

习题289

第8章 多处理机系统291

8.1多处理机292

8.1.1多处理机硬件292

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

8.1.3多处理机同步301

8.1.4多处理机调度303

8.2多计算机306

8.2.1多计算机硬件307

8.2.2低层通信软件309

8.2.3用户层通信软件311

8.2.4远程过程调用313

8.2.5分布式共享存储器314

8.2.6多计算机调度317

8.2.7负载平衡318

8.3分布式系统319

8.3.1网络硬件321

8.3.2网络服务和协议323

8.3.3基于文档的中间件325

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

8.3.5基于对象的中间件329

8.3.6基于协作的中间件330

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

8.5小结332

习题333

第9章 安全336

9.1环境安全337

9.1.1威胁337

9.1.2入侵者339

9.2操作系统完全339

9.2.1可信系统339

9.2.2可信计算基340

9.3保护机制341

9.3.1保护域341

9.3.2访问控制列表342

9.3.3权能字344

9.4安全系统的形式化模型345

9.4.1多级安全346

9.4.2隐蔽信道348

9.5密码学原理350

9.5.1私钥加密技术351

9.5.2公钥加密技术351

9.5.3单向函数352

9.5.4数字签名352

9.5.5可信平台模块353

9.6认证354

9.6.1使用物理识别的认证方式358

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

9.7软件漏洞361

9.7.1缓冲区溢出攻击361

9.7.2格式化字符串攻击367

9.7.3悬垂指针369

9.7.4空指针间接引用攻击369

9.7.5整数溢出攻击370

9.7.6命令注入攻击370

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

9.8内部攻击371

9.8.1逻辑炸弹371

9.8.2后门陷阱372

9.8.3登录欺骗372

9.9恶意软件373

9.9.1特洛伊木马374

9.9.2病毒375

9.9.3蠕虫381

9.9.4间谍软件382

9.9.5 rootkit384

9.10防御386

9.10.1防火墙387

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

9.10.3代码签名392

9.10.4囚禁392

9.10.5基于模型的入侵检测393

9.10.6封装移动代码394

9.10.7 Java安全性396

9.11有关安全的研究397

9.12小结398

习题398

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

10.1 UNIX与Linux的历史403

10.1.1 UNICS403

10.1.2 PDP-11 UNIX404

10.1.3可移植的UNIX404

10.1.4 Berkeley UNIX405

10.1.5标准UNIX405

10.1.6 MINIX406

10.1.7 Linux407

10.2 Linux简介408

10.2.1 Linux的设计目标408

10.2.2到Linux的接口409

10.2.3 shell410

10.2.4 Linux应用程序412

10.2.5内核结构413

10.3 Linux中的进程414

10.3.1基本概念414

10.3.2 Linux中进程管理相关的系统调用416

10.3.3 Linux中进程与线程的实现418

10.3.4 Linux中的调度422

10.3.5启动Linux系统425

10.4 Linux中的内存管理426

10.4.1基本概念427

10.4.2 Linux中的内存管理系统调用429

10.4.3 Linux中内存管理的实现429

10.4.4 Linux中的分页433

10.5 Linux中的I/O系统434

10.5.1基本概念434

10.5.2网络435

10.5.3 Linux中的I/O系统调用436

10.5.4 I/O在Linux中的实现437

10.5.5 Linux中的模块439

10.6 Linux文件系统439

10.6.1基本概念439

10.6.2 Linux中的文件系统调用442

10.6.3 Linux文件系统的实现444

10.6.4 NFS:网络文件系统449

10.7 Linux的安全性452

10.7.1基本概念452

10.7.2 Linux中安全相关的系统调用454

10.7.3 Linux中的安全实现454

10.8 Android455

10.8.1 Android与Google455

10.8.2 Android的历史455

10.8.3设计目标457

10.8.4 Android体系结构458

10.8.5 Linux扩展459

10.8.6 Dalvik461

10.8.7 Binder IPC462

10.8.8 Android应用467

10.8.9意图475

10.8.10应用程序沙箱475

10.8.11安全性476

10.8.12进程模型479

10.9小结482

习题483

第11章 实例研究2: Windows 8487

11.1 Windows 8.1的历史487

11.1.1 20世纪80年代:MS-DOS487

11.1.2 20世纪90年代:基于MS-DOS的Windows488

11.1.3 21世纪00年代:基于NT的Windows488

11.1.4 Windows Vista489

11.1.5 21世纪10年代:现代Windows490

11.2 Windows编程490

11.2.1原生NT应用编程接口493

11.2.2 Win32应用编程接口494

11.2.3 Windows注册表496

11.3系统结构498

11.3.1操作系统结构498

11.3.2启动Windows506

11.3.3对象管理器的实现507

11.3.4子系统、DLL和用户态服务513

11.4 Windows中的进程和线程514

11.4.1基本概念514

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

11.4.3进程和线程的实现521

11.5内存管理525

11.5.1基本概念525

11.5.2内存管理系统调用527

11.5.3存储管理的实现528

11.6 Windows的高速缓存533

11.7 Windows的I/O534

11.7.1基本概念534

11.7.2 I/O的API调用535

11.7.3 I/O实现536

11.8 Windows NT文件系统539

11.8.1基本概念540

11.8.2 NTFS文件系统的实现540

11.9 Windows电源管理546

11.10 Windows 8中的安全547

11.10.1基本概念548

11.10.2安全相关的API调用548

11.10.3安全实现549

11.10.4安全缓解技术551

11.11小结552

习题553

第12章 操作系统设计556

12.1设计问题的本质556

12.1.1目标556

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

12.2接口设计558

12.2.1指导原则558

12.2.2范型559

12.2.3系统调用接口561

12.3实现563

12.3.1系统结构563

12.3.2机制与策略565

12.3.3正交性566

12.3.4命名566

12.3.5绑定的时机567

12.3.6静态与动态结构567

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

12.3.8同步通信与异步通信568

12.3.9实用技术569

12.4性能572

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

12.4.2什么应该优化573

12.4.3空间-时间的权衡573

12.4.4缓存575

12.4.5线索575

12.4.6利用局部性576

12.4.7优化常见的情况576

12.5项目管理576

12.5.1人月神话576

12.5.2团队结构577

12.5.3经验的作用578

12.5.4没有银弹579

12.6操作系统设计的趋势579

12.6.1虚拟化与云579

12.6.2众核芯片580

12.6.3大型地址空间操作系统580

12.6.4无缝的数据访问580

12.6.5电池供电的计算机581

12.6.6嵌入式系统581

12.7小结581

习题582

第13章 参考书目与文献584

13.1进行深入阅读的建议584

13.1.1引论584

13.1.2进程与线程584

13.1.3内存管理585

13.1.4文件系统585

13.1.5输入/输出585

13.1.6死锁586

13.1.7虚拟化和云586

13.1.8多处理机系统586

13.1.9安全587

13.1.10实例研究1: UNIX、Linux和Android588

13.1.11实例研究2: Windows 8588

13.1.12操作系统设计589

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

热门推荐