书籍详情
《官网现货 操作系统概念 原书第10版 亚伯拉罕 西尔伯沙茨 计算机科学丛书 计算机系统运行进程管理计算机操作系统原理书籍》[60M]百度网盘|亲测有效|pdf下载
  • 官网现货 操作系统概念 原书第10版 亚伯拉罕 西尔伯沙茨 计算机科学丛书 计算机系统运行进程管理计算机操作系统原理书籍

  • 热度:4927
  • 上架时间:2025-01-04 08:18:29
  • 价格:0.0
书籍下载
书籍预览
免责声明

本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正

内容介绍

6f4d42192e1fff25.jpg.avif7e29aba89c34375c.jpg.avif







本书是面向操作系统导论课程的经典书籍,从第1版至今被国内外众多高校选作教材。全书共九个部分,相较于上一版增加了三个部分,并且优化了各章的编排顺序。本书不仅详细讲解进程管理、内存管理、存储管理、保护与安全等概念,而且涵盖重要的理论结果和案例研究,并且给出了供读者深入学习的推荐读物。这一版在移动操作系统、多核系统、虚拟化和NVM外存等方面做了大幅更新,每一章都融入了新的技术进展,并且更新了习题和编程项目。本书既适合高等院校计算机相关专业的学生学习,也是专业技术人员的有益参考。





目录

Operating System Concepts,Tenth Edition


译者序

前言

第一部分概论

第1章导论2

1.1操作系统的功能2

1.1.1用户视角2

1.1.2系统视角3

1.1.3操作系统的定义3

1.2计算机系统的组成4

1.2.1中断5

1.2.2存储结构7

1.2.3I/O结构9

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

1.3.1单处理器系统9

1.3.2多处理器系统10

1.3.3集群系统11

1.4操作系统的执行13

1.4.1多道程序与多任务14

1.4.2双模式与多模式操作15

1.4.3定时器16

1.5资源管理16

1.5.1进程管理16

1.5.2内存管理17

1.5.3文件系统管理17

1.5.4大容量存储管理18

1.5.5高速缓存管理18

1.5.6I/O系统管理20

1.6安全与保护20

1.7虚拟化21

1.8分布式系统22

1.9内核数据结构22

1.9.1列表、堆栈与队列22

1.9.2树23

1.9.3哈希函数与哈希表24

1.9.4位图24

1.10计算环境25

1.10.1传统计算25

1.10.2移动计算25

1.10.3客户机-服务器计算26

1.10.4对等计算26

1.10.5云计算27

1.10.6实时嵌入式系统27

1.11免费与开源操作系统28

1.11.1开源操作系统的历史29

1.11.2自由操作系统29

1.11.3GNU/Linux29

1.11.4BSD UNIX30

1.11.5Solaris30

1.11.6用作学习的开源操作

系统31

1.12本章小结31

1.13推荐读物32

1.14参考文献32

1.15练习33

1.16习题33

第2章操作系统结构35

2.1操作系统的服务35

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

2.2.1命令解释器37

2.2.2图形用户界面37

2.2.3触摸屏界面38

2.2.4界面的选择38

2.3系统调用39

2.3.1系统调用示例39

2.3.2应用编程接口39

2.3.3系统调用的类型41

2.4系统服务46

2.5链接器与加载器46

2.6应用程序特定于操作系统的

原因48

2.7操作系统的设计与实现49

2.7.1设计目标49

2.7.2机制与策略49

2.7.3实现50

2.8操作系统的结构50

2.8.1简单结构51

2.8.2分层法51

2.8.3微内核52

2.8.4模块53

2.8.5混合系统53

2.9操作系统的构建与引导56

2.9.1操作系统的生成56

2.9.2操作系统的引导57

2.10操作系统的调试58

2.10.1故障分析59

2.10.2性能优化59

2.10.3跟踪60

2.10.4BCC60

2.11本章小结61

2.12推荐读物62

2.13参考文献62

