© Harry Broeders.
Bij het gebruik van semaphoren, mutexen en conditionele variabelen wordt gemeenschappelijk geheugen gebruikt om te synchroniseren. Het is ook mogelijk om met behulp van message passing te synchroniseren. De IEEE Std 1003.1 definieert voor dit doel zogenaamde message queues. Zie eventueel paragraaf 6.7 in het theorieboek. De relevante functies zijn:
mq_open
, |
mq_open
|
mq_close
, |
mq_close
|
mq_unlink
, |
mq_unlink
|
mq_send
, |
mq_send
|
mq_receive
, |
mq_receive
|
Opdracht 4.Vervang in het voorbeeld programma uit opdracht 2 (opdr2.c met makefile of opdr2.cpp met makefile) de synchronisatie met semaphoren door synchronisatie met messages. Welke prioriteit moet je aan de messages geven om het gedrag van het voorbeeldprogramma zo min mogelijk te veranderen. In de onderstaande figuur is een mogelijke oplossing met behulp van 2 message queues schematisch weergegeven: |