操作系统lru算法_操作系统

940fe98f7afa13843ce80138c92fb6d5.png

操作系统

相关代码: https:// github.com/zhuzhenxxx/o step-code

介绍

第一部分 虚拟化

1.抽象:进程

  • 抽象:进程
  • 进程API
  • 进程创建:更多细节
  • 进程状态
  • 数据结构
  • 小结

2.插叙:进程API

  • fork()系统调用
  • wait()系统调用
  • exec()系统调用
  • 小结

3. 机制:受限直接执行

  • 基本技巧
  • 问题1:受限制的操作
  • 问题2:在进程间切换
  • 小结

4.进程调度

  • 调度指标
  • 先进先出(FIFO)
  • 最短任务优先(SJF)
  • 最短完成时间优先(STCF)
  • 新度量指标:响应时间
  • 轮转
  • 结合I/O
  • 无法预知
  • 小结

5.多级反馈队列

  • MLFQ:基本规则
  • 尝试1:如何改变优先级
  • 尝试2:提升优先级
  • 尝试3:更好的计时方式
  • MLFQ调优及其他问题
  • 小结

6.比例份额

  • 基本概念:彩票数表示份额
  • 彩票机制
  • 实现
  • 一个例子
  • 如何分配彩票
  • 为什么不是确定的
  • 小结

7.多处理器调度(高度)

  • 背景:多处理器架构
  • 别忘了同步
  • 最后一个问题:缓存亲和度
  • 单队列调度
  • 多队列调度
  • Linux多处理器调度
  • 小结

8.抽象:地址空间

  • 早起系统
  • 多道程序和时分共享
  • 地址空间
  • 目标
  • 小结

9.插叙:内存操作API

  • 内存类型
  • malloc()调用
  • free() 调用
  • 常见错误
  • 底层操作系统支持
  • 调用其他
  • 小结

10.机制:地址转换

  • 假设
  • 例子
  • 动态(基于硬件)重定位
  • 硬件支持:总结
  • 操作系统的问题
  • 小结

11.分段

  • 分段:泛化的基址/接线
  • 我们引用哪个段
  • 栈怎么办
  • 支持共享
  • 细粒度与粗粒度的分段
  • 操作系统支持
  • 小结

12.空闲空间管理

  • 假设
  • 底层机制
  • 基本策略
  • 其他方式
  • 小结

13.分页:介绍

  • 例子
  • 页表存在哪里
  • 页表中有什么
  • 分页也很慢
  • 内存追踪
  • 小结

14.分页:快速地址转换(TLB)

  • TLB的基本算法
  • 示例:访问数组
  • 谁来处理TLB未命中
  • TLB的内容
  • 上下文切换时对TLB的处理
  • TLB替换策略
  • 实际系统的TLB表项
  • 小结

15.分页:较小的表

  • 简单的解决方案:更大的页
  • 混合方法:分段和分页
  • 多级页表
  • 反向页表
  • 将页表交换到磁盘
  • 小结

16.超越物理内存:机制

  • 交换空间
  • 存在位
  • 页错误
  • 页存满了怎么办
  • 页错误处理流程
  • 交换何时真正发生
  • 小结

17.超越物理内存:策略

  • 缓存管理
  • 最优替换策略
  • 简单策略:FIFO
  • 另一简单策略:随机
  • 利用历史数据:LRU
  • 工作负载示例
  • 基于历史信息的算法
  • 近似LRU
  • 考虑脏页
  • 其他虚拟内存策略
  • 抖动
  • 小结

18.VAX/VMS虚拟内存系统

  • 背景
  • 内存管理硬件
  • 一个真实的地址空间
  • 也替换
  • 其他漂亮的虚拟内存技巧
  • 小结

并发

1.并发:介绍

  • 实例:线程创建
  • 为什么更糟糕:共享数据
  • 核心问题:不可控的调度
  • 原子性愿望
  • 等待另一个线程
  • 小结:操作系统为什么要研究并发
  • 小结

2.插叙:线程API

  • 线程创建
  • 线程完成
  • 条件变量
  • 编译和运行
  • 小结

3.锁

  • 锁的基本思想
  • Pthread锁
  • 实现一个锁
  • 评价锁
  • 控制中断
  • 测试并设置指令(原子交换)
  • 实现可用的自旋锁
  • 评价自旋锁
  • 比较并交换
  • 链接的加载和条件式存储指令
  • 获取并增加
  • 自旋过多怎么办
  • 简单方法:让我出来吧,宝贝
  • 使用队列:休眠替代自旋
  • 不同操作系统,不同实现
  • 两阶段锁
  • 小结

