Multicomputadoras 
Parte 1
Multicomputadoras 
Expositor Julio Adalberto Gómez
Multicomputadores 
CPU con acoplamiento fuerte que no comparten memoria. 
Todas las CPUs comparten una memoria común. Los procesos pueden escribir mensajes en la memoria, para que después otros procesos los lean. La sincronización se puede realizar mediante el uso de mutexes, semáforos, monitores y otras técnicas.
multicomputadores 
•Contratiempo 
•Posible soluciones 
•Construcción 
•Objetivo
Organización de hardware
Tecnología de interconexión: 
•topología de estrella. 
•Anillo 
•rejilla o malla (diseño bidimensional) 
•Una variante de la malla es el doble toroide
Esquemas de conmutación 
•Paquetes 
Almacenamiento de conmutación de paquetes y retransmisión 
•conmutación de circuitos 
•Interfaces de red:
Muchas tarjetas de interfaz contienen una CPU completa, posiblemente además de uno o más canales de DMA. A estas CPUs se les conoce como procesadores de red y se están haciendo cada vez más potentes
Hardware de una multicomputadora
El nodo básico de una multicomputadora consiste en: 
•Una CPU 
•La memoria RAM 
•Una interfaz de red y 
•algunas veces un disco duro
Software de comunicación de bajo nivel 
EXPOSITOR LUIS TIU
Software de comunicación de bajo nivel: 
The Enemy el enemigo es el copiado de paquetes en exceso. 
En el mejor de los casos: 
•Copia RAMo – NICo 
•Copia NICo – NICd 
•Copia NICd - RAMd
Software de comunicación de bajo nivel: 
En el peor de los casos: 
•La NIC se asigna al espacio de direcciones virtuales del kernel y no al espacio del usuario. 
○El kernel no sabe dónde colocar los paquetes nuevos. 
○Podría copiar todos los paquetes como medida de respaldo. 
○Solo puede enviar un paquete a la vez. 
•
Software de comunicación de bajo nivel: 
•Solución se signan las NIC’s al espacio de direcciones del usuario, no involucra al kernel y coloca directamente en la NIC. 
○1er. Problema: Si el sistema asigna el acceso de la NIC a un solo proceso y no a los demás? 
○2do. Problema: Qué pasa si A tiene asignada la NIC en su espacio de direcciones y llega B quien es ajeno? no se compartirán los recursos entre sí (teoría de hilos).
Software de comunicación de bajo nivel: 
○1era. Solución: Asignar la NIC a todos los procesos que la necesiten. 
○3er. Problema: Qué pasa si la NIC del host esta compartida virtualmente? 
○2da. Solución: Implementar una segunda NIC en el host para virtualización.
Software de comunicación de bajo nivel: 
Otras soluciones: 
○3ra. Solución: utilizar el chip de DMA para copiar los paquetes de la RAM.(Problema, el chip utiliza solo direcciones físicas y no virtuales) 
○4ta. Solución no hacer llamadas al S.O para asignar direcciones físicas a las virtuales, únicamente hacer llamadas para marcar y desmarcar paginas en la memoria, indicando que no se pueden paginar temporalmente. Para los pequeños genera una sobrecarga.
Cómo se comunican los procesos en distintas CPU’s en una multi computadora?
Cómo se comunican los procesos en distintas CPU’s en una multi computadora? 
Se envían mensajes entre sí, en su forma más simple. 
El servicio de comunicación se podría minimizar a dos llamadas: 
•send(dest, &mptr); dest = destino 
•receive(direc, &mptr); mptr = *message
Pero como se manejan las direcciones en múltiples CPU’s? 
El addr puede ser compuesto por dos partes: 
•No. De CPU 
•No. De proceso o de puerto en la CPU remota.
Comparación entre llamadas con bloqueo y sin bloqueo (Comunicación a nivel de usuario)
Comparación entre llamadas con bloqueo y sin bloqueo (Comunicación da nivel de usuario) 
Las llamadas send y receive son síncronas o llamadas con bloqueo. 
Se bloquea el proceso emisor para la instrucción siguiente. 
Una alternativa sería el uso de llamadas sin bloqueo, a las que se les conoce como llamadas asíncronas
Ejemplo de llamada sin bloqueo 
Por ejemplo el procedimiento send sin bloqueo, devuelve de inmediato el control al proceso que hizo la llamada, antes de enviar el mensaje.
Consecuencias de llamadas asincronas 
•El emisor no puede modificar el búfer del mensaje sino hasta que se haya enviado el mensaje. 
•Es horrible contemplar las consecuencias de una sobre escritura del mensaje durante la transmisión. 
•El proceso emisor no tiene idea de cuando terminara la transmisión.
La mejor solución para llamadas asíncronas 
5ta. Solución: 
La llegada del mensaje provoca la creación de un hilo emergente en el espacio de direcciones del proceso receptor. Este hilo ejecutará un proceso cuyo parámetro será un apuntador al mensaje anterior, luego se destruirá automáticamente cuando se termine el envío.
6ta. Solución: 
Es una variante de la anterior es ejecutar el código del receptor directamente en el manejador de interrupciones y cada mensaje llevará la dirección del manejador, pero para esto debe existir confianza entre emisores y receptores.
Ventajas: 
•Mensajes activos = No se necesita copia, la recepción es directa desde la NIC hacia el manejador. 
•Facilita crear un hilo emergente
Gracias por su atencion!!

