《操作系统》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:凤羽翚主编;伍俊明编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2004
  • ISBN:7505396587
  • 页数:314 页
图书介绍:本书主要内容包括:操作系统概论,作业管理,进程管理,处理机调度,存储管理,设备管理,文件管理,网络管理,分布式处理、客户机/服务器和集群等,并有10个上机实验。本书保留了操作系统中经典的理论并力求知识的完整性和连续性,同时增加了现代操作系统中必要的部分,如多处理机、分布式系统、网络和安全等。本书既强调理论性又注重实践,以流行的Linux操作系统为实例,在教材中相应部分通过对Linux操作系统的剖析和应用来验证理论。附录中提供了上机实验的内容和步骤,便于操作。本书内容具体、实用。本书可作为高职高专院校计算机专业及其他院校相关专业的教材,也可供Linux爱好者参考。

目录 1

第1章 操作系统概论 1

1.1 操作系统的形成与发展 1

1.1.1 手工操作(操作系统的史前时代) 1

1.1.2 监控程序(操作系统的萌芽) 1

1.1.3 多道批处理操作系统(现代意义上的操作系统) 2

1.1.4 分时操作系统 4

1.1.5 实时操作系统 4

1.1.6 个人操作系统(贴近大众的操作系统) 4

1.1.7 网络操作系统 5

1.1.8 分布式操作系统 6

1.1.9 嵌入式操作系统 6

1.2 操作系统的基本概念 7

1.2.1 定义 7

1.2.2 操作系统在计算机系统中的地位 7

1.2.3 操作系统的功能 8

1.2.4 现代操作系统的发展 9

1.3 操作系统的特性 11

1.3.1 操作系统的主要性能指标 11

1.3.2 操作系统的特性 11

1.4 几种流行的操作系统 12

1.4.1 UNIX 12

1.4.2 Linux 16

1.4.3 DOS和Windows 21

1.5 关键术语 22

1.6 本章附件:GNU通用公共许可证GPL(the GNU General Public License) 22

习题1 22

第2章 作业管理 23

2.1 基本概念 23

2.1.1 作业、作业步和作业流 23

2.1.2 作业类别 24

2.1.3 作业管理功能 24

2.1.4 作业的状态及其转换 25

2.2.1 操作系统接口 26

2.2 用户与操作系统的接口 26

2.2.2 程序接口(系统调用) 27

2.2.3 Linux操作系统中的系统调用 28

2.3 批量型作业的管理与调度 29

2.3.1 批量型作业的组织结构 29

2.3.2 作业控制语言 30

2.3.3 作业的输入与输出 31

2.3.4 作业调度 32

2.4.1 交互型作业的特点 36

2.4 交互型作业的管理 36

2.4.2 Linux系统中的联机命令 37

2.4.3 X Windows 37

习题2 39

第3章 进程 41

3.1 并发进程 41

3.1.1 程序的顺序执行及其特点 41

3.1.2 程序的并发执行及其特点 42

3.2.1 进程的引入 46

3.2 进程的描述 46

3.2.2 进程控制块 47

3.2.3 Linux的进程控制块 49

3.3 进程的状态及其转换 52

3.3.1 进程的不同状态 52

3.3.2 状态转换模型 52

3.3.3 Linux的进程状态 54

3.4 进程的控制 54

3.4.1 原语操作 55

3.4.2 Linux中的进程控制 59

3.5 线程 63

3.5.1 线程的引入 63

3.5.2 线程的概念 64

3.5.3 引入线程的优点 64

3.5.4 线程和进程的关系 65

3.5.5 线程的状态及其转换 65

3.5.6 用户级线程和内核级线程 66

3.6 关键术语 68

习题3 69

第4章 并发性:互斥、同步和死锁 71

4.1 进程间的相互作用 71

4.1.1 互斥 72

4.1.2 临界资源和临界区 72

4.1.3 互斥的解决方案 73

