《操作系统的原理与应用》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:孔宪君,王亚东编著
  • 出 版 社:北京:高等教育出版社
  • 出版年份:2008
  • ISBN:7040225484
  • 页数:469 页
图书介绍:本书根据应用型计算机人才的发展要求编写,讲述了操作系统的概念、原理、结构、机制和实现方法,加强了操作系统的重要功能——网络功能的描述,同时结合当前流行的NT内核Windows操作系统和Linux操作系统进行操作系统综合项目实训;本书以“原理—应用—实训”为主线,分为“操作系统原理”、“操作系统案例”、“操作系统应用实训”三篇。本书应用性强,并使用了大量的图和表来阐明容易混淆的概念;此外,书中所有代码实例均用C语言描述,每一章还包括进一步学习的难点和重点分析,每章之后均配有习题和实训项目。本书可作为应用型高等院校本科计算机专业及相关专业操作系统课程教材,也可作为科技人员的自学用书或培训教材。

第1篇 操作系统原理 3

第1章 操作系统概论 3

1.1 操作系统的概念 3

1.1.1 操作系统和网络操作系统 4

1.1.2 操作系统的目标 4

1.1.3 操作系统的地位和作用 5

1.1.4 操作系统的层次模型 7

1.2 操作系统的分类与形成 8

1.2.1 操作系统的分类 8

1.2.2 操作系统的产生 8

1.2.3 操作系统的形成 10

1.3 操作系统的发展 15

1.3.1 微机操作系统 15

1.3.2 多机操作系统 16

1.3.3 网络操作系统 16

1.3.4 分布式操作系统 17

1.3.5 嵌入式操作系统 18

1.4 操作系统发展历史简述 19

1.4.1 操作系统的历史 19

1.4.2 操作系统展望 24

1.5 操作系统的功能和特征 25

1.5.1 操作系统的功能 25

1.5.2 操作系统的特征 29

1.5.3 研究操作系统的几种观点 30

1.6 操作系统的命令接口 31

1.6.1 用户接口类型 31

1.6.2 命令接口的功能 32

1.6.3 MS-DOS命令行接口 33

1.6.4 Windows XP命令行接口 34

1.6.5 图形用户接口 34

1.7 操作系统的程序接口 35

1.7.1 程序的状态 36

1.7.2 系统调用 36

1.7.3 系统调用的功能 37

1.7.4 系统调用的实现 38

重点和难点分析 39

复习思考题 40

第2章 进程管理 43

2.1 进程 43

2.1.1 前趋图 43

2.1.2 程序的顺序执行 43

2.1.3 程序的并发执行 44

2.1.4 进程 46

2.2 进程控制块与进程的状态 47

2.2.1 进程控制块 47

2.2.2 进程的基本状态 48

2.2.3 进程的状态变迁 49

2.2.4 具有挂起状态的进程 50

2.2.5 进程之间的上下文切换 52

2.3 进程控制 52

2.3.1 进程家族 52

2.3.2 进程队列 53

2.3.3 进程控制原语 54

2.4 进程的同步机构 58

2.4.1 进程与资源 58

2.4.2 进程同步机构简介 59

2.5 经典同步问题与管程机制 62

2.5.1 进程互斥 62

2.5.2 生产者与消费者问题 63

2.5.3 哲学家进餐问题 64

2.5.4 读者与写者问题 66

2.5.5 理发店问题 67

2.5.6 管程机制 68

2.6 进程通信 72

2.6.1 进程通信概述 72

2.6.2 共享存储器通信方式 72

2.6.3 管道通信方式 73

2.6.4 消息传递通信方式 73

2.7 网络通信 80

2.7.1 端口 80

2.7.2 套接字 80

2.7.3 利用套接字网络通信 81

重点和难点分析 83

复习思考题 85

第3章 线程机制 88

3.1 任务 88

3.1.1 任务的概念 88

3.1.2 多任务处理和多重处理 88

3.1.3 多任务机制与单任务机制的比较 89

3.1.4 会话 89

3.2 线程的概念 90

3.2.1 引入线程的原因 90

3.2.2 线程的定义 90

3.2.3 进程与线程的关系 91

3.2.4 线程的优点 92

3.2.5 线程的状态 93

3.3 线程类型 93

3.3.1 用户线程 93

3.3.2 内核线程 94

