51
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

Unidad 2. Multiprocesamiento

Embed Size (px)

Citation preview

Page 1: Unidad 2. Multiprocesamiento

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

Page 2: Unidad 2. Multiprocesamiento

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

Page 3: Unidad 2. Multiprocesamiento

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.

Page 4: Unidad 2. Multiprocesamiento

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.

Page 5: Unidad 2. Multiprocesamiento

Arquitectura de computadoras II

Unidad 2. Multiprocesamiento

Ciencias Exactas Ingeniería y Tecnología |Ingeniería en Telemática 4

Multiprocesamiento

Page 6: Unidad 2. 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.

Page 7: Unidad 2. Multiprocesamiento

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.

Page 8: Unidad 2. Multiprocesamiento

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.

Page 9: Unidad 2. Multiprocesamiento

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.

Page 10: Unidad 2. Multiprocesamiento

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

Page 11: Unidad 2. Multiprocesamiento

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

Page 12: Unidad 2. Multiprocesamiento

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].

Page 13: Unidad 2. Multiprocesamiento

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.

Page 14: Unidad 2. Multiprocesamiento

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.

Page 15: Unidad 2. Multiprocesamiento

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

Page 16: Unidad 2. Multiprocesamiento

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

Page 17: Unidad 2. Multiprocesamiento

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).

Page 18: Unidad 2. Multiprocesamiento

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.

Page 19: Unidad 2. Multiprocesamiento

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).

Page 20: Unidad 2. Multiprocesamiento

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:

Page 21: Unidad 2. Multiprocesamiento

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,

Page 22: Unidad 2. Multiprocesamiento

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

Page 23: Unidad 2. Multiprocesamiento

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).

Page 24: Unidad 2. Multiprocesamiento

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

Page 25: Unidad 2. Multiprocesamiento

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

Page 26: Unidad 2. Multiprocesamiento

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.

Page 27: Unidad 2. Multiprocesamiento

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

Page 28: Unidad 2. Multiprocesamiento

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

Page 29: Unidad 2. Multiprocesamiento

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

Page 30: Unidad 2. Multiprocesamiento

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.

Page 31: Unidad 2. Multiprocesamiento

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

Page 32: Unidad 2. Multiprocesamiento

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

Page 33: Unidad 2. Multiprocesamiento

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

Page 34: Unidad 2. Multiprocesamiento

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

Page 35: Unidad 2. Multiprocesamiento

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

Page 36: Unidad 2. Multiprocesamiento

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.

Page 37: Unidad 2. Multiprocesamiento

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

Page 38: Unidad 2. Multiprocesamiento

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)

Page 39: Unidad 2. Multiprocesamiento

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)

Page 40: Unidad 2. Multiprocesamiento

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

Page 41: Unidad 2. Multiprocesamiento

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

Page 42: Unidad 2. Multiprocesamiento

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.

Page 43: Unidad 2. Multiprocesamiento

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.

Page 44: Unidad 2. Multiprocesamiento

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.

Page 45: Unidad 2. Multiprocesamiento

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é

Page 46: Unidad 2. Multiprocesamiento

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.

Page 47: Unidad 2. Multiprocesamiento

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.

Page 48: Unidad 2. Multiprocesamiento

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.

Page 49: Unidad 2. Multiprocesamiento

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.

Page 50: Unidad 2. Multiprocesamiento

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

Page 51: Unidad 2. Multiprocesamiento

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