图书介绍

操作系统概念PDF|Epub|txt|kindle电子书版本网盘下载

操作系统概念
  • (美)亚伯拉罕·西尔伯沙茨(Abraham Silberschatz) 著
  • 出版社: 北京:机械工业出版社
  • ISBN:
  • 出版时间:2018
  • 标注页数:608页
  • 文件大小:112MB
  • 文件页数:627页
  • 主题词:

PDF下载


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

下载说明

操作系统概念PDF格式电子书版下载

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

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

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

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

图书目录

第一部分 概论2

第1章 导论2

1.1 操作系统的功能2

1.1.1 用户视角2

1.1.2 系统视角3

1.1.3 操作系统的定义4

1.2 计算机系统的组成4

1.2.1 计算机系统的运行5

1.2.2 存储结构6

1.2.3 I/O结构8

1.3 计算机系统的体系结构9

1.3.1 单处理器系统9

1.3.2 多处理器系统10

1.3.3 集群系统12

1.4 操作系统的结构13

1.5 操作系统的执行14

1.5.1 双重模式与多重模式的执行15

1.5.2 定时器16

1.6 进程管理17

1.7 内存管理18

1.8 存储管理18

1.8.1 文件系统管理18

1.8.2 大容量存储器管理19

1.8.3 高速缓存19

1.8.4 I/O系统21

1.9 保护与安全21

1.10 内核数据结构22

1.10.1 列表、堆栈及队列22

1.10.2 树23

1.10.3 哈希函数与哈希表23

1.10.4 位图24

1.11 计算环境24

1.11.1 传统计算24

1.11.2 移动计算25

1.11.3 分布计算26

1.11.4 客户机-服务器计算26

1.11.5 对等计算27

1.11.6 虚拟化28

1.11.7 云计算29

1.11.8 实时嵌入式系统30

1.12 开源操作系统31

1.12.1 历史31

1.12.2 Linux31

1.12.3 BSD UNIX32

1.12.4 Solaris32

1.12.5 用作学习的开源操作系统33

1.13 小结33

习题35

推荐读物36

参考文献36

第2章 操作系统结构38

2.1 操作系统的服务38

2.2 用户与操作系统的界面40

2.2.1 命令解释程序40

2.2.2 图形用户界面41

2.2.3 界面的选择42

2.3 系统调用43

2.4 系统调用的类型46

2.4.1 进程控制46

2.4.2 文件管理49

2.4.3 设备管理50

2.4.4 信息维护50

2.4.5 通信50

2.4.6 保护51

2.5 系统程序51

2.6 操作系统的设计与实现52

2.6.1 设计目标52

2.6.2 机制与策略53

2.6.3 实现53

2.7 操作系统的结构54

2.7.1 简单结构54

2.7.2 分层方法55

2.7.3 微内核56

2.7.4 模块57

2.7.5 混合系统58

2.8 操作系统的调试60

2.8.1 故障分析60

2.8.2 性能优化60

2.8.3 DTrace61

2.9 操作系统的生成63

2.10 系统引导64

2.11 小结64

习题65

编程题66

编程项目66

推荐读物69

参考文献69

第二部分 进程管理72

第3章 进程72

3.1 进程概念72

3.1.1 进程72

3.1.2 进程状态73

3.1.3 进程控制块73

3.1.4 线程74

3.2 进程调度75

3.2.1 调度队列75

3.2.2 调度程序77

3.2.3 上下文切换78

3.3 进程运行79

3.3.1 进程创建79

3.3.2 进程终止82

3.4 进程间通信83

3.4.1 共享内存系统85

3.4.2 消息传递系统86

3.5 IPC系统例子89

3.5.1 例子:POSIX共享内存89

3.5.2 例子:Mach91

3.5.3 例子:Windows92

3.6 客户机/服务器通信93

3.6.1 套接字93

3.6.2 远程过程调用96

3.6.3 管道98

3.7 小结102

习题103

编程题105

编程项目107

推荐读物110

参考文献110

第4章 多线程编程112

