Este documento describe diferentes modelos de programación para sistemas distribuidos, incluyendo el modelo de datos, procesos, comunicación, sincronización y entrada/salida. También discute las ventajas e inconvenientes de la memoria compartida frente a la memoria distribuida.