2.14练习63

2.15习题63

2.16编程题63

2.17编程项目64

第二部分进程管理

第3章进程70

3.1进程的概念70

3.1.1进程概述70

3.1.2进程状态71

3.1.3进程控制块72

3.1.4线程73

3.2进程调度73

3.2.1调度队列74

3.2.2CPU调度74

3.2.3上下文切换75

3.3进程操作76

3.3.1进程创建76

3.3.2进程终止79

3.4进程间通信81

3.5共享内存系统的IPC82

3.6消息传递系统的IPC83

3.6.1命名84

3.6.2同步85

3.6.3缓冲85

3.7IPC系统示例86

3.7.1POSIX共享内存86

3.7.2Mach消息传递88

3.7.3Windows90

3.7.4管道91

3.8客户机-服务器系统中的通信

95

3.8.1套接字95

3.8.2远程过程调用97

3.9本章小结99

3.10推荐读物100

3.11参考文献100

3.12练习100

3.13习题101

3.14编程题104

3.15编程项目106

第4章线程与并发113

4.1概述113

4.1.1动机113

4.1.2优点114

4.2多核编程115

4.2.1编程挑战115

4.2.2并行的类型116

4.3多线程模型117

4.3.1多对一模型117

4.3.2一对一模型117

4.3.3多对多模型117

4.4线程库118

4.4.1Pthreads119

4.4.2Windows线程120

4.4.3Java线程121

4.5隐式线程124

4.5.1线程池124

4.5.2复刻加入126

4.5.3OpenMP128

4.5.4大中央调度129

4.5.5Intel线程构建模块130

4.6多线程问题131

4.6.1系统调用fork()和

exec()131

4.6.2信号处理131

4.6.3线程撤销132

4.6.4线程本地存储133

4.6.5调度程序激活134

4.7操作系统示例135

4.7.1Windows线程135

4.7.2Linux线程135

4.8本章小结136

4.9推荐读物137

4.10参考文献137

4.11练习137

4.12习题137

4.13编程题139

4.14编程项目141

第5章CPU调度143

5.1基本概念143

5.1.1CPU-I/O突发周期143

5.1.2CPU调度程序144

5.1.3抢占式和非抢占式调度144

5.1.4分派程序145

5.2调度准则146

5.3调度算法146

5.3.1先到先服务调度146

5.3.2最短作业优先调度147

5.3.3轮转调度149

5.3.4优先级调度150

5.3.5多级队列调度151

5.3.6多级反馈队列调度152

5.4线程调度153

5.4.1竞争范围153

5.4.2Pthreads调度153

5.5多处理器调度155

5.5.1多处理器调度的方法155

5.5.2多核处理器156

5.5.3负载平衡158

5.5.4处理器亲和性158

5.5.5异构多处理159

5.6实时CPU调度159

5.6.1最小化延迟159

5.6.2基于优先级的调度160

5.6.3单调速率调度161

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

5.6.5比例分享调度163

5.6.6POSIX实时调度163

5.7操作系统示例165

5.7.1示例:Linux调度165

5.7.2示例:Windows调度167

5.7.3示例:Solaris调度169

5.8算法评估170

5.8.1确定性模型171

5.8.2排队模型171

5.8.3仿真172

5.8.4实现172

5.9本章小结173

5.10推荐读物174

5.11参考文献174

5.12练习175

5.13习题176

5.14编程项目178

第三部分进程同步

第6章同步工具182

6.1背景182

6.2临界区问题183

6.3Peterson解决方案185

6.4硬件同步支持186

6.4.1内存屏障186

6.4.2硬件指令187

6.4.3原子变量189

6.5互斥锁189

6.6信号量191

6.6.1信号量的使用191

6.6.2信号量的实现191

6.7管程193

6.7.1管程的使用194

6.7.2采用信号量的管程实现195

6.7.3管程内的进程重启196

6.8活性196

6.8.1死锁197

