图书介绍

操作概念精要 原书第2版2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

操作概念精要 原书第2版
  • (美)亚伯拉罕·西尔伯沙茨,(美)彼得·B.高尔文,格雷格·加涅著 著
  • 出版社: 北京:机械工业出版社
  • ISBN:9787111606482
  • 出版时间:2018
  • 标注页数:502页
  • 文件大小:277MB
  • 文件页数:522页
  • 主题词:操作系统-高等学校-教材

PDF下载


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

下载说明

操作概念精要 原书第2版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 内存管理17

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 实时嵌入式系统29

1.12 开源操作系统30

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

实践题35

习题35

推荐读物36

参考文献37

第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

实践题65

习题65

编程题66

编程项目66

推荐读物69

参考文献70

第二部分 进程管理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

实践题103

习题104

编程题105

编程项目107

推荐读物110

参考文献111

第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

实践题131

习题131

编程题133

编程项目135

推荐读物136

参考文献136

第5章 进程同步138

5.1 背景138

5.2 临界区问题140

5.3 Peterson解决方案141

5.4 硬件同步142

5.5 互斥锁144

5.6 信号量144

5.6.1 信号量的使用145

5.6.2 信号量的实现145

5.6.3 死锁与饥饿147

5.6.4 优先级的反转147

5.7 经典同步问题148

5.7.1 有界缓冲问题148

5.7.2 读者-作者问题149

5.7.3 哲学家就餐问题150

5.8 管程151

5.8.1 使用方法152

5.8.2 哲学家就餐问题的管程解决方案153

5.8.3 采用信号量的管程实现154

5.8.4 管程内的进程重启155

5.9 同步例子156

5.9.1 Windows同步156

5.9.2 Linux同步157

5.9.3 Solaris同步158

5.9.4 Pthreads同步159

5.10 替代方法160

5.10.1 事务内存161

5.10.2 OpenMP162

5.10.3 函数式编程语言162

5.11 死锁163

5.11.1 系统模型163

5.11.2 死锁特征164

5.11.3 死锁处理方法167

5.12 小结168

复习题168

实践题168

习题169

编程题172

编程项目174

推荐读物178

参考文献178

第6章 CPU调度180

6.1 基本概念180

6.1.1 CPU-I/O执行周期180

6.1.2 CPU调度程序181

6.1.3 抢占调度181

6.1.4 调度程序182

6.2 调度准则182

6.3 调度算法183

6.3.1 先到先服务调度183

6.3.2 最短作业优先调度184

6.3.3 优先级调度186

6.3.4 轮转调度187

6.3.5 多级队列调度189

6.3.6 多级反馈队列调度190

6.4 线程调度191

6.4.1 竞争范围191

6.4.2 Pthreads调度191

6.5 多处理器调度193

6.5.1 多处理器调度的方法193

6.5.2 处理器亲和性193

6.5.3 负载平衡194

6.5.4 多核处理器194

6.6 实时CPU调度196

6.6.1 最小化延迟196

6.6.2 优先级调度197

6.6.3 单调速率调度198

6.6.4 最早截止期限优先调度199

6.6.5 比例分享调度200

6.6.6 POSIX实时调度200

6.7 操作系统例子202

6.7.1 例子:Linux调度202

6.7.2 例子:Windows调度204

6.7.3 例子:Solaris调度206

6.8 算法评估207

6.8.1 确定性模型208

6.8.2 排队模型209

6.8.3 仿真209

6.8.4 实现210

6.9 小结211

复习题212

实践题212

习题213

推荐读物215

参考文献216

第三部分 内存管理220

第7章 内存220

7.1 背景220

7.1.1 基本硬件220

7.1.2 地址绑定222

7.1.3 逻辑地址空间与物理地址空间222

7.1.4 动态加载223

7.1.5 动态链接与共享库224

7.2 交换224

7.2.1 标准交换224

7.2.2 移动系统的交换225

7.3 连续内存分配226

7.3.1 内存保护226

7.3.2 内存分配227

7.3.3 碎片228

7.4 分段228

7.4.1 基本方法229

7.4.2 分段硬件229

7.5 分页230

7.5.1 基本方法231

7.5.2 硬件支持233

7.5.3 保护236

7.5.4 共享页237

7.6 页表结构238

7.6.1 分层分页238

7.6.2 哈希页表240

7.6.3 倒置页表240

7.6.4 Oracle SPARC Solaris241

7.7 例子:Intel 32位与64位体系结构242

7.7.1 IA-32架构242

7.7.2 x86-64244

7.8 例子:ARM架构245

7.9 小结245

复习题246

