¿Cuál es la diferencia entre sistemas operativos distribuidos y sistemas operativos multiprocesador?


Respuesta 1:

Un sistema operativo distribuido se ejecuta en diferentes computadoras, básicamente, un clúster. Podría ejecutar Inferno en 10 Raspberry Pis, establecer la comunicación entre ellos usando Styx, y tendría un sistema distribuido, en el que podría alimentar trabajos, y esos trabajos se ejecutarían en uno de los Raspberry Pis.

Digamos, por ejemplo, que podría volcar 10,000,000 correos electrónicos en mi sistema, y ​​escribir un código para buscar en cada correo electrónico menciones de mi nombre (estoy paranoico así). Si mi sistema es demasiado lento, podría agregar 10 Raspberry Pis más. Si uno de ellos se rompe, no es gran cosa, todavía tengo 19 más.

El sistema operativo multiproceso es una computadora y, como dice Umang, se trata básicamente de compartir la memoria principal. Podría tener 16 procesadores en un servidor, y el servidor dividirá el trabajo lo mejor que pueda sobre esos procesadores. Puede hacerlo porque todos esos procesadores comparten memoria, por lo que si mi programa tiene 100 subprocesos en ejecución, no importa en qué procesador se ejecute cada subproceso, o si cambia el procesador después de 10 minutos, todos acceden a la misma memoria, por lo que esencialmente lo hace. No importa, cada procesador tiene la misma vista de memoria.

Contraste a un sistema distribuido, Raspberry Pi no. 7 no puede ver la memoria de Raspberry Pi no. 15, solo puede enviarle mensajes a través de la red.