STM32 / Ders 11

Mutex ve Priority Inheritance Laboratuvari

Bu demo, paylasilan bir kaynagi tutan dusuk oncelikli gorev, ayni kaynagi isteyen yuksek oncelikli gorev ve araya giren orta oncelikli gorev arasindaki gerilimi sayisal olarak gorunur kilar. Ayni senaryoda kilitsiz kaosu, PI'siz beklemeyi ve mutex + PI toparlanmasini ayni zaman cizelgesi uzerinden karsilastir.

Senaryo Kontrolleri

LowTask kaynagi once alir; HighTask sonra ister; MediumTask bir tick sonra uyanir.

Varsayim: HighTask kaynagi aldiginda 2 tick is yapar. Sorunu buyuten sey genellikle HighTask'in hesap yuku degil; kilidi tutan LowTask'in araya giren MediumTask yuzunden ilerleyememesidir.

0 tick HighTask baslangic gecikmesi
0 tick Inversion penceresi
0 tick Kilitsiz carpismali tick
0 tick LowTask boost suresi
t0 Kaynak serbest kalma ani
0 Context switch sayisi

Scheduler Teshisi

Mutex + PI
LowTask / base priority 1 MediumTask / base priority 2 HighTask / base priority 3 Kaynak: ortak tampon / I2C bus / log buffer

Zaman Cizelgesi

CPU, task durumlari ve kaynagin sahipligi her tick icin gorunur.
LowTask veya kaynak sahibi Low MediumTask calisiyor HighTask veya kaynak sahibi High Ready ama sirada bekliyor Kilitte bloke Kilitsiz race/corruption riski

Olay Gunlugu

Ayni senaryonun dogrudan okunabilir ozeti

    Mini Quiz

    Priority inheritance ne yapar?

    Dogru secenegi tiklayip scheduler mantigini bir cümlede toparla.