In un'applicazione linux sto usando pipe per passare informazioni tra thread.sono tubi posix leggeri?
L'idea alla base dell'utilizzo dei tubi è che posso attendere più tubi contemporaneamente utilizzando il polling (2). Funziona bene nella pratica e le mie discussioni dormono la maggior parte del tempo. Si svegliano solo se c'è qualcosa da fare.
Nello spazio utente le pipe hanno lo stesso aspetto di due handle di file. Ora mi chiedo quante risorse usano queste pipe sul lato del sistema operativo.
Btw: Nella mia applicazione invio solo singoli byte ogni ora e poi. Pensa ai miei tubi come a semplici code di messaggi che mi consentono di riattivare i thread riceventi, dire loro di inviare alcuni dati di stato o di terminare.
Posix specifica l'interfaccia del tubo, non l'implementazione, da cui proviene il "peso". –
Quanti canali? Quanti messaggi al secondo? Centinaia? Milioni? Realizza un semplice prototipo utilizzando diverse tecnologie (qualsiasi cosa, dalle code dei messaggi IPC alle pipe ai socket UNIX ecc.) E confronta. –