跳到正文

操作系统公式与规则速查

公式表

调度、同步、死锁、虚存、文件、I/O、虚拟化和性能的条件化速查。

关联:全课程

符号说明

q=时间片;s=切换开销;f=串行比例;p=缺页率;N=X·R;WAF=介质写入/主机写入

使用前提

完成对应章节的状态推演和至少一次可运行实验。

适用范围

用于计算、实验设计和复盘;不得脱离题设单位、初态、事件顺序与系统假设机械套用。

操作系统公式与规则速查

符号 含义 使用前检查
时间片 是否包含切换开销
串行比例 测量范围与工作负载是否一致
缺页率 普通访问和缺页服务是否同单位
Little定律 是否处在稳定观察窗
写放大 主机写入与介质写入观察窗是否一致

调度

  • 周转时间 = 完成时刻 − 到达时刻。
  • 等待时间 = 周转时间 − 实际CPU服务时间;有多段I/O时要按题设确认是否扣除。
  • 响应时间 = 第一次得到CPU的时刻 − 到达时刻。
  • 带权周转 = 周转时间 / 服务时间,服务时间必须大于0。
  • RR有效处理比例可近似为 q/(q+s),q为时间片、s为切换开销;只在连续有任务的简化模型适用。
  • Amdahl加速:S(p)=1/(f+(1−f)/p),f为不可并行比例,p为并行单元数。

同步与死锁

  • 信号量许可守恒要按题设记录初值、成功P、阻塞P与V;不同唤醒语义不可混算。
  • 条件变量总在持锁检查谓词的while循环中等待;唤醒后重新竞争锁并重查。
  • 死锁四个必要条件:互斥、占有并等待、不可抢占、循环等待。
  • 银行家:Need=Max−Allocation;Work从Available开始,找Need≤Work者,完成后Work+=Allocation。
  • 单实例等待图存在有向环即检测到死锁;多实例不能只凭环下结论。

内存

  • 页内偏移位数 = log2(页大小/编址单位),虚拟页号为地址剩余高位。
  • 有效访问时间需按TLB命中、页表访问与缺页路径分别加权;TLB未命中不等于缺页。
  • 缺页率 p 的简化EAT=(1−p)×普通访问+p×缺页服务,单位必须一致。
  • FIFO可出现Belady异常;LRU属于栈算法,增加页框时驻留集合具包含性质。
  • 工作集总需求超过可用页框会诱发抖动;仅提高多道程序度通常会恶化。

文件与I/O

  • inode单级间接扇出 = 块大小/指针大小;多级容量按扇出的幂累加,再加直接块。
  • 磁盘访问时间可拆寻道、旋转、传输、控制器与排队;SSD不可直接套寻道模型。
  • 写放大WAF = 介质实际写入量/主机逻辑写入量,必须说明观察窗。
  • DMA减少逐字节CPU搬运,不消除映射、启动、缓存一致性和完成中断成本。
  • write成功通常表示进入内核缓存;持久化必须按文件、目录、日志与设备语义讨论。

性能与虚拟化

  • Little定律:平均在途N=吞吐X×平均响应R;系统须处于稳定观察窗,单位一致。
  • 利用率、饱和度、错误分别回答忙不忙、是否排队、是否失败;单个指标不能证明根因。
  • 分位数算法在小样本可能不同,报告必须固定定义;聚合分位数不能直接求平均。
  • 虚拟地址到宿主物理地址可能经过客户页表与二级页表,TLB缓存组合翻译。
  • 容器namespace隔离视图,cgroup计量和限制资源;容器共享宿主内核,不默认等同虚拟机隔离。

作答纪律

任何公式先写对象、单位、初态和适用条件,再代入,再做数量级和极端值反查。状态题逐事件写队列、表项和拥有者;并发题列具体交错;恢复题列崩溃点与稳定存储。只写算法名、最终数值或“系统自动处理”均不合格。