图书介绍
操作系统教程 第3版PDF|Epub|txt|kindle电子书版本网盘下载
![操作系统教程 第3版](https://www.shukui.net/cover/26/30295698.jpg)
- 陆松年编著 著
- 出版社: 北京:电子工业出版社
- ISBN:9787121103353
- 出版时间:2010
- 标注页数:485页
- 文件大小:64MB
- 文件页数:498页
- 主题词:操作系统-教材
PDF下载
下载说明
操作系统教程 第3版PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1部分 原理篇2
第1章 操作系统概论2
1.1 什么是操作系统2
1.2 操作系统的发展历史3
1.2.1 早期的计算机和人工操作方式3
1.2.2 脱机输入/输出和批处理系统4
1.2.3 缓冲、中断和DMA技术4
1.2.4 SPOOLING5
1.2.5 多道程序设计6
1.3 现代操作系统类型7
1.3.1 分时系统7
1.3.2 实时操作系统8
1.3.3 微机操作系统8
1.3.4 多处理机、分布式和网络操作系统10
1.3.5 嵌入式操作系统和智能卡操作系统11
1.4 操作系统的概念、特征和功能11
1.4.1 作业和进程11
1.4.2 操作系统的特征12
1.4.3 操作系统的功能13
1.5 UNIX操作系统概述14
1.5.1 UNIX系统历史14
1.5.2 Solaris操作系统16
1.5.3 UNIX系统特点18
1.5.4 UNIX系统基本结构18
习题119
第2章 存储管理20
2.1 存储管理基础20
2.1.1 虚拟地址与物理地址20
2.1.2 地址定位方式20
2.2 基本存储管理方法22
2.2.1 单一连续区存储管理22
2.2.2 固定分区存储管理23
2.3 可变分区存储管理24
2.3.1 空闲存储区表24
2.3.2 首次适应法25
2.3.3 循环首次适应法27
2.3.4 最佳适应算法27
2.3.5 最差适应法28
2.3.6 多重分区28
2.4 内存扩充技术28
2.4.1 覆盖28
2.4.2 交换技术29
2.4.3 虚拟存储器30
2.5 纯分页的存储管理31
2.5.1 分页存储管理的基本思想31
2.5.2 地址变换32
2.5.3 联想存储器和快表32
2.5.4 空闲内存页的管理33
2.6 请求分页系统34
2.6.1 请求分页的基本原理34
2.6.2 页面淘汰34
2.7 段式存储管理37
2.8 段页式存储管理38
2.9 Linux存储管理39
2.9.1 Linux存储管理的思想及特点39
2.9.2 Linux中的页表40
2.9.3 页面的分配和回收40
2.9.4 存储映射与请求分页42
2.9.5 页交换进程与页面的换入换出43
2.10 Solaris存储管理44
2.10.1 Solaris存储管理的体系结构44
2.10.2 Solaris存储管理的新特性44
2.10.3 Solaris存储管理45
2.10.4 页面淘汰算法46
习题247
第3章 进程管理49
3.1 进程概述49
3.1.1 进程的概念49
3.1.2 进程的组成49
3.1.3 进程的状态及其变化50
3.2 进程控制块51
3.3 调度56
3.3.1 调度概述56
3.3.2 进程调度策略57
3.3.3 进程调度算法57
3.4 UNIX系统的进程调度60
3.4.1 进程的切换调度算法60
3.4.2 切换调度程序62
3.4.3 进程的对换调度63
3.5 进程的控制64
3.5.1 进程的阻塞64
3.5.2 UNIX系统中的进程睡眠和唤醒64
3.5.3 进程的终止和等待终止67
3.6 进程的创建和图像改换68
3.6.1 进程的创建68
3.6.2 进程图像的改换69
3.7 线程70
3.7.1 进程和线程71
3.7.2 多线程71
3.7.3 线程的状态与功能72
3.7.4 用户级和核心级线程73
3.8 Linux进程管理75
3.8.1 Linux进程结构75
3.8.2 进程调度78
3.8.3 进程使用的虚拟内存79
3.8.4 创建进程79
3.8.5 Linux的线程80
3.9 Solaris进程和线程管理81
3.9.1 Solaris进程和线程81
3.9.2 Solaris进程和线程模型的演变81
3.9.3 进程数据结构82
3.9.4 内核线程数据结构82
3.9.5 Solaris的线程调度84
3.9.6 Solaris的线程应用示例87
习题388
第4章 进程通信90
4.1 进程的同步与互斥90
4.1.1 同步与互斥的概念90
4.1.2 临界段问题90
4.2 进程间互斥控制方法91
4.2.1 锁的表示和操作91
4.2.2 锁的安全控制91
4.2.3 用纯软件实现进程的互斥93
4.3 信号量和semWait、semSignal操作95
4.4 信号量的应用96
4.4.1 利用信号量实现互斥96
4.4.2 阻塞/唤醒协议97
4.4.3 两个进程间的同步98
4.4.4 生产者和消费者问题99
4.4.5 读者/写者问题100
4.4.6 管程101
4.5 进程间的数据通信101
4.5.1 消息通信101
4.5.2 共享存储区102
4.5.3 管道通信103
4.6 软中断和信号机构103
4.6.1 信号的产生与类型103
4.6.2 信号的处理方式及设置105
4.6.3 信号的传送106
4.7 死锁106
4.7.1 产生死锁的原因107
4.7.2 产生死锁的条件108
4.7.3 死锁的预防109
4.7.4 死锁的避免110
4.7.5 死锁的检测111
4.7.6 死锁的解除112
4.8 Linux进程间通信113
4.8.1 信号113
4.8.2 管道115
4.8.3 IPC机制116
4.9 Solaris的进程通信机制118
4.9.1 Solaris的进程通信机制概述118
4.9.2 Solairs信号机制118
4.9.3 Solairs信号量119
4.9.4 Solairs门119
习题4120
第5章 设备管理121
5.1 概述121
5.1.1 设备的概念和分类121
5.1.2 I/O设备控制与驱动122
5.1.3 设备管理的设计要求和任务123
5.2 操作系统与中断处理123
5.2.1 中断的基本概念123
5.2.2 中断的类型124
5.2.3 中断的响应和实现过程126
5.2.4 中断处理程序和驱动程序126
5.2.5 中断的返回与恢复127
5.3 操作系统与时钟系统128
5.3.1 时钟的概念128
5.3.2 UNIX系统中的时钟管理128
5.4 操作系统对I/O操作的控制129
5.4.1 I/O设备的资源分配129
5.4.2 I/O通道技术130
5.4.3 I/O缓冲技术130
5.4.4 设备的驱动131
5.5 设备管理的数据结构131
5.5.1 设备控制表131
5.5.2 设备开关表132
5.6 磁盘调度133
5.6.1 物理特性133
5.6.2 磁盘调度算法133
5.6.3 系统设计应考虑的几个问题135
5.6.4 独立磁盘冗余阵列135
5.7 UNIX系统V的设备管理138
5.7.1 块设备管理的主要数据结构138
5.7.2 缓冲区管理140
5.7.3 块设备管理143
5.7.4 字符设备管理145
5.8 设备分配147
5.8.1 设备分配方式147
5.8.2 设备分配的原则147
5.9 Linux的设备管理148
5.9.1 概述148
5.9.2 设备驱动器与内核的接口150
5.9.3 网络设备的管理152
5.10 Solaris的I/O子系统152
5.10.1 I/O子系统与内核的关系152
5.10.2 设备文件与设备文件系统153
5.10.3 设备树153
习题5154
第6章 文件系统156
6.1 概述156
6.1.1 文件的术语156
6.1.2 文件的操作157
6.1.3 文件的组织和存取157
6.1.4 文件系统结构160
6.2 文件目录161
6.2.1 目录的内容161
6.2.2 目录的结构162
6.2.3 存取权限163
6.2.4 并发存取控制163
6.3 文件存储资源分配164
6.4 文件的系统调用165
6.4.1 文件的创建、打开、关闭和取消166
6.4.2 文件的读/写168
6.4.3 调整文件读/写位置lseek169
6.4.4 创建任何类型文件mknod169
6.4.5 其他的文件系统调用170
6.5 文件的标准子例程171
6.5.1 标准I/O的概念171
6.5.2 流文件的打开和关闭172
6.5.3 流文件的读写173
6.5.4 调整和获取流文件的读写位置174
6.5.5 格式输入与输出174
6.5.6 流的单字符I/O操作175
6.5.7 行的输入与输出176
6.5.8 存储区中的格式转化176
6.5.9 程序的执行176
6.6 UNIX文件系统的内部结构177
6.6.1 索引节点177
6.6.2 文件索引结构177
6.6.3 目录结构179
6.6.4 打开文件结构180
6.6.5 文件系统存储资源管理182
6.7 管道文件和管道通信186
6.7.1 管道通信概念186
6.7.2 管道文件186
6.7.3 管道的读写和关闭187
6.7.4 有名管道188
6.8 Linux文件系统190
6.8.1 虚拟文件系统190
6.8.2 Ext2文件系统194
6.8.3 Ext3文件系统197
6.9 Solaris文件系统197
6.9.1 Sun虚拟文件系统模型197
6.9.2 文件系统可恢复性198
6.9.3 文件系统安全性199
6.9.4 Solaris文件系统框架200
6.9.5 ZFS文件系统的特点201
习题6202
第7章 Windows操作系统204
7.1 Windows操作系统发展历程204
7.1.1 Windows的开发过程及历史204
7.1.2 Windows主要版本的特点204
7.2 Windows 2000/XP207
7.2.1 系统体系结构207
7.2.2 存储系统210
7.2.3 进程、线程及处理器管理216
7.2.4 I/O系统220
7.2.5 文件系统223
7.2.6 网络系统226
7.3 Windows Server 2008230
7.3.1 系统概述230
7.3.2 系统功能更新230
7.4 下一代操作系统产品Windows 7232
7.4.1 系统概述232
7.4.2 系统功能更新232
7.5 操作系统虚拟化技术234
7.5.1 虚拟化技术概述234
7.5.2 Xen虚拟化技术235
7.5.3 其他虚拟化产品238
7.6 小结240
习题7240
第8章 分布式和网络操作系统241
8.1 分布式操作系统概述241
8.2 网络通信机制244
8.3 网络同步246
8.4 网络操作系统247
习题8248
第9章 操作系统安全249
9.1 操作系统的安全性249
9.1.1 操作系统的安全需求249
9.1.2 系统安全的评估与标准250
9.1.3 Linux操作系统安全253
9.1.4 Windows 2000操作系统安全254
9.2 操作系统安全机制256
9.2.1 标识与鉴别256
9.2.2 可信路径258
9.2.3 最小特权管理259
9.2.4 访问控制260
9.2.5 隐蔽通道检测与控制261
9.2.6 安全审计263
9.3 安全操作系统设计与实现265
9.3.1 操作系统安全设计原理265
9.3.2 安全策略266
9.3.3 安全模型267
9.3.4 安全体系结构269
9.3.5 典型安全操作系统271
习题9273
第2部分 应用和开发篇276
第10章 UNIX使用基础276
10.1 登录和退出系统276
10.2 Shell基础277
10.2.1 Shell的家族277
10.2.2 简单命令和命令表277
10.2.3 标准输入和标准输出278
10.2.4 输入/输出转向278
10.2.5 后台命令与后台进程279
10.2.6 管道280
10.2.7 特殊字符280
10.3 文件系统基本知识281
10.3.1 文件的类型281
10.3.2 目录结构282
10.3.3 文件存取控制模式282
10.3.4 目录存取方式283
10.4 UNIX文件系统结构283
10.4.1 根文件系统结构284
10.4.2 /usr文件系统284
习题10285
第11章 UNIX实用程序286
11.1 目录操作命令286
11.1.1 显示工作目录(pwd命令)286
11.1.2 改变工作目录(cd命令)286
11.1.3 列目录内容(Is命令)286
11.1.4 创建新目录(mkdir命令)287
11.1.5 删除目录项(rmdir命令)287
11.2 文件操作命令287
11.2.1 复制文件(cp命令)287
11.2.2 移动或重新命名文件(mv命令)288
11.2.3 删除文件(rm命令)288
11.2.4 文件的链接(In命令)288
11.2.5 符号链接(In-s命令)288
11.2.6 报告两个文件的差别(diff命令)289
11.2.7 推测文件的类型(file命令)290
11.2.8 查找文件(find命令)290
11.2.9 改变文件的属主(chown命令)291
11.2.10 改变文件的存取权限(chmod命令)291
11.2.11 设置文件创建方式屏蔽码(umask命令)292
11.3 显示和打印命令292
11.3.1 回应命令行上的参数(echo命令)292
11.3.2 连接并显示文件(cat命令)293
11.3.3 分页显示(more命令和pg命令)293
11.3.4 显示文件的头部(head命令)和尾部(tail命令)293
11.3.5 打印文件(lp命令)294
11.3.6 查看打印作业状态(lpstat命令)294
11.3.7 取消一个打印作业(cancel命令)294
11.3.8 格式化打印文件(pr命令)295
11.3.9 卸出文件(od命令)295
11.4 过滤器296
11.4.1 正则表达式296
11.4.2 排序或合并文件(sort命令)298
11.4.3 抽取指定模式的行(grep命令)298
11.4.4 流编辑程序(sed命令)299
11.4.5 模式扫描和处理语言(awk)300
11.4.6 裁剪指定的列(cut命令)301
11.4.7 组合数据列(paste命令)302
11.4.8 建立“三通”(tee命令)302
11.5 设备操作302
11.5.1 显示或设置日期和时间(date命令)302
11.5.2 显示磁盘空间(df命令)303
11.5.3 显示磁盘使用情况(du命令)303
11.5.4 显示或设置终端参数(stty命令)303
11.5.5 磁带归档(tar命令)304
11.6 用户信息与进程控制305
11.6.1 获取用户信息305
11.6.2 显示进程状态(ps命令)305
11.6.3 挂起一段时间(sleep命令)306
11.6.4 统计一个作业的执行时间(time命令)306
11.6.5 等待进程完成(wait命令)306
11.6.6 杀死一个进程(kill命令)306
11.6.7 忽略挂起和退出方法执行(nohup命令)306
11.6.8 设置命令的执行环境(env命令)307
11.7 压缩和解压缩307
11.7.1 compress307
11.7.2 zip307
11.7.3 gzip308
11.7.4 pack309
11.8 其他命令309
11.8.1 联机手册(man命令)309
11.8.2 检查拼写错误(spell命令)310
11.8.3 文件加密crypt命令和des命令310
11.8.4 规范化C程序格式(cb命令)310
习题11311
第12章 软件开发工具312
12.1 文本编辑器vi312
12.1.1 vi概要312
12.1.2 屏幕编辑命令313
12.1.3 底行命令317
12.1.4 在vi程序中执行Shell命令319
12.2 C编译系统320
12.2.1 C编译基本过程320
12.2.2 预处理程序321
12.2.3 编译程序323
12.2.4 汇编程序323
12.2.5 连接/装入程序324
12.2.6 一个使用cc的综合例子325
12.3 库的维护325
12.3.1 库的概念325
12.3.2 库的维护326
12.3.3 动态库327
12.4 维护程序的程序(Make)327
12.4.1 Make使用初步328
12.4.2 Make的内部规则329
12.4.3 Make中的宏331
12.4.4 用Make维护库332
12.4.5 一个综合例子333
12.4.6 Make命令选项和参数335
12.5 调试程序335
12.5.1 调用sdb336
12.5.2 sdb的调试命令336
12.5.3 删除调试信息strip337
12.6 源代码控制系统(SCCS)337
12.6.1 创建SCCS的初始版本338
12.6.2 提取一个版本338
12.6.3 建立一个新版本339
12.6.4 显示SCCS文件的历史339
12.6.5 SCCS的版本号结构339
12.6.6 ID关键字340
12.6.7 其他的SCCS的命令341
12.7 其他的软件开发工具341
12.7.1 C程序检查器Lint341
12.7.2 词法分析器和语法分析器341
习题12342
第13章 UNIX通信与万维网WWW343
13.1 检查计算机的连接情况343
13.2 获取远程用户信息343
13.2.1 显示谁在本地计算机登录(rwho)343
13.2.2 显示远程用户的信息(finger)&344
13.3 用户间通话344
13.3.1 给用户发信息(write)344
13.3.2 广播式的消息传送工具(Wall)344
13.3.3 远程用户对话(talk)345
13.4 远程登录和执行345
13.4.1 基于UNIX系统的远程登录(RLogin)345
13.4.2 通用的远程登录(telnet)346
13.4.3 远程Shell(RSH)346
13.5 远程文件复制和传输347
13.5.1 远程文件复制(RCP)347
13.5.2 文件传输(FTP)347
13.6 万维网WWW和浏览器349
13.6.1 超文本和超媒体349
13.6.2 超文本传输协议HTTP350
13.6.3 统一资源定位器URL350
13.6.4 超文本标记语言HTML350
13.6.5 Form与CGI351
13.6.6 网站设计语言351
13.6.7 WWW的浏览程序353
习题13354
第14章 UNIX系统和网络程序设计355
14.1 文件系统程序设计355
14.1.1 获取文件的状态355
14.1.2 搜索目录树356
14.2 用文件的系统调用实现进程通信358
14.2.1 利用文件的系统调用实现信号量358
14.2.2 利用管道实现进程间通信360
14.3 高级进程间通信362
14.3.1 消息通信362
14.3.2 共享内存365
14.3.3 信号量366
14.4 远程进程间通信Socket369
14.4.1 Socket通信概述369
14.4.2 Socket系统调用370
14.4.3 TCP套接字编程372
14.5 UDP套接字编程375
14.5.1 UDP套接字的基本概念&375
14.5.2 UDP套接字基本函数375
14.5.3 UDP数据报的编程示例376
14.6 Solaris门通信378
14.6.1 Solaris门的应用编程接口&378
14.6.2 Solaris门的基本通信示例380
14.7 远程过程调用RPC382
14.7.1 RPC概述382
14.7.2 RPC服务地址获取383
14.7.3 rpcgen编程指南383
14.7.4 客户端身份验证388
14.8 一个系统程序综合设计的例子389
习题14400
第15章 Shell程序设计401
15.1 Shell程序和参数401
15.1.1 Shell程序401
15.1.2 Shell程序的位置参数402
15.2 Shell变量402
15.2.1 用户定义变量402
15.2.2 系统定义变量403
15.2.3 Shell定义变量405
15.2.4 参数替换405
15.2.5 引号机制406
15.3 测试和求值406
15.3.1 测试406
15.3.2 求值408
15.4 控制结构408
15.4.1 顺序控制结构408
15.4.2 if语句409
15.4.3 case语句411
15.4.4 for语句412
15.4.5 while和until语句413
15.4.6 break、continue、exit和return语句414
15.5 递归和Shell函数414
15.5.1 递归414
15.5.2 Shell函数415
15.6 Shell内部命令415
15.7 Shell环境417
15.8 Linux的BASH Shell419
15.8.1 命令编辑和历史419
15.8.2 别名和特征变量420
15.8.3 BASH Shell的环境文件420
习题15421
第16章 嵌入式Linux操作系统422
16.1 Linux与嵌入式操作系统422
16.1.1 嵌入式系统的定义422
16.1.2 嵌入式操作系统的特点423
16.1.3 嵌入式Linux发展与应用424
16.1.4 嵌入式Linux操作系统实现方法425
16.2 嵌入式Linux操作系统构建425
16.2.1 Linux系统的软件层次425
16.2.2 裁剪编译内核426
16.2.3 准备Root文件系统427
16.2.4 Root文件系统裁剪428
16.2.5 制作root文件系统映像430
16.3 嵌入式Linux操作系统安装432
16.3.1 嵌入式系统的启动432
16.3.2 安装嵌入式系统引导程序433
16.3.3 x86系统上嵌入式Linux映像安装435
16.4 嵌入式Linux软件开发与调试437
16.4.1 开发系统与目标系统437
16.4.2 交叉编译环境438
16.4.3 嵌入式Linux软件调试方法440
16.5 嵌入式Linux操作系统实时性442
16.5.1 嵌入式操作系统的实时性要求442
16.5.2 Linux内核与实时性444
16.5.3 嵌入式Linux实时化技术446
习题16448
第3部分 系统和网络管理篇450
第17章 UNIX系统管理450
17.1 系统的启动和关闭450
17.1.1 系统自举450
17.1.2 系统的运行级450
17.1.3 初始化程序执行的脚本(inittab)451
17.1.4 系统初始化过程452
17.1.5 系统的关闭452
17.2 用户管理453
17.2.1 用户管理涉及的文件453
17.2.2 加入新用户的过程454
17.2.3 添加用户命令(useradd)455
17.2.4 删除用户的注册(userdel)455
17.3 誊清(更新)系统缓冲区456
17.4 检查和修复文件系统456
17.5 构造、安装和拆卸文件系统458
17.5.1 建立特别文件(mknod)458
17.5.2 构造文件系统(mkfs)458
17.5.3 安装文件系统(mount)459
17.5.4 拆卸一个文件系统(umount)459
17.6 定时运行程序460
17.6.1 在指定时刻运行Shell程序(at)460
17.6.2 时钟精灵(cron)460
习题17461
第18章 UNIX系统网络管理462
18.1 配置TCP/IP462
18.1.1 网络软件的安装462
18.1.2 设置TCP/IP文件462
18.1.3 设置监听程序464
18.2 网络服务监控进程465
18.3 域名服务系统466
18.3.1 域名服务466
18.3.2 域名系统466
18.3.3 域名解析467
18.3.4 逆向域名解析467
18.3.5 DNS数据库468
18.3.6 域名服务器的配置469
18.4 网络文件系统NFS470
18.4.1 NFS的概念和原理470
18.4.2 NFS服务器的设置470
18.4.3 NFS客户机的设置471
18.5 电子邮政系统473
18.5.1 邮件信箱473
18.5.2 电子邮政设置文件473
18.5.3 sendmail的设置文件474
18.5.4 sendmail命令的参数476
18.6 WWW服务器的配置476
18.6.1 WWW服务477
18.6.2 虚拟主机服务480
18.6.3 代理服务器481
习题18481
附录A:参考文献483