操作系统――精髓与设计原理(第八版)

操作系统――精髓与设计原理(第八版)
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: ,
2017-02
版次: 8
ISBN: 9787121309502
定价: 79.80
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 492页
字数: 865千字
正文语种: 简体中文
分类: 工程技术
394人买过
  • 本书既是关于操作系统概念、结构和机制的教材,目的是尽可能清楚和全面地展示现代操作系统的本质和特点;也是讲解操作系统的经典教材,不仅系统地讲述了操作系统的基本概念、原理和方法,而且以当代*流行的操作系统Windows 8、UNIX、Android、Linux为例,展现了当代操作系统的本质和特点。全书共分背景知识、进程、内存、调度、输入/输出和文件、嵌入式系统六部分,内容包括计算机系统概述、操作系统概述、进程描述和控制、线程、并发性:互斥和同步、并发:死锁和饥饿、内存管理、虚拟内存、单处理器调度、多处理器和实时调度、I/O管理和磁盘调度、文件管理、嵌入式操作系统、虚拟机、计算机安全技术、分布式处理、客户/服务器和集群等。此外,本书配套网站提供了及时、生动的材料。   陈向群,北京大学信息科学技术学院计算机科学技术系教授,博士生导师,主要研究领域为软件需求工程、知识工程、基于知识的软件工程、面向服务的计算。  
       
      William Stallings:美国圣母大学电子工程学士,麻省理工学院计算机科学博士,《密码术》期刊编委。美国多家高科技公司执行总监,政府机构、计算机软/硬件供应商顾问;曾为各种计算机和操作系统设计并实现TCP/IP和OSI协议套件;创建并维护了计算机科学专业学生资源网站ComputerScienceStudent.com。出版图书17种,内容涉及计算机安全、计算机网络和计算机系统结构等;在《IEEE进展》《ACM计算评论》和《密码术》等期刊上发表文章多篇;先后12次获美国年度*佳计算机科学教科书奖和学术作者协会奖。 第0章 读者与教师指南 1

    0.1 本书概述 1

    0.2 实例系统 1

    0.3 读者和教师的路线图 2

    0.4 互联网和网站资源 3

    第一部分 背景知识

    第1章 计算机系统概述 6

    1.1 基本构成 6

    1.2 微处理器的发展 7

    1.3 指令的执行 8

    1.4 中断 10

    1.4.1 中断和指令周期 11

    1.4.2 中断处理 12

    1.4.3 多个中断 14

    1.5 存储器的层次结构 15

    1.6 高速缓存 17

    1.6.1 动机 18

    1.6.2 高速缓存原理 18

    1.6.3 高速缓存设计 19

    1.7 直接内存存取 20

    1.8 多处理器和多核计算机组织结构 21

    1.8.1 对称多处理器 21

    1.8.2 多核计算机 23

    1.9 推荐读物 23

    1.10 关键术语、复习题和习题 24

    1.10.1 关键术语 24

    1.10.2 复习题 24

    1.10.3 习题 24

    附录1A 两级存储器的性能特征 26

    第2章 操作系统概述 31

    2.1 操作系统的目标和功能 31

    2.1.1 作为用户/计算机接口的

    操作系统 31

    2.1.2 作为资源管理器的操作系统 32

    2.1.3 操作系统的易扩展性 33

    2.2 操作系统的发展史 34

    2.2.1 串行处理 34

    2.2.2 简单批处理系统 34

    2.2.3 多道批处理系统 36

    2.2.4 分时系统 38

    2.3 主要成就 40

    2.3.1 进程 40

    2.3.2 内存管理 42

    2.3.3 信息保护和安全 43

    2.3.4 调度和资源管理 44

    2.4 现代操作系统的特征 45

    2.5 容错性 47

    2.5.1 基本概念 47

    2.5.2 错误 48

    2.5.3 操作系统机制 48

    2.6 多处理器和多核操作系统

    设计考虑因素 49

    2.6.1 对称多处理器操作系统设计

    考虑因素 49

    2.6.2 多核操作系统设计考虑因素 49

    2.7 微软Windows系统简介 51

    2.7.1 背景 51

    2.7.2 体系结构 51

    2.7.3 客户-服务器模型 53

    2.7.4 线程和SMP 54

    2.7.5 Windows对象 54

    2.8 传统的UNIX系统 55

    2.8.1 历史 55

    2.8.2 描述 56

    2.9 现代UNIX系统 57

    2.9.1 System V Release 4(SVR4) 58

    2.9.2 BSD 58

    2.9.3 Solaris 10 58

    2.10 Linux操作系统 58

    2.10.1 历史 58

    2.10.2 模块结构 59

    2.10.3 内核组件 60

    2.11 Android 62

    2.11.1 Android软件体系结构 63

    2.11.2 Android系统体系结构 64

    2.11.3 活动 65

    2.11.4 电源管理 65

    2.12 推荐读物和动画 66

    2.13 关键术语、复习题和习题 67

    2.13.1 关键术语 67

    2.13.2 复习题 67

    2.13.3 习题 67



    第二部分 进程



    第3章 进程描述和控制 70

    3.1 什么是进程 70

    3.1.1 背景 70

    3.1.2 进程和进程控制块 71

    3.2 进程状态 72

    3.2.1 两状态进程模型 73

    3.2.2 进程的创建和终止 74

    3.2.3 五状态模型 75

    3.2.4 被挂起的进程 78

    3.3 进程描述 81

    3.3.1 操作系统的控制结构 82

    3.3.2 进程控制结构 82

    3.4 进程控制 86

    3.4.1 执行模式 86

    3.4.2 进程创建 87

    3.4.3 进程切换 88

    3.5 操作系统的执行 90

    3.5.1 无进程内核 90

    3.5.2 在用户进程内运行 90

    3.5.3 基于进程的操作系统 91

    3.6 UNIX SVR4进程管理 91

    3.6.1 进程状态 92

    3.6.2 进程描述 93

    3.6.3 进程控制 94

    3.7 小结 95

    3.8 推荐读物和动画 95

    3.9 关键术语、复习题和习题 95

    3.9.1 关键术语 95

    3.9.2 复习题 96

    3.9.3 习题 96

    第4章 线程 99

    4.1 进程和线程 99

    4.1.1 多线程 99

    4.1.2 线程的功能 102

    4.2 线程分类 103

    4.2.1 用户级和内核级线程 103

    4.2.2 其他方案 106

    4.3 多核和多线程 107

    4.3.1 多核系统上的软件性能 107

    4.3.2 应用示例:Valve游戏软件 109

    4.4 Windows 8的进程和线程管理 110

    4.4.1 Windows 8中的变化 111

    4.4.2 Windows进程 111

    4.4.3 进程对象和线程对象 112

    4.4.4 多线程 113

    4.4.5 线程状态 113

    4.4.6 对操作系统子系统的支持 114

    4.5 Solaris的线程和SMP管理 114

    4.5.1 多线程体系结构 114

    4.5.2 动机 115

    4.5.3 进程结构 115

    4.5.4 线程的执行 116

    4.5.5 把中断当作线程 117

    4.6 Linux的进程和线程管理 118

    4.6.1 Linux任务 118

    4.6.2 Linux线程 119

    4.6.3 Linux命名空间 120

    4.7 Android的进程和线程管理 121

    4.7.1 安卓应用 121

    4.7.2 活动 121

    4.7.3 进程和线程 122

    4.8 Mac OS X的GCD技术 123

    4.9 小结 124

    4.10 推荐读物 125

    4.11 关键术语、复习题和习题 125

    4.11.1 关键术语 125

    4.11.2 复习题 125

    4.11.3 习题 125

    第5章 并发性:互斥和同步 129

    5.1 并发的原理 130

    5.1.1 一个简单的例子 130

    5.1.2 竞争条件 132

    5.1.3 操作系统关注的问题 132

    5.1.4 进程的交互 133

    5.1.5 互斥的要求 135

    5.2 互斥:硬件的支持 136

    5.2.1 中断禁用 136

    5.2.2 专用机器指令 136

    5.3 信号量 138

    5.3.1 互斥 141

    5.3.2 生产者/消费者问题 142

    5.3.3 信号量的实现 146

    5.4 管程 147

    5.4.1 使用信号的管程 147

    5.4.2 使用通知和广播的管程 149

    5.5 消息传递 151

    5.5.1 同步 151

    5.5.2 寻址 152

    5.5.3 消息格式 153

    5.5.4 排队原则 154

    5.5.5 互斥 154

    5.6 读者/写者问题 155

    5.6.1 读者优先 156

    5.6.2 写者优先 156

    5.7 小结 158

    5.8 推荐读物和动画 159

    5.9 关键术语、复习题和习题 160

    5.9.1 关键术语 160

    5.9.2 复习题 160

    5.9.3 习题 160

    第6章 并发:死锁和饥饿 170

    6.1 死锁原理 170

    6.1.1 可重用资源 173

    6.1.2 可消耗资源 174

    6.1.3 资源分配图 174

    6.1.4 死锁的条件 175

    6.2 死锁预防 176

    6.2.1 互斥 176

    6.2.2 占有且等待 176

    6.2.3 不可抢占 176

    6.2.4 循环等待 177

    6.3 死锁避免 177

    6.3.1 进程启动拒绝 177

    6.3.2 资源分配拒绝 178

    6.4 死锁检测 181

    6.4.1 死锁检测算法 181

    6.4.2 恢复 182

    6.5 一种综合的死锁策略 182

    6.6 哲学家就餐问题 183

    6.6.1 基于信号量的解决方案 183

    6.6.2 基于管程的解决方案 184

    6.7 UNIX并发机制 185

    6.7.1 管道 186

    6.7.2 消息 186

    6.7.3 共享内存 186

    6.7.4 信号量 186

    6.7.5 信号 187

    6.8 Linux内核并发机制 187

    6.8.1 原子操作 188

    6.8.2 自旋锁 189

    6.8.3 信号量 190

    6.8.4 屏障 191

    6.9 Solaris线程同步原语 192

    6.9.1 互斥锁 193

    6.9.2 信号量 193

    6.9.3 多读者/单写者锁 193

    6.9.4 条件变量 193

    6.10 Windows 7的并发机制 194

    6.10.1 等待函数 194

    6.10.2 分派器对象 194

    6.10.3 临界区 195

    6.10.4 轻量级读写锁和条件变量 195

    6.10.5 锁无关同步机制 196

    6.11 Android进程间通信 196

    6.12 小结 197

    6.13 推荐读物和动画 197

    6.14 关键术语、复习题和习题 198

    6.14.1 关键术语 198

    6.14.2 复习题 198

    6.14.3 习题 198















    第三部分 内存



    第7章 内存管理 204

    7.1 内存管理的需求 204

    7.1.1 重定位 204

    7.1.2 保护 205

    7.1.3 共享 205

    7.1.4 逻辑组织 205

    7.1.5 物理组织 206

    7.2 内存分区 206

    7.2.1 固定分区 207

    7.2.2 动态分区 208

    7.2.3 伙伴系统 210

    7.2.4 重定位 212

    7.3 分页 212

    7.4 分段 215

    7.5 小结 216

    7.6 推荐读物和动画 216

    7.7 关键术语、复习题和习题 216

    7.7.1 关键术语 216

    7.7.2 复习题 217

    7.7.3 习题 217

    附录7A 加载和链接 219

    第8章 虚拟内存 223

    8.1 硬件和控制结构 223

    8.1.1 局部性和虚拟内存 224

    8.1.2 分页 225

    8.1.3 分段 232

    8.1.4 段页式 232

    8.1.5 保护和共享 233

    8.2 操作系统软件 234

    8.2.1 读取策略 235

    8.2.2 放置策略 235

    8.2.3 置换策略 235

    8.2.4 驻留集管理 239

    8.2.5 清除策略 243

    8.2.6 加载控制 244

    8.3 UNIX和Solaris内存管理 245

    8.3.1 分页系统 245

    8.3.2 内核内存分配器 247

    8.4 Linux内存管理 249

    8.4.1 虚拟内存 249

    8.4.2 内核内存分配 250

    8.5 Windows内存管理 251

    8.5.1 Windows虚拟地址映射 251

    8.5.2 Windows分页 251

    8.5.3 Windows 8交换 252

    8.6 Android内存管理 252

    8.7 小结 252

    8.8 推荐读物和动画 253

    8.9 关键术语、复习题和习题 253

    8.9.1 关键术语 253

    8.9.2 复习题 254

    8.9.3 习题 254



    第四部分 调度



    第9章 单处理器调度 258

    9.1 处理器调度的类型 258

    9.1.1 长程调度 259

    9.1.2 中程调度 260

    9.1.3 短程调度 260

    9.2 调度算法 260

    9.2.1 短程调度规则 260

    9.2.2 优先级的使用 261

    9.2.3 选择调度策略 262

    9.2.4 性能比较 268

    9.2.5 公平共享调度 272

    9.3 传统的UNIX调度 273

    9.4 小结 274

    9.5 推荐读物和动画 275

    9.6 关键术语、复习题和习题 275

    9.6.1 关键术语 275

    9.6.2 复习题 275

    9.6.3 习题 276

    第10章 多处理器和实时调度 279

    10.1 多处理器调度 279

    10.1.1 粒度 279

    10.1.2 设计问题 280

    10.1.3 进程调度 281

    10.1.4 线程调度 283

    10.1.5 多核线程调度 286

    10.2 实时调度 287

    10.2.1 背景 287

    10.2.2 实时操作系统的特点 288

    10.2.3 实时调度 290

    10.2.4 限期调度 291

    10.2.5 速率单调调度 294

    10.2.6 优先级反转 295

    10.3 Linux调度 297

    10.3.1 实时调度 297

    10.3.2 非实时调度 298

    10.4 UNIX SVR4调度 300

    10.5 FreeBSD调度程序 301

    10.5.1 优先级 301

    10.5.2 对称多处理器与多核支持 301

    10.6 Windows调度 303

    10.6.1 进程和线程优先级 303

    10.6.2 多处理器调度 304

    10.7 小结 305

    10.8 推荐读物 305

    10.9 关键术语、复习题和习题 305

    10.9.1 关键术语 305

    10.9.2 复习题 306

    10.9.3 习题 306



    第五部分 输入/输出和文件



    第11章 I/O管理和磁盘调度 310

    11.1 I/O设备 310

    11.2 I/O功能的组织 311

    11.2.1 I/O功能的发展 312

    11.2.2 直接存储器访问 312

    11.3 操作系统设计问题 314

    11.3.1 设计目标 314

    11.3.2 I/O功能的逻辑结构 314

    11.4 I/O缓冲 315

    11.4.1 单缓冲 316

    11.4.2 双缓冲 317

    11.4.3 循环缓冲 317

    11.4.4 缓冲的作用 317

    11.5 磁盘调度 317

    11.5.1 磁盘性能参数 317

    11.5.2 磁盘调度策略 319

    11.6 RAID 322

    11.6.1 RAID级别0 325

    11.6.2 RAID级别1 325

    11.6.3 RAID级别2 326

    11.6.4 RAID级别3 326

    11.6.5 RAID级别4 327

    11.6.6 RAID级别5 328

    11.6.7 RAID级别6 328

    11.7 磁盘高速缓存 328

    11.7.1 设计考虑因素 328

    11.7.2 性能考虑因素 329

    11.8 UNIX SVR 4 I/O 331

    11.8.1 缓冲区高速缓冲 331

    11.8.2 字符队列 332

    11.8.3 无缓冲I/O 332

    11.8.4 UNIX设备 332

    11.9 Linux I/O 333

    11.9.1 磁盘调度 333

    11.9.2 Linux页面缓存 334

    11.10 Windows I/O 335

    11.10.1 基本I/O机制 335

    11.10.2 异步I/O和同步I/O 335

    11.10.3 软件RAID 336

    11.10.4 卷影复制 336

    11.10.5 卷加密 336

    11.11 小结 336

    11.12 推荐读物和动画 337

    11.13 关键术语、复习题和习题 338

    11.13.1 关键术语 338

    11.13.2 复习题 338

    11.13.3 习题 338

    第12章 文件管理 340

    12.1 概述 340

    12.1.1 文件和文件系统 340

    12.1.2 文件结构 341

    12.1.3 文件管理系统 342

    12.2 文件组织和访问 344

    12.2.1 堆 345

    12.2.2 顺序文件 345

    12.2.3 索引顺序文件 345

    12.2.4 索引文件 346

    12.2.5 直接文件或散列文件 346

    12.3 B树 347

    12.4 文件目录 349

    12.4.1 内容 349

    12.4.2 结构 350

    12.4.3 命名 351

    12.5 文件共享 352

    12.5.1 访问权限 352

    12.5.2 同时访问 353

    12.6 记录组块 353

    12.7 辅存管理 354

    12.7.1 文件分配 354

    12.7.2 空闲空间管理 357

    12.7.3 卷 358

    12.7.4 可靠性 358

    12.8 UNIX文件管理 359

    12.8.1 索引节点 359

    12.8.2 文件分配 361

    12.8.3 目录 362

    12.8.4 卷结构 362

    12.9 Linux虚拟文件系统 362

    12.9.1 超级块对象 363

    12.9.2 索引节点对象 364

    12.9.3 目录项对象 364

    12.9.4 文件对象 364

    12.9.5 缓存 364

    12.10 Windows文件系统 365

    12.10.1 NTFS的重要特征 365

    12.10.2 NTFS卷和文件结构 366

    12.10.3 可恢复性 367

    12.11 Android文件系统 368

    12.11.1 文件系统 368

    12.11.2 SQLite 369

    12.12 小结 369

    12.13 推荐读物 370

    12.14 关键术语、复习题和习题 370

    12.14.1 关键术语 370

    12.14.2 复习题 370

    12.14.3 习题 371



    第六部分 嵌入式系统



    第13章 嵌入式操作系统 374

    13.1 嵌入式系统 374

    13.2 嵌入式操作系统的特点 375

    13.2.1 移植现有商业操作系统 375

    13.2.2 为特定目的构建的嵌入式

    操作系统 376

    13.3 嵌入式Linux 376

    13.3.1 内核大小 376

    13.3.2 编译 376

    13.3.3 嵌入式Linux文件系统 377

    13.3.4 嵌入式Linux的优点 377

    13.3.5 Android 377

    13.4 TinyOS 377

    13.4.1 无线传感器网络 378

    13.4.2 TinyOS的目标 378

    13.4.3 TinyOS的组件 379

    13.4.4 TinyOS的调度程序 381

    13.4.5 配置示例 381

    13.4.6 TinyOS的资源接口 383

    13.5 推荐读物 384

    13.6 关键术语、复习题和习题 384

    13.6.1 关键术语 384

    13.6.2 复习题 385

    13.6.3 习题 385

    第14章 虚拟机 387

    14.1 虚拟化方法 388

    14.2 处理器问题 390

    14.3 内存管理 391

    14.4 输入/输出管理 392

    14.5 VMware ESXi 393

    14.6 微软Hyper-V与Xen系列 395

    14.7 Java虚拟机 396

    14.8 Linux VServer虚拟机架构 396

    14.8.1 架构 396

    14.8.2 进程调度 397

    14.9 Android虚拟机 398

    14.9.1 dex文件系统 398

    14.9.2 Zygote 399

    14.10 小结 399

    14.11 推荐读物 399

    14.12 关键术语、复习题和习题 400

    14.12.1 关键术语 400

    14.12.2 复习题 400

    14.12.3 习题 400

    第15章 计算机安全技术 401

    15.1 入侵者与恶意软件 401

    15.1.1 系统访问威胁 401

    15.1.2 应对措施 402

    15.2 缓冲区溢出 404

    15.2.1 缓冲区溢出攻击 404

    15.2.2 编译时防御 406

    15.2.3 运行时防御 408

    15.3 访问控制 409

    15.3.1 文件系统访问控制 409

    15.3.2 访问控制策略 410

    15.4 UNIX访问控制 414

    15.4.1 传统UNIX文件访问控制 414

    15.4.2 UNIX中的访问控制列表 416

    15.5 操作系统加固 416

    15.5.1 操作系统安装:初始安装

    与后续更新 417

    15.5.2 删除不必要的服务、应用

    与协议 417

    15.5.3 对用户、组和认证过程

    进行配置 418

    15.5.4 对资源控制进行配置 418

    15.5.5 安装额外的安全控制工具 418

    15.5.6 对系统安全进行测试 419

    15.6 安全性维护 419

    15.6.1 记录日志 419

    15.6.2 数据备份和存档 419

    15.7 Windows安全性 420

    15.7.1 访问控制方案 420

    15.7.2 访问令牌 421

    15.7.3 安全描述符 421

    15.8 小结 423

    15.9 推荐读物 424

    15.10 关键术语、复习题和习题 424

    15.10.1 关键术语 424

    15.10.2 复习题 424

    15.10.3 习题 424

    第16章 分布式处理、客户-服务器

    和集群 426

    16.1 客户-服务器计算 426

    16.1.1 什么是客户-服务器计算 426

    16.1.2 客户-服务器应用 427

    16.1.3 中间件 431

    16.2 分布式消息传递 433

    16.2.1 可靠性与不可靠性 434

    16.2.2 阻塞与无阻塞 434

    16.3 远程过程调用 434

    16.3.1 参数传递 435

    16.3.2 参数表示 436

    16.3.3 客户-服务器绑定 436

    16.3.4 同步和异步 436

    16.3.5 面向对象机制 437

    16.4 集群 437

    16.4.1 集群的配置 437

    16.4.2 操作系统设计问题 439

    16.4.3 集群计算机架构 440

    16.4.4 集群与对称多处理器 441

    16.5 Windows集群服务器 441

    16.6 Beowulf和Linux集群 442

    16.6.1 Beowulf特性 442

    16.6.2 Beowulf软件 443

    16.7 小结 443

    16.8 推荐读物 444

    16.9 关键术语、复习题和习题 444

    16.9.1 关键术语 444

    16.9.2 复习题 445

    16.9.3 习题 445

    附录A 并发主题 446

    附录B 编程和操作系统项目 460

    参考文献 464
  • 内容简介:
    本书既是关于操作系统概念、结构和机制的教材,目的是尽可能清楚和全面地展示现代操作系统的本质和特点;也是讲解操作系统的经典教材,不仅系统地讲述了操作系统的基本概念、原理和方法,而且以当代*流行的操作系统Windows 8、UNIX、Android、Linux为例,展现了当代操作系统的本质和特点。全书共分背景知识、进程、内存、调度、输入/输出和文件、嵌入式系统六部分,内容包括计算机系统概述、操作系统概述、进程描述和控制、线程、并发性:互斥和同步、并发:死锁和饥饿、内存管理、虚拟内存、单处理器调度、多处理器和实时调度、I/O管理和磁盘调度、文件管理、嵌入式操作系统、虚拟机、计算机安全技术、分布式处理、客户/服务器和集群等。此外,本书配套网站提供了及时、生动的材料。
  • 作者简介:
      陈向群,北京大学信息科学技术学院计算机科学技术系教授,博士生导师,主要研究领域为软件需求工程、知识工程、基于知识的软件工程、面向服务的计算。  
       
      William Stallings:美国圣母大学电子工程学士,麻省理工学院计算机科学博士,《密码术》期刊编委。美国多家高科技公司执行总监,政府机构、计算机软/硬件供应商顾问;曾为各种计算机和操作系统设计并实现TCP/IP和OSI协议套件;创建并维护了计算机科学专业学生资源网站ComputerScienceStudent.com。出版图书17种,内容涉及计算机安全、计算机网络和计算机系统结构等;在《IEEE进展》《ACM计算评论》和《密码术》等期刊上发表文章多篇;先后12次获美国年度*佳计算机科学教科书奖和学术作者协会奖。
  • 目录:
    第0章 读者与教师指南 1

    0.1 本书概述 1

    0.2 实例系统 1

    0.3 读者和教师的路线图 2

    0.4 互联网和网站资源 3

    第一部分 背景知识

    第1章 计算机系统概述 6

    1.1 基本构成 6

    1.2 微处理器的发展 7

    1.3 指令的执行 8

    1.4 中断 10

    1.4.1 中断和指令周期 11

    1.4.2 中断处理 12

    1.4.3 多个中断 14

    1.5 存储器的层次结构 15

    1.6 高速缓存 17

    1.6.1 动机 18

    1.6.2 高速缓存原理 18

    1.6.3 高速缓存设计 19

    1.7 直接内存存取 20

    1.8 多处理器和多核计算机组织结构 21

    1.8.1 对称多处理器 21

    1.8.2 多核计算机 23

    1.9 推荐读物 23

    1.10 关键术语、复习题和习题 24

    1.10.1 关键术语 24

    1.10.2 复习题 24

    1.10.3 习题 24

    附录1A 两级存储器的性能特征 26

    第2章 操作系统概述 31

    2.1 操作系统的目标和功能 31

    2.1.1 作为用户/计算机接口的

    操作系统 31

    2.1.2 作为资源管理器的操作系统 32

    2.1.3 操作系统的易扩展性 33

    2.2 操作系统的发展史 34

    2.2.1 串行处理 34

    2.2.2 简单批处理系统 34

    2.2.3 多道批处理系统 36

    2.2.4 分时系统 38

    2.3 主要成就 40

    2.3.1 进程 40

    2.3.2 内存管理 42

    2.3.3 信息保护和安全 43

    2.3.4 调度和资源管理 44

    2.4 现代操作系统的特征 45

    2.5 容错性 47

    2.5.1 基本概念 47

    2.5.2 错误 48

    2.5.3 操作系统机制 48

    2.6 多处理器和多核操作系统

    设计考虑因素 49

    2.6.1 对称多处理器操作系统设计

    考虑因素 49

    2.6.2 多核操作系统设计考虑因素 49

    2.7 微软Windows系统简介 51

    2.7.1 背景 51

    2.7.2 体系结构 51

    2.7.3 客户-服务器模型 53

    2.7.4 线程和SMP 54

    2.7.5 Windows对象 54

    2.8 传统的UNIX系统 55

    2.8.1 历史 55

    2.8.2 描述 56

    2.9 现代UNIX系统 57

    2.9.1 System V Release 4(SVR4) 58

    2.9.2 BSD 58

    2.9.3 Solaris 10 58

    2.10 Linux操作系统 58

    2.10.1 历史 58

    2.10.2 模块结构 59

    2.10.3 内核组件 60

    2.11 Android 62

    2.11.1 Android软件体系结构 63

    2.11.2 Android系统体系结构 64

    2.11.3 活动 65

    2.11.4 电源管理 65

    2.12 推荐读物和动画 66

    2.13 关键术语、复习题和习题 67

    2.13.1 关键术语 67

    2.13.2 复习题 67

    2.13.3 习题 67



    第二部分 进程



    第3章 进程描述和控制 70

    3.1 什么是进程 70

    3.1.1 背景 70

    3.1.2 进程和进程控制块 71

    3.2 进程状态 72

    3.2.1 两状态进程模型 73

    3.2.2 进程的创建和终止 74

    3.2.3 五状态模型 75

    3.2.4 被挂起的进程 78

    3.3 进程描述 81

    3.3.1 操作系统的控制结构 82

    3.3.2 进程控制结构 82

    3.4 进程控制 86

    3.4.1 执行模式 86

    3.4.2 进程创建 87

    3.4.3 进程切换 88

    3.5 操作系统的执行 90

    3.5.1 无进程内核 90

    3.5.2 在用户进程内运行 90

    3.5.3 基于进程的操作系统 91

    3.6 UNIX SVR4进程管理 91

    3.6.1 进程状态 92

    3.6.2 进程描述 93

    3.6.3 进程控制 94

    3.7 小结 95

    3.8 推荐读物和动画 95

    3.9 关键术语、复习题和习题 95

    3.9.1 关键术语 95

    3.9.2 复习题 96

    3.9.3 习题 96

    第4章 线程 99

    4.1 进程和线程 99

    4.1.1 多线程 99

    4.1.2 线程的功能 102

    4.2 线程分类 103

    4.2.1 用户级和内核级线程 103

    4.2.2 其他方案 106

    4.3 多核和多线程 107

    4.3.1 多核系统上的软件性能 107

    4.3.2 应用示例:Valve游戏软件 109

    4.4 Windows 8的进程和线程管理 110

    4.4.1 Windows 8中的变化 111

    4.4.2 Windows进程 111

    4.4.3 进程对象和线程对象 112

    4.4.4 多线程 113

    4.4.5 线程状态 113

    4.4.6 对操作系统子系统的支持 114

    4.5 Solaris的线程和SMP管理 114

    4.5.1 多线程体系结构 114

    4.5.2 动机 115

    4.5.3 进程结构 115

    4.5.4 线程的执行 116

    4.5.5 把中断当作线程 117

    4.6 Linux的进程和线程管理 118

    4.6.1 Linux任务 118

    4.6.2 Linux线程 119

    4.6.3 Linux命名空间 120

    4.7 Android的进程和线程管理 121

    4.7.1 安卓应用 121

    4.7.2 活动 121

    4.7.3 进程和线程 122

    4.8 Mac OS X的GCD技术 123

    4.9 小结 124

    4.10 推荐读物 125

    4.11 关键术语、复习题和习题 125

    4.11.1 关键术语 125

    4.11.2 复习题 125

    4.11.3 习题 125

    第5章 并发性:互斥和同步 129

    5.1 并发的原理 130

    5.1.1 一个简单的例子 130

    5.1.2 竞争条件 132

    5.1.3 操作系统关注的问题 132

    5.1.4 进程的交互 133

    5.1.5 互斥的要求 135

    5.2 互斥:硬件的支持 136

    5.2.1 中断禁用 136

    5.2.2 专用机器指令 136

    5.3 信号量 138

    5.3.1 互斥 141

    5.3.2 生产者/消费者问题 142

    5.3.3 信号量的实现 146

    5.4 管程 147

    5.4.1 使用信号的管程 147

    5.4.2 使用通知和广播的管程 149

    5.5 消息传递 151

    5.5.1 同步 151

    5.5.2 寻址 152

    5.5.3 消息格式 153

    5.5.4 排队原则 154

    5.5.5 互斥 154

    5.6 读者/写者问题 155

    5.6.1 读者优先 156

    5.6.2 写者优先 156

    5.7 小结 158

    5.8 推荐读物和动画 159

    5.9 关键术语、复习题和习题 160

    5.9.1 关键术语 160

    5.9.2 复习题 160

    5.9.3 习题 160

    第6章 并发:死锁和饥饿 170

    6.1 死锁原理 170

    6.1.1 可重用资源 173

    6.1.2 可消耗资源 174

    6.1.3 资源分配图 174

    6.1.4 死锁的条件 175

    6.2 死锁预防 176

    6.2.1 互斥 176

    6.2.2 占有且等待 176

    6.2.3 不可抢占 176

    6.2.4 循环等待 177

    6.3 死锁避免 177

    6.3.1 进程启动拒绝 177

    6.3.2 资源分配拒绝 178

    6.4 死锁检测 181

    6.4.1 死锁检测算法 181

    6.4.2 恢复 182

    6.5 一种综合的死锁策略 182

    6.6 哲学家就餐问题 183

    6.6.1 基于信号量的解决方案 183

    6.6.2 基于管程的解决方案 184

    6.7 UNIX并发机制 185

    6.7.1 管道 186

    6.7.2 消息 186

    6.7.3 共享内存 186

    6.7.4 信号量 186

    6.7.5 信号 187

    6.8 Linux内核并发机制 187

    6.8.1 原子操作 188

    6.8.2 自旋锁 189

    6.8.3 信号量 190

    6.8.4 屏障 191

    6.9 Solaris线程同步原语 192

    6.9.1 互斥锁 193

    6.9.2 信号量 193

    6.9.3 多读者/单写者锁 193

    6.9.4 条件变量 193

    6.10 Windows 7的并发机制 194

    6.10.1 等待函数 194

    6.10.2 分派器对象 194

    6.10.3 临界区 195

    6.10.4 轻量级读写锁和条件变量 195

    6.10.5 锁无关同步机制 196

    6.11 Android进程间通信 196

    6.12 小结 197

    6.13 推荐读物和动画 197

    6.14 关键术语、复习题和习题 198

    6.14.1 关键术语 198

    6.14.2 复习题 198

    6.14.3 习题 198















    第三部分 内存



    第7章 内存管理 204

    7.1 内存管理的需求 204

    7.1.1 重定位 204

    7.1.2 保护 205

    7.1.3 共享 205

    7.1.4 逻辑组织 205

    7.1.5 物理组织 206

    7.2 内存分区 206

    7.2.1 固定分区 207

    7.2.2 动态分区 208

    7.2.3 伙伴系统 210

    7.2.4 重定位 212

    7.3 分页 212

    7.4 分段 215

    7.5 小结 216

    7.6 推荐读物和动画 216

    7.7 关键术语、复习题和习题 216

    7.7.1 关键术语 216

    7.7.2 复习题 217

    7.7.3 习题 217

    附录7A 加载和链接 219

    第8章 虚拟内存 223

    8.1 硬件和控制结构 223

    8.1.1 局部性和虚拟内存 224

    8.1.2 分页 225

    8.1.3 分段 232

    8.1.4 段页式 232

    8.1.5 保护和共享 233

    8.2 操作系统软件 234

    8.2.1 读取策略 235

    8.2.2 放置策略 235

    8.2.3 置换策略 235

    8.2.4 驻留集管理 239

    8.2.5 清除策略 243

    8.2.6 加载控制 244

    8.3 UNIX和Solaris内存管理 245

    8.3.1 分页系统 245

    8.3.2 内核内存分配器 247

    8.4 Linux内存管理 249

    8.4.1 虚拟内存 249

    8.4.2 内核内存分配 250

    8.5 Windows内存管理 251

    8.5.1 Windows虚拟地址映射 251

    8.5.2 Windows分页 251

    8.5.3 Windows 8交换 252

    8.6 Android内存管理 252

    8.7 小结 252

    8.8 推荐读物和动画 253

    8.9 关键术语、复习题和习题 253

    8.9.1 关键术语 253

    8.9.2 复习题 254

    8.9.3 习题 254



    第四部分 调度



    第9章 单处理器调度 258

    9.1 处理器调度的类型 258

    9.1.1 长程调度 259

    9.1.2 中程调度 260

    9.1.3 短程调度 260

    9.2 调度算法 260

    9.2.1 短程调度规则 260

    9.2.2 优先级的使用 261

    9.2.3 选择调度策略 262

    9.2.4 性能比较 268

    9.2.5 公平共享调度 272

    9.3 传统的UNIX调度 273

    9.4 小结 274

    9.5 推荐读物和动画 275

    9.6 关键术语、复习题和习题 275

    9.6.1 关键术语 275

    9.6.2 复习题 275

    9.6.3 习题 276

    第10章 多处理器和实时调度 279

    10.1 多处理器调度 279

    10.1.1 粒度 279

    10.1.2 设计问题 280

    10.1.3 进程调度 281

    10.1.4 线程调度 283

    10.1.5 多核线程调度 286

    10.2 实时调度 287

    10.2.1 背景 287

    10.2.2 实时操作系统的特点 288

    10.2.3 实时调度 290

    10.2.4 限期调度 291

    10.2.5 速率单调调度 294

    10.2.6 优先级反转 295

    10.3 Linux调度 297

    10.3.1 实时调度 297

    10.3.2 非实时调度 298

    10.4 UNIX SVR4调度 300

    10.5 FreeBSD调度程序 301

    10.5.1 优先级 301

    10.5.2 对称多处理器与多核支持 301

    10.6 Windows调度 303

    10.6.1 进程和线程优先级 303

    10.6.2 多处理器调度 304

    10.7 小结 305

    10.8 推荐读物 305

    10.9 关键术语、复习题和习题 305

    10.9.1 关键术语 305

    10.9.2 复习题 306

    10.9.3 习题 306



    第五部分 输入/输出和文件



    第11章 I/O管理和磁盘调度 310

    11.1 I/O设备 310

    11.2 I/O功能的组织 311

    11.2.1 I/O功能的发展 312

    11.2.2 直接存储器访问 312

    11.3 操作系统设计问题 314

    11.3.1 设计目标 314

    11.3.2 I/O功能的逻辑结构 314

    11.4 I/O缓冲 315

    11.4.1 单缓冲 316

    11.4.2 双缓冲 317

    11.4.3 循环缓冲 317

    11.4.4 缓冲的作用 317

    11.5 磁盘调度 317

    11.5.1 磁盘性能参数 317

    11.5.2 磁盘调度策略 319

    11.6 RAID 322

    11.6.1 RAID级别0 325

    11.6.2 RAID级别1 325

    11.6.3 RAID级别2 326

    11.6.4 RAID级别3 326

    11.6.5 RAID级别4 327

    11.6.6 RAID级别5 328

    11.6.7 RAID级别6 328

    11.7 磁盘高速缓存 328

    11.7.1 设计考虑因素 328

    11.7.2 性能考虑因素 329

    11.8 UNIX SVR 4 I/O 331

    11.8.1 缓冲区高速缓冲 331

    11.8.2 字符队列 332

    11.8.3 无缓冲I/O 332

    11.8.4 UNIX设备 332

    11.9 Linux I/O 333

    11.9.1 磁盘调度 333

    11.9.2 Linux页面缓存 334

    11.10 Windows I/O 335

    11.10.1 基本I/O机制 335

    11.10.2 异步I/O和同步I/O 335

    11.10.3 软件RAID 336

    11.10.4 卷影复制 336

    11.10.5 卷加密 336

    11.11 小结 336

    11.12 推荐读物和动画 337

    11.13 关键术语、复习题和习题 338

    11.13.1 关键术语 338

    11.13.2 复习题 338

    11.13.3 习题 338

    第12章 文件管理 340

    12.1 概述 340

    12.1.1 文件和文件系统 340

    12.1.2 文件结构 341

    12.1.3 文件管理系统 342

    12.2 文件组织和访问 344

    12.2.1 堆 345

    12.2.2 顺序文件 345

    12.2.3 索引顺序文件 345

    12.2.4 索引文件 346

    12.2.5 直接文件或散列文件 346

    12.3 B树 347

    12.4 文件目录 349

    12.4.1 内容 349

    12.4.2 结构 350

    12.4.3 命名 351

    12.5 文件共享 352

    12.5.1 访问权限 352

    12.5.2 同时访问 353

    12.6 记录组块 353

    12.7 辅存管理 354

    12.7.1 文件分配 354

    12.7.2 空闲空间管理 357

    12.7.3 卷 358

    12.7.4 可靠性 358

    12.8 UNIX文件管理 359

    12.8.1 索引节点 359

    12.8.2 文件分配 361

    12.8.3 目录 362

    12.8.4 卷结构 362

    12.9 Linux虚拟文件系统 362

    12.9.1 超级块对象 363

    12.9.2 索引节点对象 364

    12.9.3 目录项对象 364

    12.9.4 文件对象 364

    12.9.5 缓存 364

    12.10 Windows文件系统 365

    12.10.1 NTFS的重要特征 365

    12.10.2 NTFS卷和文件结构 366

    12.10.3 可恢复性 367

    12.11 Android文件系统 368

    12.11.1 文件系统 368

    12.11.2 SQLite 369

    12.12 小结 369

    12.13 推荐读物 370

    12.14 关键术语、复习题和习题 370

    12.14.1 关键术语 370

    12.14.2 复习题 370

    12.14.3 习题 371



    第六部分 嵌入式系统



    第13章 嵌入式操作系统 374

    13.1 嵌入式系统 374

    13.2 嵌入式操作系统的特点 375

    13.2.1 移植现有商业操作系统 375

    13.2.2 为特定目的构建的嵌入式

    操作系统 376

    13.3 嵌入式Linux 376

    13.3.1 内核大小 376

    13.3.2 编译 376

    13.3.3 嵌入式Linux文件系统 377

    13.3.4 嵌入式Linux的优点 377

    13.3.5 Android 377

    13.4 TinyOS 377

    13.4.1 无线传感器网络 378

    13.4.2 TinyOS的目标 378

    13.4.3 TinyOS的组件 379

    13.4.4 TinyOS的调度程序 381

    13.4.5 配置示例 381

    13.4.6 TinyOS的资源接口 383

    13.5 推荐读物 384

    13.6 关键术语、复习题和习题 384

    13.6.1 关键术语 384

    13.6.2 复习题 385

    13.6.3 习题 385

    第14章 虚拟机 387

    14.1 虚拟化方法 388

    14.2 处理器问题 390

    14.3 内存管理 391

    14.4 输入/输出管理 392

    14.5 VMware ESXi 393

    14.6 微软Hyper-V与Xen系列 395

    14.7 Java虚拟机 396

    14.8 Linux VServer虚拟机架构 396

    14.8.1 架构 396

    14.8.2 进程调度 397

    14.9 Android虚拟机 398

    14.9.1 dex文件系统 398

    14.9.2 Zygote 399

    14.10 小结 399

    14.11 推荐读物 399

    14.12 关键术语、复习题和习题 400

    14.12.1 关键术语 400

    14.12.2 复习题 400

    14.12.3 习题 400

    第15章 计算机安全技术 401

    15.1 入侵者与恶意软件 401

    15.1.1 系统访问威胁 401

    15.1.2 应对措施 402

    15.2 缓冲区溢出 404

    15.2.1 缓冲区溢出攻击 404

    15.2.2 编译时防御 406

    15.2.3 运行时防御 408

    15.3 访问控制 409

    15.3.1 文件系统访问控制 409

    15.3.2 访问控制策略 410

    15.4 UNIX访问控制 414

    15.4.1 传统UNIX文件访问控制 414

    15.4.2 UNIX中的访问控制列表 416

    15.5 操作系统加固 416

    15.5.1 操作系统安装:初始安装

    与后续更新 417

    15.5.2 删除不必要的服务、应用

    与协议 417

    15.5.3 对用户、组和认证过程

    进行配置 418

    15.5.4 对资源控制进行配置 418

    15.5.5 安装额外的安全控制工具 418

    15.5.6 对系统安全进行测试 419

    15.6 安全性维护 419

    15.6.1 记录日志 419

    15.6.2 数据备份和存档 419

    15.7 Windows安全性 420

    15.7.1 访问控制方案 420

    15.7.2 访问令牌 421

    15.7.3 安全描述符 421

    15.8 小结 423

    15.9 推荐读物 424

    15.10 关键术语、复习题和习题 424

    15.10.1 关键术语 424

    15.10.2 复习题 424

    15.10.3 习题 424

    第16章 分布式处理、客户-服务器

    和集群 426

    16.1 客户-服务器计算 426

    16.1.1 什么是客户-服务器计算 426

    16.1.2 客户-服务器应用 427

    16.1.3 中间件 431

    16.2 分布式消息传递 433

    16.2.1 可靠性与不可靠性 434

    16.2.2 阻塞与无阻塞 434

    16.3 远程过程调用 434

    16.3.1 参数传递 435

    16.3.2 参数表示 436

    16.3.3 客户-服务器绑定 436

    16.3.4 同步和异步 436

    16.3.5 面向对象机制 437

    16.4 集群 437

    16.4.1 集群的配置 437

    16.4.2 操作系统设计问题 439

    16.4.3 集群计算机架构 440

    16.4.4 集群与对称多处理器 441

    16.5 Windows集群服务器 441

    16.6 Beowulf和Linux集群 442

    16.6.1 Beowulf特性 442

    16.6.2 Beowulf软件 443

    16.7 小结 443

    16.8 推荐读物 444

    16.9 关键术语、复习题和习题 444

    16.9.1 关键术语 444

    16.9.2 复习题 445

    16.9.3 习题 445

    附录A 并发主题 446

    附录B 编程和操作系统项目 460

    参考文献 464