实践题246

习题247

编程题249

推荐读物249

参考文献250

第8章 虚拟内存251

8.1 背景251

8.2 请求调页253

8.2.1 基本概念253

8.2.2 请求调页的性能256

8.3 写时复制258

8.4 页面置换259

8.4.1 基本页面置换260

8.4.2 FIFO页面置换262

8.4.3 最优页面置换263

8.4.4 LRU页面置换263

8.4.5 近似LRU页面置换265

8.4.6 基于计数的页面置换266

8.4.7 页面缓冲算法267

8.4.8 应用程序与页面置换267

8.5 帧分配267

8.5.1 帧的最小数268

8.5.2 分配算法269

8.5.3 全局分配与局部分配269

8.5.4 非均匀内存访问270

8.6 系统抖动270

8.6.1 系统抖动的原因271

8.6.2 工作集模型272

8.6.3 缺页错误频率273

8.6.4 结束语274

8.7 内存映射文件274

8.7.1 基本机制274

8.7.2 共享内存WindowsAPI275

8.7.3 内存映射I/O277

8.8 分配内核内存278

8.8.1 伙伴系统278

8.8.2 slab分配279

8.9 其他注意事项280

8.9.1 预调页面280

8.9.2 页面大小280

8.9.3 TLB范围281

8.9.4 倒置页表282

8.9.5 程序结构282

8.9.6 I/O联锁与页面锁定283

8.10 操作系统例子284

8.10.1 Windows284

8.10.2 Solaris285

8.11 小结286

复习题286

实践题287

习题288

编程题292

编程项目292

推荐读物294

参考文献295

第四部分 存储管理298

第9章 大容量存储结构298

9.1 大容量存储结构概述298

9.1.1 硬盘298

9.1.2 固态磁盘299

9.1.3 磁带299

9.2 磁盘结构300

9.3 磁盘连接300

9.3.1 主机连接存储300

9.3.2 网络连接存储301

9.3.3 存储区域网络301

9.4 磁盘调度302

9.4.1 FCFS调度302

9.4.2 SSTF调度302

9.4.3 SCAN调度303

9.4.4 C-SCAN调度304

9.4.5 LOOK调度304

9.4.6 磁盘调度算法的选择304

9.5 磁盘管理305

9.5.1 磁盘格式化305

9.5.2 引导块306

9.5.3 坏块307

9.6 交换空间管理308

9.6.1 交换空间的使用308

9.6.2 交换空间位置308

9.6.3 交换空间管理例子309

9.7 RAID结构309

9.7.1 通过冗余提高可靠性310

9.7.2 通过并行处理提高性能311

9.7.3 RAID级别311

9.7.4 RAID级别的选择314

9.7.5 扩展315

9.7.6 RAID的问题315

9.8 稳定存储实现316

9.9 小结317

复习题318

实践题318

习题318

编程题320

推荐读物320

参考文献321

第10章 文件系统接口322

10.1 文件概念322

10.1.1 文件属性322

10.1.2 文件操作323

10.1.3 文件类型327

10.1.4 文件结构328

10.1.5 内部文件结构328

10.2 访问方法328

10.2.1 顺序访问329

10.2.2 直接访问329

10.2.3 其他访问方法330

10.3 目录与磁盘的结构331

10.3.1 存储结构331

10.3.2 目录概述332

10.3.3 单级目录332

10.3.4 两级目录333

10.3.5 树形目录334

10.3.6 无环图目录335

10.3.7 通用图目录337

10.4 文件系统安装338

10.5 文件共享339

10.5.1 多用户339

10.5.2 远程文件系统340

10.5.3 一致性语义342

10.6 保护343

10.6.1 访问类型343

10.6.2 访问控制343

10.6.3 其他保护方式345

10.7 小结346

复习题346

实践题346

习题347

推荐读物348

参考文献348

第11章 文件系统实现349

11.1 文件系统结构349

11.2 文件系统实现350

11.2.1 概述351

11.2.2 分区与安装353

11.2.3 虚拟文件系统353

11.3 目录实现355

11.3.1 线性列表355

11.3.2 哈希表355

11.4 分配方法356

11.4.1 连续分配356

11.4.2 链接分配357

11.4.3 索引分配359

11.4.4 性能360

11.5 空闲空间管理361

11.5.1 位向量361

11.5.2 链表362

11.5.3 组362

11.5.4 计数362

11.5.5 空间图363

11.6 效率与性能363

11.6.1 效率363

11.6.2 性能364

11.7 恢复366

11.7.1 一致性检查366

11.7.2 基于日志的文件系统366

