next up previous contents
Next: 2.3.2 Arquitectura MPP Up: 2.3 Sistemas multiprocesador Previous: 2.3 Sistemas multiprocesador   Índice General

2.3.1 Arquitectura SMP

El enfoque más sencillo para una máquina con múltiples procesadores es el esquema SMP (Symmetrical Multiprocessing, multiproceso simétrico). Una arquitectura SMP es básicamente una expansión de una arquitectura tradicional pero con la adición de varios procesadores que comparten todos los demás recursos del sistema (memoria principal, almacenamiento secundario, periféricos de entrada y salida). En esta arquitectura no se establece distinción entre los procesadores; todos son jerárquicamente iguales y pueden ejecutar tareas indistintamente. De esta característica viene el nombre de ``simétrica''. Un diagrama de una arquitectura SMP genérica se muestra en la figura (1.1).

Figura 1.1: Arquitectura SMP

En general una arquitectura SMP tiene un equivalente en uniprocesador, y naturalmente un sistema SMP puede ejecutar simultáneamente varios programas o aplicaciones, que normalmente podrían ejecutarse en el sistema uniprocesador, de manera independiente. Sin embargo, para el uso de aplicaciones que aprovechen los múltiples procesadores para expeditar la realización de cálculos, nos interesa que dichos procesos no sean totalmente independientes, buscando entonces que cuenten con manera de comunicarse para distribuirse información, compartir y consolidar resultados.

Ya que un sistema SMP los procesadores comparten todos los periféricos y recursos, el esquema más obvio para comunicarse en una arquitectura SMP es el uso de memoria compartida. Como el nombre lo indica, en este esquema los procesadores tienen acceso a un espacio de direcciones común; esto puede ser todo el espacio de direcciones o únicamente un área designada para memoria compartida, permitiendo a cada proceso contar con un área exclusiva para sus requerimientos.

La memoria compartida es un esquema conceptualmente simple de utilizar. Sin embargo presenta ciertas limitaciones. Una de ellas, ya que se puede tener a dos o más procesadores manipulando la misma área de memoria, es que se puede caer en inconsistencias donde un procesador espera un dato que ha sido modificado por otro. Esto también puede provocar condiciones de competencia (``race conditions'') y atoramientos (``deadlocks''), que son problemas clásicos de la sincronización de procesos, pero que no pueden dejar de tomarse en cuenta en una arquitectura SMP. Estas condiciones pueden resolverse utilizando mecanismos de sincronización de procesos, como semáforos, monitores y secciones críticas.

La limitación más importante de la arquitectura SMP, en términos del rendimiento máximo que puede alcanzarse, es la posibilidad de saturación de los buses del sistema. Ya que todos los procesadores tienen acceso al mismo bus de memoria, y en general a todos los periféricos que se encuentran comunicados comúnmente por buses, conforme se incrementa el número de procesadores se incrementa también el tráfico en dichos buses. Esto causa una saturación que finalmente termina por negar el incremento de rendimiento obtenido teniendo varios procesadores. Por esta razón una arquitectura SMP difícilmente puede escalar más allá de algunas decenas de procesadores.


next up previous contents
Next: 2.3.2 Arquitectura MPP Up: 2.3 Sistemas multiprocesador Previous: 2.3 Sistemas multiprocesador   Índice General
2002-05-15