查看详情
系列丛书 / 更多
操作系统――精髓与设计原理(第八版)
计算机图形学(第4版)
Donald Hearn(D·赫恩)、M.Pauline(M.P.巴克)、Warren、R.Carithers(W.R.卡里瑟斯) 著;蔡士杰、杨若瑜 译
操作系统――精髓与设计原理(第八版)
模式识别(第四版)
[希腊]Sergios、Theodoridis(西格尔斯.西奥多里蒂斯)、Konstantinos、Koutroumbas(康斯坦提诺斯.库特龙巴斯) 著;李晶皎 译
操作系统――精髓与设计原理(第八版)
用户界面设计――有效的人机交互策略(第六版)
[美]本·施耐德曼(Ben Shneiderman)、凯瑟琳·普拉圣特(Catherine Plaisant)、马克辛·科恩(Maxine Cohen) 著;郎大鹏 译
操作系统――精髓与设计原理(第八版)
自动控制原理与设计(第六版)
[美]Gene F.(吉尼 F. 富兰克林)、J.David、Abbas Emami-Naeini 著;李中华 译
操作系统――精髓与设计原理(第八版)
密码编码学与网络安全――原理与实践(第七版)
William、Stallings威廉·斯托林斯(美) 著;王后珍 译
操作系统――精髓与设计原理(第八版)
现代控制系统(第十三版)(英文版)
Dorf(理查德·C. 多尔夫) 著;[美]Richard、C.、Richard、C.、Dorf(理查德·C. 多尔夫) 译
操作系统――精髓与设计原理(第八版)
国外计算机科学教材系列:Java程序设计教程(第七版)(英文版)
[美]John、[美]William Loftus 著;John Lewis 译
操作系统――精髓与设计原理(第八版)
算法设计技巧与分析
M. H. Alsuwaiyel(M·H·阿苏外耶) 著;吴伟昶 译
操作系统――精髓与设计原理(第八版)
离散数学(第七版)/国外计算机科学教材系列
[美]R.约翰逊鲍夫(Richard Johnsonbaugh) 著;黄林鹏、陈俊清、王德俊 译
操作系统――精髓与设计原理(第八版)
C语言大学教程(第七版)(英文版)
Deitel(哈维· 戴特尔) 著;[美]Paul、Deitel(保罗· 戴特尔)、Harvey、Paul、Deitel(保罗· 戴特尔) 译
操作系统――精髓与设计原理(第八版)
计算机网络与因特网(第六版)(英文版)
[美]Douglas E.Comer(道格拉斯·E.科默) 著
操作系统――精髓与设计原理(第八版)
密码学原理与实践(第三版)
[加拿大]Douglas R. Stinson 道格拉斯 R. 斯廷森 著;冯登国 译
相关图书 / 更多
操作系统――精髓与设计原理(第八版)
操作系统原理及应用(第2版)(微课版)()
陈敏;许雪林;汤龙梅
操作系统――精髓与设计原理(第八版)
操作系统实验教程——Web服务器性能优化
鲁强
操作系统――精髓与设计原理(第八版)
操作系统原理
方钰;邓蓉;陈闳中
操作系统――精髓与设计原理(第八版)
操作系统实验教程(Windows+Linux)
袁宝华;李宁;顾玉宛;庄丽华;梁久祯
操作系统――精髓与设计原理(第八版)
操作系统原理及Linux内核分析(第3版)
李芳;刘晓春;李东海
操作系统――精髓与设计原理(第八版)
操作系统
罗宇
操作系统――精髓与设计原理(第八版)
操作系统原理 第2版
金海溶 周苏 主编
操作系统――精髓与设计原理(第八版)
操作系统概念(原书第10版)
[美]亚伯拉罕 西尔伯沙茨(美)彼得 贝尔 高尔文(美)格雷格 加涅
操作系统――精髓与设计原理(第八版)
操作系统原理(第2版)
黑新宏
操作系统――精髓与设计原理(第八版)
操作系统原理
作者
操作系统――精髓与设计原理(第八版)
操作系统
常颖、常大俊、李依霖 编
操作系统――精髓与设计原理(第八版)
操作系统:原理与实现
陈海波
您可能感兴趣 / 更多
操作系统――精髓与设计原理(第八版)
电力市场化交易
陈向群;罗朝春
操作系统――精髓与设计原理(第八版)
电力交易工作问答
陈向群;罗朝春
操作系统――精髓与设计原理(第八版)
自考教材 02326 操作系统(2017年版)
陈向群;孙卫真
操作系统――精髓与设计原理(第八版)
电力营销有问必答丛书:电力用户用电信息采集系统
陈向群 编
操作系统――精髓与设计原理(第八版)
全新正版自考教材023352335网络操作系统2010年版陈向群机械工业出版社
陈向群 著
操作系统――精髓与设计原理(第八版)
Solaris操作系统原理
陈向群 著
操作系统――精髓与设计原理(第八版)
装表电工应读(第二版)
陈向群 编;闵德山
操作系统――精髓与设计原理(第八版)
Windows操作系统原理
陈向群 著
操作系统――精髓与设计原理(第八版)
电能计量技能考核培训教材(2014年版)
陈向群 编
操作系统――精髓与设计原理(第八版)
Windows CE.NET系统分析及实验教程
陈向群 编著
操作系统――精髓与设计原理(第八版)
北京市高等教育自学考试计算机及应用专业指定教材:操作系统
陈向群 著
操作系统――精髓与设计原理(第八版)
Windows内核实验教程
陈向群、马洪兵 编