4.1 概述112

4.1.1 动机112

4.1.2 优点113

4.2 多核编程114

4.2.1 编程挑战115

4.2.2 并行类型115

4.3 多线程模型116

4.3.1 多对一模型116

4.3.2 一对一模型116

4.3.3 多对多模型116

4.4 线程库117

4.4.1 Pthreads118

4.4.2 Windows线程119

4.4.3 Java线程121

4.5 隐式多线程122

4.5.1 线程池123

4.5.2 OpenMP124

4.5.3 大中央调度125

4.5.4 其他方法125

4.6 多线程问题125

4.6.1 系统调用fork()和exec()125

4.6.2 信号处理126

4.6.3 线程撤销127

4.6.4 线程本地存储128

4.6.5 调度程序激活128

4.7 操作系统例子129

4.7.1 Windows线程129

4.7.2 Linux线程130

4.8 小结131

习题131

编程题133

编程项目134

推荐读物136

参考文献136

第5章 进程调度138

5.1 基本概念138

5.1.1 CPU-I/O执行周期138

5.1.2 CPU调度程序139

5.1.3 抢占调度139

5.1.4 调度程序140

5.2 调度准则140

5.3 调度算法141

5.3.1 先到先服务调度141

5.3.2 最短作业优先调度142

5.3.3 优先级调度144

5.3.4 轮转调度145

5.3.5 多级队列调度147

5.3.6 多级反馈队列调度148

5.4 线程调度149

5.4.1 竞争范围149

5.4.2 Pthreads调度149

5.5 多处理器调度151

5.5.1 多处理器调度的方法151

5.5.2 处理器亲和性151

5.5.3 负载平衡152

5.5.4 多核处理器152

5.6 实时CPU调度154

5.6.1 最小化延迟154

5.6.2 优先权调度155

5.6.3 单调速率调度156

5.6.4 最早截止期限优先调度157

5.6.5 比例分享调度158

5.6.6 POSIX实时调度158

5.7 操作系统例子160

5.7.1 例子:Linux调度160

5.7.2 例子:Windows调度162

5.7.3 例子:Solaris调度164

5.8 算法评估165

5.8.1 确定性模型166

5.8.2 排队模型167

5.8.3 仿真167

5.8.4 实现168

5.9 小结169

习题170

推荐读物172

参考文献173

第6章 同步175

6.1 背景175

6.2 临界区问题177

6.3 Peterson解决方案178

6.4 硬件同步179

6.5 互斥锁181

6.6 信号量181

6.6.1 信号量的使用182

6.6.2 信号量的实现182

6.6.3 死锁与饥饿184

6.6.4 优先级的反转184

6.7 经典同步问题185

6.7.1 有界缓冲问题185

6.7.2 读者-作者问题186

6.7.3 哲学家就餐问题187

6.8 管程188

6.8.1 使用方法189

6.8.2 哲学家就餐问题的管程解决方案190

6.8.3 采用信号量的管程实现191

6.8.4 管程内的进程重启192

6.9 同步例子193

6.9.1 Windows同步193

6.9.2 Linux同步194

6.9.3 Solaris同步195

6.9.4 Pthreads同步196

6.10 替代方法197

6.10.1 事务内存198

6.10.2 OpenMP199

6.10.3 函数式编程语言199

6.11 小结200

习题200

编程题204

编程项目205

推荐读物209

参考文献210

第7章 死锁212

7.1 系统模型212

7.2 死锁特征213

7.2.1 必要条件214

7.2.2 资源分配图215

7.3 死锁处理方法216

7.4 死锁预防217

7.4.1 互斥217

7.4.2 持有且等待217

7.4.3 无抢占218

7.4.4 循环等待218

7.5 死锁避免220

7.5.1 安全状态220

7.5.2 资源分配图算法221

7.5.3 银行家算法222

7.6 死锁检测224

7.6.1 每种资源类型只有单个实例224

7.6.2 每种资源类型可有多个实例225

7.6.3 应用检测算法226

7.7 死锁恢复227

