FreeRTOS Resource Management Mutual Exclusion
Beberapa hal yang perlu manajemen resource Akses Periferal Read Modify Write Operation Akses secara non atomik ke variable Fungsi reentrant
Akses Periferal oleh 2 task Task A menulis ke LCD “Hello World” Task B pre emptive Task A setelah “Hello W” Task B menulis “Abort Retry Fail” Task A melanjutkan menulis “orld” Hasil akhir “Hello WAbort Retry Failorld”
Read, Modify, Write Task A membaca isi GlobalVar ke register Task B pre empt Task B update isi GlobalVar kemudian block Task A melanjutkan OR dan STR
Contoh Fungsi Reentrant
Contoh Fungsi Non Reentrant
Critical Section dengan disable interrupt
Contoh Software dengan critical section
Critical Section Dengan disable scheduler
Mutex (1)
Mutex (2)
Print String dengan semaphore
Task memanggil print string
Main function
Output
Kemungkinan Urutan Eksekusi (Priority Inversion)
Priority Inversion
Priority Inheritance