Mutex a Semafor w RTOS?

0

Cześć,
Nie do końca rozumiem, jaka jest różnica pomiędzy mutex'em a semaforem. Do tej pory używałem tylko mutex, ów aby zabezpieczyć sekcje krytyczne. Np.

//Task 1
takeMutex(&mutex1);
criticalSection1();
giveMutex(&mutex1);

//Task 2
takeMutex(&mutex1);
criticalSection1();
giveMutex(&mutex1);

Jakie jest zastosowanie semaforów w RTOS'ach i systemach embedded.

1

Często podobne. W skrócie możesz myśleć o muteksie jako o specjalnym przypadku semafora, tj. takim, który trzyma informację kto go zajął oraz ma stan zajęty/wolny, podczas gdy semafor może być zajmowany wielokrotnie.

1

Do tego co napisał @alagner, dodałbym, że w przypadku mutexa-tylko właściciel zwalnia założoną blokadę, zaś w przypadku semafora "każdy" może zwiększyć/zmniejszyć wartość.

0

Jest jakiś przykład gdzie mógłbym lub gdzie muszę użyć semafora zamiast mutexu'a w RTOS, najlepiej na przykładzie małych systemów embedded np. STM32 pracujący pod kontrolą FreeRTOS?

1 użytkowników online, w tym zalogowanych: 0, gości: 1