È meglio inizializzare i semafori nella memoria condivisa o darli come argomenti della riga di comando? (C ++)

0

Sono su un progetto per il quale devo generare molti processi diversi, tutti in diversi eseguibili, e ci saranno alcuni segmenti di memoria condivisa e alcuni semafori per sincronizzarli. Uso un processo di "inizializzazione" per aprire alcuni semafori POSIX e allocare alcuni segmenti di memoria condivisa.

Non riesco a decidere quale sia la migliore pratica; per inizializzare i semafori e caricarli sulla memoria condivisa in modo che tutti quelli che acconsentono alla memoria possano accedervi anch'essi o passarli come argomenti della riga di comando durante exec?

Non trovo nessuna opzione migliore dell'altra, eccetto che il primo potrebbe essere ridondante perché i semafori probabilmente non cambieranno mai (ID dei loro valori cambierà sicuramente molto) e accedendoli senza averne bisogno (per alcuni processi) non è utile, ma l'ho visto accadere, probabilmente per una ragione.

Quindi avrò bisogno di alcuni ragionamenti per ciascuno.

    
posta George Sp 04.12.2018 - 11:47
fonte

1 risposta

2

La procedura migliore è utilizzare le funzionalità offerte dalla piattaforma anziché eseguire il rollover.

Per i semafori tra i processi, puoi usare i nomi dei semafori (vedi la pagina man ) e una convenzione su come chiamare ogni semaforo. Quindi non è necessario un processo separato per inizializzare i semafori e in qualche modo comunicarli agli altri processi.

    
risposta data 04.12.2018 - 12:44
fonte

Leggi altre domande sui tag