Un multiprocesador puede verse como un
computador paralelo compuesto por varios procesadores interconectados que
comparten un mismo sistema de memoria.
Los sistemas multiprocesadores son
arquitecturas MIMD con memoria compartida. Tienen un único espacio de
direcciones para todos los procesadores y los mecanismos de comunicación se
basan en el paso de mensajes desde el punto de vista del programador.
Dado que los multiprocesadores
comparten diferentes módulos de memoria, pudiendo acceder a un mismo módulo
varios procesadores, a los multiprocesadores también se les llama sistemas de
memoria compartida.
Dependiendo de la forma en que los
procesadores comparten la memoria, se clasifican en sistemas multiprocesador
UMA, NUMA y COMA.
Multiproceso es tradicionalmente
conocido como el uso de múltiples procesos concurrentes en un sistema en lugar
de un único proceso en un instante determinado. Como la multitarea que permite
a múltiples procesos compartir una única CPU, múltiples CPUs pueden ser
utilizados para ejecutar múltiples hilos dentro de un único proceso.
El multiproceso para tareas generales
es, a menudo, bastante difícil de conseguir debido a que puede haber varios
programas manejando datos internos (conocido como estado o contexto) a la vez.
Los programas típicamente se escriben
asumiendo que sus datos son incorruptibles. Sin embargo, si otra copia del
programa se ejecuta en otro procesador, las dos copias pueden interferir entre
sí intentando ambas leer o escribir su estado al mismo tiempo.
Para evitar este problema se usa una variedad de técnicas de programación incluyendo semáforos y otras comprobaciones y bloqueos que permiten a una sola copia del programa cambiar de forma exclusiva ciertos valores.
Para evitar este problema se usa una variedad de técnicas de programación incluyendo semáforos y otras comprobaciones y bloqueos que permiten a una sola copia del programa cambiar de forma exclusiva ciertos valores.
Multitarea: Permite a múltiples procesos compartir una
única CPU, múltiples CPUs pueden ser utilizados para ejecutar múltiples hilos
dentro de un único proceso.
4.3.1
Redes De Interconexión Dinámicas O Indirectas.
Uno de los criterios más importantes
para la clasificación de las redes es el que tiene en cuenta la situación de la
red en la máquina paralela, dando lugar a dos familias de redes: redes
estáticas y redes dinámicas. Una red estática es una red cuya topología queda
definida de manera definitiva y estable durante la construcción de la máquina
paralela.
La red simplemente une los diversos elementos de acuerdo a una configuración dada. Se utiliza sobre todo en el caso de los multicomputadores para conectar los diversos procesadores que posee la máquina. Por la red sólo circulan los mensajes entre procesadores, por lo que se dice que la red presenta un acoplamiento débil. En general, en las redes estáticas se exige poca carga a la red.
La red simplemente une los diversos elementos de acuerdo a una configuración dada. Se utiliza sobre todo en el caso de los multicomputadores para conectar los diversos procesadores que posee la máquina. Por la red sólo circulan los mensajes entre procesadores, por lo que se dice que la red presenta un acoplamiento débil. En general, en las redes estáticas se exige poca carga a la red.
Una red dinámica es una red cuya
topología puede variar durante el curso de la ejecución de un programa paralelo
o entre dos ejecuciones de programas. La red está constituida por elementos
materiales específicos, llamados commutadores o switches.
Las redes dinámicas se utilizan sobre
todo en los multiprocesadores. En este caso, la red une los procesadores a los
bancos de memoria central. Cualquier acceso de un procesador a la memoria (bien
sea para acceder a los datos o a las instrucciones) debe pasar a través de la
red, por lo se dice que la red tiene un acoplamiento fuerte. La red debe poseer
un rendimiento extremadamente bueno para no demorar demasiado a los
procesadores que acceden a memoria.
4.3.1.1
Redes De Medio Compartido.
En el ejemplo del subapartado anterior
sólo había un emisor y un receptor unidos por una fibra óptica. En el mundo de
las comunicaciones, y de las redes de computadores en particular, el medio que
se utiliza para comunicarse suele estar compartido. Con una serie de ejemplos
iremos viendo diferentes maneras de compartir el medio.
En el caso de la televisión o la radio,
existen diferentes canales y emisoras que están compartiendo el medio. A fin de
que no haya problemas, hay una regulación del espectro radioeléctrico: se tiene
cuidado de que cada uno de los canales tenga asignada una frecuencia determinada
y que no haya más de un canal usando la misma frecuencia. Este sistema se llama
multiplexación por división de frecuencia y no sólo se utiliza en la radio y la
televisión.
Por ejemplo, los sistemas de línea de
abonado digital asimétrica (ADSL) utilizan este sistema para conectar la red de
computadores de casa a Internet. Como se puede ver en la figura siguiente, por
el cable telefónico circulan tres tipos de información, cada uno por su
frecuencia asignada: la voz de las llamadas telefónicas, la información digital
que viene de Internet (bajada) y la información digital que nosotros enviamos a
Internet (subida).
Si lo que se está compartiendo es una
fibra óptica, se tiende a realizar una multiplexación por división del tiempo.
Supongamos que una misma fibra está siendo utilizada por cuatro comunicaciones.
En ese caso, la fibra estará disponible durante un instante determinado de
tiempo para la comunicación número 1; el siguiente instante de tiempo lo estará
para la comunicación 2 y así sucesivamente. Una vez haya acabado la
comunicación número 4, la fibra volverá a estar disponible para la comunicación
1.
Otro método de compartición del acceso
en el medio se basa en la distribución de éste por parte de un dispositivo
maestro. Por ejemplo, en la tecnología Bluetooth, los dispositivos próximos
forman una red llamada piconet. En cada piconet se elige un dispositivo maestro
que va preguntando a los demás dispositivos (que hacen las funciones de
esclavo) quién debe utilizar el medio. En el caso de que alguien lo necesite,
lo tendrá disponible durante cierto tiempo.
4.3.1.2
Redes Conmutadas.
Cuando se va a enviar datos a
largas distancias (e incluso a no tan largas), este debe pasar por varios nodos
intermedios. Los cuáles son los encargados de dirigir los datos para que
lleguen a su destino. Por lo cual se hace uso de lo que es una red
conmutada. ya que estas Consisten en un conjunto de nodos interconectados
entre sí, a través de medios de transmisión , formando así la mayoría de
las veces una topología mallada, donde la información se traslada encaminándola
del nodo de origen al nodo destino mediante conmutación entre nodos
intermedios.
Una transmisión de este tipo tiene 3 fases:
-Establecimiento de la conexión.
-Transferencia de la información.
-Liberación de la conexión.
Así mismo podemos decir que Se entiende
por conmutación en un nodo, a la conexión física o lógica, de un camino de
entrada al nodo con un camino de salida del nodo, con el fin de transferir la
información.
En pocas palabras se puede decir que
una red conmutada es aquella que permite la comunicación de nodo a nodo a
través de su conexión, para facilitar el traslado de información.
4.3.2
Coherencia De Caché.
La coherencia de cache hace referencia
a la integridad de los datos almacenados en las caches locales de los recursos
compartidos. La coherencia de la cache es un caso especial de la coherencia de
memoria.
Múltiples caches con recursos comunes.
Cuando los clientes de un sistema, en
particular las CPUs en un multiprocesador, mantienen caches de una memoria
compartida, los conflictos crecen. Haciendo referencia al dibujo, si el cliente
de arriba tiene una copia de un bloque de memoria de una lectura previa y el
cliente de abajo cambia ese bloque, el cliente de arriba podría estar
trabajando con datos erróneos, sin tener conocimiento de ello. La coherencia de
la cache intenta administrar estos conflictos y mantener consistencia entre las
caches y la memoria.
Mecanismos para la coherencia de la
cache.
Los protocolos basados en directorio
mantienen un directorio centralizado de los bloques que hay en las caches. Se
utilizan tanto en multiprocesadores con memoria físicamente distribuida, como
en sistemas con memoria centralizada con red escalable. Estos protocolos de
mantenimiento de coherencia reducen el tráfico en la red enviando
selectivamente órdenes sólo a aquellas caches que disponen de una copia válida
del bloque implicado en la operación de memoria.
El protocolo Snoopy hace que las caches
individualmente monitoreen las líneas (buses) de direcciones de accesos a
memoria con respecto a los bloques que han copiado. Cuando una operación de
escritura es observada sobre una dirección de un bloque del cual tiene un
bloque, el controlador de cache invalida su copia. También es posible que el
controlador de cache observe la dirección y el dato correspondiente a esa
dirección, intentando así actualizar su copia cuando alguien modifica dicho
bloque en la memoria principal.
El protocolo de memoria distribuida
imita a los anteriores en un intento de mantener la consistencia entre bloques
de memoria en sistemas con débil acoplamiento.
Modelos de coherencia.
Varios modelos y protocolos han sido
desarrollados para mantener la coherencia de la cache, tales como protocolo
MSI, protocolo MESI, protocolo MOSI y el protocolo MOESI. La elección de un
modelo de consistencia es crucial a la hora de diseñar un sistema de cache
coherente. Los modelos de coherencia difieren en rendimiento y escalabilidad,
por lo que deben ser evaluados para cada sistema diseñado.
Además, las transiciones entre estados
en una implementación en concreto de estos protocolos pueden variar. Por
ejemplo una implementación puede elegir diferentes transiciones para actualizar
y actualiza tales como actualización-en-lectura, actualización-en-escritura,
invalidación-en-lectura, o invalidación-en-escritura. La elección de una
transición puede afectar a la cantidad de tráfico entre caches, lo que a su vez
podría afectar al ancho de banda disponible por las caches para la operación
actual. Esto debe ser tenido en consideración en el diseño de software
distribuido que podría causar problemas de contención entre caches de múltiples
procesadores.
Kumpulan gambar ayam sabung live di Situs agen judi sabung ayam Online nomor satu di indonesia :
ResponderBorrarSilahkan Hubungi Kontrak resmi BOLAVITA
Untuk info selengkapnya :
WeChat: BOLAVITA
Line : cs_bolavita
WA : +62812-2222-995
BBm : BOLAVITA
HOLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
ResponderBorrar