闭卷重建项目范围、不变量与事件模型的对象、状态、事件、不变量与一个失败反例。
操作系统与系统实验 · 小纸条
选一章打印。双面打印(按长边翻页)后沿虚线剪开,每张卡片正面题目、背面答案。
闭卷重建调度器与时钟中断模块的对象、状态、事件、不变量与一个失败反例。
闭卷重建阻塞I/O与同步模块的对象、状态、事件、不变量与一个失败反例。
闭卷重建虚拟内存与页替换模块的对象、状态、事件、不变量与一个失败反例。
闭卷重建文件与崩溃恢复模块的对象、状态、事件、不变量与一个失败反例。
闭卷重建端到端测试、观测与反查的对象、状态、事件、不变量与一个失败反例。
闭卷重建答辩:从现象解释到机制证据的对象、状态、事件、不变量与一个失败反例。
核心机制:事件循环推进到下一到达、时间片结束或I/O完成点,调度器只通过稳定接口读写就绪队列;实验入口:实现RR并记录每段运行、抢占和空闲,使用固定种子生成负载做回归;边界:不能每个时间单位蛮力循环冒充离散事件;同刻事件优先级需明确。
核心机制:综合项目先定义事件、状态和不可破坏的不变量,再决定模块与输入格式;实验入口:建立进程、页框、文件和设备请求四类对象,规定任一时刻CPU最多运行一个任务、已分配页框不重复;边界:模拟器不是现实内核复制品,必须公开抽象掉的硬件、时序与安全假设。
核心机制:每次内存引用先查驻留表,缺页触发替换和I/O阻塞,脏页增加写回事件;实验入口:把LRU接入事件循环,记录每进程缺页数、牺牲页和由缺页增加的墙钟时间;边界:只统计缺页次数不足以比较策略;写回成本和局部性也会改变总时间。
核心机制:任务发起I/O后离开CPU并进入设备队列,完成中断把它送回就绪;锁等待另有等待队列;实验入口:让两个任务竞争锁并交替发起磁盘请求,验证无任务同时持有同一互斥锁;边界:设备完成与锁释放同刻可能改变调度顺序,测试应固定并说明规则。
核心机制:每个项目结论必须能由输入负载、事件日志、断言和汇总指标复现;实验入口:准备正常、边界、竞态、资源耗尽和崩溃五套场景,输出甘特图、缺页、I/O和不变量检查;边界:只保存最终输出会丢失首个偏差;事件日志也要限制体积并避免泄露敏感输入。
核心机制:最小文件层维护目录项、inode、数据块与日志事务,崩溃后只重放已提交记录;实验入口:执行create、write、rename并在每个持久化点注入崩溃,验证旧或新版本二选一;边界:模型若没有写序与提交点,就不能声称实现了崩溃一致性。
核心机制:合格答辩现场运行未知测试,定位一个故障并说明模型与真实内核的差距;实验入口:从空环境启动模拟器,运行回归,故意破坏一个锁释放,再用首个不变量失败定位;边界:代码行数、界面美观和术语数量都不能替代可运行、可解释与可恢复证据。