操作系统公式与规则速查
公式表调度、同步、死锁、虚存、文件、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计量和限制资源;容器共享宿主内核,不默认等同虚拟机隔离。
作答纪律
任何公式先写对象、单位、初态和适用条件,再代入,再做数量级和极端值反查。状态题逐事件写队列、表项和拥有者;并发题列具体交错;恢复题列崩溃点与稳定存储。只写算法名、最终数值或“系统自动处理”均不合格。