L'esecuzione di programmi nei processi è specifica del sistema operativo. L'unico modo standard per farlo è utilizzando il sistema che probabilmente non è adatto. Potresti utilizzare alcuni framework C ++ (come POCO o Qt o forse Boost ) che fornisce un'interfaccia simile ed è multipiattaforma.
BTW, senza più contesto e dominio dell'applicazione, la tua domanda è troppo generica . La neurochirurgia robotica, i sistemi di chat web, le competizioni di scacchi, il trading ad alta frequenza, ecc ... potrebbero tutti necessitare di un simile approccio, ma hanno diversi vincoli e richiedono approcci diversi
Supponi che il tuo sistema operativo sia Linux o POSIX (i dettagli contano).
Quello che vuoi fare è simile a una shell Unix specializzata. Devi avere familiarità con chiamate di sistema relative a loro. Quindi leggi qualcosa sulla programmazione di Linux, ad es. ALP o qualcosa di più recente.
Su Linux, creando un nuovo processo (con fork (2) ) e eseguire un programma in esso (con execve (2) ) è in genere abbastanza veloce (a pochi millisecondi), ma non così tanto (l'avvio di una dozzina di programmi e processi ogni secondo è ragionevole, a partire da migliaia di loro potrebbero non esserlo). Ovviamente, devi capire altre chiamate di sistema, ad es. wait (2) , pipe (2) , dup2 (2) , sondaggio (2) ecc. .
Potresti usare diversi pipe (7) -s e avere alcuni ciclo degli eventi intorno a sondaggio (2) per gestirli.
Potresti anche organizzare il tuo sistema con diversi programmi di più lunga durata usando qualche tipo di passaggio di messaggi con il tuo monitor. Esamina le tecniche RPC (forse JSONRPC )
Potresti definire un client-server modello (magari usando HTTP per questo, ad es. con librerie HTTP client come libcurl e server come libonion ). Potresti anche definire la tua applicazione protocollo basato su testo , ma assicurati di documentarla in modo preciso protocolli come SMTP , MQTT per l'ispirazione). Studia anche biblioteche come 0mq o MPI .