7.7.1 进程终止227

7.7.2 资源抢占227

7.8 小结228

习题228

编程题230

编程项目230

推荐读物231

参考文献232

第三部分 内存管理234

第8章 内存管理策略234

8.1 背景234

8.1.1 基本硬件234

8.1.2 地址绑定236

8.1.3 逻辑地址空间与物理地址空间236

8.1.4 动态加载237

8.1.5 动态链接与共享库238

8.2 交换238

8.2.1 标准交换238

8.2.2 移动系统的交换239

8.3 连续内存分配240

8.3.1 内存保护240

8.3.2 内存分配241

8.3.3 碎片242

8.4 分段242

8.4.1 基本方法243

8.4.2 分段硬件243

8.5 分页244

8.5.1 基本方法245

8.5.2 硬件支持247

8.5.3 保护250

8.5.4 共享页251

8.6 页表结构252

8.6.1 分层分页252

8.6.2 哈希页表254

8.6.3 倒置页表254

8.6.4 Oracle SPARC Solaris255

8.7 例子:Intel 32位与64位体系结构256

8.7.1 IA-32架构256

8.7.2 x86-64258

8.8 例子:ARM架构259

8.9 小结259

习题260

编程题262

推荐读物262

参考文献263

第9章 虚拟内存管理264

9.1 背景264

9.2 请求调页266

9.2.1 基本概念266

9.2.2 请求调页的性能269

9.3 写时复制271

9.4 页面置换272

9.4.1 基本页面置换273

9.4.2 FIFO 页面置换275

9.4.3 最优页面置换276

9.4.4 LRU页面置换276

9.4.5 近似LRU页面置换278

9.4.6 基于计数的页面置换279

9.4.7 页面缓冲算法280

9.4.8 应用程序与页面置换280

9.5 帧分配280

9.5.1 帧的最小数281

9.5.2 分配算法282

9.5.3 全局分配与局部分配282

9.5.4 非均匀内存访问283

9.6 系统抖动283

9.6.1 系统抖动的原因284

9.6.2 工作集模型285

9.6.3 缺页错误频率286

9.6.4 结束语287

9.7 内存映射文件287

9.7.1 基本机制287

9.7.2 共享内存Windows API288

9.7.3 内存映射I/O290

9.8 分配内核内存291

9.8.1 伙伴系统291

9.8.2 slab分配292

9.9 其他注意事项293

9.9.1 预调页面293

9.9.2 页面大小293

9.9.3 TLB范围294

9.9.4 倒置页表295

9.9.5 程序结构295

9.9.6 I/O联锁与页面锁定296

9.10 操作系统例子297

9.10.1 Windows297

9.10.2 Solaris298

9.11 小结299

习题300

编程题303

编程项目304

推荐读物306

参考文献306

第四部分 存储管理310

第10章 文件系统310

10.1 文件概念310

10.1.1 文件属性310

10.1.2 文件操作311

10.1.3 文件类型315

10.1.4 文件结构316

10.1.5 内部文件结构316

10.2 访问方法316

10.2.1 顺序访问317

10.2.2 直接访问317

10.2.3 其他访问方法318

10.3 目录与磁盘的结构319

10.3.1 存储结构319

10.3.2 目录概述320

10.3.3 单级目录320

10.3.4 两级目录321

10.3.5 树形目录322

10.3.6 无环图目录323

10.3.7 通用图目录325

10.4 文件系统安装326

10.5 文件共享327

10.5.1 多用户327

10.5.2 远程文件系统328

10.5.3 一致性语义330

10.6 保护331

10.6.1 访问类型331

10.6.2 访问控制331

10.6.3 其他保护方式333

10.7 小结334

习题334

推荐读物335

参考文献335

第11章 文件系统实现337

11.1 文件系统结构337

11.2 文件系统实现338

11.2.1 概述338

11.2.2 分区与安装341

11.2.3 虚拟文件系统341

11.3 目录实现343

11.3.1 线性列表343

11.3.2 哈希表343

11.4 分配方法344

11.4.1 连续分配344

