Etkileşimli STM32 Mutex ve Priority Inheritance#
Bu laboratuvar, `priority inversion` sorununu yalnizca bir RTOS terimi olarak degil; `LowTask`, `MediumTask` ve `HighTask` arasinda gercekten hissedilen bir scheduler gerilimi olarak gorunur kilar. Hedef, "neden binary semaphore yetmedi, neden mutex gerekebilir?" sorusunu zaman cizelgesi, gecikme metrikleri ve kilit davranisi uzerinden sezgisel hale getirmektir.
Bu Derste Ne Oturmali?#
Binary semaphore, karsilikli dislama icin bazen kullanilsa dapriority inheritancesaglamaz; paylasilan kaynak korumasi icinmutexgenellikle daha dogru secimdir.Yuksek oncelikli task, kaynagi dusuk oncelikli task tutarken bloke olursa; orta oncelikli task araya girip kilidin birakilmasini daha da geciktirebilir. Bu klasik
priority inversionpaternidir.Priority inheritance, kilidi tutan dusuk oncelikli task’in efektif onceligini gecici olarak yukselterek mutex’in daha hizli birakilmasina yardim eder.Cozum sadece “RTOS kullan” degil; kritik bolumu kisa tutmak, dogru primitive secmek ve paylasilan kaynagi acikca modellemektir.
Not
Bu laboratuvarin sonraki dogal adimi tickless idle + RTC olur; onun ardindan event groups + software timers, CAN, USB CDC ya da RTOS + DMA entegrasyonu gelebilir.