《现代操作系统》知识点目录
现代操作系统
第一章 引论
1.1 什么是操作系统
- p2 作为扩展机器的操作系统
- p3 作为资源管理者的操作系统
1.2 操作系统的历史
- 略
1.3 计算机硬件简介
- p12 处理器
- p14 存储器
- p15 磁盘
- p16 I/O设备
- p18 总线
- p19 启动计算机
1.4 操作系统大观园
- 略
1.5 操作系统概念
- p22 进程
- p22 地址空间
- p22 进程表
- p22 进程间通信
- p23 警告信号
- p23 UID
- p23 地址空间
- p23 文件
- p23 目录
- p24 根目录和工作目录
- p24 文件描述符
- p25 特殊文件
- p25 输入输出
- p25 保护
- p25 shell
1.6 系统调用
- p28 操作系统的两种功能
- p28 read系统调用
- p29 TRAP指令
- p30 常用的POSIX系统调用
- p31 用于进程管理的系统调用
- p31 fork系统调用
- p31 进程标识符
- p31 waitpid系统调用
- p31 execve系统调用
- p32 UNIX进程的存储空间划分:正文段、数据段和堆栈段
- p32 用于文件管理的系统调用
- p32 lseek调用
- p32 用于目录管理的系统调用
- p32 mkdir和rmdir系统调用
- p32 link系统调用
- p33 i-编号和i-节点
- p33 mount系统调用
第二章 进程与线程
2.1 进程
-
p48 进程模型
- p48 进程的概念
- p48 多道程序设计
-
p49 进程的创建
- p49 四种导致进程创建的主要事件
- p50 守护进程
- p50 fork系统调用
- p50 写时复制机制
-
p51 进程的终止
- p51 导致进程终止的条件
-
p51 进程的层次结构
- p51 进程组
-
p51 进程的状态
-
p52 进程的三种状态:运行态、就绪态、阻塞态
-
p52 操作系统最底层是调度程序
-
-
p53 进程的实现
- p53 进程表
- p53 中断向量
- p53 中断发生后操作系统底层的工作步骤
-
p54 多道程序设计模型
- p54 CPU利用率
2.2 线程
- p54 线程的使用
- p54 使用多线程的理由
- p56 高速缓存
- p56 使用分派程序和工作线程的Web服务器设计
- p57 有限状态机
- p57 经典的线程模型
- p57 线程的概念
- p59 每个线程有自己的堆栈
- p60 POSIX线程
- p60 在用户空间中实现线程
- p61 运行时系统是一个管理线程的过程的集合
- p61 线程表
- p62 包装器
- p63 在内核中实现线程
- p63 混合实现
- p64 调度程序激活机制
- p64 上行调用
- p65 弹出式线程
- p66 使单线程代码多线程化
2.3 进程间通信
- p67 竞争条件
- p68 临界区
- p68 互斥
- p68 临界区
- p68 忙等待的互斥
- p68 屏蔽中断
- p68 锁变量
- p69 严格轮换法
- p69 忙等待和自旋锁
- p69 Peterson解法
- p70 TSL指令
- p71 测试并加锁
- p71 睡眠与唤醒
- p72 优先级反转问题
- p72 生产者-消费者问题
- p73 唤醒等待位
- p73 信号量
- p73 用信号量解决生产者-消费者问题
- p74 二元信号量
- p74 用信号量实现同步
- p74 互斥量
- p76 快速用户去互斥量futex
- p76 pthread中的互斥量
- p76 条件变量
- p78 管程
- p78 死锁
- p78 管程的概念
- p81 消息传递
- p81 消息传递系统的设计要点
- p81 用消息传递解决生产者-消费者问题
- p82 屏障
- p83 避免锁:读-复制-更新
- p84 读端临界区
- p84 宽限期
2.4 调度
-
p84 调度简介
-
p85 进程切换会使内存高速缓存失效
-
p85 进程行为
-
p85 I/O活动
- p86 计算密集型和I/O密集型应用
-
p86 何时调度
- p86 非抢占式调度算法和抢占式调度算法
-
p86 调度算法分类
-
p87 调度算法的目标
- p87 吞吐量
- p87 周转时间
- p87 CPU利用率
- p87 最小响应时间
- p87 均衡性
-
-
p88 批处理系统中的调度
- p88 先来先服务
- p88 最短作业优先
- p89 最短剩余时间优先
-
p89 交互式系统中的调度
- p89 轮转调度
- p89 时间片
- p89 优先级调度
- p90 多极队列
- p91 最短进程优先
- p91 保证调度
- p91 彩票调度
- p92 公平分享调度
- p89 轮转调度
-
p92 实时系统中的调度
- p92 实时系统
- p92 硬实时和软实时
- p92 周期性时间
- p92 可调度系统
-
p93 策略和机制
-
p93 调度机制和调度策略分离
-
p93 线程调度
-
2.5 经典的IPC问题
- p94 哲学家就餐问题
- p94 饥饿
- p96 读者-写者问题
2.6 有关进程与线程的研究
第三章 内存管理
- p102 存储管理器
3.1 无存储器抽象
3.2 一种存储器抽象:地址空间
- p104 把物理地址暴露给进程的问题
- p104 地址空间的概念
- p104 地址空间
- 基址寄存器和界限寄存器
- p106 交换技术
- p106 处理内存超载的通用常用方法:交换和虚拟内存
- p106 内存紧缩
- p107 空闲内存管理
- p107 使用位图的存储管理
- p108 使用链表的存储管理
- p108 首次适配算法
- p108 最佳适配算法
- p108 最差适配算法
- p109 快速适配算法
3.3 虚拟内存
- p109 虚拟内存的基本思想
- p110 分页
- p110 虚拟地址和虚拟地址空间
- p110 内存管理单元MMU
- p110 页框
- p111 缺页中断和缺页错误
- p111 页表
- p112 页表
- p112 页表项的结构
- p112 加速分页过程
- p112 分页系统的两个主要问题
- p113 转换检测缓冲区TLB
- p114 软件TLB管理
- p114 TLB软失效和硬失效
- p114 针对大内存的页表
- p114 多级页表
- p116 倒排页表
3.4 页面置换算法
- p117 最优页面置换算法
- p118 最近未使用页面置换算法
- p118 先进先出页面置换算法
- p118 第二次机会页面置换算法
- p119 时钟页面置换算法
- p119 最近最少使用页面置换算法
- p120 用软件模拟LRU
- p120 最不常用算法NFU
- p120 老化算法
- p121 工作集页面置换算法
- p121 请求调页
- p121 局部性访问
- p121 工作集
- p121 颠簸
- p121 工作集模型和预先调页
- p122 当前实际运行时间
- p122 生存时间
- p123 工作集时钟页面置换算法WSClock
- p124 页面置换算法小结
3.5 分页系统中的设计问题
- p124 局部分配策略与全局分配策略
- p125 局部页面置换算法和全局页面置换算法
- p125 缺页中断率算法PFF
- p125 缺页中断率随着分配的页面增加而降低
- p126 对于工作集算法和WSClock算法,只有局部策略有意义
- p126 负载控制
- p126 减少竞争内存地进程数的一个好方法是将一部分进程交换到磁盘
- p126 页面大小
- p126 内部碎片
- p127 分离的指令空间和数据空间
- p127 I空间和D空间
- p128 共享页面
- p128 写时复制
- p128 共享库
- p129 未定义外部函数
- p130 位置无关代码
- p130 内存映射文件
- p130 清楚策略
- p130 分页守护进程
- p130 虚拟内存接口
- p130 分布式共享内存
3.6 有关实现的问题
- p131 与分页有关的工作
- p131 缺页中断处理
- p131 缺页中断发生时的时间顺序
- p132 指令备份
- p132 锁定内存中的页面
- p132 钉住页面
- p132 I/O写内存时页面恰被移出的问题
- p133 后备存储
- p134 策略和机制的分离
- p134 控制系统复杂度的一种重要方法是策略和机制的分离
3.7 分段
- p135 段
- p136 分页和分段的比较
- p136 纯分段的实现
- p136 棋盘形碎片或外部碎片
第四章 文件系统
- p147 长期存储信息的三个基本要求
- p147 文件和文件系统
4.1 文件
- p148 文件命名
- p149 文件结构
- p149 三种文件结构:字节序列、记录序列和树
- p149 文件类型
- p150 字符特殊文件和块特殊文件
- p150 目录
- p150 普通文件分为ASCⅡ文件和二进制文件
- p150 魔数
- p151 文件访问
- p151 顺序访问
- p151 随机访问文件
- p151 文件属性
- p151 一些常用的文件属性
- p152 文件操作
- p152 使用文件系统调用的一个示例程序
4.2 目录
- p154 一级目录系统
- p154 层次目录系统
- p154 路径名
- p154 绝对路径名
- p155 相对路径名
- p155 工作目录
- p156 目录操作
4.3 文件系统的实现
- p157 文件系统布局
- p157 主引导记录
- p157 分区表
- p157 引导块
- p157 超级块
- p157 文件的实现
- p157 连续分配
- p159 链表分配
- p159 采用内存中的表进行链表分配
- p159 文件分配表
- p160 i节点
- p160 目录实现
- p161 在何处存放文件属性
- p161 在目录中处理长文件名的两种方法:在行中、在堆中
- p162 加快文件查找速度的方法是在每个目录中使用散列表
- p162 共享文件
- p162 链接
- p162 符号链接
- p163 日志结构文件系统
- p164 日志文件系统
- p165 幂等的
- p165 原子事务
- p165 虚拟文件系统
- p165 POSIX接口
- p166 VFS接口
4.4 文件系统管理和优化
- p167 磁盘空间管理
- p167 块大小
- p168 数据率和空间利用率
- p169 记录空闲块
- p170 磁盘配额
- p170 打开文件表
- p170 配额记录
- p170 磁盘配额文件
- p167 块大小
- p171 文件系统备份
- p171 增量转储
- p172 物理转储和逻辑转储
- p173 逻辑转储算法执行的四个阶段
- p174 从转储磁带上恢复文件系统
- p174 不应该被转储的文件(特殊文件、命名管道等等)
- p174 文件系统的一致性
- p174 两种一致性检查:块的和文件的
- p174 块丢失
- p174 块重复
- p175 文件系统校验程序检查目录系统
- p176 文件系统性能
- p176 高速缓存
- p176 缓冲区高速缓存数据结构
- p177 系统调用sync
- p177 通写高速缓存
- p177 块提前读
- p177 减少磁盘臂运动
- p177 不用块而用连续块簇来跟踪磁盘存储区
- p178 在磁盘中部而不是开始处存放i节点
- p178 将磁盘分成多个柱面组
- p176 高速缓存
- p178 磁盘碎片整理
第五章 输入/输出
5.1 I/O硬件原理
- p189 I/O设备
- p189 块设备和字符设备
- p190 设备控制器(适配器)
- p190 磁盘输出的实际是串行的比特流
- p190 前导符和错误矫正码
- p190 内存映射I/O
- p190 CPU如何与设备的控制寄存器和数据缓冲区进行通信
- p190 I/O端口和I/O端口空间
- p191 内存映射I/O
- p192 直接存储器存取
- p192 直接存储器存取
- p193 使用DMA的过程
- p193 总线能以两种模式操作:每次一字和块模式
- p194 周期窃取
- p194 突发模式
- p194 飞越模式
- p194 为什么需要内部缓冲区
- p194 重温中断
- p194 硬件层面的中断工作
- p195 中断向量
- p195 大多数CPU在堆栈中保存信息
- p196 精准中断和不精准中断
5.2 I/O软件原理
- p196 I/O软件的目标
- p196 设备独立性
- p197 统一命名
- p197 错误处理
- p197 同步和异步传输
- p197 缓冲
- p197 共享设备和独占设备
- p197 程序控制I/O
- p198 轮询(忙等待)
- p198 中断驱动I/O
- p199 使用DMA的I/O
5.3 I/O软件层次
-
p199 I/O软件系统的层次
-
p199 中断处理程序
- p200 中断处理程序执行步骤
-
p200 设备驱动程序
- p201 设备驱动程序的若干功能
- p202 驱动程序必须是重入的
-
p202 与设备无关的I/O软件
- p202 设备驱动程序的统一接口
- p203 设备驱动程序特殊文件的i节点包含了主设备号和次设备号
- p202 缓冲
- p202 缓冲设计方案
- p204 双缓冲
- p204 循环缓冲区
- p205 错误报告
- p205 分配与释放专用设备
- p205 与设备无关的块大小
- p202 设备驱动程序的统一接口
-
p205 用户空间的I/O软件
- p206 守护进程
- p206 I/O系统的层次以及每一层的主要功能
5.4 盘
- p206 盘硬件
- p207 磁盘
- p207 重叠寻道
- p207 磁盘
第五章后面部分暂时省略
第六章 死锁
6.1 资源
- p245 需要排他使用的对象称为资源
- p245 可抢占资源和不可抢占资源
- p245 可抢占资源
- p246 不可抢占资源
- p248 资源获取
6.2 死锁简介
- p249 死锁的规范定义
- p249 资源死锁的条件
- p249 死锁的四个必要条件:互斥、占有和等待、不可抢占、环路等待
- p249 死锁建模
- p251 四种处理死锁的策略:忽略、检测并恢复、仔细对资源分配、破坏死锁四个必要条件之一
6.3 鸵鸟算法
6.4 死锁检测和死锁恢复
- p252 每种类型一个资源的死锁检测
- p252 一个检测有环图的简单算法
- p253 每种类型多个资源的死锁检测
- p254 死锁检测算法
- p254 从死锁中恢复
- p254 利用抢占恢复
- p255 利用回滚恢复
- p255 通过杀死进程恢复
2.5 死锁避免
- p255 资源轨迹图