4.基于锁的并发数据结构

  • 并发计数器
  • 并发链表
  • 并发队列
  • 并发散列表
  • 小结

5.条件变量

  • 定义和程序
  • 生产者/消费者问题(有界缓冲区)
  • 覆盖条件
  • 小结

6.信号量

  • 信号量的定义
  • 二值信号量(锁)
  • 信号量作为条件变量
  • 生产者/消费者(有界缓冲区)
  • 读者-写者锁
  • 哲学家就餐问题
  • 如何实现信号量
  • 小结

7.常见并发问题

  • 有哪些类型的缺陷
  • 非死锁缺陷
  • 死锁缺陷
  • 小结

8.基于事件的并发(进阶)

  • 基本想法:事件循环
  • 重要API:select()、poll
  • 使用select
  • 为何更简单?无须锁
  • 一个问题:阻塞系统调用
  • 解决方案:异步I/O
  • 另一个问题:状态管理
  • 什么事情仍然很难
  • 小结

持久性

1.I/O设备

  • 系统架构
  • 标准设备
  • 标准协议
  • 利用中断建设CPU开销
  • 利用DMA进行更高效的数据传送
  • 设备交互的方法
  • 纳入操作系统:设备驱动程序
  • 案例研究:简单的IDE磁盘驱动程序
  • 历史记录
  • 小结

2.磁盘驱动器

  • 接口
  • 基本几何形状
  • 简单的磁盘驱动器
  • I/O时间:用数学
  • 磁盘调度
  • 小结

3.廉价冗余磁盘阵列(RAID)

  • 接口和RAID内部
  • 故障模型
  • 如何评估RAID
  • RAID 0级:条带化
  • RAID 1级:镜像
  • RAID 4级:通过奇偶校验节省空间
  • RAID 5级:旋转奇偶校验
  • 其他有趣的RAID问题
  • 小结

4.插叙:文件和目录

  • 文件和目录
  • 文件系统接口
  • 创建文件
  • 读写文件
  • 读取和写入,但不按顺序
  • 用fsync()立即写入
  • 文件重命名
  • 获取文件信息
  • 删除文件
  • 创建目录
  • 删除目录
  • 硬链接
  • 符号链接
  • 创建并挂载文件系统
  • 小结

5.文件系统的实现

  • 思考方式
  • 整体组织
  • 文件组织:inode
  • 目录组织
  • 空闲空间管理
  • 访问路径:读取和写入
  • 缓存和缓冲
  • 小结

6.局部性和快速文件系统

  • 问题:性能不佳
  • FFS:磁盘意识是解决方案
  • 组织结构:柱面组
  • 策略:如何分配文件和目录
  • 测量文件的局部性
  • 大文件例外
  • 关于FFS的其他几件事
  • 小结

7.崩溃一致性:FSCK和日志

  • 例子
  • 解决方案1.文件系统检查程序
  • 解决方案2.日志 或 预写日志
  • 解决方案3.其他方法
  • 小结

8.日志结构文件系统

  • 按顺序写入磁盘
  • 顺序而高效的写入
  • 要缓冲多少
  • 问题:查找inode
  • 通过间接解决方案:inode映射
  • 检查点区域
  • 从磁盘读取文件:回顾
  • 目录如何
  • 一个新问题:垃圾收集
  • 确定块的死活
  • 策略问题:要清理哪些块,何时清理
  • 崩溃恢复和日志
  • 小结

9.数据完整性和保护

  • 磁盘故障模式
  • 处理潜在的扇区错误
  • 检测讹误:校验和
  • 使用校验和
  • 一个新问题:错误的写入
  • 最后一个问题:丢失的写入
  • 擦净
  • 检验和的开学
  • 小结

10.分布式系统

  • 通信基础
  • 不可靠的通信层
  • 可靠的通信层
  • 通信抽象
  • 远程过程调用RPC
  • 小结

11.Sun的网络文件系统(NFS)

  • 基本的分布式文件系统
  • 交出NFS
  • 关注点:简单快速的服务器崩溃恢复
  • 快速崩溃恢复的关键:无状态
  • NFSv2协议
  • 从协议到分布式文件系统
  • 利用幂等操作处理服务器故障
  • 提高性能:客户端缓存
  • 缓存一致性问题
  • 评估NFS的缓存一致性
  • 服务器端写缓存的隐含意义
  • 小结

12.Andrew文件系统(AFS)

  • AFS版本1
  • 版本1的问题
  • 改进协议
  • AFS版本2
  • 缓存一致性
  • 崩溃恢复
  • AFSv2的性能扩展性和性能
  • 其他改进
  • 小结

实验

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值