4.1.4 信号量和PV操作 73

4.1.5 用P、V操作实现互斥 74

4.1.6 同步 75

4.1.7 用信号量实现进程同步 76

4.1.8 经典的进程同步和互斥问题 76

4.2 管程 80

4.2.1 管程的引出 80

4.2.2  管程的概念 80

4.2.3 用管程实现同步 81

4.3.1 死锁的形成 83

4.3 死锁及饿死 83

4.3.2 死锁的必要条件 84

4.3.3 死锁的预防 85

4.3.4 死锁的避免 85

4.3.5 死锁的检测 90

4.3.6 饿死的问题 91

4.4 关键术语 91

习题4 91

5.1 概念 93

第5章 进程间通信 93

5.2 信号 94

5.2.1 信号的类型 94

5.2.2 信号的产生与发送 94

5.2.3 信号的处理 95

5.2.4 信号的屏蔽 95

5.2.5 相关的系统调用 95

5.3.3 无名管道 96

5.3.2 管道实现原理 96

5.3.1 管道工作原理 96

5.3 管道 96

5.3.4 命名管道 99

5.4 System V通信机制 101

5.4.1 消息队列 102

5.4.2 信号量 107

5.4.3 共享内存 113

习题5 118

第6章 处理机调度 119

6.1 概念 119

6.1.1 进程调度的概念 119

6.1.2 进程调度的功能 120

6.1.3 引起进程调度的原因 120

6.1.4 选择进程调度算法的因素 120

6.1.5 进程调度的性能评价 121

6.2.3 短程调度 122

6.2.2 中程调度 122

6.2.1 长程调度 122

6.2 处理机调度的类型 122

6.3 进程调度算法 123

6.3.1 先来先服务调度算法 123

6.3.2 优先级调度算法 123

6.3.3 时间片轮转调度算法 124

6.3.4 最短进程优先调度算法 125

6.3.5 多级反馈队列调度算法 125

6.4.1 多机系统简介 126

6.4 多处理机调度 126

6.4.2 多处理机操作系统的分类 129

6.4.3 多处理机调度 131

6.5 Linux的进程调度 134

6.5.1 Linux进程调度的时机 134

6.5.2 进程的权值 134

6.5.3 进程调度的实现 135

6.5.4 进程调度的策略 135

习题6 136

7.2 存储器的物理组织 138

7.1 主存储器在计算机系统中的地位 138

第7章 存储管理 138

7.3 存储管理的研究内容 139

7.4 存储组织、管理及策略 139

7.5 用户程序的主要处理阶段 140

7.6 地址重定位 140

7.7 分区存储管理 142

7.7.1 单一分区 142

7.7.2 固定分区 142

7.7.3 可变分区 143

7.7.4 空闲区的分配和回收 144

7.7.5 分区的保护 146

7.8 简单页式存储管理 146

7.8.1 解决的思路 146

7.8.2 分页的方法 147

7.8.3 页式存储组织的实现 147

7.9 简单分段式存储管理 149

7.10 覆盖技术 151

7.12 虚拟存储管理技术和局部性原理 152

7.11 交换技术 152

7.13 虚拟页式存储管理技术 153

7.14 虚拟分段式存储管理技术 156

7.15 段页式存储管理技术 156

7.16 关键术语 157

7.17 本章附件:网络化虚拟存储技术 157

习题7 158

8.2 Linux的内存管理实现机构 161

第8章 Linux的内存管理 161

8.1 概述 161

8.3 Linux的分页 162

8.4 Linux的地址映射机制 163

8.5 Linux的存储管理 163

8.6 交换机制 165

8.7 本章附件:i386的虚拟地址——内存物理地址转换机制 165

9.1.1 外设的分类 166

9.1 概述 166

第9章 设备管理 166

9.1.2 设备管理的目标和功能 167

9.2 Linux的设备管理方式 167

9.3 I/O控制方式 168

9.3.1 设备控制器 168