11.4.2 链接分配345

11.4.3 索引分配347

11.4.4 性能348

11.5 空闲空间管理349

11.5.1 位向量349

11.5.2 链表350

11.5.3 组350

11.5.4 计数350

11.5.5 空间图351

11.6 效率与性能351

11.6.1 效率351

11.6.2 性能352

11.7 恢复354

11.7.1 一致性检查354

11.7.2 基于日志的文件系统354

11.7.3 其他解决方法355

11.7.4 备份和恢复356

11.8 NFS356

11.8.1 概述357

11.8.2 安装协议358

11.8.3 NFS协议358

11.8.4 路径名称转换359

11.8.5 远程操作360

11.9 例子:WAFL文件系统360

11.10 小结362

习题363

编程题364

推荐读物365

参考文献365

第12章 大容量存储结构367

12.1 大容量存储结构概述367

12.1.1 磁盘367

12.1.2 固态磁盘368

12.1.3 磁带368

12.2 磁盘结构369

12.3 磁盘连接369

12.3.1 主机连接存储369

12.3.2 网络连接存储370

12.3.3 存储区域网络370

12.4 磁盘调度371

12.4.1 FCFS调度371

12.4.2 SSTF调度371

12.4.3 SCAN调度372

12.4.4 C-SCAN调度373

12.4.5 LOOK调度373

12.4.6 磁盘调度算法的选择373

12.5 磁盘管理374

12.5.1 磁盘格式化374

12.5.2 引导块375

12.5.3 坏块376

12.6 交换空间管理377

12.6.1 交换空间的使用377

12.6.2 交换空间位置377

12.6.3 交换空间管理:例子378

12.7 RAID结构378

12.7.1 通过冗余提高可靠性379

12.7.2 通过并行处理提高性能380

12.7.3 RAID级别380

12.7.4 RAID级别的选择383

12.7.5 扩展384

12.7.6 RAID的问题384

12.8 稳定存储实现385

12.9 小结386

习题387

编程题388

推荐读物388

参考文献389

第13章 I/O系统390

13.1 概述390

13.2 I/O硬件390

13.2.1 轮询392

13.2.2 中断393

13.2.3 直接内存访问396

13.2.4 I/O硬件小结397

13.3 应用程序I/O接口397

13.3.1 块与字符设备399

13.3.2 网络设备400

13.3.3 时钟与定时器400

13.3.4 非阻塞与异步I/O401

13.3.5 向量I/O402

13.4 内核I/O子系统402

13.4.1 I/O调度402

13.4.2 缓冲403

13.4.3 缓存404

13.4.4 假脱机与设备预留405

13.4.5 错误处理405

13.4.6 I/O保护405

13.4.7 内核数据结构406

13.4.8 内核I/O子系统小结406

13.5 I/O请求转成硬件操作407

13.6 流409

13.7 性能410

13.8 小结412

习题413

推荐读物414

参考文献414

第五部分 保护与安全416

第14章 系统保护416

14.1 保护目标416

14.2 保护原则417

14.3 保护域417

14.3.1 域结构418

14.3.2 例子:UNIX419

14.3.3 例子:MULTICS420

14.4 访问矩阵421

14.5 访问矩阵的实现423

14.5.1 全局表423

14.5.2 对象的访问列表423

14.5.3 域的能力列表424

14.5.4 锁-钥匙机制424

14.5.5 比较424

14.6 访问控制425

14.7 访问权限的撤回426

14.8 基于能力的系统427

14.8.1 例子:Hydra427

14.8.2 例子:剑桥CAP系统428

14.9 基于语言的保护428

14.9.1 基于编译程序的实现429

14.9.2 Java的保护430

14.10 小结432

习题432

推荐读物433

参考文献433

第15章 系统安全436

15.1 安全问题436

15.2 程序威胁438

15.2.1 特洛伊木马438

15.2.2 后门439

15.2.3 逻辑炸弹440

15.2.4 堆栈和缓冲区溢出440

15.2.5 病毒442