11.7.3 其他解决方法367

11.7.4 备份和恢复368

11.8 NFS368

11.8.1 概述369

11.8.2 安装协议370

11.8.3 NFS协议370

11.8.4 路径名称转换371

11.8.5 远程操作372

11.9 例子:WAFL文件系统372

11.10 小结374

复习题375

实践题375

习题375

编程题376

推荐读物377

参考文献378

第12章 I/O系统379

12.1 概述379

12.2 I/O硬件379

12.2.1 轮询381

12.2.2 中断382

12.2.3 直接内存访问385

12.2.4 I/O硬件小结386

12.3 应用程序I/O接口386

12.3.1 块与字符设备388

12.3.2 网络设备389

12.3.3 时钟与定时器389

12.3.4 非阻塞与异步I/O390

12.3.5 向量I/O391

12.4 内核I/O子系统391

12.4.1 I/O调度391

12.4.2 缓冲392

12.4.3 缓存393

12.4.4 假脱机与设备预留394

12.4.5 错误处理394

12.4.6 I/O保护394

12.4.7 内核数据结构395

12.4.8 电源管理396

12.4.9 内核I/O子系统小结397

12.5 I/O请求转成硬件操作397

12.6 流399

12.7 性能400

12.8 小结402

复习题403

实践题403

习题403

推荐读物404

参考文献404

第五部分 保护与安全406

第13章 保护406

13.1 保护目标406

13.2 保护原则407

13.3 保护域407

13.3.1 域结构408

13.3.2 例子:UNIX409

13.3.3 例子:MULTICS410

13.4 访问矩阵411

13.5 访问矩阵的实现413

13.5.1 全局表413

13.5.2 对象的访问列表413

13.5.3 域的能力列表414

13.5.4 锁-钥匙机制414

13.5.5 比较414

13.6 访问控制415

13.7 访问权限的撤回416

13.8 基于能力的系统417

13.8.1 例子:Hydra417

13.8.2 例子:剑桥CAP系统418

13.9 基于语言的保护418

13.9.1 基于编译程序的实现419

13.9.2 Java的保护420

13.10 小结422

复习题422

实践题422

习题423

推荐读物423

参考文献424

第14章 安全427

14.1 安全问题427

14.2 程序威胁429

14.2.1 特洛伊木马429

14.2.2 后门430

14.2.3 逻辑炸弹431

14.2.4 堆栈和缓冲区溢出431

14.2.5 病毒433

14.3 系统和网络的威胁435

14.3.1 蠕虫436

14.3.2 端口扫描438

14.3.3 拒绝服务439

14.4 作为安全工具的密码术439

14.4.1 加密440

14.4.2 密码术的实现445

14.4.3 例子:SSL445

14.5 用户认证447

14.5.1 密码447

14.5.2 密码漏洞447

14.5.3 密码安全448

14.5.4 一次性密码449

14.5.5 生物识别技术449

14.6 实现安全防御450

14.6.1 安全策略450

14.6.2 漏洞评估450

14.6.3 入侵检测451

14.6.4 病毒防护453

14.6.5 审计、记账和日志455

14.7 保护系统和网络的防火墙455

14.8 计算机安全等级456

14.9 例子:Windows 7457

14.10 小结459

复习题459

习题459

推荐读物460

参考文献461

第六部分 案例研究466

第15章 Linux系统466

15.1 Linux历史466

15.1.1 Linux内核467

15.1.2 Linux系统468

15.1.3 Linux发行468

15.1.4 Linux许可469

15.2 设计原则469

15.3 内核模块471

15.3.1 模块管理472

15.3.2 驱动程序注册473

15.3.3 冲突解决473

15.4 进程管理473

15.4.1 fork()/exec()进程模型474

15.4.2 进程与线程475

15.5 调度476

15.5.1 进程调度476

15.5.2 实时调度477

15.5.3 内核同步478

15.5.4 对称多处理479

15.6 内存管理480

15.6.1 物理内存管理480

15.6.2 虚拟内存482

15.6.3 执行与加载用户程序484

15.7 文件系统486

15.7.1 虚拟文件系统486

15.7.2 Linux ext3文件系统487

15.7.3 日志489

15.7.4 Linux进程文件系统489

15.8 输入与输出490

15.8.1 块设备491

15.8.2 字符设备492

15.9 进程间通信492

15.9.1 同步与信号492

15.9.2 进程间的数据传递493

15.10 网络结构493

15.11 安全495

15.11.1 认证495

15.11.2 访问控制495

15.12 小结496

复习题497

实践题497

习题497

推荐读物498

参考文献499

热门推荐