1. TALLER 2
ARQUITECTURAS
PARALELAS
Universidad Agraria del Ecuador
Facultad de Ciencias Agrarias
Carrera de Ingeniería en Ciencias de la
Computación
Docente: Ing. Jorge Hidalgo MSc.
Asignatura: Sistemas Operativos
Distribuidos
Curso: 7 S “A”
Estudiantes del Grupo:
Mora LombeidaLady
Puya Castro Josué
Barcia Intriago José
Contreras Baque Pamela
AlvaradoMendoza Luis
2. Arquitecturas Paralelas
1. Taxonomía de Flynn: Flujo de instruccionesy datos
Los sistemas multiprocesadores son aquellos que gestionan varios
procesadores de modo eficiente. Hay que tener en cuenta que se disponga de
hardware y sistemas operativos multiproceso, es por ello, que el paradigma de
computación paralela es muy importante hoy en día.
Según Caballeros y Clavero (2016) afirma que:
Los sistemas operativos multiprocesos existe una clasificación denominada
taxonomía de Flynn que fue propuesta por Michael J. Flynn en 1996 y se basa
en el número de instrucciones y secuencia de datos que la computadora utiliza
para procesar algún tipo de información.
Considerándose una clasificación para las computadoras con arquitectura
paralela, esta misma se basa en identificar la cantidad de instrucciones y flujo de
datos concurrentes en un instante de procesamiento en un instante de periodo de
tiempo.
Además, se puede tener en cuenta que la taxonomía de Flynn se clasifica más
extendida del paralelismo que son los siguientes:
Distingue entre instrucciones y datos
Esto puede ser simples o múltiples.
1.1 Flujo de instrucciones
Se lo considera también como flujo de control el cual ordena y coordina
parámetros en base a la ejecución de cualquier programa o dato que es asignados
por la programación, si no existen una sentencia de control o instrucción los
programas se ejecutarían de forma secuencial, y empezarían por la primera
instrucción e irían una a una hasta llegar a la última.
3. “Es el orden en el cual se ejecutan las instrucciones de un programa, siendo las
propias instrucciones la que determinan o controla dicho flujo” (Mintzberg, 2012).
El orden que se puede asignar una instrucción puede ser ascendente,
descendente o podemos ejecutar un conjunto de instrucciones alguna
determinada cantidad de veces en donde se modifique algunos valores y hasta
que el valor cumple alguna condición se dejen de ejecutar los parámetros
especificados.
1.2 Flujo de datos
El tener un sistema multiprocesador siempre es importante el identificar de que
forma se traslada la información de un punto a otro. Detallando los procesos
concretos que aparecen como elementos que sintetiza la información y la reducen
en una mínima capacidad.
“Es la técnica de análisis que busca analizar y comprender como se traslada los
datos a través de un sistema y que actividades procesan en ese periodo de tiempo
óptimo” (Gil & Pomares, 2010).
El sistema realizara todas las funcione con el fin de coordinar el flujo de datos
que le permita trasladar la información de un punto a otro, gestionando los datos
para un acceso rápido y seguro.
4. 2. Computadoras:SISD,MISD,SIMD,MIMD
La clasificación de Flynn considera los cuatros casos posibles que se detallan a
continuación:
SISD ( Single Instruction, Single Data)
En español significa una instrucción, un dato y el siguiente autor indica su
definición:
Esta representa la clásica máquina de Von-Neumann, en la cual un único
programa es ejecutado usando solamente un conjunto de datos específicos a
él. Está compuesto de una memoria central donde se guardan los datos y los
programas, y de un procesador (unidad de control y unidad de procesamiento
(Aguilar & Leiss, 2004, p. 18)).
Es decir, un único procesador ejecuta un solo flujo de instrucciones, para operar
sobre datos almacenados en una única memoria.
Figura 1. Arquitectura tipo SISD (Máquina Von-Neumann)
MISD (Multiple Instruction Stream, Single Data Stream)
“Estas son computadoras con elementos de procesamiento, cada uno
ejecutando una tarea diferente, de tal forma que todos los datos a procesar deben
ser pasados a través de cada elemento de procesamiento para su procesamiento”
(Aguilar & Leiss, 2004, p. 20). Otros autores consideran que representan el modo
5. de procesamiento por encauzamiento, además se refiere a múltiples instrucciones
ejecutándose sobre un único dato.
Según Álvarez (2011) indica que esta arquitetcura puede describirse en dos
categorías:
a) Una clase de maquinas que requieren de distintas unidades de
procesamiento que pueden recibir distintas instrucciones para ser
ejecutadas con los mismos datos. Sin embargo, este tipo de arquitectura es
mas un ejercicio intelectual que una configuracion práctica.
b) Una clase de máquinas tales que el flujo de datos circula sobre una serie de
elementos de procesamiento, Las arquitectura pipeline tale socmo los
arrays sistólicos entran dentro de este grupo de ocmputadoras (p. 33).
SIMD (Single Instruction Stream, Multiple Data Stream)
Según Aquilar y Leiss (2004) señala lo siguiente de esta arquitectura:
El enfoque de paralelismo usado aquí se denomina paralelismo de datos. Los
arreglos de procesadores son típicos ejemplos de esta clase de arquitectura. En
estas arquitecturas, un controlador recibe y decodifica secuencias de
instrucciones a ejecutar, para después enviarlas a múltiples procesadores
esclavos. SIMD hace un uso eficiente de la memoria, y facilita un manejo
eficiente del grado de paralelismo (p. 19).
Así mismo, Álvarez (2011) indica las siguientes características principales:
a) Distribuyen el procesamiento sobre una larga cantidad de hardware.
b) Operan concurrentemente con muchos elementos de datos diferentes.
c) Realizan el mismo calculo en todos los elementos de datos.
d) Cada procesador ejecuta su propio programa (p. 31).
6. MIMD (Multiple Instruction Stream, Multiple Data Stream)
Según Aquilar y Leiss (2004) señala lo siguiente de esta arquitectura:
Es el modelo más general de paralelismo, y debido a su flexibilidad, una gran
variedad de tipos de paralelismo puede ser explotados. Las ideas básicas son
que múltiples tareas heterogéneas puedan ser ejecutadas al mismo tiempo, y
que cada procesador opere independientemente con ocasionales
sincronizaciones con otros. Está compuesto por un conjunto de elementos de
procesamiento donde cada uno realiza una tarea, independiente o no, con
respecto a los otros procesadores. La conectividad entre los elementos no se
especifica y usualmente se explota un paralelismo funcional. La forma de
programación usualmente utilizada es del tipo concurrente, en la cual múltiples
tareas, quizás diferentes entre ellas, se pueden ejecutar simultáneamente (p.
21).
Así mismo, Álvarez (2011) indica que posee las siguientes características:
a) Distribuyen al procesamiento sobre un numero independiente de
procesadores
b) Comparten fuentes, incluyendo el sistema de memoria principal sobre los
procesadores.
c) Cada procesador opera independientemente y concurrentemente.
d) Cada procesador ejecuta su propio programa (p. 33).
3. Taxonomía de Flynn actual
“Es un mecanismo de clasificación de las computadoras, es la manera clásica
de organizar las computadoras, aunque no cubre con todas las posibles
arquitecturas, y aunque no ubre todas las posibles arquitecturas, proporciona una
importante penetración en varias arquitecturas de computadoras” (Lizebth Perez,
2012).
El método Flynn se basa en el número de instrucciones y de la secuencia de
instrucciones sencillas o múltiples y secuencias de datos sencillas o múltiples.
Esto da lugar a 4 tipos de computadoras, de las cuales solamente dos son
aplicables a computadoras paralelas.
7. Clasifica las diferentes arquitecturas según sus flujos de datos y de instrucciones:
SISD: Arquitectura serie con un flujo de datos y otros de instrucciones.
SIMD: Un solo flujo de instrucciones y varios de datos.
MIMD: arquitecturas con multiporcesadores con varios flujos de intruccione
sy otros tantos de datos.
MISD: Varios flujos de instrucciones y uno solo de datos.
4. Computadoras de memoria compartida
Memoria compartida es aquel que puede compartir las mismas rutas o espacio
de las direcciones, lo que se trata de dar a entender es que todo el
direccionamiento de la memoria principal es único y pueden ingresar a todas
posiciones dentro de la memoria.
En las que todos los procesadores comparten el mismo espacio de direcciones
y los procesadores pueden acceder a todas las posiciones de memoria
(Universidad Europea de Madrid, 2020).
Dentro de la memoria compartida, existen computadora de memoria
compartida, como las que se nombran a continuación:
UMA es conocida como una arquitectura de memoria compartida o
arquitectura de acceso de memoria uniforme, donde su característica es
que todos los procesadores comparten mismo espacio de memoria y al
acceder a cualquier posición de la memoria demoran el mismo tiempo
NUMA también es un tipo de memoria compartida o una arquitectura de
acceso a memoria no uniforme, este se encarga en que todos los
procesadores comparten el mismo espacio del direccionamiento de
memoria, a diferencia es donde cada procesador consta con su propia
memoria local.
COMA aunque es una arquitectura de memoria cache, es un caso particular
de NUMA lo que hace que sea de memoria compartida, su función es que
sus accesos a las posiciones no son uniforme y al acceder a las memorias
locales tardan poco tiempo.
Los multiprocesadores son categorizados como computadoras que contienen
memorias compartidas permitiendo ejecutar de forma simultánea varios hilos que
pertenecen a un mismo proceso o también procesos diferentes y que su
8. clasificación más común suelen ser UMA, NUMA y COMA (Jiménez González,
2021):
Las arquitecturas multiprocesador que reciben el nombre UMA y NUMA
son los que tienen que ver con el tiempo de acceso a la memoria
principal, que no tienen cuenta la diferencia de tiempo entre acertar o
fallar en una caché.
Otro multiprocesador poco conocido es COMA aunque no pudo tener
mucho éxito, se lo denomina como parte de la memoria compartida,
como si fuera un gran caché.
5. Computadoras de memoria distribuida
El sistema de memoria compartida distribuida, identificada por sus siglas (DSM)
son las que representa la creación hibrida de dos tipos de computación paralelas:
la memora distribuida en sistemas multiprocesadores y los sistemas distribuidos.
Es un sistema multiprocesador en el que cada procesador tiene su propia
memoria privada, y las tareas computacionales solo pueden operar con datos
locales, y si se requieren datos remotos, la tarea computacional debe
comunicarse con uno o más procesadores remotos ya sea compartiendo
información solamente enviado mensajes (Guerrero, 2015).
Por ello se la identifica como una abstracción que se la implementa para
compartir datos entre computadoras que no permiten compartir memoria física.
Esto simula memorias compartidas y se usan lo mecanismo de comunicación y
sincronizaron de sistemas multiprocesadores.
En esta arquitectura, el computador paralelo es esencialmente una colección de
procesadores secuenciales, cada uno con su propia memoria local, que pueden
trabajar conjuntamente:
Cada nodo tiene rápido acceso a su propia memoria y acceso a la memoria
de otros nodos mediante una red de comunicaciones, habitualmente una
red de comunicaciones de alta velocidad.
Los datos son intercambiados entre los nodos como mensajes a través de
la red.
9. Una red de ordenadores, especialmente si disponen de una interconexión
de alta velocidad, puede ser vista como una multicomputadora de memoria
distribuida y como tal ser utilizada para resolver problemas mediante
computación paralela.
Propiedades que ofrece una multicomputadora con memoria distribuida:
El número de nodos puede ir desde algunas decenas hasta varios miles (o
más).
La arquitectura de paso de mensajes tiene ventajas sobre la de memoria
compartida cuando el número de procesadores es grande.
El número de canales físicos entre nodos suele oscilar entre cuatro y ocho.
Esta arquitectura es directamente escalable y presenta un bajo coste para
sistemas grandes.
Un problema se especifica como un conjunto de procesos que se
comunican entre sí y que se hacen corresponder sobre la estructura física
de procesadores.
El tamaño de un proceso viene determinado por su granularidad:
Al reducirse la granularidad, la sobrecarga de comunicación de los
procesos aumenta.
Por ello, la granularidad empleada en este tipo de máquinas suele ser
media o gruesa.
El programa a ejecutar debe de ser intensivo en cálculo, no intensivo en
operaciones de entrada/salida o de paso de mensajes
10. Bibliografía
Aguilar, J., & Leiss, E. (2004). Introducción a la Computación Paralela. Venezuela:
Universidad de Los Andes. Retrieved from
http://www.ing.ula.ve/~aguilar/publicaciones/objetos/libros/ICP.pdf
Álvarez, J. (2011). Reconstrucción 3D a partir de proyecciones en Entornos
Multihebrados. Universidad Almería. Retrieved from
https://books.google.com.ec/books?id=ET9BAQAAQBAJ&printsec=frontcov
er#v=onepage&q&f=false
Caballeros, C., & CLavero, G. (2016). Computadores para bases de datos. Madrid:
Nobel, S.A.
Gil, P., & Pomares, J. (2010). Redes y transmision de datos. Valencia:
Compobell,S.L.
Jiménez González, D. (07 de 01 de 2021). Openaccess.uoc.edu. Recuperado el
07 de 01 de 2021, de Openaccess.uoc.edu:
https://www.google.com/search?q=computadoras+de+memoria+compartida
&sxsrf=ALeKk00j1EyfJoDEHhMKuBxxmM70YSzOMA:1610032020596&ei=l
CP3X9zrI8TH5gLKm7aYAw&start=10&sa=N&ved=2ahUKEwjchajVjIruAhXE
o1kKHcqNDTMQ8NMDegQIBhBM&biw=1536&bih=792
Lizebth Perez. (2012). Sistemas Operativos Distribuidos. España: La Joya.
Mintzberg, H. (2012). La estructuración de las organizaciones. Mexico: Ariel.
11. Universidad Europea de Madrid. (2020). Multiprocesadores. Madrid: Universidad
Europea de Madrid. Recuperado el 07 de 01 de 2021, de
https://www.cartagena99.com/recursos/alumnos/apuntes/ININF1_M10_U4_
T1.pdf