15.3 系统和网络的威胁444

15.3.1 蠕虫445

15.3.2 端口扫描447

15.3.3 拒绝服务448

15.4 作为安全工具的密码术448

15.4.1 加密449

15.4.2 密码术的实现454

15.4.3 例子:SSL454

15.5 用户认证456

15.5.1 密码456

15.5.2 密码漏洞456

15.5.3 密码安全457

15.5.4 一次性密码458

15.5.5 生物识别技术458

15.6 实现安全防御459

15.6.1 安全策略459

15.6.2 漏洞评估459

15.6.3 入侵检测460

15.6.4 病毒防护462

15.6.5 审计、记账和日志464

15.7 保护系统和网络的防火墙464

15.8 计算机安全等级465

15.9 例子:Windows 7466

15.10 小结468

习题468

推荐读物469

参考文献470

第六部分 案例研究474

第16章 Linux系统474

16.1 Linux历史474

16.1.1 Linux内核475

16.1.2 Linux系统476

16.1.3 Linux发行476

16.1.4 Linux许可477

16.2 设计原则477

16.3 内核模块479

16.3.1 模块管理480

16.3.2 驱动程序注册480

16.3.3 冲突解决481

16.4 进程管理481

16.4.1 fork()/exec()进程模型481

16.4.2 进程与线程483

16.5 调度484

16.5.1 进程调度484

16.5.2 实时调度485

16.5.3 内核同步486

16.5.4 对称多处理487

16.6 内存管理488

16.6.1 物理内存管理488

16.6.2 虚拟内存490

16.6.3 执行与加载用户程序492

16.7 文件系统494

16.7.1 虚拟文件系统494

16.7.2 Linux ext3文件系统495

16.7.3 日志497

16.7.4 Linux进程文件系统497

16.8 输入与输出498

16.8.1 块设备499

16.8.2 字符设备500

16.9 进程间通信500

16.9.1 同步与信号500

16.9.2 进程间的数据传递501

16.10 网络结构501

16.11 安全503

16.11.1 认证503

16.11.2 访问控制503

16.12 小结504

习题505

推荐读物506

参考文献506

第17章 Windows 7507

17.1 历史507

17.2 设计原则509

17.2.1 安全性509

17.2.2 可靠性509

17.2.3 Windows和POSIX应用程序兼容性510

17.2.4 高性能511

17.2.5 可扩展性512

17.2.6 可移植性512

17.2.7 国际化支持513

17.2.8 电源效率513

17.2.9 动态设备支持513

17.3 系统组件513

17.3.1 硬件抽象层514

17.3.2 内核514

17.3.3 执行体518

17.4 终端服务与快速用户切换531

17.5 文件系统532

17.5.1 NTFS内部布局532

17.5.2 恢复534

17.5.3 安全535

17.5.4 卷管理和容错535

17.5.5 压缩536

17.5.6 安装点、符号链接和硬链接536

17.5.7 变更日志537

17.5.8 卷的影子副本537

17.6 网络537

17.6.1 网络接口537

17.6.2 协议537

17.6.3 重定向器与服务器539

17.6.4 域540

17.6.5 活动目录540

17.7 程序员接口540

17.7.1 访问内核对象541

17.7.2 进程间共享对象541

17.7.3 进程管理542

17.7.4 使用Windows消息传递的进程间通信545

17.7.5 内存管理546

17.8 小结547

习题548

推荐读物548

参考文献549

第18章 有影响的操作系统550

18.1 特征迁移550

18.2 早期系统551

18.2.1 专用计算机系统551

18.2.2 共享计算机系统552

18.2.3 重叠I/O554

18.3 Atlas555

18.4 XDS-940556

18.5 THE556

18.6 RC 4000557

18.7 CTSS558

18.8 MULTICS558

18.9 IBM OS/360558

18.10 TOPS-20559

18.11 CP/M与MS/DOS560

18.12 Macintosh OS与Windows560

18.13 Mach561

18.14 其他系统562

习题562

推荐读物562

参考文献563

索引565

热门推荐