Semaphore sind globale Signalflags im System, mit denen sich gegenseitig ausschließende Ressourcen (Mutex-Ressourcen) festgelegt werden. Sie können sie dazu nutzen, bestimmte Prozesse warten zu lassen, bis andere abgeschlossen sind.
Verwenden Sie
, um verwendete Semaphore für Vorgänge anzuzeigen. Sie können Semaphore auch löschen. Dies kann erforderlich sein, wenn ein blockierter oder abgebrochener Vorgang das entsprechende Semaphor nicht freigibt.Nehmen Sie beispielsweise an, dass Sie über ein Programm verfügen, das einen Druckertreiber erstellt, und dass dieses Programm stets nur von einem einzigen Prozess genutzt werden soll. Richten Sie in jedem Projekt, das das Programm aufruft, drei Schritte mit den folgenden Befehlszeilen ein:
Schritt |
Befehlszeile |
---|---|
Semaphor abrufen |
|
Treiberersteller ausführen |
|
Semaphor freigeben |
|
Sie können Semaphore für zentrale Ressourcen in Ihrer Organisation erstellen, beispielsweise für einen stark ausgelasteten Server oder für ein Softwareprogramm mit einer Einzelbenutzerlizenz. Jeder Schritt, der die Ressource verwendet, die Sie schützen wollen, muss in die Befehle .semget und .semput eingeschlossen werden.
Semaphore unterliegen folgenden Regeln: