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

  • 购买积分:12 如何计算积分?
  • 作  者:刘日升,孙玉方
  • 出 版 社:能源出版社
  • 出版年份:2222
  • ISBN:
  • 页数:318 页
图书介绍:

第一章 UNIX操作系统的历史与特征 1

1.1 UNIX系统的发展历史与现状 1

1.1.1 UNIX系统的产生 1

目录 1

1.1.2 UNIX系统的发展 2

1.1.3 UNIX系统的现状 2

1.2 UNIX系统的特征 4

1.2.1 UNIX系统的主要优点 4

1.2.2 对UNIX系统的批评 6

第二章 操作系统的基本知识 8

2.1 硬件与软件 8

2.2 操作系统的功能 9

2.3 核心程序与实用程序 10

2.4 操作系统的分类 11

习题 12

3.1 PDP-11系统结构 13

第三章 UNIX系统结构 13

3.2 中断系统 14

3.2.1 中断概念的引入与分类 14

3.2.2 中断与中断向量 15

3.2.3 捕俘与捕俘向量 17

3.2.4 中断保留区 18

3.2.5 中断捕俘总控程序 19

3.3 UNIX系统的程序结构 20

3.3.1 程序的调用与返回 20

3.3.2 再谈中断保留区 22

3.4 UNIX系统的整体结构 23

习题 25

第四章 进程管理 26

4.1 进程的概念 26

4.1.1 进程概念的引入 26

4.1.2 进程的状态 28

4.2.1 进程的程序与数据 29

4.2 进程映象 29

4.2.2 proc结构与ppda 30

4.3 进程调度 33

4.3.1 调度算法 33

4.3.2 进程现场的保留 34

4.3.3 低级调度程序 35

4.4 进程通信 37

4.4.1 概述 37

4.4.2 通信操作的实现 37

4.4.3 进程通信举例 39

4.5 进程的建立 40

4.5.1 建立进程映象 41

4.5.2 子进程的运行 42

4.5.3 系统调用fork 43

4.6.2 可执行文件的格式 45

4.6 执行一个文件 45

4.6.1 更换进程映象 45

4.6.3 自变量传递 46

4.6.4 exec的实现 48

4.6.5 fork-exec的应用 50

4.7 进程的终止与等待 51

4.7.1 进程终止 51

4.7.2 等待子进程 53

4.8 进程的资源 55

习题 56

第五章 存储管理 57

5.1 引言 57

5.1.1 逻辑地址与物理地址 57

5.1.2 连接编辑 58

5.1.3 地址重定位 59

5.1.4 内存的扩充 59

5.2.1 页表 60

5.2 PDP-11的地址转换机构 60

5.2.2 地址转换算法 62

5.2.3 用户栈的表示 63

5.3 逻辑空间的分配 64

5.3.1 用户逻辑空间 64

5.3.2 核心逻辑空间 65

5.3.3 样本页表 66

5.3.4 样本页表与硬件页表的装配 67

5.3.5 estabur与sureg的应用 70

5.4 物理空间的分配 70

5.4.1 分配算法 70

5.4.2 应用举例 72

5.5 程序对换 74

5.5.1 概述 74

5.5.2 对换驱动程序 74

5.5.3 映象换出程序 76

5.5.4 进程0 77

5.6 有关数据段的操作 78

5.6.1 改变数据段的大小 78

5.6.2 用户栈的扩大 79

5.6.3 系统调用brk 79

习题 82

第六章 时钟处理与捕俘处理 84

6.1 时钟处理 84

6.1.1 硬件时钟与软件计时 84

6.1.2 时钟处理程序 85

6.2 捕俘总控与系统调用 86

6.2.1 捕俘总控程序 86

6.2.2 系统调用的转入与参数复制 87

6.2.3 系统调用的分类 91

6.3 软中断 92

6.3.1 软中断的引入 92

6.3.2 软中断处理程序的设置 93

6.3.3 软中断的产生与发送 94

6.3.4 软中断的发现与处理 95

6.3.5 软中断处理举例 100

6.4 跟踪 101

6.4.1 跟踪机构的用法 101

6.4.2 跟踪机构的实现 102

6.4.3 跟踪过程 106

习题 108

第七章 外部设备管理 109

7.1 引言 109

7.1.1 块设备与字符设备 109

7.1.2 主设备号与次设备号 109

7.1.3 UNIX设备管理的特点 110

7.2 设备配置与开关表 111

7.2.1 设备的重新配置 111

7.2.2 开关表与驱动程序的联系 111

7.4.1 硬件背景 112

7.4 块设备的驱动 112

7.4.2 RK磁盘的驱动 114

7.2.3 特别文件的建立 114

7.3 块设备的缓冲区管理 116

7.3.2 缓冲区与缓冲首部 116

7.3.1 块设备系统的结构 116

7.3.3 块设备表与缓冲首部队列 118

7.3.4 缓冲区的申请与释放 119

7.4.3 块设备系统与文件系统的接口 127

7.5 字符设备的缓冲管理与tty结构 131

7.5.1 引言 131

7.5.2 缓冲管理 131

7.5.3 终端设备的tty结构与寄存器组 133

7.6 终端设备的驱动 137

7.6.1 终端的打开与关闭 137

7.6.2 终端输入过程 138

7.6.3 终端输出过程 141

8.1.2 文件的逻辑结构与物理结构 142

8.1.3 UNIX文件系统的特点 143

8.2 文件目录 144

7.7 原始磁盘的管理 147

7.7.2 原始磁盘的启动 147

7.7.1 原始磁盘的用法 147

习题 148

第八章 文件系统 151

8.1 引言 151

8.1.1 文件与文件系统 151

8.2.4 文件的联结 151

8.2.1 简单的文件目录 154

8.2.2 多级目录与UNIX树形目录结构 155

8.2.3 索引节点 157

8.2.5 目录的检索 162

8.3 文件卷的安装与拆卸 163

8.3.1 实现原理 163

8.3.2 实现过程 166

8.4 文件卷存储空间的管理 167

8.4.2 文件卷的专用块与空间块的管理 168

8.4.1 一些常用的方法 168

8.4.3 i节点的分配与释放 172

8.5 文件的访问与存取控制 174

8.5.1 文件的访问与共享 174

8.5.2 文件的存取控制 176

8.6 关于文件的系统调用 177

8.6.1 数据结构 177

8.6.2 文件的创建 179

8.6.3 文件的联结与删除 182

8.6.4 文件的打开与关闭 185

8.6.5 用户打开文件表、系统打开文件表与活动i节点表的关系 187

8.6.6 文件的读写 188

8.6.7 管道文件 197

习题 202

第九章 系统初启 204

9.1 初始引导 204

9.2.1 核心页表寄存器的初置 205

9.2 核心初始化 205

9.2.2 进程0和进程1的建立 207

9.2.3 核心初始化过程 210

9.3 系统初始化 210

9.3.1 单用户环境 210

9.3.2 若干文件 211

9.3.3 多用户环境与文件getty 212

9.3.4 进程1的生命周期 213

习题 214

第十章 shell命令语言及其程序设计 215

10.1 UNIX使用基础 215

10.1.1 注册(login)与注销(logout) 215

10.1.2 终端特性 216

10.2 编辑程序 216

10.2.1 ed的进入与退出 217

10.2.2 建立文件 217

10.2.3 行编辑 218

10.2.4 上下文编辑 220

10.2.5 模式匹配 222

10.2.6 全局编辑 223

10.2.7 其它用法 223

10.3 常用的shell命令 224

10.3.1 有关目录和文件的命令 224

10.3.2 文件打印命令 227

10.3.3 状态询问命令 230

10.3.4 用户通信 231

10.3.5 进程管理 233

10.4 shell的交互特征 234

10.4.1 后台执行与重新定向 234

10.4.2 管道与过滤器 235

10.4.3 文件名字生成 235

10.5.1 shell变量 236

10.4.4 引号的使用 236

10.5 shell程序设计 236

10.5.2 几个专用的shell变量 238

10.5.3 简单的条件 239

10.5.4 简单命令、管道线与命令表 240

10.5.5 if条件 240

10.5.6 shell程序的自变量 241

10.5.7 while和until条件循环 242

10.5.8 命令替换 243

10.5.9 for结构 244

10.5.10 case结构 245

10.5.11 break和continue语句 245

10.6 shell程序的执行 246

10.7 shell解释程序的实现 248

10.7.1 初始化 248

10.7.2 命令行的读入与分析 249

10.7.3 命令树的执行 250

第十一章 C语言 255

11.1 C语言的演变历史及其特点 255

11.1.1 C语言的演变历史 255

11.1.2 C语言的特点 256

11.2 C程序的编写及其运行 257

11.2.1 样本C程序 257

11.2.2 C程序的处理流程 260

11.3 C语言的基本成分 263

11.3.1 C程序的元素 263

11.3.2 基本数据类型 264

11.3.3 常量 265

11.3.4 运算符与表达式 266

11.4 语句与控制流 270

11.4.1 若干简单语句 271

11.4.2 条件语句与开关语句 271

11.4.3 循环语句 275

11.4.4 其它语句 277

11.5 函数与程序结构 278

11.5.1 函数的一般形式 278

11.5.2 函数的递归调用 280

11.5.3 程序结构与存储类 281

11.5.4 初始化 284

11.6 构造数据类型 285

11.6.1 数组 286

11.6.2 指针与数组 287

11.6.3 结构 289

11.6.4 联合 293

11.7 C预处理程序 293

第十二章 UNIX程序设计环境 296

12.2 输入输出程序库 297

12.2.1 输入输出标准函数 297

12.2.2 格式输入输出 298

12.1 自变量约定 299

12.2.3 文件的存取 299

12.2.4 错误处理与出口 302

12.2.5 成行的输入输出 303

12.3 其它函数 303

12.4 低级输入输出 304

12.4.1 文件的读写与打开关闭 304

12.4.2 文件的随机存取 307

12.4.3 fopen的实现 307

12.5 进程管理 309

12.5.1 低级进程执行——execlp和execvp 309

12.5.2 创建并等待子进程——fork和wait 311

12.5.3 进程终止——exit 313

12.6 信号处理 314

参考文献 317