6.8.2优先级反转197

6.10本章小结199

6.11推荐读物199

6.12参考文献200

6.13练习200

6.14习题200

6.15编程题205

第7章同步案例207

7.1经典同步问题207

7.1.1有界缓冲区问题207

7.1.2读者-作者问题207

7.1.3哲学家就餐问题209

7.2内核的同步211

7.2.1Windows的同步211

7.2.2Linux的同步212

7.3POSIX的同步213

7.3.1POSIX 互斥锁213

7.3.2POSIX信号量213

7.3.3POSIX条件变量214

7.4Java的同步215

7.4.1Java管程215

7.4.2重入锁218

7.4.3信号量218

7.4.4条件变量219

7.5其他方法220

7.5.1事务内存220

7.5.2OpenMP221

7.5.3函数式编程语言222

7.6本章小结222

7.7推荐读物222

7.8参考文献222

7.9练习223

7.10习题223

7.11编程题223

7.12编程项目224

第8章死锁230

8.1系统模型230

8.2多线程应用程序的死锁231

8.3死锁特点233

8.3.1必要条件233

8.3.2资源分配图233

8.4死锁处理方法235

8.5死锁预防235

8.5.1互斥235

8.5.2占有并等待236

8.5.3非抢占236

8.5.4 循环等待236

8.6死锁避免238

8.6.1 安全状态238

8.6.2资源分配图算法239

8.6.3银行家算法239

8.7死锁检测241

8.7.1每种资源类型只有单个

实例241

8.7.2每种资源类型可有多个

实例242

8.7.3检测算法的使用243

8.8死锁恢复244

8.8.1进程与线程的中止244

8.8.2资源抢占244

8.9本章小结245

8.10推荐读物245

8.11参考文献245

8.12练习245

8.13习题247

8.14编程题249

8.15编程项目249

第四部分内存管理

第9章内存252

9.1背景252

9.1.1基本硬件252

9.1.2地址绑定253

9.1.3逻辑地址空间与物理地址

空间254

9.1.4动态加载255

9.1.5动态链接与共享库255

9.2连续内存分配256

9.2.1内存保护256

9.2.2内存分配257

9.2.3碎片257

9.3分页258

9.3.1基本方法258

9.3.2硬件支持261

9.3.3保护263

9.3.4共享页263

9.4页表结构264

9.4.1分层分页264

9.4.2哈希页表265

9.4.3倒置页表266

9.4.4Oracle SPARC Solaris267

9.5交换267

9.5.1标准交换267

9.5.2采用分页的交换267

9.5.3移动系统的交换268

9.6示例:Intel 32位与64位体系

结构268

9.6.1IA-32架构269

9.6.2x86-64270

9.7示例:ARMv8架构271

9.8本章小结272

9.9推荐读物272

9.10参考文献273

9.11练习273

9.12习题274

9.13编程题275

9.14编程项目275

第10章虚拟内存277

10.1背景277

10.2请求调页279

10.2.1基本概念279

10.2.2空闲帧列表281

10.2.3请求调页的性能282

10.3写时复制283

10.4页面置换284

10.4.1基本页面置换285

10.4.2FIFO页面置换287

10.4.3页面置换288

10.4.4LRU页面置换288

10.4.5近似LRU页面置换290

10.4.6基于计数的页面置换291

10.4.7页面缓冲算法292

10.4.8应用程序与页面置换292

10.5帧分配292

10.5.1帧的最小数293

10.5.2分配算法293

10.5.3全局分配与局部分配294

10.5.4非均匀内存访问295

10.6抖动296

10.6.1抖动的原因296

10.6.2工作集模型297

10.6.3缺页错误频率299

10.6.4当前做法300

10.7内存压缩300

10.8分配内核内存301

10.8.1伙伴系统301

10.8.2slab分配302

10.9其他考虑因素303

10.9.1预调页面303

10.9.2页面大小304

10.9.3TLB范围304

