RTOS 与 FreeRTOS 任务调度
本文系统讲解 RTOS 与 FreeRTOS 任务调度,回答裸机前后台何时该换 RTOS、抢占式与时间片怎么配、队列与信号量怎么选、优先级反转怎么解、heap_1 到 heap_5 怎么挑、栈溢出怎么查等实战问题。覆盖硬实时与确定性、任务与 TCB、中断安全 API 与临界区、内存管理与周期抖动、CPU 占用统计,附两任务加队列加互斥量的可运行代码、原语对比表、权衡取舍与常见坑清单。
tag
本文系统讲解 RTOS 与 FreeRTOS 任务调度,回答裸机前后台何时该换 RTOS、抢占式与时间片怎么配、队列与信号量怎么选、优先级反转怎么解、heap_1 到 heap_5 怎么挑、栈溢出怎么查等实战问题。覆盖硬实时与确定性、任务与 TCB、中断安全 API 与临界区、内存管理与周期抖动、CPU 占用统计,附两任务加队列加互斥量的可运行代码、原语对比表、权衡取舍与常见坑清单。
上一节把并发开到最大,这一节给它装刹车。无限制的并发会打爆下游:模型 API 限流、数据库连接池耗尽。本节用 asyncio.Semaphore 做并发上限,用手写最小连接池做资源复用,讲清背压「生产快于消费时必须让上游慢下来」,真跑 200 个任务并发上限 10 打印峰值并发与总耗时,并给出按下游 QPS 反推并发上限的估算方法。
系统掌握并发与同步核心:竞态条件与临界区、原子性与可见性、互斥锁(synchronized/ReentrantLock/读写锁)、信号量与条件变量、自旋锁与乐观并发、内存模型与 volatile、无锁编程(CAS/ABA)、以及死锁/活锁/饥饿的成因与工程避免。
深入理解死锁的四个必要条件、预防与避免策略,掌握信号量、互斥锁、管程、条件变量等经典同步机制。