RTOS 上下文切换通常需要保存哪些状态?
必须保存足以让任务恢复后像从未离开一样继续执行的寄存器状态,包括栈指针、被调用者保存寄存器和必要控制状态;异常硬件可能自动保存一部分,端口汇编保存剩余部分。FPU 状态可按需处理。
Question Bank
按知识、方向与难度筛选;每道题都有分层回答和工程追问。
必须保存足以让任务恢复后像从未离开一样继续执行的寄存器状态,包括栈指针、被调用者保存寄存器和必要控制状态;异常硬件可能自动保存一部分,端口汇编保存剩余部分。FPU 状态可按需处理。
优先级应由响应时间、截止期、周期和阻塞分析决定,而不是职位或模块名称。先识别硬实时链路和中断到任务路径,估算 WCET 与共享资源阻塞,再用压力测试和 Trace 验证。
在拷贝成本、对象生命周期、零拷贝、池耗尽和回收路径之间建立明确协议。
固定优先级 Rate Monotonic 通常让周期越短优先级越高,实现简单、可分析;EDF 动态让截止期最近任务优先,在理想单核模型下利用率上限更高,但实现、过载行为和资源共享分析更复杂。
多核任务可真正并行,关本核中断不能保护另一核访问;内核和应用需要跨核原子、Spinlock、IPI 和 Cache 一致性。任务迁移还会影响 Cache 热度、外设亲和性和时延可预测性。
Stream Buffer 传递无边界字节流,接收端自行分帧;Message Buffer 在内部保存每条消息长度,接收时保持消息边界。它们通常针对单写者单读者优化,多写/多读需额外串行化。