View
277
Download
5
Category
Preview:
Citation preview
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Ciencias Exactas Ingeniería y Tecnología | Ingeniería en Telemática
Ingeniería en Telemática
Programa de la asignatura:
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Clave:
210930830
Universidad Abierta y a Distancia de México
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Ciencias Exactas Ingeniería y Tecnología |Ingeniería en Telemática 1
Índice
Unidad 2. Multiprocesamiento ............................................................................................ 2
Presentación de la unidad ................................................................................................. 2
Propósitos .......................................................................................................................... 5
Competencia específica ..................................................................................................... 5
2.1. Tipos de multiprocesamiento ...................................................................................... 6
2.1.1. Simétrico ......................................................................................................... 12
2.1.2. Asimétrico ....................................................................................................... 18
Actividad 1. Multiprocesos básicos .................................................................................. 20
2.2. Procesamiento paralelo ............................................................................................ 21
2.2.1. Aspectos básicos ............................................................................................ 23
2.2.2. Tipos de computación paralela ....................................................................... 26
2.2.3. Taxonomía de Flynn ....................................................................................... 30
Actividad 2. Tipos de multiprocesos ................................................................................. 33
2.3. Sistemas de memoria compartida ............................................................................. 34
2.3.1. Introducción a los sistemas de memoria compartida ....................................... 35
2.3.2. Redes de interconexión dinámicas.................................................................. 36
Actividad 3. Ventajas y desventajas de los tipos de multiprocesamiento.......................... 40
2.4. Sistemas de memoria distribuida .............................................................................. 40
2.4.1. Introducción a los sistemas de memoria distribuida ........................................ 41
2.4.2. Clúster ............................................................................................................ 42
Actividad 4. Aplicación de los multiprocesos .................................................................... 44
Autoevaluación ................................................................................................................ 45
Evidencia de aprendizaje. Multiprocesamiento ................................................................ 45
Autorreflexiones ............................................................................................................... 46
Cierre de la unidad .......................................................................................................... 47
Para saber más ............................................................................................................... 48
Fuentes de consulta ........................................................................................................ 48
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Ciencias Exactas Ingeniería y Tecnología |Ingeniería en Telemática 2
Unidad 2. Multiprocesamiento
Presentación de la unidad
Una de las tendencias en los últimos años, dentro del desarrollo de todo tipo de sistemas
computacionales, es el diseño e implementación de arquitecturas internas, y
específicamente, de microprocesadores que brinden un mejor rendimiento mediante el
uso de varios procesadores. Este tipo de sistemas de multiprocesamiento se utiliza en
diversos ámbitos, como en el de las supercomputadoras (computadoras de alto
rendimiento, con especificaciones con una alta exigencia en procesamiento y de costos
muy elevados, con el objetivo de reducir tiempos) y en los de altas prestaciones (llamados
así porque poseen características técnicas muy superiores a los convencionales), así
como en otros tipos de dispositivos. Su implementación abarca desde computadoras
personales de escritorio y consolas de videojuego, hasta reproductores multimedia y otros
sistemas empotrados, como las tabletas, que en modelos recientes utilizan un circuito
integrado PP5021C-TDF con dos procesadores ARM, funcionando a 80Mhz (Huerta,
2009).
CI PP5021C-TDF
Conforme se ha desarrollado la tecnología en microprocesadores ha sido común
encontrar sistemas complejos, compuestos por multitud de elementos en un único circuito
integrado (CI). Este tipo de sistemas se conoce como SOC (por sus siglas en inglés,
System On a Chip); sistemas que antes se fabricaban utilizando varios chips, ahora se
producen en un CI (Huerta, 2009).
Aunado a lo anterior, en años recientes, muchos de los procesadores orientados a los
dispositivos móviles pertenecen a los ya mencionados SOC y poseen una arquitectura
que responde a la miniaturización, que además implica que los chips incluyan otros
componentes de hardware del sistema, como memoria, conectores, puertos de
comunicación y tarjeta gráfica.
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Ciencias Exactas Ingeniería y Tecnología |Ingeniería en Telemática 3
En este rubro existen dos grandes divisiones en las arquitecturas para los
microprocesadores de teléfonos móviles: la x86, liderada por Intel, y la arquitectura ARM,
presente en los microprocesadores fabricados por Apple, Samsung, Nvidia o Qualcomm.
Por mencionar un ejemplo de la evolución de los microprocesadores, y mejor aún, de la
tarea de multiprocesamiento, en el caso de Intel, la reciente arquitectura, denominada
Silvermont, incluye transistores de 22 nanómetros (millonésima parte de un centímetro).
La primera generación de éstos tuvo 45 nanómetros y la segunda 32; al mismo tiempo,
los transistores del microprocesador tienen una estructura tridimensional. Esto presume
una novedad en la fabricación de transistores de los microprocesadores de la gama Intel
Atom, ya que hasta este momento habían sido planos (Delgado, 2013).
En esta unidad examinarás cómo se ejecutan las instrucciones dentro de un microprocesador. Con la intención de familiarizarte con lo que aquí va a exponerse, es recomendable que consultes la siguiente liga, ahí encontrarás un video que también te puede servir como una visión general para esta unidad: https://www.youtube.com/watch?v=_qmArlrYSsg
A lo largo de esta unidad encontraras términos cuyo significado no conozcas, pero que
probablemente hayas escuchado; una de las intenciones será disipar las dudas que
tengas en ese aspecto.
Además de definir el multiprocesamiento, es importante explicar cómo se lleva a cabo
este proceso, así como sus distintos tipos, y por supuesto, su evolución. Estudiarás tanto
el flujo de datos, como el flujo de instrucciones; además detectarás la importancia que
tienen en la ejecución de tareas dentro de los equipos o dispositivos electrónicos.
De igual forma, identificarás las ventajas y desventajas que se presentan de manera
general dentro del multiprocesamiento; también podrás reconocer los Sistemas de
Memoria Compartida y distribuida, cuya función consiste en compartir la memoria para la
realización de procesos.
Finalmente, como apoyo a esta presentación, en el siguiente mapa se han organizado, de
manera breve, conceptos que representan los rasgos esenciales a estudiar, así como sus
ventajas, desventajas, características, tipos de sistemas de memoria, tipos de
multiprocesamiento y algunos ejemplos.
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Ciencias Exactas Ingeniería y Tecnología |Ingeniería en Telemática 4
Multiprocesamiento
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Ciencias Exactas Ingeniería y Tecnología |Ingeniería en Telemática 5
Propósitos
Al término de esta unidad lograrás:
Distinguir los tipos de multiprocesos que se dan en un microprocesador.
Diferenciar entre los procesamientos simétricos, asimétricos y paralelos.
Identificar los sistemas de memoria compartida y distribuida.
Analizar las ventajas y desventajas del multiprocesamiento, tomando en cuenta las especificaciones de un microcontrolador y distinguiendo bajo qué condiciones se usaría un microprocesador.
Competencia específica
Clasificar los microprocesadores para distinguir las diferentes formas en las que se lleva a cabo el multiprocesamiento en los microprocesadores, identificando las propiedades de cada componente.
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Ciencias Exactas Ingeniería y Tecnología |Ingeniería en Telemática 6
2.1. Tipos de multiprocesamiento
El multiprocesamiento es un conjunto de elementos organizados y relacionados,
interactuantes entre sí, para lograr un mismo objetivo; indudablemente, esto hace
referencia a un sistema. En esencia, consiste en usar más de un procesador (o bien una
serie de computadoras con CPU o procesadores independientes). Estos sistemas
progresan en importancia tecnológica, ya que permiten incrementar la cantidad de
procesos a ejecutar con respecto a los sistemas de monoprocesamiento, que son
aquéllos donde sólo hay una CPU capaz de ejecutar un conjunto de instrucciones de
propósito general, incluyendo las de procesos de usuario, así como su importancia
económica, ya que esto se ve reflejado al momento de realizar algún proceso, o ejecutar
algún tipo de aplicación en los dispositivos, lo cual genera menores costos de espera.
Multiprocesamiento
De acuerdo con UDG, (2013), el multiprocesamiento posee tres ventajas principales:
1. Incrementan el rendimiento. Por incrementarse el número de procesadores, se
incrementa la cantidad de trabajo en un tiempo menor.
2. Economía de escala. El costo de estos sistemas es menor que el de
monoprocesamiento, gracias a que ellos pueden compartir periféricos,
almacenamiento y suministro de energía. Por ejemplo, si varios programas operan
sobre el mismo conjunto de datos, es más barato almacenar éstos en un disco y
hacer que todos los procesadores los compartan, que tener muchas computadoras
con discos locales y muchas copias de los datos.
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Ciencias Exactas Ingeniería y Tecnología |Ingeniería en Telemática 7
3. Mayor fiabilidad. Las funciones pueden ser distribuidas al tener más de un
procesador, ya que al ocurrir un fallo, el sistema no se detiene, sino que se hace
más lento.
La mayoría de las computadoras supervisoras se diseñan específicamente para dar
soporte a múltiples procesadores. Éstas incluyen un bus de altas prestaciones, decenas
de MB para memoria con corrección de errores, sistemas de disco redundantes,
arquitecturas avanzadas de sistemas que reducen los cuellos de botella, utilidades
redundantes y múltiples fuentes de alimentación.
Diseños
Existen dos diseños de sistemas multiprocesadores:
Simétricos. Comparten los recursos del sistema, como la entrada salida de
memoria y disco. En ellos se distribuye uniformemente la carga de trabajo a los
procesadores disponibles, de modo que uno no esté inactivo mientras otro tiene
exceso de trabajo con una tarea específica.
Asimétrico. Diferentes microprocesadores gobiernan las distintas tareas y
recursos del sistema. El enfoque principal que adoptan es el incremento de
rendimiento del sistema para múltiples usuarios de red en variados segmentos de
red de área local.
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Ciencias Exactas Ingeniería y Tecnología |Ingeniería en Telemática 8
Tipos de multiprocesamiento. Tomada de http://cdcp.dyndns.org/tesis/img5.png
¿Qué es el multiproceso?
Tradicionalmente, el multiproceso es conocido como el uso de múltiples procesos,
concurrentes en un sistema, en lugar de uno en un instante determinado. El multiproceso
para tareas generales es a menudo bastante difícil de conseguir debido a que puede
haber varios programas manejando datos internos (lo que se conoce como estado o
contexto) en un mismo tiempo.
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Ciencias Exactas Ingeniería y Tecnología |Ingeniería en Telemática 9
Multiproceso. Tomado de http://1.bp.blogspot.com/-zRJZYmaJiXU/US525JqApzI/AAAAAAAAAF4/mu5RrOUrWww/s1600/SMP_00.png
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Ciencias Exactas Ingeniería y Tecnología |Ingeniería en Telemática 10
¿Qué es multitarea?
Multitarea . Tomada de http://wwwbmxkazy.blogspot.mx/2012/01/unidad-3-administracion-del-procesador.html
De acuerdo con Alegsa (2012), multitarea es
una “característica de un sistema operativo
que permite ejecutar varios procesos al mismo
tiempo, usando uno o más
microprocesadores”. Proporcionalmente, en
informática como en otros ámbitos sociales, se
llama multitarea a la capacidad o característica
de realizar varias funciones al mismo tiempo.
Hace unas pocas décadas esto no existía,
ahora, dada la multiplicidad de procesos y
tareas que deben realizarse en diversos
ámbitos, por ejemplo, en el laboral o de
negocios y hasta cotidianos, los procesadores
tienen que disponer de capacidades más
complejas y avanzadas para permitir la
ejecución de distintas acciones que se
sobrepongan, sin ralentizar ni entorpecer el
aprovechamiento del equipo o dispositivo por
parte del usuario.
Otra manera de ejemplificar una multitarea, es cuando al trabajar en la computadora
personal, al estar realizando una acción específica, por ejemplo escribir un documento en
un procesador de palabras, al mismo tiempo se ejecuta el antivirus o se tiene abierto un
navegador, lo cual permite buscar información al mismo tiempo y hasta chatear .
Tipos de multitareas
Existen diferentes tipos de multitareas:
Nula. Es aquel sistema operativo, SO, que carece de multitarea, aun así puede
simularla, implementándola en un espacio de usuario o usando trucos como los
TSR en MS-DOS (justamente, la familia DOS es un ejemplo de sistema operativo
de multitarea nula).
Cooperativa. Los procesos de usuario son los que ceden la CPU al sistema
operativo a intervalos regulares. Es sumamente problemático, porque si por algún
motivo el proceso de usuario es interrumpido, no cede la CPU al sistema operativo
que lo ejecuta y, por lo tanto, quedará trabado (tildado). Windows, antes de la
versión 1995, implementaba este tipo de multitarea.
Preferente. El sistema operativo se encarga de administrar uno o más
procesadores, repartiendo el tiempo de uso del mismo entre los distintos procesos
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Ciencias Exactas Ingeniería y Tecnología |Ingeniería en Telemática 11
que esperan utilizarlo (tareas en ejecución). Sistemas operativos que utilizan este
tipo de multitareas son UNIX y sus clones (FreeBSD, Linux, etc.), VMS, AmigaOS,
WindowsNT, etc.
Real. El sistema operativo ejecuta los procesos al mismo tiempo, haciendo uso de
múltiples procesadores (más de dos). La ejecución se realiza en distintos
procesadores para cada proceso o tarea, obviamente, en caso de que los
procesos o tareas sean más que la cantidad de procesadores, éstos comienzan a
ejecutarse en procesadores “en uso” en la forma de multitarea preferente. Todos
los sistemas operativos modernos soportan esta capacidad.
Multitarea nula. Tomado de
http://2.bp.blogspot.com/-868zU3bFtwo/Tp7dHePaNcI/AAAAAAAAC94/0cclyX
9zFXc/s1600/msdos.jpg
Multitarea cooperativa. Tomado de
http://files.descargawindows.webnode.mx/200000012-52d0f54891/2w4zjgw.png
Multitarea preferente
Multitarea real. Tomado de http://3.bp.blogspot.com/-
qHeaIq7v8pY/UTbyhqHdkxI/AAAAAAAAAY4/oIDKGcaLqn0/s1600/Windows-8.jpg
+Ejemplos de multitareas [algunas de las marcas e imágenes usados son propiedad de Microsoft].
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Ciencias Exactas Ingeniería y Tecnología |Ingeniería en Telemática 12
2.1.1. Simétrico
Arquitectura de memoria SMP. Tomada de
http://www.reocities.com/SiliconValley/5659/DWH_HW_archivos/image001.jpg
Sistemas de Multiprocesamiento Simétrico o SMP (Symetric Multi Processing), que son
sistemas multiprocesador donde dos o más procesadores idénticos están conectados a
una misma memoria principal compartida y a una misma interfaz de entrada-salida
(Hennessy, 1993).
El término “simétrico” se usa porque todos los procesadores utilizan el mismo mecanismo
para acceder a la memoria, así como a los periféricos, y compiten en igualdad de
condiciones para obtener dicho acceso. Por lo que a estos sistemas se les conoce con el
nombre de Multiprocesadores de Memoria Compartida, MMC; a este tipo de arquitectura
también se le conoce como UMA (Unified Memory Acces) en contraposición con otro tipo
de sistemas multiprocesador con una arquitectura de memoria no uniforme, que se
denominan Multiprocesadores de Memoria Distribuida MMD, también se denomina NUMA
(Non Uniform Memory Acces).
Entre las características de los MMC se encuentran:
Tiempos de acceso a memoria uniformes, ya que todos los procesadores se
encuentran igualmente comunicados con la memoria principal.
De cada uno de los procesadores, sus lecturas y escrituras tienen exactamente las
mismas latencias.
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Ciencias Exactas Ingeniería y Tecnología |Ingeniería en Telemática 13
Debido a que la gestión de la memoria de cada módulo es transparente para el
programador; su programación es más fácil que en los MMD.
Como consecuencia del accesos simultáneo a la memoria, se producen colisiones
y esperas, lo que representa un problema.
Conforme a la organización de la arquitectura, es poco escalable en número de
procesadores, debido a que puede surgir un cuello de botella si se aumenta el
número de CPU.
En la siguiente ilustración observarás un ejemplo de cómo se da esta relación:
Ejemplo de implementación de multiprocesamiento simétrico. Tomada de http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/imageFAP.JPG
La comunicación entre los distintos procesadores en los sistemas SMP, se hace de forma
implícita, a través de la Memoria Compartida, por lo que dentro de la clasificación de
Flynn-Johnson, los sistemas SMP entran en la categoría MIMD-GMSV.
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Ciencias Exactas Ingeniería y Tecnología |Ingeniería en Telemática 14
Multiprocesamiento estrecho
El procesamiento SMP, también llamado estrechamente acoplado o compartido, tiene la característica de ser muy sencillo, ya que está compuesto por un conjunto de procesadores donde se comparte la memoria RAM, las tareas se llevan a cabo entre varios procesadores. Este tipo de configuración tiene una desventaja, ya que al aumentar el número de procesadores, el tráfico en el bus de memoria se satura y crea un cuello de botella, claro está que si se coloca una memoria caché en cada uno de los procesadores disminuirá el tráfico en el bus, evitando así el cuello de botella.
El número recomendado para esta configuración es de no más de ocho procesadores,
como se muestra en la figura siguiente, ya que después de esta cifra el rendimiento tiende
a disminuir.
Procesadores
O O O
Procesadores
O O O
Procesadores
O O O
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Ciencias Exactas Ingeniería y Tecnología |Ingeniería en Telemática 15
Uso de varios procesadores. Tomada de
http://publiespe.espe.edu.ec/articulos/sistemas/arquitectura/arquitectura.htm
Los sistemas SMP abarcan desde procedimientos con varios procesadores de propósito
general, o especifico, conectados a una misma placa base con soporte para varios
procesadores; hasta los más recientes multi-core, que dentro de una misma pieza de
silicio ubican varios procesadores.
Clasificación de Flynn-Johnson. Huerta, (2009).
Con el paso del tiempo se han creado multiprocesadores con multiprocesamiento
simétrico, cuya característica principal es que comparten la memoria. A manera de
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Ciencias Exactas Ingeniería y Tecnología |Ingeniería en Telemática 16
ejemplo, en la siguiente tabla se nombran algunos de estos dispositivos, existentes en el
mercado, con algunas de sus especificaciones de fábrica.
Procesador Núcleos Frecuencia Caché Memoria Año
SPARC T3 16 1.65 GHz 6 MB L2 128 GB DDR3 2010
SPARC T4 16 2.85 GHz 2 MB L2 + 4 MB L3
- 2013
Intel Xeon W3690
6 3.46 GHz 12 MB L3 24 GB DDR3 2011
Intel Xeon E7 8800
10 3.20 GHz 32+16 KB L1
256 KB L2
30 MB L3
- 2011
MIPS32 1074k
4 1.5 GHz 32+32KB L1 - 2010
ARM Cortex A15
4 2 GHz - - -
AMD Opteron 6100
12 2.5 GHz 12MB L3 - 2010
Tabla comparativa de modelos SMP en el mercado. Tomado de
http://www.atc.uniovi.es/inf_superior/4atc/trabajos/paralelas/4-SM%20de%20Memoria%20Compartida%20comerciales-memoria.pdf
De la sección Para saber más, se sugiere que consultes el video Todo sobre multiprocesamiento simétrico, en el cual se retoma este tema de una forma peculiar: https://www.youtube.com/watch?v=_TkwTgsgZs0
Para brindar una explicación más amplia sobre el multiprocesamiento simétrico, se
presenta la siguiente analogía centrada en la organización. En una oficina x, con un
espacio bien delimitado, en la cual sólo pueden trabajar ocho personas; por políticas
propias que pretenden volver eficiente el trabajo, todos los empleados
(microprocesadores) tendrán los mismos privilegios, no hay jefes, por lo que se pretende
que la disposición de los recursos se realice de manera equitativa. Todos compartirán
ciertos recursos (impresora, teléfono, Internet, etc.), y también podrán realizar las mismas
actividades (mensajería, enviar informes, hacer cálculos, entre otras).
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Ciencias Exactas Ingeniería y Tecnología |Ingeniería en Telemática 17
Por diferentes motivos, se pensó en la posibilidad de integrar una persona más
(microprocesador), pero la oficina sólo ha sido construida y acondicionada únicamente
para estas ocho personas, lo cual podría representar una desventaja. Contrario a lo que
se cree, si entra una persona más, las cosas se pueden complicar en la oficina;
repercutiendo en una desorganización, y hasta llegando a poner en riesgo el desempeño
laboral de cada empleado. La analogía con un equipo computacional más, hace
referencia a un riesgo en el desempeño, ya que al entrar en funcionamiento otro
procesador, éste se disminuye; de tal forma, una decisión que se podría tomar en dicho
caso es terminar el proceso y cerrar la aplicación o tarea que se esté ejecutando, lo cual
representaría una desventaja.
Algunas de las características distintivas para cada integrante son las siguientes: uso del
ancho de banda, derecho a la misma cantidad de llamadas, así como a la cantidad de
copias que dispone cada uno. En el mismo orden de ideas, tendrán semejante cantidad
de trabajo, logrando así que no quede una tarea sin realizar, sólo en caso de que no haya
trabajo, todos los empleados podrán descansar.
Analogía de multiprocesamiento simétrico
En esta analogía se muestran algunas ventajas y desventajas que se dan en el
multiprocesamiento simétrico. Ahora se presentará otro tipo de procesamiento, el
multiprocesamiento asimétrico, para que después identifiques las diferencias entre uno y
otro.
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Ciencias Exactas Ingeniería y Tecnología |Ingeniería en Telemática 18
2.1.2. Asimétrico
Multiproceso asimétrico (ASMP) es uno de los dos tipos de sistemas multiprocesador
actualmente utilizados. En este tipo, un procesador está reservado para el sistema,
mientras que los demás se dedican a las aplicaciones. También conocido como
procesamiento maestro-esclavo, el Kernel del sistema operativo corre en una CPU, y no
puede ser dividido entre procesadores. Con base en la definición de Alegsa (2012) Kernel
debe entenderse como el núcleo, o la parte esencial, de un sistema operativo que provee
los servicios más básicos del sistema, también se encarga de gestionar los recursos,
como el acceso seguro al hardware de la computadora y el multiplexado, estableciendo
qué programa accederá a un determinado hardware, en caso de que dos, o más,
requieran usarlo al mismo tiempo
Actualmente no hay mucha información referente a este tipo de sistemas, por tal motivo
sólo se ofrecen ideas generales acerca de su funcionamiento.
Cada procesador se asigna a una tarea específica. Un procesador maestro controla el
sistema, y el resto de los procesadores esperan que el maestro les dé instrucciones o
tienen asignadas tareas predefinidas.
Este esquema define una relación maestro-esclavo. El procesador maestro es el único
que ejecuta las funciones del sistema operativo; también planifica y asigna el trabajo de
los procesadores esclavos. Además, tiene el control sobre toda la memoria y de todos los
recursos E/S.
Los esclavos sólo ejecutan aplicaciones de usuario. Una vez que un proceso está activo y
el esclavo necesita un servicio E/S, envía una solicitud al maestro y espera a que el
servicio se lleve a cabo.
Este esquema presenta desventajas: el maestro puede ser un cuello de botella en el
rendimiento, y todo depende de él, si falla, entonces todo se viene abajo y no se puede
continuar.
Un ejemplo de un sistema operativo que trabaja con multiprocesamiento asimétrico es
SunOS versión 4 (Sistemops, 2013).
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Ciencias Exactas Ingeniería y Tecnología |Ingeniería en Telemática 19
Multiprocesamiento asimétrico
La información presentada en este tema es evidentemente breve, y con el siguiente
ejemplo se pretende complementar la explicación sobre el multiprocesamiento asimétrico.
Si se retoma la analogía anterior de los ocho trabajadores en una oficina, en este caso,
uno de estos ocho trabajadores es el que coordina todas las actividades que cada uno
desarrollará. Una ventaja es que con este coordinador se pretende equilibrar la carga de
trabajo, pero ocurre un problema muy visible y es que si el encargado no asigna
correctamente las actividades, se puede dar más trabajo a una persona que a otra,
obteniendo como resultado la acumulación de responsabilidades; por lo tanto, se crea un
cuello de botella con las actividades que se estén solicitando al departamento. Por tal
motivo el coordinador deberá tomar medidas drásticas para recuperar el control de las
actividades o tareas, para que ya no se tenga trabajo acumulado o pendiente por realizar;
quizá una de las medidas drásticas que tome el encargado sea eliminar el trabajo que se
esté llevando a cabo, para poder liberar de carga a los siete empleados restantes. Esto se
ejemplifica en el siguiente esquema:
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Ciencias Exactas Ingeniería y Tecnología |Ingeniería en Telemática 20
Analogía de multiprocesamiento asimétrico
Actividad 1. Multiprocesos básicos
¡Bienvenido(a) a la primera actividad de esta unidad! Ha llegado el momento de detallar, mediante un organizador gráfico, el funcionamiento de los tipos de procesamiento atendidos hasta este momento. Adicionalmente a las recomendaciones que tu Facilitador(a) te haya sugerido:
1. Crea un documento en el software de presentaciones de tu elección.
2. Elabora un organizador gráfico, detallando el funcionamiento de cada tipo de procesamiento visto hasta el momento.
3. Incluye sus ventajas y desventajas.
4. En el mismo documento, en un breve texto, escribe a manera de síntesis la
información que explique el funcionamiento de los tipos de procesamiento y su relevancia en la actualidad.
5. Guarda tu actividad con la nomenclatura KARQ2_ACT1_U2_XXYZ. Sustituye
las XX por las primeras dos letras de tu primer nombre, la Y por la inicial de tu apellido paterno y la Z por la inicial de tu apellido materno.
6. Sube tu archivo para su revisión y posterior retroalimentación; de ser requerido,
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Ciencias Exactas Ingeniería y Tecnología |Ingeniería en Telemática 21
vuélvelo a enviar.
*Consulta los criterios de evaluación para cada actividad.
2.2. Procesamiento paralelo
Esquema general del procesamiento paralelo. Basado en
http://1.bp.blogspot.com/-SvOlcLBn6EE/USfsSj0XEeI/AAAAAAAAAIM/3XCI5UZhjHw/s1600/im1.png
En el esquema anterior se muestra, de manera muy resumida, la forma en que se
organiza el procesamiento paralelo, en el tema 2.2.2., también se exponen los cuatro tipos
de computación paralela. De igual forma, podrás identificar ciertas características
específicas que tiene cada una de estas clasificaciones, así como distinguir, mediante un
ejemplo, el beneficio de este tipo de procesamiento.
El procesamiento paralelo está basado en un principio aparentemente simple: “Dividir los
problemas grandes en varios pequeños y solucionarlos simultáneamente” (EcuRed,
2013), esto permite ejecutar más instrucciones en menos tiempo.
Al procesamiento paralelo también se le conoce como computación paralela, que es una
forma de computación en la que se realizan varias operaciones de manera simultánea
(Gottlieb, 1989), basándose en el principio de que los problemas grandes pueden ser
divididos en problemas más pequeños, que pueden ser resueltos de forma concurrente en
varias unidades de procesamiento; esto permite que el trabajo se complete en un tiempo
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Ciencias Exactas Ingeniería y Tecnología |Ingeniería en Telemática 22
menor. La idea de utilizar varias unidades de procesamiento para incrementar el
rendimiento de las aplicaciones no es nueva, existe desde los inicios de la era de las
computadoras electrónicas.
Procesamiento paralelo. Tomado de
http://www.mastermagazine.info/termino/wp-content/uploads/proceso.jpg
Hace más de 40 años, Flynn propuso un modelo, que se sigue utilizando, para clasificar
todas las computadoras. Éste tiene en cuenta el paralelismo, tanto en las instrucciones
como en los datos, y según esa clasificación, todo computador pertenece a alguna de las
siguientes categorías:
SISD (Single Instruction, Single Data Stream). Instrucción individual, datos
individuales.
SIMD (Single Instruction, Multiple Data Streams). Instrucción individual, datos
múltiples.
MISD (Multiple Instruction, Single Data Stream). Instrucción múltiple, flujo de datos
individuales.
MIMD (Multiple Instruction, Multiple Data Stream). Instrucciones múltiples, flujo de
datos múltiples.
Estas categorías se explicarán con mayor detalle más adelante.
Los primeros multiprocesadores eran de tipo SIMD, pero ese tipo de arquitectura cayó en
desuso en la década de los noventa, a excepción de los procesadores vectoriales. Los
multiprocesadores de tipo MIMD han calado con fuerza como la principal arquitectura para
multiprocesadores de propósito general. Una de las principales razones del auge de los
multiprocesadores de tipo MIMD es su flexibilidad. Con un soporte adecuado de hardware
y software pueden funcionar como un multiprocesador monoprogramado, enfocado a
aumentar el rendimiento de una aplicación concreta; o también como multiprocesadores
multiprogramados, ejecutando diferentes tareas, o una combinación de ambas funciones
(Huerta, 2009).
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Ciencias Exactas Ingeniería y Tecnología |Ingeniería en Telemática 23
Este tipo de taxonomía (Flynn) la verás con mayor profundidad en el tema 2.2.3. Mientras
tanto estudiarás algunos aspectos básicos de este tipo de procesamiento, y de igual
forma conocerás los tipos de procesamiento paralelo.
2.2.1. Aspectos básicos
Jouppi y Wall (1989) hacen una importante distinción entre dos conceptos relacionados: el
paralelismo en las instrucciones y el paralelismo de la máquina.
Existe paralelismo en las instrucciones cuando las instrucciones de una secuencia son
independientes y por tanto pueden ejecutarse en paralelo, solapándose.
Como ejemplo del concepto de paralelismo en las instrucciones, considera los dos
siguientes fragmentos de código (Jouppi, 1989):
Load R1 ← R2 Add R3 ← R3, “1” Add R3 ← R3, “1” Add R4 ← R3, R2 Add R4 ← R4, R2 Store [R4] ← R0
Las tres instrucciones de la izquierda son independientes, y en teoría las tres podrían
ejecutarse en paralelo. Por el contrario, las tres instrucciones de la derecha no pueden
ejecutarse en paralelo porque la segunda usa el resultado de la primera, y la tercera usa
el resultado de la segunda.
El paralelismo en las instrucciones depende de la frecuencia de dependencias de datos
verdaderos y dependencias relativas al procedimiento que haya en el código. Estos
factores se subordinan, a su vez, a la arquitectura del repertorio de instrucciones y de la
aplicación.
El paralelismo en las instrucciones depende también de lo que Jouppi y Wall (1989) llaman latencia de una operación: el tiempo que transcurre hasta que el resultado de una instrucción está disponible para ser usada como operando de una instrucción posterior. La latencia determina cuánto retardo causará una dependencia de datos relativa al procedimiento.
Guerrero (2011) define el paralelismo de la máquina como:
Una medida de la capacidad del procesador para sacar partido al paralelismo en las
instrucciones. El paralelismo de la máquina depende del número de instrucciones que
pueden captarse y ejecutarse al mismo tiempo (número de cauces paralelos) y de la
velocidad y sofisticación de los mecanismos que usa el procesador para localizar
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Ciencias Exactas Ingeniería y Tecnología |Ingeniería en Telemática 24
instrucciones independientes. Tanto el paralelismo en las instrucciones como el
paralelismo de la máquina son factores importantes para mejorar las prestaciones. Un
programa puede no tener el suficiente nivel de paralelismo en las instrucciones como para
sacar el máximo partido al paralelismo de la máquina. El empleo de una arquitectura con
instrucciones de longitud fija, como un RISC, aumenta el paralelismo en las
instrucciones. Por otra parte, un escaso paralelismo de la máquina limitará las
prestaciones sin que importe la naturaleza del programa.
Procesamiento paralelo
En el procesamiento paralelo, la principal ventaja consiste en que cada procesador trabaja
de manera independiente con cada tarea que le fue asignada, logrando así obtener
resultados en menor tiempo; alguno de éstos puede tener mucha mayor actividad que
otro. Como se puede ver en la imagen Procesamiento en paralelo con un procesador Intel
CORE I5, este equipo cuenta con un procesador con cuatro núcleos, mostrándose el
desempeño de las actividades que realiza cada núcleo del procesador.
Procesamiento en paralelo con un procesador Intel CORE I5
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Ciencias Exactas Ingeniería y Tecnología |Ingeniería en Telemática 25
Desafortunadamente, una desventaja muy visible es que, como las tareas grandes se
dividen en tareas más pequeñas asignándose a cada procesador, éste tiene que acceder
a recursos que son compartidos, y que en ciertos casos, algún otro procesador puede
estar ocupando dichos recursos. Esto generará ciertos retardos en las actividades,
además de que no siempre se dividen las tareas de forma equitativa, debido a que es muy
complicado, por tal motivo, la distribución de tamaños en las actividades es sesgada.
Los anteriores sólo son algunos aspectos, muy generales, de este tipo de procesamiento;
para entender algunas de sus ventajas, se usará el mismo escenario mencionado en el
multiprocesamiento simétrico y asimétrico. En este caso, ya es posible contar con una
oficina para más de ocho personas, las cuales se dividirán el trabajo entre ellas mismas
sin tener un jefe o encargado, la tarea o actividad que tengan que realizar se dividirá en
tareas o problemas más pequeños que se asignarán a cada empleado, así será posible
tomar un descanso mientras se asigna una nueva tarea. Un pequeño problema que se
presenta es que, desafortunadamente, no se pueden dividir de forma equitativa las
actividades, por tal motivo algunos trabajarán más que otros. Otro problema que se
presenta es que, como se reparten los recursos, puede ser un poco tardado en tener
respuestas, ya que si un empleado quiere usar la impresora o fotocopiadora, deberá
esperar a que su compañero termine de usarlas.
Una de las desventajas del procesamiento paralelo consiste en que un procesador puede
trabajar más que otro, y alguno de ellos puede estar en reposo, o bien, sin hacer nada.
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Ciencias Exactas Ingeniería y Tecnología |Ingeniería en Telemática 26
Analogía de multiprocesamiento paralelo
Ahora se presentan los tipos de computación paralela básica que existen en el siguiente
apartado, para de esta manera continuar con el estudio de este procesamiento.
2.2.2. Tipos de computación paralela
La computación paralela se clasifica en cuatro tipos básicos:
Paralelismo de bit
Paralelismo de instrucción
Paralelismo de datos
Paralelismo de tareas
Paralelismo de bit
La aceleración en la arquitectura de computadoras se lograba, en gran medida,
duplicando el tamaño de la palabra en la computadora, la cantidad de información que el
procesador puede manejar por ciclo (Culler, 1997). El aumento del tamaño de la palabra
reduce el número de instrucciones que el procesador debe ejecutar para realizar una
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Ciencias Exactas Ingeniería y Tecnología |Ingeniería en Telemática 27
operación en variable, cuyos tamaños son mayores que la longitud de la palabra. Por
ejemplo, cuando un procesador de 8 bits debe sumar dos enteros de 16 bits, el
procesador primero debe adicionar los 8 bits de orden inferior de cada número entero con
la instrucción de adición, a continuación, añadir los 8 bits de orden superior utilizando la
instrucción de adición con acarreo que tiene en cuenta el bit de acarreo de la adición de
orden inferior. En este caso, un procesador de 8 bits requiere dos instrucciones para
completar una sola operación; un procesador de 16 bits necesita una sola instrucción para
poder completarla.
Históricamente, los microprocesadores de 4 bits fueron sustituidos por los de 8 bits, luego
de 16 bits y 32 bits, esta tendencia general llegó a su fin con la introducción de
procesadores de 64 bits, lo que ha sido un estándar en la computación de propósito
general durante la última década.
Paralelismo de instrucción
Un programa computacional es, en esencia, una secuencia de instrucciones ejecutadas
por un procesador. Estas instrucciones pueden reordenarse y combinarse en grupos que
luego son ejecutados en paralelo sin cambiar el resultado del programa. Esto se conoce
como paralelismo de instrucción. Los avances en el paralelismo de instrucción dominaron
la arquitectura de computadores desde mediados de 1980 hasta mediados de la década
de 1990 (Culler, 1997).
Los procesadores modernos tienen pipeline de instrucciones de varias etapas. Cada
etapa en el pipeline corresponde a una acción diferente que el procesador realiza; un
procesador con un pipeline de n etapas puede tener hasta n instrucciones diferentes en
diferentes etapas de finalización (Patt, 2004).
El ejemplo canónico de un procesador segmentado es un procesador RISC, con cinco
etapas:
Pedir instrucción
Decodificar
Ejecutar
Acceso a la memoria
Escritura
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Ciencias Exactas Ingeniería y Tecnología |Ingeniería en Telemática 28
Pipeline canónico de cinco etapas en una máquina RISC (IF= Pedido de Instrucción, ID= Decodificación de instrucción, EX= Ejecutar, MEM= Acceso a la memoria, WB= Escritura). Tomada de http://upload.wikimedia.org/wikipedia/commons/thumb/2/21/Fivestagespipeline.png/800px-
Fivestagespipeline.png
El procesador Pentium 4 tenía un pipeline de 35 etapas.
Paralelismo de datos
El paralelismo de datos es inherente en programas con ciclos; se centra en la distribución
de los datos entre los diferentes nodos computacionales que deben tratarse en paralelo.
“La paralelización de ciclos conduce, a menudo, a secuencias similares de operaciones
(no necesariamente idénticas), o funciones que se realizan en los elementos de una gran
estructura de datos” (Culler, 1997). Muchas de las aplicaciones científicas y de ingeniería
muestran paralelismo de datos.
Paralelismo de datos en el código de una aplicación. Tomado de http://i.imgur.com/M9I4W.png
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Ciencias Exactas Ingeniería y Tecnología |Ingeniería en Telemática 29
Paralelismo de tareas
El paralelismo de tareas es la característica de un programa paralelo en el que “cálculos
completamente diferentes se pueden realizar en cualquier conjunto igual o diferente de
datos” (Culler, 1997). Esto contrasta con el paralelismo de datos, donde se realiza el
mismo cálculo en distintos, o mismos grupos de datos. El paralelismo de tareas, por lo
general, no escala con el tamaño de un problema.
Paralelismo de tareas
Como se puede observar, sólo son cuatro tipos básicos de procesamiento, continuando
con el paralelismo, Flynn, en su taxonomía, muestra la clasificación de algunos
procesamientos, como se observará en el siguiente tema.
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Ciencias Exactas Ingeniería y Tecnología |Ingeniería en Telemática 30
2.2.3. Taxonomía de Flynn
Taxonomía de Flynn y Shore. Maccabe, 1993.
En primer lugar, Alegsa (2012) considera la taxonomía como la categorización o
clasificación de cosas, basada en un sistema predeterminado.
Hay dos categorías básicas para la clasificación de equipos: la de Flynn y aquélla de
Shore. La taxonomía de Shore, al igual que la de Flynn, clasifica los equipos en función
del número de elementos. Mientas la taxonomía de Flynn pretende clasificarlos por la
organización del software (instrucciones y datos), la clasificación de Shore lo hace por la
estructura del hardware (unidad de control, unidad de proceso y memoria de datos e
instrucciones). En este caso se tocará únicamente de la clasificación que hace Flynn,
basada en dos conceptos (Tanenbaum, 200):
Flujos de instrucciones. Corresponde a un contador de programa. Un sistema
que tiene n CPU, tiene n contadores de programa, y por tanto n flujos de
instrucciones.
Flujos de datos. Consiste en un conjunto de operandos.
Manipulación de datos
Taxonomía de Flynn
SISD, Single Intruction, Single Data
Instrucción Individual
SIMD, Single Instruction Multiple
Data
Instrucción Individual
MISD, Multiples secuencias de instrucciones y una secuencia
de datos
Instrucción Múltiple
MIMD, Múltiples secuencias de instrucciones y múltiples
secuencias de datos
Instrucción Múltiple
Taxonomía de Shore
Método 1
Memoria físicamente compartida
Método 2
Memoria lógicamente compartida y físicamente
distribuida
Método 3
Memoria y memoria distribuida
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Ciencias Exactas Ingeniería y Tecnología |Ingeniería en Telemática 31
Los flujos de instrucciones y de datos son, hasta cierto punto, independientes, por lo que
existen cuatro combinaciones que se enumeran en la siguiente tabla:
Flujos de instrucciones
Flujos de datos
Nombre Ejemplos
1 1 SISD Máquina clásica de Von Neumann
1 Varios SIMD Supercomputadora vectorial, procesador de arreglos
Varios 1 MISD Tal vez ninguno
Varios Varios MIMD Multiprocesador, multicomputadora
Taxonomía de Flynn. Tomada de Tanenbaum, 2000.
SISD es la computadora secuencial clásica de Von Neumann; tiene un flujo de
instrucciones, un flujo de datos y hace una cosa a la vez. Las máquinas SIMD tienen sólo
una unidad de control que emite una instrucción al mismo tiempo, pero tienen múltiples
ALU para ejecutarla, con varios conjuntos de datos. Existen máquinas SIMD modernas y
se usan para cálculos científicos.
Las máquinas MISD son una categoría un tanto extraña, en la que varias instrucciones
operan con un mismo dato. No se sabe a ciencia cierta si existen máquinas de este tipo,
aunque algunas personas clasifican a las máquinas con filas de procesamiento como
MISD.
Por último, se tienen las MIMD, que no son más que múltiples CPU independientes que
operan como parte de un sistema mayor. Casi todos los procesadores paralelos
pertenecen a esta categoría. Tanto los multiprocesadores como las multicomputadoras
son máquinas MIMD.
Estas categorías ya se habían mencionado; en este caso se extenderá un poco más su
estudio de acuerdo con los fines que se plantean con este tema.
Una secuencia de instrucciones y una secuencia de datos (SISD, Single
Instruction Single Data). Un único procesador interpreta una única secuencia de
instrucciones para operar con los datos almacenados en una única memoria. Los
equipos monoprocesador se encuentran es esta categoría (Stallings, 2007).
Una secuencia de instrucciones y múltiples secuencias de datos (SIMD,
Single Instruction Multiple Data). Una única instrucción máquina controla paso a
paso la ejecución simultánea y sincronizada de un cierto número de elementos de
proceso. Cada elemento de proceso tiene una memoria asociada, de forma que
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Ciencias Exactas Ingeniería y Tecnología |Ingeniería en Telemática 32
cada instrucción es ejecutada por cada procesador con un conjunto de datos
diferentes. Los procesadores vectoriales y los matriciales pertenecen a esta
categoría (Stallings, 2007).
Múltiples secuencias de instrucciones y una secuencia de datos (MISD). Se
transmite una secuencia de datos a un conjunto de procesadores, cada uno de los
cuales ejecuta una secuencia de datos a un conjunto de procesadores que ejecuta
una secuencia de instrucciones diferente de manera individual. Esta escritura
nunca ha sido implementada (Stallings, 2007).
Múltiples secuencias de instrucciones y múltiples secuencias de datos
(MIMD). Un conjunto de procesadores ejecuta simultáneamente secuencias de
instrucciones diferentes con conjuntos de datos diferentes. Los SMP, los clústers y
los sistemas NUMA son ejemplos de esta categoría (Stallings, 2007).
La taxonomía de Flynn termina con este diagrama. Se ha dividido a SIMD en dos
subgrupos. El primero es el de las supercomputadoras numéricas y otras máquinas que
operan con vectores, realizando la misma operación con cada elemento del vector. El
segundo es para las máquinas tipo paralelo, como la ILLIAC IV, en las que una unidad de
control maestra difunde instrucciones a muchas ALU independientes.
Una taxonomía de computadoras paralelas. Tanenbaum, 2000
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Ciencias Exactas Ingeniería y Tecnología |Ingeniería en Telemática 33
En esta taxonomía, la categoría MIMD se ha dividido en multiprocesadores (máquinas con
Memoria Compartida) y multicomputadoras (máquinas que transfieren mensajes). Existen
tres clases de multiprocesadores, que se distinguen por la forma en que se implementa la
Memoria Compartida: acceso uniforme a la memoria (UMA, Uniform Memory Access),
acceso no uniforme a la memoria (NUMA, Non Uniform Memory Access) y sólo acceso
a memoria caché (COMA, Cache Only Memory Access). Estas categorías existen porque
en los multiprocesadores grandes, normalmente, la memoria se divide en varios módulos.
La otra categoría principal de máquinas MIMD comprende las multicomputadoras que, a
diferencia de los multiprocesadores, no tienen una memoria primaria compartida en el
nivel arquitectónico. En otras palabras, el sistema operativo de una CPU de
multicomputadora no puede acceder a memoria conectada a una CPU distinta con sólo
ejecutar una instrucción LOAD; tiene que enviar un mensaje explícito y esperar una
respuesta.
Las multicomputadoras se pueden dividir, a grandes rasgos en dos categorías. La primera
contiene los procesadores masivamente paralelos (MPP, Massively Parallel Processors),
que son supercomputadoras caras que consisten en muchas CPU, acopladas
estrechamente por una red de interconexión patentada de alta velocidad; la segunda
consiste en PC o estaciones de trabajo normales, tal vez montadas en anaqueles, y
conectadas mediante tecnología comercial ordinaria.
Actividad 2. Tipos de multiprocesos
Esta actividad consiste en la elaboración de un ensayo que permita reportar y plasmar tu
propio criterio con base en un análisis, donde muestres en qué consiste cada sistema de
memoria (compartida y distribuida); de igual forma debes evaluar la diferencia entre los
tipos de procesamiento mencionados. También deberás valerte de los conocimientos
adquiridos en tu experiencia profesional. Con base en lo anterior, realiza lo siguiente:
1. Define el título de tu ensayo.
2. En un documento de texto, en tus propias palabras, elabora una pequeña
introducción de tu ensayo, mínimo media cuartilla.
3. Desarrolla el contenido, aportando especificaciones técnicas y esquemas o
diagramas.
4. Sustenta tu ensayo con por lo menos tres fuentes bibliográficas o electrónicas
reconocidas, no debes basarte en fuentes como Wikipedia o similares. También
es importante reconocer y respetar los derechos de autor, dando los
correspondientes créditos, así como evitar copiar y pegar, esto podría anular la
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Ciencias Exactas Ingeniería y Tecnología |Ingeniería en Telemática 34
actividad.
5. Genera una conclusión de mínimo media cuartilla, aterrizando todas las ideas
plasmadas durante tu desarrollo.
7. Guarda tu trabajo en un archivo llamado KARQ2_U2_A2_XXYZ. Sustituye las XX por las primeras dos letras de tu primer nombre, la Y por la inicial de tu apellido paterno y la Z por la inicial de tu apellido materno.
6. Sube tu actividad para su revisión y aguarda la retroalimentación de tu
Facilitador(a), atiende sus comentarios y, de solicitarlo, vuelve a enviar tu
actividad.
*La actividad será evaluada de acuerdo con su respectiva rúbrica, así que es importante que la consultes.
2.3. Sistemas de Memoria Compartida
Una vez que has identificado la taxonomía de Flynn, deberás tomar en cuenta, para este
tema y para el siguiente únicamente la clasificación: MIMD (Múltiples Instrucciones,
Múltiples Datos), la cual se atendió en el tema anterior.
Dentro de los multiprocesadores MIMD, se distinguen dos tipos bien diferenciados,
atendiendo a la organización de la memoria y al modo en que se interconectan los
procesadores: Sistemas con Memoria Compartida (SMC) y Sistemas con Memoria
Distribuida (SMD) (Hennessy, 1993).
En este tema atenderás únicamente los sistemas o multiprocesadores con Memoria
Compartida.
Esquema general de Memoria compartida
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Ciencias Exactas Ingeniería y Tecnología |Ingeniería en Telemática 35
2.3.1. Introducción a los sistemas de Memoria Compartida
En el diagrama de la taxonomía de Flynn, se muestra cómo los sistemas MIMD se pueden
dividir en multiprocesadores y multicomputadoras. En esta apartado se tomarán en cuenta
únicamente los multiprocesadores.
Un multiprocesador es un componente que tiene varias CPU y un espacio de direcciones
visible para todas las CPU. La máquina ejecuta una copia del sistema operativo, con un
conjunto de tablas que incluyen aquéllas en las que se lleva la contabilidad de cuáles
páginas de memoria están ocupadas y las que están libres. Cuando un proceso se
bloquea, su CPU guarda su estado en las tablas del sistema operativo y busca en ellas
otro proceso que pueda ejecutar. Es esta imagen de sistema único la que distingue un
multiprocesador de una multicomputadora (Tanenbaum, 2000).
En los sistemas de Memoria Compartida, la memoria se organiza en uno o varios
módulos, compartidos por todos los procesadores a través de distintos tipos de
interconexión (tratados más adelante), con un acceso constante. El acceso a los módulos
por parte de los procesadores se realiza en paralelo, pero cada módulo solamente puede
atender una petición en cada instante de tiempo (Gargollo, 2011).
En este tipo de sistemas, donde el número de procesadores no es muy elevado, es
posible utilizar una memoria centralizada que comparten todos los procesadores, a través
de un bus compartido, como se ve en la siguiente figura:
Estructura básica de un sistema con Memoria Compartida.
Hennessy, 1993.
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Ciencias Exactas Ingeniería y Tecnología |Ingeniería en Telemática 36
Haciendo uso de unas cachés eficientes, la memoria y el bus compartidos pueden
satisfacer las necesidades de un número no muy grande de procesadores. El hecho de
tener una memoria y un bus compartidos, a los que acceden de forma simétrica todos los
procesadores, ha derivado en que a estos sistemas se les conozca como Sistemas de
Multiprocesamiento Simétrico o SMP. En estos sistemas, la comunicación entre
procesadores se realiza de forma implícita, a través de la memoria.
2.3.2. Redes de interconexión dinámicas
Un sistema con varios procesadores precisa de medios de comunicación cuyas funciones
pueden realizarse de dos formas:
Por Memoria Compartida. Usado en los sistemas multiprocesadores.
Por paso de mensajes. Usado en los sistemas multicomputadores.
En ambos casos será necesaria una vía de comunicación física, bien para unir
físicamente la Memoria Compartida a todos los procesadores, o para poder enviar
mensajes de un elemento de proceso a otro.
Antes de empezar a definir las características de las redes de interconexión, diremos que
se denomina nodo a cualquiera de los dispositivos que se quiera conectar a la red, tales
como elementos de proceso, módulos de memoria, procesadores de entrada/salida, etc.
Las redes de interconexión dinámicas son convenientes en los casos que se desee una
red de propósito general, ya que son fácilmente reconfigurables. También, por eso, este
tipo de redes facilita mucho la escalabilidad. En general, las redes dinámicas necesitan de
elementos de conexión específicos, como árbitros de bus, conmutadores, etc. Las
principales topologías de redes dinámicas son las siguientes:
Buses
Se puede definir un bus como un conjunto de líneas que permite comunicar,
selectivamente, un cierto número de componentes o dispositivos de acuerdo con ciertas
normas de conexión. En nuestro caso, los componentes que se conectan son
procesadores, bancos de memoria, etc. El inconveniente de un bus es que sólo permite
una transferencia al mismo tiempo, por ello, en caso de que haya peticiones simultáneas
de comunicación, debe haber un árbitro de bus que vaya ordenando y dando paso, una a
una, a las diferentes peticiones. Este árbitro será un circuito digital que lleve control de los
momentos en que el bus está ocupado. Para recalcar esta forma de funcionamiento, a
veces a los buses también se les denomina buses de tiempo compartido.
Los buses son una forma barata de comunicación que tiene la ventaja de ser
reconfigurable fácilmente. Sus inconvenientes son su bajo ancho de banda y su gran
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Ciencias Exactas Ingeniería y Tecnología |Ingeniería en Telemática 37
latencia, debida a las esperas que tienen que efectuar las peticiones de comunicación.
En la siguiente figura se muestra una estructura de bus. Existen variantes de esta
estructura que, incrementando muy poco el coste, pueden mejorar notablemente las
prestaciones: estas variantes se basan en disponer de una jerarquía de buses, de forma
que en cada uno de ellos pueda establecerse una comunicación en su nivel de forma
independiente y simultánea a los demás. Un ejemplo de este tipo de estructura se ilustra
en la figura (b).
Estructura de bus único (a) y bus jerarquizado (b). Tomada de
http://www.infor.uva.es/~bastida/Arquitecturas%20Avanzadas/Redes.pdf
Redes de líneas cruzadas o matriz de conmutación (crossbar)
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Ciencias Exactas Ingeniería y Tecnología |Ingeniería en Telemática 38
En esta red, cada nodo está conectado con todos los demás, a través de un conmutador
de líneas cruzadas (crossbar switch) en la forma indicada en la siguiente figura.
Red de líneas cruzadas (crossbar). Tomado de
http://www.infor.uva.es/~bastida/Arquitecturas%20Avanzadas/Redes.pdf
La red de líneas cruzadas puede interpretarse como una central telefónica que conecta
los nodos en función de las necesidades de cada momento. Cada conmutador puede
proporcionar una conexión dedicada entre cada par de elementos que se quiera conectar.
La posición de cada conmutador se cambia dinámicamente, según las necesidades del
programa. Este tipo de redes se ha empleado para conectar procesadores con módulos
de memoria.
También pueden utilizarse las redes de líneas cruzadas para conectar n procesadores
con ellos mismos; de esta forma, si se efectúan todas las conexiones posibles, de todas
las formas distintas, se podrían construir las n permutaciones de los n procesadores.
Las principales ventajas de las redes de líneas cruzadas son que no son bloqueantes y
son fácilmente escalables. Su mayor inconveniente es que precisan gran número de
conmutadores, ya que son necesarios n2 conmutadores para una red cuadrada de lado.
Redes multietapa o MIN (Multistage Interconnection Network)
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Ciencias Exactas Ingeniería y Tecnología |Ingeniería en Telemática 39
Una red de este tipo está formada por una seria de capas de módulos conmutadores
PXQ. Estos conmutadores pueden cambiar dinámicamente de posición para establecer
las conexiones deseadas en cada momento.
Las diferentes clases de redes multietapa que se verán a continuación, difieren en el tipo
de módulo conmutador empleado y en la forma de interconectarlos (interconexión entre
etapas, ISC, Inter Stage Connection). Un esquema genérico de una red multietapa se
muestra en la siguiente ilustración. La ventaja de las redes multietapa sobre las de líneas
cruzadas es el menor número de conmutadores, que es del orden de n log2 n, aunque
varía en función del tipo concreto de red, sin embargo, algunas de ellas son bloqueantes.
Red genérica multietapa. Tomado de
http://www.infor.uva.es/~bastida/Arquitecturas%20Avanzadas/Redes.pdf
En la siguiente tabla se comparan algunas características de diferentes tipos de redes de
interconexión, evaluadas cualitativamente.
Hipercubo Bus Líneas cruzadas
Multietapa
Costo Medio Bajo Alto Medio Velocidad Media Baja Alta Alta
Complejidad Media Baja Alta Media Escalabilidad Media Alta Media Media
Resumen comparativo de diferentes redes de interconexión. Tomada de http://www.infor.uva.es/~bastida/Arquitecturas%20Avanzadas/Redes.pdf
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Ciencias Exactas Ingeniería y Tecnología |Ingeniería en Telemática 40
Actividad 3. Ventajas y desventajas de los tipos de multiprocesamiento
El propósito de esta actividad es que, a través de un mapa conceptual, distingas
algunas de las ventajas y desventajas de los diferentes tipos de multiprocesamiento
vistos hasta este momento.
1. Crea un documento en el software de presentaciones de tu elección.
2. Elabora un organizador gráfico, se sugiere un mapa conceptual en el que
detalles y agrupes las ventajas y desventajas de los diferentes tipos de
multiprocesamiento.
3. En el mismo documento, anexa un breve texto, en el que describas una
explicación del porqué de esas ventajas y desventajas.
4. Guarda tu actividad con la nomenclatura KARQ2_ACT3_U2_XXYZ. Sustituye
las XX por las primeras dos letras de tu primer nombre, la Y por la inicial de tu
apellido paterno y la Z por la inicial de tu apellido materno.
5. Sube tu archivo para su revisión y posterior retroalimentación; de ser requerido,
vuélvelo a enviar.
*Consulta los criterios de evaluación para cada actividad.
2.4. Sistemas de memoria distribuida
Recuerda que dentro de los multiprocesadores MIMD se distinguen dos tipos bien
diferenciados. En este apartado conocerás los Sistemas con Memoria Distribuida (SMD)
(Hennessy, 1993).
Esquema general de memoria distribuida
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Ciencias Exactas Ingeniería y Tecnología |Ingeniería en Telemática 41
2.4.1. Introducción a los sistemas de memoria distribuida
Este tipo de sistemas distribuye la memoria, de tal manera cada procesador posee uno o
varios módulos de memoria propia, y está conectado mediante una red de interconexión
al resto de los procesadores. Así, cada procesador podrá acceder tanto a su memoria
local, como a la memoria remota de cualquiera de los otros. Este tipo de arquitectura se
denomina NUMA (Non-Uniform Memory Access).
Para poder soportar un mayor número de procesadores, es imprescindible distribuir la
memoria entre ellos, en lugar de utilizar una memoria centralizada. De otra forma, ésta no
podría soportar el ancho de banda necesario para satisfacer las demandas de todos los
procesadores. Para la comunicación entre procesadores es indispensable algún tipo de
red de interconexión, tal como se muestra en la siguiente figura (Huerta, 2009).
Estructura básica de un sistema con memoria distribuida.
Hennessy, 1993.
Un ejemplo claro de este tipo de sistemas son los clústers, los cuales tienen como ventaja
la rapidez para realizar procesos, un alto rendimiento, así como un buen precio, ya que
son económicos de implementar. Desafortunadamente, en la interconexión puede haber
pérdida de mensajes o saturación; éstas y otras características se explicarán con más
detalle en el siguiente apartado.
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Ciencias Exactas Ingeniería y Tecnología |Ingeniería en Telemática 42
2.4.2. Clúster
En la actualidad, los clústers han tenido mucho auge en centros de investigación y en las
empresas, debido a que ciertos problemas que se desean resolver rebasan la capacidad
de cómputo de una computadora personal. La solución más obvia consistiría en comprar
una supercomputadora, pero existe un inconveniente al respecto: una supercomputadora
cuesta, en ocasiones, varios millones de dólares, cantidad que va más allá de los
presupuestos de inversión, tanto de las empresas como de los centros de investigación.
Pero la necesidad de solucionar los problemas con los recursos que se cuentan, ha
provocado que personal académico de diversas universidades y centros de investigación
se den a la tarea de construir sus propias supercomputadoras, conectando computadoras
personales y desarrollando software.
Beowulf el primer clúster
NASA 128-processor Beowulf clúster. Tomada de http://www.cse.mtu.edu/cseri.html
La imagen da un ejemplo del
primer clúster (llamado Beowulf)
que se construyó en 1994, en el
Centro de Vuelos Espaciales
Goddard de la NASA, con la
finalidad de resolver problemas
que aparecen en las ciencias de
la Tierra y el espacio.
Un clúster es la interconexión de dos o más computadoras independientes a través de
una red, usadas como un recurso unificado de cómputo con el fin de aumentar el
rendimiento en la ejecución de tareas (Torralba, 2002).
Los clúster constituyen la alternativa a los multiprocesadores simétricos (SMP) para
disponer de prestaciones y disponibilidad elevadas, y son particularmente atractivos en
aplicaciones propias de un servidor.
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Ciencias Exactas Ingeniería y Tecnología |Ingeniería en Telemática 43
La arquitectura del clúster es uno de los diversos caminos para explotar el procesamiento
en paralelo. Existen diferentes métodos importantes que se utilizan para realizar cómputo
paralelo, entre los cuales se encuentran: SMP, NUMA, Procesamiento Masivamente
Paralelo (MPP), entre otros. Los sistemas Tolerantes a Fallas (TF) explotan el
procesamiento en paralelo para conseguir una buena integridad entre los diferentes
componentes que forman el clúster.
Cada diseño de estos clústers tiene como fin mejorar el desempeño, la integridad de los
sistemas, o ambas cosas. En la siguiente ilustración se resumen las relaciones de las
diferentes alternativas de diseño en un clúster: desempeño, integridad y escalabilidad.
Escalabilidad, desempeño contra disponibilidad. Tomada de Torralba, 2002.
Ventajas de los clústers
Cada una de las máquinas en un clúster puede ser un sistema completo para
usarlo en un amplio rango de aplicaciones.
El hardware de interconexión de red ha experimentado un constante decremento
de precio, considerando que además se pueden logar ahorros adicionales
empleando un monitor, un teclado y un ratón.
Los clústers de computadoras pueden crecer hasta formar sistemas
verdaderamente grandes, es decir, desde dos hasta varios cientos, lo cual no es
posible con los sistemas SMP.
Se puede reemplazar fácilmente una computadora del clúster que no esté
funcionando correctamente.
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Ciencias Exactas Ingeniería y Tecnología |Ingeniería en Telemática 44
Si algún componente falla, el o los procesos pueden seguir ejecutándose en los
demás nodos.
El clúster se pude interconectar a una red de área local, permitiendo dar servicio a
múltiples usuarios internos y externos a través de Internet.
Desventajas de los clústers
Si falla el nodo maestro, se pierde la ejecución de toda la tarea.
Puede haber inconsistencia en los datos, provocada por alguna falla en el software
o en el hardware
En la siguiente ilustración se muestra una arquitectura típica de clúster. Los equipos se
conectan a través de una red de área local (LAN) de alta velocidad o mediante un
conmutador. Cada equipo puede trabajar de forma independiente. Además, en cada uno
se instala una capa software intermedia (middleware) que permite el funcionamiento de
todos los equipos como un único clúster. El middleware del clúster proporciona al usuario
una imagen unificada, conocida como imagen de sistema único (single-system image). El
middleware también es responsable de proporcionar alta disponibilidad, distribuyendo la
carga y respondiendo a los fallos de los componentes.
Arquitectura de equipo de clúster. Stallings, 2007.
Actividad 4. Aplicación de los multiprocesos
El propósito de esta actividad es que menciones el funcionamiento de los diferentes tipos de multiprocesamiento; así como sus ventajas y desventajas, distinguiendo bajo qué
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Ciencias Exactas Ingeniería y Tecnología |Ingeniería en Telemática 45
condiciones se puede usar, de acuerdo con el ejemplo especificado por tu Facilitador(a).
1. Ingresa al foro de la actividad y participa sobre la pregunta o situación de apertura.
2. Sustenta tus puntos de vista y retroalimenta a mínimo dos de tus compañeros(as).
3. Anota lo que consideres importante de cada tipo y considera la conclusión final de tu Facilitador(a).
Autoevaluación
Para reforzar los conocimientos relacionados con los temas que se abordaron en esta
unidad, es necesario que resuelvas la autoevaluación.
Ingresa al Aula para realizar tu actividad.
Si tienes alguna duda consúltala con tu Facilitador(a) para disiparla lo antes posible.
Evidencia de aprendizaje. Multiprocesamiento
Esta evidencia consiste en la elaboración de un diagrama de Venn que permita separar
las diferentes características del procesamiento simétrico, asimétrico y en paralelo, así
como los sistemas de memoria que se usan y si existe una relación con algún tipo de
multiprocesamiento. Con base en lo anterior, realiza lo siguiente:
1. Define el título de tu trabajo.
2. En un documento de texto, en tus propias palabras, elabora una pequeña
introducción de lo que vas a tratar en tu diagrama, mínimo media cuartilla.
3. Desarrolla el diagrama de Venn con sus respectivos conjuntos.
4. Indica los sistemas de memoria usados.
5. Indica la relación con cada tipo de multiprocesamiento.
6. Escribe la información que explique la relación del diagrama, así como la
clasificación de los conjuntos.
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Ciencias Exactas Ingeniería y Tecnología |Ingeniería en Telemática 46
7. Sustenta tu trabajo con por lo menos tres fuentes bibliográficas o electrónicas
reconocidas, no debes basarte en recursos como Wikipedia o similares. También
es importante reconocer y respetar los derechos de autor, dando los
correspondientes créditos.
8. Genera una conclusión de mínimo media cuartilla, aterrizando todas las ideas
plasmadas durante el desarrollo de tu evidencia.
9. Guarda tu trabajo en un archivo llamado KARQ2_U2_EA_XXYZ. Sustituye las
XX por las primeras dos letras de tu primer nombre, la Y por la inicial de tu
apellido paterno y la Z por la inicial de tu apellido materno.
10. Envía tu actividad al Portafolio de evidencias y aguarda la retroalimentación de
tu Facilitador(a), atiende sus comentarios y, de solicitarlo, envía una segunda
versión de tu evidencia.
*La evidencia será evaluada de acuerdo con su respectiva rúbrica, así que es importante
que la consultes.
Autorreflexiones
Como parte de cada unidad, es importante que ingreses al foro Preguntas de
autorreflexión y leas los cuestionamientos que formuló tu Facilitador(a), ya que a partir de
ellos debes elaborar tu autorreflexión y enviarla mediante la herramienta Autorreflexiones.
No olvides que también se toman en cuenta para la calificación final.
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Ciencias Exactas Ingeniería y Tecnología |Ingeniería en Telemática 47
Cierre de la unidad
Organización de procesos
Con este esquema se puede concluir y dar por terminada la segunda unidad; su finalidad
es que puedas visualizar la forma en que están distribuidos los diferentes tipos de
multiprocesamientos.
También se explicaron, de manera muy general, los diferentes tipos de procesamientos
básicos, esto te ayudará a analizar de qué forma se ejecutan las instrucciones dentro de
los microprocesadores y cómo es que se han ido evolucionando.
Posteriormente se explica la taxonomía de Flynn, que determina cómo se clasifican los
equipos de acuerdo con sus instrucciones y datos, de esta forma, se centra el enfoque en
la arquitectura MIMD para hacer notar que existen dos clasificaciones: los sistemas de
Memoria Compartida y Distribuida.
En la sección Para saber más, encontrarás algunos videos y artículos publicados en
diferentes revistas de divulgación científica, con lo que se reforzarán algunos de los temas
vistos, como los tipos de procesamiento y los sistemas de memoria, así como sus
ventajas y desventajas, entre otros datos que pueden resultar de tu interés.
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Ciencias Exactas Ingeniería y Tecnología |Ingeniería en Telemática 48
Para saber más
Icaza, Ó., Todo sobre multiprocesamiento simétrico [video]. Recuperado de
https://www.youtube.com/watch?v=_TkwTgsgZs0
Con este video reforzarás aspectos sobre el multiprocesamiento simétrico, así
como algunas definiciones relacionadas con el tema de una forma interactiva, en
éste encontrarás algunas metáforas y analogías con la vida real de cómo se puede
aplicar el multiprocesamiento simétrico.
Si deseas conocer un poco más acerca de la Taxonomía de Flynn consulta los
siguientes vínculos en los cuales encontrarás una descripción referente a la
clasificación que hace con el uso de instrucciones y de datos, en el video se
refuerzan los conocimientos adquiridos y en el artículo se muestra cómo se
implementa un microprocesador en específico para procesamiento de imágenes:
(s. a.). Taxonomía de Flynn. Recuperado de
Ordaz, G. et ál. Implementación de un procesador elemental en un FPGA
[documento pdf]. Recuperado de
https://www.youtube.com/watch?v=53lw9N5pEJY
http://www.uaz.edu.mx/eniinvie/eninvie2010/eninvielibro/instrumentacion/inst5.pdf
Fuentes de consulta
Fuentes básicas
Hennessy, J. L. (1993). Arquitectura de computadores, un enfoque cuantitativo.
México: McGraw Hill.
Stallings, W. (2007). Organización y arquitectura de computadores, 7a. ed. México:
Prentice Hall.
Tanenbaum, A. S. (2000). Organización de computadoras, un enfoque
estructurado, 7a. ed. México: Prentice Hall.
Vázquez, G. J. (2012). Arquitectura de computadoras I. México: Red Tercer
Milenio.
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Ciencias Exactas Ingeniería y Tecnología |Ingeniería en Telemática 49
Fuentes complementarias
Culler, D. (1997). Parallel Computer architecture. San Francisco: Morgan
Kaufmann.
Flynn, M.J. (1972). Some computer organizations and their effectiveness.
Baltimore: IEEE Transactions on Computers.
Gottlieb, G. (1989). Highly Parallel Computing. Redwood, USA: Benjamin-
Cummings Publising.
Grama, A. (2003). Introduction to Parallel Computing, 2a. ed. Nueva York: Addison
Wesley.
Hwang, K. (1993). Advanced Computer Architecture. India: McGraw-Hill.
Jouppi N. (1989). The Nonuniform Distribution of Instruction-Level and Machine
Parallelism and Its Effect on Performance. IEEE Transactions on Computers, vol.
38, 1645-1658.
Jouppi. N. y Wall. D. (1989). Available Instruction-Level Parallelism for Superscalar
and Superpipelined Machines. Procedimientos de la tercera conferencia
internacional sobre apoyo arquitectónico para lenguajes de programación y
sistemas operativos. Abril Palo Alto, California: Digital Western Research
Laboratory. Disponible en: http://www.hpl.hp.com/techreports/Compaq-DEC/WRL-
89-7.pdf
Maccabe, B, A. (1996). Architecture, organization, and programming. Boston:
IRWIN.
Stone, H. S. (1990).High-Performance Computer Architecture. 3a. ed.
Massachusett: Addison-Wesley.
Fuentes electrónicas
Alegsa (2012). Diccionario de Informática. Recuperado de
http://www.alegsa.com.ar/Dic/kernel.php
Computational Science and Engineering (2007). Computational Science & Engineering
Research Institute. Michigan Technological University. Recuperado de
http://www.cse.mtu.edu/cseri.html
Delgado, A. (2013). Nuevos procesadores para móviles en 2013. Eroski
Consumer. Recuperado de
http://www.consumer.es/web/es/tecnologia/hardware/2013/06/03/216846.php
De la Torre, M. (2012). Todo sobre el multiprocesamiento simétrico [video].
Recuperado de https://www.youtube.com/watch?v=_TkwTgsgZs0
EcuRed. (2013). Enciclopedia Colaborativa. Recuperado de
http://www.ecured.cu/index.php/Paralelismo_%28_inform%C3%A1tica%29
Arquitectura de computadoras II
Unidad 2. Multiprocesamiento
Ciencias Exactas Ingeniería y Tecnología |Ingeniería en Telemática 50
Facultad de Ingeniería de Sistemas (2009). Arquitecturas para procesamiento
paralelo. Recuperado de
http://publiespe.espe.edu.ec/articulos/sistemas/arquitectura/arquitectura.htm
Gargollo, A. F. (2011). Sistemas Multiprocesador de Memoria Compartida
Comerciales [documento pdf]. Recuperado de
http://www.atc.uniovi.es/inf_superior/4atc/trabajos/paralelas/4-
SM%20de%20Memoria%20Compartida%20comerciales-memoria.pdf
Guerrero (2011). Procesadores Superescalares: paralelismo implícito a nivel de
instrucción [documento pdf]. Recuperado de
http://ocw.uv.es/ingenieria-y-arquitectura/sistemas-electronicos-para-el-
tratamiento-de-la-informacion/seti_materiales/seti7_ocw.pdf
Huerta, P. P. (2009). Sistemas de multiprocesamiento simétrico sobre FPGA. Tesis
Doctoral. Universidad Rey Juan Carlos. Campus de Móstoles. Madrid. Recuperado
de http://eciencia.urjc.es/bitstream/10115/5245/1/tesis_pablo_huerta.pdf
Patt, Y. (2004). The Microprocessor Ten Years From Now: What Are The
Challenges, How Do We Meet Them?. Recuperado de http://vimeo.com/9604997
Rick, C. (2012). Arquitectura de computadoras [video]. Recuperado de
https://www.youtube.com/watch?v=_qmArlrYSsg
Sistemops. (2013). Wikispace. Recuperado de
http://sistemops.wikispaces.com/multiprocesamiento+asim%C3%A9trico
Torralba, M. L. (2002). Construcción de un Clúster MOSIX: Pruebas con
Simulación de HALOS. Tesis de Licenciatura. Universidad Tecnológica de la
Mixteca. Oaxaca. Recuperado de http://jupiter.utm.mx/~tesis_dig/8125.pdf
UDG. (2013). Universidad de Granma. Recuperado de
http://www.udg.co.cu/cmap/sistemas_operativos/sistema_operativo/multiprocesami
ento/multiprocesamiento.html
Recommended