内容简介
操作系统作为核心的系统软件,负责控制和管理整个系统的资源并组织用户高效协调地使用这些资源。本书是在《操作系统基础(第3版)》的基础上修订而成的。与第3版相比,第4版在结构、内容上都做了调整、修改和增删。
本书阐述了操作系统的基本工作原理以及设计方法,力求将现代操作系统的典型特征,即多线程、微内核、分布式系统、客户/服务器模型与经典的操作系统原理紧密结合。
全书共13章,主要介绍了操作系统的基本概念和运行环境、进程和线程、处理器调度与死锁、存储管理、设备管理、文件管理、分布式系统,最后介绍了Windows和Linux操作系统的结构和实现。每章后面都有本章小结及难度适宜的习题,便于读者自学或巩固所学的知识。
本书内容丰富,结构清晰,突出基础,注重应用,强调理论与实践的结合,适合作为高等院校计算机专业或相关专业操作系统课程的教材,也可以作为从事操作系统设计与系统内核开发的技术人员的参考书籍。
目录
第1章引论
1.1计算机系统概述
1.1.1计算机的硬件组织
1.1.2软件的层次与虚拟机的概念
1.2操作系统的形成和发展
1.2.1什么是操作系统
1.2.2操作系统的形成和发展
1.3多道程序设计的概念
1.3.1多道程序设计的引入
1.3.2多道程序设计的概念
1.4操作系统的功能和特性
1.4.1操作系统的功能
1.4.2操作系统的特性
1.5操作系统的类型
1.5.1多道批处理操作系统
1.5.2分时操作系统
1.5.3实时系统
1.5.4网络操作系统
1.5.5多处理操作系统
1.5.6分布式操作系统
1.5.7嵌入式操作系统
1.5.8多核系统
1.6操作系统的设计
1.6.1设计的目标和原则
1.6.2操作系统设计
1.7操作系统的结构
1.7.1模块接口法
1.7.2层次结构设计法
1.7.3微内核结构
1.7.4微内核的实现
本章小结
习题
第2章操作系统的运行环境
2.1硬件环境
2.1.1中央处理器
2.1.2主存储器
2.1.3缓冲技术
2.1.4中断技术
2.1.5时钟、时钟队列
2.2操作系统与其他系统软件的关系
2.2.1作业、作业步、进程的关系
2.2.2重定位的概念
2.2.3绝对装入程序与相对装入程序
2.3操作系统与用户的接口
2.3.1作业控制语言
2.3.2联机作业控制
2.4固件——微程序设计概念*
2.4.1微程序设计的概念
2.4.2微程序设计与操作系统
本章小结
习题
第3章进程管理
3.1进程的概念
3.1.1进程的引入
3.1.2进程的定义
3.2进程的状态
3.2.1进程的状态及其变化
3.2.2进程的挂起和解除挂起的状态
3.3进程的描述和管理
3.3.1进程的描述
3.3.2进程管理
3.4进程控制
3.4.1进程的控制原语
3.4.2操作系统与进程控制的执行
3.5UNIX SVR4的进程管理*
本章小结
习题
第4章多线程
4.1线程的概念
4.1.1线程的引入
4.1.2线程的概念
4.2线程的状态和线程管理
4.2.1线程的状态
4.2.2线程的描述
4.2.3线程的管理
4.3多线程的实现
4.3.1概述
4.3.2用户级线程
4.3.3内核级线程
4.3.4KLT和ULT结合的方法
4.3.5线程库
4.4Solaris操作系统的线程机制*
4.4.1Solaris的多线程结构
4.4.2轻质进程
4.4.3内核线程
4.4.4用户线程
4.4.5线程的执行
4.4.6内核中断线程
本章小结
习题
第5章互斥与同步
5.1概述
5.2临界区
5.2.1临界区的提出
5.2.2临界区的互斥要求
5.3互斥
5.3.1互斥的软件解决方法
5.3.2互斥的硬件解决方法
5.4信号量
5.4.1信号量
5.4.2信号量及同步原语
5.4.3同步原语的不可分割性
5.4.4用信号量实现进程间互斥
5.4.5生产者和消费者问题
5.4.6读者和写者问题
5.5管程
5.5.1管程的定义
5.5.2用管程实现同步
5.6进程间的通信
5.6.1消息通信
5.6.2间接通信模式
5.6.3其他消息通信模式
5.7UNIX的进程同步和通信
5.7.1管道
5.7.2消息
5.7.3共享主存
5.7.4信号量
5.7.5信号或软中断
本章小结
习题
第6章死锁
6.1死锁问题的提出
6.2死锁的必要条件
6.2.1资源的概念
6.2.2死锁的必要条件
6.3死锁的预防
6.3.1预先静态分配法
6.3.2有序资源使用法
6.4死锁的避免和银行家算法
6.4.1单资源的银行家算法
6.4.2多资源的银行家算法
6.5死锁检测与恢复
6.5.1死锁的检测
6.5.2死锁的恢复
6.6资源分配图
6.6.1资源分配图
6.6.2利用资源分配图进行死锁分析
6.6.3资源分配图化简法
本章小结
习题
第7章实存储器管理技术
7.1引言
7.1.1主存储器的物理组织
7.1.2主存储器的管理功能
7.2固定分区
7.3可变分区多道管理技术
7.3.1可变分区存储管理的概念
7.3.2存储分配算法
7.3.3存储器的压缩和程序浮动
7.3.4可变分区多道管理的地址变换
7.4简单分页
7.5简单分段
7.6内核主存管理
7.6.1内核主存管理概述
7.6.2二次幂空闲表分配器
7.6.3伙伴系统
本章小结
习题
第8章虚拟存储管理
8.1虚拟存储系统的基本概念
8.2请求页式存储管理
8.2.1地址转换
8.2.2硬件支持
8.3请求分段存储管理
8.3.1请求分段概述
8.3.2分段的实现
8.4段页式存储管理
8.4.1请求段页式存储管理的基本概念
8.4.2请求段页式存储管理的地址转换
8.4.3段页式存储管理算法
8.4.4请求段页式存储管理的优缺点
8.5页面置换算法
8.5.1页面访问失效及处理
8.5.2页面置换算法
8.5.3交换区
8.6页框分配策略
8.6.1物理主存
8.6.2空闲页面链表
8.6.3页架分配中的有关策略
8.6.4分页环境中程序的行为特性
8.7UNIX SVR4的存储管理
本章小结
习题
第9章设备管理
9.1概述
9.2I/O子系统的层次模型
9.2.1I/O子系统的设计目标
9.2.2I/O子系统的层次模型
9.3I/O硬件组成
9.3.1设备和设备控制器
9.3.2直接存储器访问
9.3.3通道方式与输入输出处理器
9.4设备驱动程序
9.4.1设备和驱动程序分类
9.4.2设备开关表
9.4.3设备驱动程序框架
9.5I/O子系统
9.5.1设备命名
9.5.2输入输出缓冲区
9.5.3I/O子系统独立于设备的工作
9.6流*
9.6.1流的概念
9.6.2消息和队列
9.6.3流I/O
9.7磁盘调度
9.7.1磁盘的硬件特性
9.7.2磁盘调度算法
9.8虚拟设备和SPOOLing系统
9.9RAID技术*
本章小结
习题
第10章文件系统
10.1文件
10.1.1文件的命名
10.1.2文件的结构
10.1.3文件的类型
10.1.4文件的属性
10.1.5文件的操作
10.2目录
10.2.1目录内容
10.2.2文件目录的结构
10.2.3路径名
10.2.4符号链接
10.2.5目录操作
10.3文件系统的实现
10.3.1文件空间的分配和管理
10.3.2UNIX系统的目录实现
10.3.3磁盘空间管理
10.3.4文件系统在主存的数据结构和打开操作
10.3.5文件系统挂载
10.4安全性和保护
10.4.1用户确认技术
10.4.2保护机制——数据安全性
10.4.3其他
10.4.4文件的转储和恢复
本章小结
习题
第11章分布式系统*
11.1概述
11.1.1什么是分布式系统
11.1.2分布式系统的优点
11.2进程通信
11.2.1进程通信的概念
11.2.2TCP/IP通信协议
11.2.3分布式环境的客户/服务器模式
11.2.4分布式进程通信
11.3分布式文件系统
11.3.1分布式文件系统概述
11.3.2分布式文件系统的组成
11.3.3分布式文件系统的体系结构
11.3.4客户机高速缓存和一致性
11.4分布式系统中的互斥与死锁
11.4.1逻辑钟和逻辑时
11.4.2时间戳算法(Lamport算法)
11.4.3令牌传送算法
11.5进程迁移
11.5.1进程迁移的原因
11.5.2进程迁移机制
本章小结
习题
第12章Windows NT操作系统*
12.1Windows NT操作系统概述
12.2Windows NT的系统模型
12.3Windows NT的基元成分
12.3.1对象
12.3.2进程
12.3.3线程
12.3.4进程管理程序
12.4Windows NT的线程状态及调度
12.4.1线程状态转换
12.4.2内核调度程序
12.4.3进程和线程的优先级
12.5Windows NT的同步对象
12.5.1线程同步概述
12.5.2用Windows NT对象同步
12.6虚拟存储管理
12.6.1进程的虚拟地址空间
12.6.2虚拟分页
12.6.3页面调度策略和工作集
12.6.4页架状态和页架数据结构
12.6.5主存映射文件和视图
12.7输入输出系统
12.7.1输入输出系统的结构
12.7.2统一的驱动程序模型
12.7.3异步I/O操作和I/O请求处理过程
12.7.4映像文件I/O
12.8Windows NT的内装网络
12.8.1Windows NT内装网络的特色
12.8.2Windows NT内装网络的体系结构
12.9对象管理程序
12.10本地过程调用
12.11Windows NT的安全性
12.11.1Windows NT的安全性
12.11.2存取令牌和安全描述体
本章小结
习题
第13章Linux操作系统*
13.1Linux操作系统概述
13.1.1Linux的诞生和发展
13.1.2Linux的版本
13.1.3Linux内核的组成
13.1.4Linux的特点
13.2Linux进程管理
13.2.1Linux进程概述
13.2.2Linux进程的状态
13.2.3Linux进程的标识
13.2.4Linux进程的调度
13.2.5Linux进程的创建和撤销
13.3Linux的存储管理
13.3.1Linux的虚拟存储空间
13.3.2Linux的地址映射
13.3.3Linux物理内存的管理
13.3.4页面分配算法
13.3.5缺页中断
13.3.6缓存和刷新机制
13.4Linux文件管理
13.4.1Linux虚拟文件系统概述
13.4.2VFS超级块
13.4.3VFS索引节点对象
13.4.4目录项对象
13.4.5文件对象
13.5EXT文件系统
13.5.1EXT2/EXT3/EXT4文件系统的特点
13.5.2EXT2文件系统的磁盘结构
13.5.3EXT2超级块
13.5.4组描述符
13.5.5块位图
13.5.6EXT2文件系统inode结构
13.5.7Linux文件系统的控制
13.6Linux设备管理
13.6.1Linux设备管理概述
13.6.2Linux I/O子系统的设计
13.6.3Linux的字符设备管理
13.6.4Linux的块设备管理
13.6.5缓冲区与buffer结构
本章小结
习题
参考文献
前言/序言
前言
首先要衷心感谢广大读者的厚爱和支持,本书出版二十几年来,已印刷二十多次,发行数十万册。广大读者把他们积累的经验和体会无私地贡献给我们,为本书的改进和提高做出了贡献,在此向广大读者表示深深的敬意和感谢。
此次修订出版的第4版以经典操作系统基本原理和概念为框架和基线,以密切反映现代操作系统技术的新发展和新特征为重点。因为几十年来,操作系统经历着日新月异的变化,尽管现代操作系统以多线程、微内核、SMP多处理器系统、客户/服务器模式和分布式、网络系统为特征,但操作系统的基本原理和概念不但没有什么变化,而且更趋成熟,它依然是操作系统的基本骨架。在此基础上,多线程机制、微内核与客户/服务器模式、分布式系统等仍是当前发展的热点,本书通过在专门章节中加以研讨,或者将其融合在全书之中加以介绍。
本书目录中画有*号部分,授课教师可以根据教学计划进行变动,并鼓励读者通过自学(课内学时有限)来掌握它。本书内容阐述深入浅出,适合自学。
本书以现代操作系统的典型系统Windows NT、UNIX和Linux系统作为全书的范例,并将近代UNIX系统(如Solaris等)的先进技术和机制分散到各章中作为该章的典型范例来使用,以收到与全书内容紧密结合的效果,便于读者领会和理解该章所述的内容。Windows NT和Linux作为一个系统范例自成一章,便于读者从系统整体角度来认识和理解一个操作系统。建议读者在阅读各章时也参考Windows NT和Linux的相关内容。
本书第9章、第10章、第12章由屠立德老师编写,第5章、第7章、第8章、第11章由金雪云老师编写,其他部分由王丹老师编写。屠立德教授负责全书的审阅、校核和定稿。由于时间仓促以及作者水平所限,错误和不妥之处在所难免,恳请读者批评指正。
作者2014年6月
操作系统基础(第4版) 电子书 下载 mobi epub pdf txt