9.3.2 循环测试I/O方式(程序直接控制方式) 169

9.3.3 中断技术及Linux的中断管理 169

9.3.4 直接存储器存储 172

9.3.5 通道方式 173

9.4 缓冲技术 173

9.5 设备分配 174

9.5.1 设备分配用数据结构 174

9.5.2 设备分配策略 174

9.6 Linux设备管理 176

9.7 Linux设备驱动程序的框架 179

9.7.1 Linux的块设备驱动程序 180

9.7.2 Linux的字符设备驱动程序 181

9.8 本章附件:磁盘阵列 182

习题9 187

第10章 文件系统 188

10.1 概述 188

10.2 文件系统的引入 188

10.3 文件系统的有关概念 189

10.4 文件的逻辑结构与存取方法 190

10.5 文件的物理结构与存储设备的特点 191

10.6 文件存储空间管理 194

10.7 目录管理 196

10.7.1 文件目录的概念 196

10.7.2 文件目录结构 197

10.7.3 文件访问的实现 198

10.7.4 文件的连接 199

10.8 文件的保护和保密 200

10.8.1 文件的共享 200

10.8.2 文件的保护和保密 200

10.9 文件的使用 201

习题10 202

第11章 LinUx文件系统的实现 204

11.1 概述 204

11.1.1 Linux文件系统的特点 204

11.1.2 Linux支持多种文件系统 204

11.1.3 Linux文件系统的结构 205

11.1.4 文件系统的注册 205

11.1.5 树形目录结构 206

11.1.6 文件系统的安装、卸载 206

11.2 ext2文件系统 208

11.2.1 ext2的磁盘布局 208

11.2.2 ext2的索引节点 211

11.2.3 ext2目录 213

11.2.4 文件查找 214

11.3 虚拟文件系统 215

11.3.1 VFS的超级块 215

11.3.2 VFS的索引节点 217

习题11 219

第12章 网络 221

12.1 概述 221

12.2 网络协议简介 221

12.3 Linux网络的分层结构 222

12.4 Linux的套接字及其缓冲区 223

12.4.1 套接字在网络中的地位 223

12.4.4 数据结构 224

12.4.3 Linux套接字的层次 224

12.4.2 套接字的作用 224

12.5 Linux网络协议 225

12.5.1 建立连接 225

12.5.2 撤销连接 225

12.5.3 数据发送 225

12.6 Linux的网络设备接口 226

12.6.1 结构 226

12.6.2 设备注册 227

12.7 本章附件:一些重要的数据结构 228

第13章 分布式处理、客户机/服务器和集群 229

13.1 概述 229

13.2 分布式操作系统 229

13.3 客户机/服务器计算 229

13.3.1 分布式环境的客户机/服务器模式 230

13.3.2 三(多)层浏览器/服务器结构 232

13.3.3 中间件 233

13.4 分布式进程通信 233

13.4.1 分布式消息传递 233

13.4.2 远过程调用 234

13.5 进程迁移 235

13.5.1 概念 235

13.5.2 机制 236

13.6 分布式环境下的互斥及死锁 236

13.6.1 概念 236

13.6.2 逻辑钟 237

13.6.4 死锁 238

13.6.3 互斥算法 238

13.7 集群 239

13.7.1 概念 239

13.7.2 集群技术的分类 239

13.7.3 Beowulf和Linux集群 240

13.7.4 参考站点 241

第14章 上机实验 242

实验1 Linux操作入门 242

实验2 Linux文件与目录的基本使用 244

实验3 vi编辑器的使用和Linux下的编程 248

实验4 几个常用命令、重定向和管道 254

实验5 Linux的进程管理 261

实验6 Linux文件系统 267

实验7 文件系统的结构 270

实验8 文件的权限管理 283

实验9 用户与用户管理 289

实验10 RedHat Linux的安装和删除——以RedHat Linux9为例 295

附录A 参考书籍及参考网站 314