10.9.4倒置页表305

10.9.5程序结构305

10.9.6I/O联锁与页面锁定306

10.10操作系统示例307

10.10.1Linux307

10.10.2Windows308

10.10.3Solaris308

10.11本章小结309

10.12推荐读物310

10.13参考文献310

10.14练习310

10.15习题312

10.16编程题316

10.17编程项目316

第五部分存储管理

第11章大容量存储320

11.1大容量存储结构概述320

11.1.1硬盘驱动器320

11.1.2非易失性存储设备321

11.1.3易失性存储器323

11.1.4二级存储连接方法324

11.1.5地址映射324

11.2HDD调度325

11.2.1FCFS调度325

11.2.2SCAN调度326

11.2.3C-SCAN调度326

11.2.4磁盘调度算法的选择326

11.3NVM调度327

11.4错误检测和纠正328

11.5存储设备管理328

11.5.1驱动器格式化、分区与卷

328

11.5.2引导块330

11.5.3坏块330

11.6交换空间管理331

11.6.1交换空间的使用331

11.6.2交换空间位置332

11.6.3交换空间管理的示例332

11.7存储连接333

11.7.1主机连接存储333

11.7.2网络连接存储333

11.7.3云存储333

11.7.4存储区域网络与存储

阵列334

11.8RAID结构335

11.8.1通过冗余提高可靠性335

11.8.2通过并行处理提高

性能336

11.8.3RAID级别336

11.8.4RAID级别的选择339

11.8.5扩展340

11.8.6RAID的问题340

11.8.7对象存储341

11.9本章小结342

11.10推荐读物342

11.11参考文献343

11.12练习343

11.13习题344

11.14编程题345

第12章I/O系统346

12.1概述346

12.2I/O硬件346

12.2.1内存映射I/O347

12.2.2轮询348

12.2.3中断349

12.2.4直接内存访问351

12.2.5I/O硬件概要352

12.3应用程序I/O接口353

12.3.1块与字符设备354

12.3.2网络设备355

12.3.3时钟与定时器355

12.3.4非阻塞与异步I/O356

12.3.5向量I/O357

12.4内核I/O子系统357

12.4.1I/O调度357

12.4.2缓冲358

12.4.3缓存359

12.4.4假脱机与设备预留360

12.4.5错误处理360

12.4.6I/O保护360

12.4.7内核数据结构361

12.4.8能耗管理362

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

12.5将I/O请求转换为硬件

操作363

12.6流365

12.7性能366

12.8本章小结368

12.9推荐读物368

12.10参考文献369

12.11练习369

12.12习题369

第六部分文件系统

第13章文件系统接口372

13.1文件概念372

13.1.1文件属性372

13.1.2文件操作373

13.1.3文件类型376

13.1.4文件结构377

13.1.5内部文件结构378

13.2访问方法378

13.2.1顺序访问378

13.2.2直接访问378

13.2.3其他访问方法379

13.3目录结构380

13.3.1单级目录380

13.3.2两级目录381

13.3.3树形目录382

13.3.4无环图目录383

13.3.5通用图目录385

13.4保护385

13.4.1访问类型386

13.4.2访问控制386

13.4.3其他保护方式388

13.5内存映射文件388

13.5.1基本机制388

13.5.2共享内存的Windows 

API390

13.6本章小结391

13.7推荐读物392

13.8参考文献392

13.9练习392

13.10习题393

第14章文件系统实现394

14.1文件系统结构394

14.2文件系统操作395

14.2.1概述395

14.2.2用途396

14.3目录实现397

14.3.1线性列表397

14.3.2哈希表398

14.4分配方法398

14.4.1连续分配398

14.4.2链接分配400

14.4.3索引分配401

14.4.4性能402

14.5空闲空间管理403

14.5.1位向量403

14.5.2链表404

14.5.3组合404

14.5.4计数404

14.5.5空间图404

14.5.6修整未使用的块405

14.6效率与性能405