3.3.3 用户线程的优点 94

3.3.4 内核线程和用户线程的比较 95

3.4 多线程模型 95

3.4.1 进程模型和多线程模型 95

3.4.2 进程模型和多线程模型的比较 96

3.4.3 用户线程的多对一模型 97

3.4.4 内核线程的一对一模型 98

3.4.5 组合多对多模型 98

3.4.6 现代操作系统的特征 99

3.5 多线程程序设计 100

3.5.1 多线程技术的优点 100

3.5.2 线程池机制 101

3.5.3 pthread线程 101

3.5.4 Java线程 106

重点和难点分析 107

复习思考题 108

第4章 CPU调度与死锁 111

4.1 CPU调度概述 111

4.1.1 CPU调度的类型 111

4.1.2 宏观调度和中程调度 111

4.1.3 微观调度 112

4.2 调度算法 114

4.2.1 调度算法的评价 114

4.2.2 调度算法简介 116

4.3 死锁 120

4.3.1 死锁的概念 120

4.3.2 资源分配图 122

4.3.3 产生死锁的原因 122

4.3.4 死锁产生的必要条件 123

4.4 预防死锁 123

4.4.1 摒弃请求和保持条件 124

4.4.2 摒弃不剥夺条件 124

4.4.3 摒弃循环等待条件 124

4.4.4 摒弃互斥条件 125

4.5 避免死锁 125

4.5.1 系统的安全状态和不安全状态 125

4.5.2 安全状态的例子 126

4.5.3 利用银行家算法避免死锁 126

4.6 检测死锁并解除死锁 129

4.6.1 鸵鸟算法 129

4.6.2 检测死锁 130

4.6.3 解除死锁 131

4.6.4 处理死锁的综合措施 131

重点和难点分析 132

复习思考题 133

第5章 存储管理 136

5.1 存储管理概述 136

5.1.1 存储器的层次 136

5.1.2 存储管理的功能 137

5.1.3 存储空间与地址空间 138

5.1.4 进程的装入方式 139

5.1.5 重定位 139

5.2 分区式存储管理 141

5.2.1 单一连续分配 141

5.2.2 固定分区 142

5.2.3 动态分区 142

5.2.4 伙伴系统 146

5.2.5 整理内存碎片 149

5.2.6 覆盖技术 149

5.2.7 交换技术 150

5.3 分页存储管理方式 151

5.3.1 页与页帧 151

5.3.2 分页存储管理的实现 152

5.3.3 分页存储管理的地址变换机构 153

5.3.4 页表结构 155

5.3.5 页的保护和共享的问题 157

5.4 分段存储管理方式 158

5.4.1 分段存储管理方式的引入 158

5.4.2 分段存储管理的基本原理 158

5.4.3 分段存储管理地址变换机构 159

5.4.4 段的共享 160

5.4.5 分段系统与分页系统的区别 160

5.4.6 段页式存储管理 161

5.5 虚拟存储器 163

5.5.1 局部性原理 164

5.5.2 虚拟存储器的基本原理 164

5.5.3 虚拟存储器的分类 165

5.5.4 虚拟存储器的容量 166

5.5.5 虚拟存储器的特征 166

5.5.6 交换区策略、换入策略和置换策略 166

5.6 请求分页存储管理 167

5.6.1 请求分页存储管理的实现原理 167

5.6.2 请求分页存储管理的实现机制 168

5.6.3 页面置换算法 170

5.6.4 工作集模型 174

重点和难点分析 175

复习思考题 176

第6章 I/O设备管理 181

6.1 I/O设备管理概述 181

6.1.1 计算机的I/O设备 181

6.1.2 计算机I/O系统结构 182

6.1.3 I/O设备的分类 184

6.1.4 I/O设备管理的基本功能 185

6.2 I/O控制技术 186

6.2.1 程序I/O 186

6.2.2 中断技术 186

6.2.3 DMA技术 188

6.2.4 通道技术 189

6.2.5 总线技术 191

6.2.6 USB技术 194

6.2.7 即插即用技术 195

6.3 缓冲管理 197

6.3.1 引入缓冲管理的原因 197

6.3.2 缓冲区的类型 197

6.3.3 缓冲区的使用 201

6.4 I/O设备的分配 202

6.4.1 I/O设备分配中的数据结构 202

6.4.2 I/O设备的分配 203