Multicomputadoras

  • 1.
  • 2.
  • 3.
    Multicomputadores CPU conacoplamiento fuerte que no comparten memoria. Todas las CPUs comparten una memoria común. Los procesos pueden escribir mensajes en la memoria, para que después otros procesos los lean. La sincronización se puede realizar mediante el uso de mutexes, semáforos, monitores y otras técnicas.
  • 4.
    multicomputadores •Contratiempo •Posiblesoluciones •Construcción •Objetivo
  • 5.
  • 6.
    Tecnología de interconexión: •topología de estrella. •Anillo •rejilla o malla (diseño bidimensional) •Una variante de la malla es el doble toroide
  • 7.
    Esquemas de conmutación •Paquetes Almacenamiento de conmutación de paquetes y retransmisión •conmutación de circuitos •Interfaces de red:
  • 8.
    Muchas tarjetas deinterfaz contienen una CPU completa, posiblemente además de uno o más canales de DMA. A estas CPUs se les conoce como procesadores de red y se están haciendo cada vez más potentes
  • 9.
    Hardware de unamulticomputadora
  • 10.
    El nodo básicode una multicomputadora consiste en: •Una CPU •La memoria RAM •Una interfaz de red y •algunas veces un disco duro
  • 11.
    Software de comunicaciónde bajo nivel EXPOSITOR LUIS TIU
  • 12.
    Software de comunicaciónde bajo nivel: The Enemy el enemigo es el copiado de paquetes en exceso. En el mejor de los casos: •Copia RAMo – NICo •Copia NICo – NICd •Copia NICd - RAMd
  • 13.
    Software de comunicaciónde bajo nivel: En el peor de los casos: •La NIC se asigna al espacio de direcciones virtuales del kernel y no al espacio del usuario. ○El kernel no sabe dónde colocar los paquetes nuevos. ○Podría copiar todos los paquetes como medida de respaldo. ○Solo puede enviar un paquete a la vez. •
  • 14.
    Software de comunicaciónde bajo nivel: •Solución se signan las NIC’s al espacio de direcciones del usuario, no involucra al kernel y coloca directamente en la NIC. ○1er. Problema: Si el sistema asigna el acceso de la NIC a un solo proceso y no a los demás? ○2do. Problema: Qué pasa si A tiene asignada la NIC en su espacio de direcciones y llega B quien es ajeno? no se compartirán los recursos entre sí (teoría de hilos).
  • 15.
    Software de comunicaciónde bajo nivel: ○1era. Solución: Asignar la NIC a todos los procesos que la necesiten. ○3er. Problema: Qué pasa si la NIC del host esta compartida virtualmente? ○2da. Solución: Implementar una segunda NIC en el host para virtualización.
  • 16.
    Software de comunicaciónde bajo nivel: Otras soluciones: ○3ra. Solución: utilizar el chip de DMA para copiar los paquetes de la RAM.(Problema, el chip utiliza solo direcciones físicas y no virtuales) ○4ta. Solución no hacer llamadas al S.O para asignar direcciones físicas a las virtuales, únicamente hacer llamadas para marcar y desmarcar paginas en la memoria, indicando que no se pueden paginar temporalmente. Para los pequeños genera una sobrecarga.
  • 17.
    Cómo se comunicanlos procesos en distintas CPU’s en una multi computadora?
  • 18.
    Cómo se comunicanlos procesos en distintas CPU’s en una multi computadora? Se envían mensajes entre sí, en su forma más simple. El servicio de comunicación se podría minimizar a dos llamadas: •send(dest, &mptr); dest = destino •receive(direc, &mptr); mptr = *message
  • 19.
    Pero como semanejan las direcciones en múltiples CPU’s? El addr puede ser compuesto por dos partes: •No. De CPU •No. De proceso o de puerto en la CPU remota.
  • 20.
    Comparación entre llamadascon bloqueo y sin bloqueo (Comunicación a nivel de usuario)
  • 21.
    Comparación entre llamadascon bloqueo y sin bloqueo (Comunicación da nivel de usuario) Las llamadas send y receive son síncronas o llamadas con bloqueo. Se bloquea el proceso emisor para la instrucción siguiente. Una alternativa sería el uso de llamadas sin bloqueo, a las que se les conoce como llamadas asíncronas
  • 22.
    Ejemplo de llamadasin bloqueo Por ejemplo el procedimiento send sin bloqueo, devuelve de inmediato el control al proceso que hizo la llamada, antes de enviar el mensaje.
  • 23.
    Consecuencias de llamadasasincronas •El emisor no puede modificar el búfer del mensaje sino hasta que se haya enviado el mensaje. •Es horrible contemplar las consecuencias de una sobre escritura del mensaje durante la transmisión. •El proceso emisor no tiene idea de cuando terminara la transmisión.
  • 24.
    La mejor soluciónpara llamadas asíncronas 5ta. Solución: La llegada del mensaje provoca la creación de un hilo emergente en el espacio de direcciones del proceso receptor. Este hilo ejecutará un proceso cuyo parámetro será un apuntador al mensaje anterior, luego se destruirá automáticamente cuando se termine el envío.
  • 25.
    6ta. Solución: Esuna variante de la anterior es ejecutar el código del receptor directamente en el manejador de interrupciones y cada mensaje llevará la dirección del manejador, pero para esto debe existir confianza entre emisores y receptores.
  • 26.
    Ventajas: •Mensajes activos= No se necesita copia, la recepción es directa desde la NIC hacia el manejador. •Facilita crear un hilo emergente
  • 27.
    Gracias por suatencion!!