14.6.1效率405

14.6.2性能406

14.7恢复408

14.7.1一致性检查408

14.7.2基于日志的文件系统408

14.7.3其他解决方法409

14.7.4备份与恢复409

14.8示例:WAFL文件系统410

14.9本章小结412

14.10推荐读物412

14.11参考文献413

14.12练习413

14.13习题414

第15章文件系统内部细节416

15.1文件系统416

15.2文件系统挂载417

15.3分区与挂载418

15.4文件共享419

15.5虚拟文件系统420

15.6远程文件系统421

15.6.1客户端-服务器模型421

15.6.2分布式信息系统422

15.6.3故障模式422

15.7一致性语义423

15.7.1UNIX语义423

15.7.2会话语义423

15.7.3不可变共享文件语义423

15.8NFS424

15.8.1概述424

15.8.2挂载协议425

15.8.3NFS协议425

15.8.4路径名称转换426

15.8.5远程操作427

15.9本章小结427

15.10推荐读物428

15.11参考文献428

15.12练习428

15.13习题429

第七部分安全与保护

第16章安全432

16.1安全问题432

16.2程序威胁434

16.2.1恶意软件434

16.2.2代码注入436

16.2.3病毒和蠕虫438

16.3系统和网络威胁440

16.3.1攻击网络传输440

16.3.2拒绝服务441

16.3.3端口扫描441

16.4作为安全工具的密码学442

16.4.1加密442

16.4.2密码学的实现446

16.4.3示例:TLS447

16.5用户认证448

16.5.1密码448

16.5.2密码漏洞449

16.5.3密码安全450

16.5.4一次性密码450

16.5.5生物识别技术451

16.6实现安全防御451

16.6.1安全策略451

16.6.2漏洞评估451

16.6.3入侵防御453

16.6.4病毒防护454

16.6.5审计、记账与日志455

16.6.6保护系统和网络的

防火墙455

16.6.7其他解决方案456

16.6.8安全防御总结456

16.7示例:Windows 10457

16.8本章小结458

16.9推荐读物459

16.10参考文献459

16.11习题459

第17章保护461

17.1保护目标461

17.2保护原则461

17.3保护环462

17.4保护域464

17.4.1域结构464

17.4.2示例:UNIX465

17.4.3示例:Android应用

程序ID466

17.5访问矩阵466

17.6访问矩阵的实现468

17.6.1全局表468

17.6.2访问对象列表468

17.6.3域能力列表469

17.6.4锁-钥匙机制469

17.6.5比较469

17.7撤回访问权限470

17.8基于角色的访问控制471

17.9强制访问控制471

17.10基于能力的系统472

17.10.1Linux能力472

17.10.2Darwin权利473

17.11其他保护改进方法473

17.11.1系统完整性保护473

17.11.2系统调用过滤474

17.11.3沙箱474

17.11.4代码签名475

17.12基于语言的保护475

17.12.1基于编译器的实现476

17.12.2基于运行时的强制执行

——Java中的保护477

17.13本章小结478

17.14推荐读物479

17.15参考文献479

17.16习题480

第八部分高级主题

第18章虚拟机482

18.1概述482

18.2历史483

18.3优点与功能484

18.4构建模块485

18.4.1陷阱模拟485

18.4.2二进制翻译486

18.4.3硬件协助487

18.5虚拟机的主要类型及其

实现489

18.5.1虚拟机的生命周期489

18.5.2类型0虚拟机管理器489

18.5.3类型1虚拟机管理器490

18.5.4类型2虚拟机管理器490

18.5.5半虚拟化491

18.5.6编程环境的虚拟化492

18.5.7仿真492

18.5.8应用程序遏制492

18.6虚拟化和操作系统组件493

18.6.1CPU调度493

18.6.2内存管理494

18.6.3I/O495

18.6.4存储管理495

18.6.5实时迁移496

18.7实例497

18.7.1VMware497