6.4.3 I/O设备分配的安全性 205

6.4.4 I/O设备分配策略 205

6.5 虚拟设备 205

6.5.1 虚拟光驱 206

6.5.2 SPOOLing技术 206

6.5.3 SPOOLing的组成 207

6.5.4 虚拟打印机 208

6.5.5 网络的SPOOLing值班进程 208

6.6 I/O应用接口与I/O软件 208

6.6.1 I/O子系统的分层构造 209

6.6.2 设备驱动程序 210

6.6.3 I/O软件的设计目标 211

6.6.4 与I/O设备无关的软件 212

6.6.5 用户空间的I/O软件 213

6.6.6 中断处理程序 213

6.6.7 I/O设备的系统调用 214

6.7 磁盘I/O 215

6.7.1 磁盘的性能指标 215

6.7.2 磁盘调度 216

6.7.3 磁盘高速缓存 219

6.7.4 磁盘格式化 219

6.7.5 磁盘容错技术 220

重点和难点分析 222

复习思考题 223

第7章 文件系统 227

7.1 文件 227

7.1.1 文件的定义 227

7.1.2 文件的分类 228

7.1.3 文件命名 229

7.1.4 文件属性 229

7.1.5 文件控制块 230

7.1.6 索引结点 231

7.1.7 文件的操作 231

7.2 文件系统的结构 233

7.2.1 文件系统的定义 233

7.2.2 文件系统的功能 234

7.2.3 文件系统的层次模型 234

7.2.4 虚拟文件系统 235

7.2.5 常用文件系统 236

7.3 文件的结构 236

7.3.1 文件的逻辑结构 237

7.3.2 文件的物理结构 237

7.3.3 文件的存取方法 242

7.4 目录管理 243

7.4.1 目录管理的功能 243

7.4.2 文件目录结构 244

7.4.3 目录操作 247

7.4.4 目录检索 248

7.5 外存空间管理 249

7.5.1 磁盘存储器 249

7.5.2 空闲区表 250

7.5.3 空闲块链表 250

7.5.4 位示图 251

7.5.5 成组链接法 251

7.6 文件共享和文件安全 253

7.6.1 文件共享 253

7.6.2 文件系统的可靠性 255

7.6.3 事务和检查点 256

7.6.4 文件系统的一致性 257

7.6.5 文件系统的安全性 259

7.6.6 文件系统的可恢复性 261

重点和难点分析 262

复习思考题 263

第2篇 操作系统案例 269

第8章 基于NT内核的Windows操作系统 269

8.1 基于NT内核的Windows操作系统概述 269

8.1.1 基于NT内核的Windows操作系统的特点 269

8.1.2 基于NT内核的Windows操作系统性能简介 270

8.1.3 常用的基于NT内核的服务器操作系统简介 271

8.2 基于NT内核的Windows操作系统的体系结构 272

8.2.1 基于NT内核的Windows操作系统的体系结构概述 272

8.2.2 核心态组件功能简介 275

8.3 NT对象、NT进程和NT线程 277

8.3.1 NT对象与句柄 277

8.3.2 NT进程 279

8.3.3 NT线程 280

8.4 基于NT内核的Windows操作系统的处理机调度 281

8.4.1 基于NT内核的Windows操作系统的处理机调度特点 281

8.4.2 NT线程状态 281

8.4.3 NT线程调度 283

8.4.4 NT线程调度算法 284

8.5 基于NT内核的Windows操作系统的虚拟存储管理 285

8.5.1 内存管理器 285

8.5.2 虚存空间的布局 286

8.5.3 进程页表与地址变换机构 288

8.5.4 虚存管理 290

8.6 基于NT内核的Windows操作系统的文件系统 291

8.6.1 NTFS概述 292

8.6.2 NTFS的卷和簇 293

8.6.3 NTFS的数据结构 294

8.6.4 NTFS日志文件 295

8.6.5 数据安全管理 296

8.7 网络功能 297

8.7.1 网络协议 297

8.7.2 活动目录 298

8.7.3 TCP/IP网络的名称解析 300

8.8 注册表 300

8.8.1 注册表的作用 301

8.8.2 注册表的概念 301

8.8.3 注册表的结构 303

重点和难点分析 305

复习思考题 306

第9章 Linux操作系统概述 309

9.1 Linux概述 309

