El IPC es un mecanismo brindado por el SO para que dos o más procesos se puedan comunicar y sincronizarse, ya sea a través de un pasaje de mensajes o compartiendo una región de memoria. Para ello el so debe brindar funciones especificas para su uso.
En el caso de los threads, como comparten la memoria y los recursos del proceso al cual estan asignados, no es necesario que el SO brinde un IPC ya que se pueden sincronizar mediante los threads.
*Ahora, si los threads estan asignados a procesos distintos y estos necesitan comunicarse, se hace mediante el IPC?
*Cuando se habla de IPC siempre se habla de comunicación entre procesos distintos, mientras que cuando se habla de sincronización de threads se habla de distintas áreas de un proceso que se están ejecutando en simultaneo?
*En cuanto a la sincronización hay diferencias entre los user-threads y los kernel-threads?