第1章操作系统概述
1.1操作系统是什么
1.1.1你所用过的操作系统
1.1.2操作系统是什么与做什么
1.1.3操作系统的规模、数量与重要性
1.2操作系统大致如何工作
1.2.1操作系统的第一个工作:负责所有用户程序的启动和结束
——程序的5种启动方式和两种结束方式
1.2.2操作系统的第二个工作:用户程序中对操作系统的调用
——系统调用和中断
1.2.3操作系统的第三个工作: 为常用的基本操作提供现成的实用程序
1.2.4操作系统的第四个工作: 解决效率和安全问题——并发技术等
1.3从各种角度看操作系统
1.3.1操作系统的结构
1.3.2操作系统的接口(使用方式)
1.3.3操作系统的工作过程
1.3.4操作系统的特点
1.3.5操作系统的类型
1.3.6操作系统的各种别名、比方和观点
1.4操作系统发展简史
1.4.1操作系统出现以前的计算机使用方式
1.4.2操作系统的第一个发展阶段: 单任务自动批处理
1.4.3操作系统的第二个发展阶段: 多任务和多方式
1.4.4操作系统的第三个发展阶段: 软件工程和小型化
1.4.5操作系统的第四个发展阶段: 开放系统和并行分布
1.4.6操作系统发展现状和展望
1.4.7操作系统发展历史小结
1.5目前最常用的操作系统
1.5.1Microsoft公司的操作系统产品:Windows系列及MS DOS
1.5.2UNIX大家庭: SVR4,Solaris,HPUX,SCO UNIX,BSD,AIX等
1.5.3自由软件中的操作系统:Linux,freeBSD,BeOS…
1.5.4IBM公司的操作系统产品:AIX,OS/390,OS/2,OS/400,
PCDOS7和PCDOS 2000
1.6本章小结
习题
第2章处理机管理
2.1处理机管理概述
2.2进程模型
2.2.1进程三态的转换过程分析
2.2.2进程模型实现
2.2.3专题:CPU调度算法
2.3CPU管理实例分析(1): UNIX早期版本的CPU管理(进程模型)
2.3.1UNIX下如何建立进程和在一个程序中启动另一个程序
2.3.2UNIX的进程层次和初启过程
2.3.3UNIX进程模型的基本结构和工作过程
2.4CPU管理实例分析(2): Linux CPU管理(进程模型)
2.5线程模型
2.5.1线程概念
2.5.2线程的作用和必要性
2.5.3线程的实现:线程包内容、用户态线程、核心态线程
2.6处理机管理实例分析(3): Solaris(UNIX)的进程模型和线程模型
2.6.1用户态线程、LWP、核心线程的区别和关系以及为什么同时需要它们
2.6.2Solaris线程模型的设计目标和实现机制总瞰
2.6.3SVR4和SVR4.2MP的进程和线程模型概述
2.7处理机管理实例分析(4):Windows NT的进程和线程模型
习题
第3章主存管理
3.1主存管理概述
3.1.1内存的定义、作用和计算机存储层次
3.1.2主存硬件接口使用特性:微观角度(指令级)和宏观角度(程序级)
3.1.3用户程序对内存的使用要求
3.1.4内存管理的功能和任务
3.2连续模式(1):操作系统出现前的内存无管理模式
3.2.1概述
3.2.2覆盖技术
3.2.3动态装入
3.3连续模式(2):单一分区模式
3.3.1概述和基本实现机制
3.3.2交换技术的作用和实现
3.3.3单一分区模式的总结和评价
3.4 连续模式(3): 固定分区模式
3.5连续模式(4): 可变分区模式
351本模式的内外基本工作过程
352策略选择(算法与数据结构)
353本模式评价改善与实际系统采用情况
354多对基寄存器
3.6不连续模式(1): 页模式(paging)
3.6.1实存页模式的基本工作过程与结构
3.6.2虚存页模式的基本工作过程与结构
3.6.3虚存概念和作用
3.6.4页模式实现策略专题讨论(1):进程页表的实现——快表、
页表页和页目录
3.6.5页模式实现策略专题讨论(2): 大而稀疏内存使用
3.6.6页模式实现策略专题讨论(3): 页分配策略、写时复制和页长确定
3.6.7页模式实现策略专题讨论(4): 页淘汰策略、工作集理论和颠簸
3.6.8专题讨论(5): 动态连接共享库
3.6.9页模式评价和实际系统采用情况
3.7不连续模式(2): 段模式
3.7.1引言:用户内存观点和段的划分模式
3.7.2模式定义、基本工作过程与结构
3.7.3实现中的一些策略
3.7.4段模式的评价与实际系统采用情况
3.8不连续模式(3): 段页模式
3.9主存管理实例分析(1): Windows NT的主存管理
3.9.1内部实现
3.9.2用户界面
3.10主存管理实例分析(2): Linux内存管理
3.11主存管理概念模型: 四空间概念
习题
第4章外存管理和文件系统
4.1外存管理和文件系统概述
4.1.1外存硬件接口使用特性
4.1.2用户对外存的使用要求
4.1.3文件系统的界面高度和工作任务
4.2文件系统用户界面
4.2.1文件
4.2.2目录(树)和链接
4.2.3文件子系统级的用户界面
4.3文件的实现
4.3.1连续分配背景下的讨论
4.3.2不连续分配背景下的讨论
4.4目录的实现
4.4.1用目录文件方法来实现目录树结构
4.4.2设备目录与文件目录的分离
4.4.3链接的内部实现
4.5文件子系统的实现
4.5.1文件子系统的实现机制总述
4.5.2UNIX ss 的文件子系统的实现机制(单类型
文件子系统)
4.5.3Linux(和SVR4、Solaris)的文件子系统的实现机制
(多类型文件子系统)
454本节小结
4.6文件系统性能实现机制
4.6.1物理地址与存取单位的优化
4.6.2文件打开与关闭技术
4.6.3文件共享
4.6.4当前目录结构和名字快速缓存
4.6.5内存缓冲区与缓冲池
4.6.6磁臂调度技术
4.6.7其他技术概述
4.6.8文件系统的安全性和可靠性
4.7文件系统实例分析
4.7.1DOS文件系统——FAT文件系统
4.7.2UNIX s5文件系统
4.7.3UNIX BSD文件系统——FFS和UFS
4.7.4Linux文件系统
4.7.5Windows NT文件系统
4.8本章总结和有关文件系统模型
习题
第5章设备管理
5.1设备管理概述
5.1.1计算机外部设备的定义与分类
5.1.2外部设备硬件接口特性
5.1.3用户对设备的使用要求
5.1.4操作系统设备管理功能的任务
5.2UNIX设备I/O用户界面和内部实现
5.2.1用户界面
5.2.2内部实现过程与结构
5.3DOS I/O实例分析
5.4操作系统设备管理功能界面和实现原理综述
5.4.1用户界面综述
5.4.2内部结构与过程综述
5.4.3速度匹配技术专题讨论(1): 设备完成技术、同步和异步I/O操作
5.4.4速度匹配技术专题讨论(2): 缓冲技术
5.4.5设备分配与共享技术专题讨论: 独占、共享和虚拟设备
5.4.6速度匹配技术专题讨论(3): 联机、脱机和假脱机操作
5.4.7非编程I/O技术专题讨论: DMA、通道等
5.4.8操作系统设备管理功能与其他功能间的关系
5.5设备驱动程序
5.5.1设备驱动程序及其与核心间的接口(标准)
5.5.2驱动程序例析: 显示器、键盘、打印机驱动程序
5.6Windows NT设备管理实例分析
5.7Linux设备管理实例分析
5.8本章小结
习题
第6章进程通信
6.1背景
6.2临界区问题
621两进程的解决方法
622多个进程的解决方法
6.3同步硬件
6.4信号量
641用法
642实现
643死锁和饥饿
6.5经典的进程协同问题
651有界缓冲区问题
652读写问题
653哲学家用餐问题
6.6进程间的通信
661命名方式
662缓冲
663异常条件
6.7小结
习题
第7章现代操作系统:网络、分布式和并行操作系统
7.1目标
711分布式系统与集中式系统相比所具有的优点
712分布式系统与许多独立的PC相比所具有的优点
713分布式系统的缺点
7.2硬件概念
721分类
722总线型多处理机
723开关型多处理机
724总线型多计算机
725开关型多计算机
7.3软件概念
731网络操作系统和NFS
732真正的分布式系统
733多处理机分时系统
7.4实现策略
741透明性
742灵活性
743可靠性
744性能
745伸缩性
7.5分布式文件系统
751文件服务接口
752目录服务接口
753文件共享的语义
7.6Mach概述
761Mach的历史
762Mach的目标
763Mach的微内核
764Mach上的BSD UNIX服务器
7.7小结
习题
第8章操作系统的性能与设计
8.1性能
8.1.1性能和性能指标总述
8.1.2可扩充性、可移植性和兼容性
8.1.3安全性
8.1.4可靠性和RAS技术
8.2操作系统结构设计
8.2.1单体模型
8.2.2层次模型
8.2.3客户/服务器模型与微核结构
8.2.4策略与机制的分离
8.2.5面向对象方法和模型
8.2.6面向对象技术的实例分析:NT的面向对象模型的实现
8.3操作系统的用户界面设计
习题
参考文献
