Multicomputadoras

27
Multicomputadoras Parte 1

Transcript of Multicomputadoras

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!!