18.7.2Java虚拟机498

18.8虚拟化研究499

18.9本章小结499

18.10推荐读物500

18.11参考文献501

18.12习题501

第19章网络与分布式系统502

19.1分布式系统的优点502

19.1.1资源共享503

19.1.2计算加速503

19.1.3可靠性503

19.2网络结构503

19.2.1局域网503

19.2.2广域网504

19.3通信结构505

19.3.1命名和名称解析505

19.3.2通信协议507

19.3.3TCP/IP示例509

19.3.4网络协议UDP与TCP510

19.4网络与分布式操作系统511

19.4.1网络操作系统512

19.4.2分布式操作系统513

19.5分布式系统的设计问题514

19.5.1健壮性514

19.5.2透明515

19.5.3可扩展性516

19.6分布式文件系统516

19.6.1客户端-服务器DFS

模型517

19.6.2基于集群的DFS模型518

19.7DFS命名与透明519

19.7.1命名结构519

19.7.2命名方案520

19.7.3实现技术520

19.8远程文件访问521

19.8.1基本缓存方案521

19.8.2缓存位置521

19.8.3缓存更新策略522

19.8.4一致性522

19.9关于分布式文件系统的

结语523

19.10本章小结523

19.11推荐读物524

19.12参考文献524

19.13练习525

19.14习题525

第九部分案例研究

第20章Linux528

20.1历史528

20.1.1Linux内核528

20.1.2Linux系统530

20.1.3Linux发行530

20.1.4Linux许可530

20.2设计原则531

20.3内核模块532

20.3.1模块管理533

20.3.2驱动程序注册534

20.3.3冲突解决534

20.4进程管理534

20.4.1fork()与exec()进程模型

534

20.4.2进程与线程536

20.5调度537

20.5.1线程调度537

20.5.2实时调度538

20.5.3内核同步538

20.5.4对称多处理539

20.6内存管理540

20.6.1物理内存的管理540

20.6.2虚拟内存542

20.6.3执行与加载用户程序543

20.7文件系统545

20.7.1虚拟文件系统545

20.7.2Linux ext3文件系统546

20.7.3日志547

20.7.4Linux文件系统548

20.8输入与输出549

20.8.1块设备549

20.8.2字符设备550

20.9进程间通信550

20.9.1同步与信号550

20.9.2进程间的数据传递551

20.10网络结构551

20.11安全552

20.11.1认证553

20.11.2访问控制553

20.12本章小结554

20.13推荐读物554

20.14参考文献555

20.15练习555

20.16习题555

第21章Windows 10557

21.1历史557

21.1.1Windows XP、Windows Vista

和Windows 7557

21.1.2Windows 8558

21.1.3Windows 10558

21.2设计原则560

21.2.1安全性560

21.2.2可靠性562

21.2.3Windows与应用程序

兼容性562

21.2.4性能563

21.2.5可扩展性565

21.2.6可移植性566

21.2.7国际支持566

21.2.8能源效率567

21.2.9动态设备支持568

21.3系统组件568

21.3.1Hyper-V管理程序568

21.3.2安全内核569

21.3.3硬件抽象层569

21.3.4内核569

21.3.5执行体575

21.4终端服务与快速用户切换591

21.5文件系统592

21.5.1NTFS内部布局592

21.5.2恢复593

21.5.3安全594

21.5.4压缩594

21.5.5挂载点、符号链接与硬

链接594

21.5.6日志变更595

21.5.7卷影副本595

21.6网络595

21.6.1网络接口595

21.6.2协议595

21.6.3重定向器与服务器597

21.6.4域597

21.6.5活动目录598

21.7程序员接口598

21.7.1内核对象访问598

21.7.2进程间对象共享598

21.7.3进程管理600

21.7.4使用Windows消息传递的

通信603

21.7.5内存管理603

21.8本章小结606

21.9推荐读物606

21.10参考文献606

21.11练习606

21.12习题607




相关推荐