Domanda troppo approssimativa!
Pipe, socket, memoria condivisa, sono tutti sistemi validi. Ogn'uno ha specifici utilizzi, pero'.
Ma anche RMI, JXTA, JINI (Java), Web Services (valido per qualunque piattaforma e qualunque linguaggio), COM+/DCOM (Microsoft), CORBA (implementato in C/C++), .. almeno i primi che mi vengono in mente
Dipende da che cosa devono fare i due sistemi.
Gli interrupt sono l'ultima scelta: non siamo piu' ai tempi del DOS. Ora accedere a servizi cosi' interni del SO e' decisamente complicato.