9.1.1 GNU、FSF、开放源码 309

9.1.2 Linux的产业格局 310

9.2 Linux的体系结构 310

9.2.1 Linux的特点 310

9.2.2 Linux的体系结构 311

9.2.3 Linux内核的组成 313

9.3 Linux的进程管理 314

9.3.1 Linux的进程 314

9.3.2 Linux的进程运行状态 314

9.3.3 Linux的进程控制块 315

9.3.4 Linux的进程调度 317

9.3.5 Linux的进程控制 318

9.3.6 Linux的进程通信 319

9.3.7 Linux的进程与线程 321

9.3.8 对称多处理技术 322

9.4 Linux的存储管理 322

9.4.1 物理内存管理 322

9.4.2 虚拟内存 323

9.4.3 Linux三级页表的地址变换过程 325

9.4.4 Linux内存的分配与回收 326

9.5 Linux的设备管理 327

9.5.1 Linux设备管理概述 327

9.5.2 块设备管理 328

9.5.3 字符设备管理 329

9.5.4 网络设备管理 329

9.6 Linux的文件系统 330

9.6.1 虚拟文件系统 330

9.6.2 Linux EXT2文件系统 331

9.6.3 Linux文件系统的实现 332

重点和难点分析 334

复习思考题 334

第3篇 操作系统应用实训 339

第10章 Windows 2003应用实训 339

10.1 DHCP服务器的安装与配置 339

10.1.1 DHCP概述 339

10.1.2 安装DHCP服务 339

10.1.3 配置作用域及作用域选项 342

10.2 WINS服务器的安装与配置 348

10.2.1 WINS概述 348

10.2.2 安装WINS服务 349

10.2.3 配置WINS服务器 351

10.2.4 WINS服务器数据库的备份及还原 355

10.2.5 WINS服务器的推/拉操作 355

10.2.6 WINS客户端的配置及测试 356

10.3 DNS服务器的安装与配置 357

10.3.1 DNS概述 357

10.3.2 安装DNS服务器 357

10.3.3 配置DNS服务器 360

10.3.4 DNS客户端的配置及测试 370

10.4 Web服务器的安装与配置 371

10.4.1 IIS概述 371

10.4.2 IIS的安装 371

10.4.3 IIS服务器的配置 372

10.5 FTP服务器的安装与配置 380

10.5.1 FTP概述 380

10.5.2 安装FTP服务 381

10.5.3 FTP服务器的设置 385

10.6 Windows 2003下常用命令简介 395

10.6.1 网络服务管理命令 395

10.6.2 进程和服务管理命令 404

10.6.3 磁盘和数据管理命令 411

重点和难点分析 417

第11章 Linux操作系统应用实训 418

11.1 Linux的安装与配置 418

11.1.1 安装前的准备工作 418

11.1.2 安装与配置Red Hat Linux 9.0 418

11.2 Linux的简单使用 421

11.2.1 Red Hat Linux 9.0的登录和退出 421

11.2.2 X Window的图形窗口界面 423

11.2.3 Linux的常用术语 423

11.2.4 系统管理 424

11.3 shell命令 429

11.3.1 目录与文件的基本操作 430

11.3.2 文件权限 432

11.3.3 文件链接 433

11.3.4 查询文件 434

11.3.5 文件排序 435

11.3.6 文件的压缩和解压缩操作 435

11.3.7 rpm介绍 436

11.3.8 进程控制命令 438

11.4 Red Hat Linux 9.0桌面系统的使用 440

11.4.1 KDE和Gnome 440

11.4.2 KDE桌面环境 440

11.4.3 KDE控制中心 441

11.4.4 文件和目录的管理 441

11.4.5 X Window的配置 441

11.4.6 Web浏览器 442

11.4.7 电子邮件 442

11.4.8 桌面系统的网络设置 443

11.4.9 用户账号管理 445

11.4.10 添加和删除应用程序 447

11.4.11 打印机的配置 447

11.5 Linux网络服务器的配置 449

11.5.1 ftp、telnet服务的启动与测试 449

11.5.2 http服务的启动与测试 452

11.5.3 dns服务的启动与测试 454

11.6 常用命令简介 457

11.6.1 网络服务管理命令 457

11.6.2 常用的网络诊断命令 459

重点和难点分析 462

附录 Windows XP的命令行接口 463

参考文献 469