El documento trata sobre el tema del paralelismo. Define el paralelismo como la realización de varias tareas de forma simultánea por agentes o procesadores diferentes con el objetivo de aumentar la velocidad computacional. Explica los diferentes niveles de paralelismo como a nivel de trabajo, tarea y hilo. También distingue el paralelismo de la concurrencia y sus objetivos.
1. TEMA: Paralelismo
Estudiantes:
Mora Lombeida
Puya Castro
Barcia Intriago
Contreras Baque
Asignatura: Sistemas Operativos
Distribuidos
Curso: 7 S “A”
UNIVERSIDAD AGRARIA DEL ECUADOR
FACULTAD DE CIENCIAS AGRARIAS
CARRERA DE INGENIERÍA EN CIENCIAS DE LA
COMPUTACIÓN
Docente: Ing. Jorge HidalgoMSc.
2. 2
1. Paralelismo
Definiciones de paralelismo
El proceso del paralelismo es un término que se usa para señalar técnicas
importantes que se usan para facilitar las tareas simultaneas de procesamiento de
datos con el objetivo de aumentar la velocidad computacional de los sistemas en las
computadoras, en vez de procesar una por una cada instrucción, un sistema paralelo
puede ejercerlo de forma simultánea de esta manera consiguiendo un menor tiempo
de ejecución (Morris Mano, 1993).
En el paralelismo suele dividirse en dos estilos como el paralelismo en los datos el
cual se basa en realizar varias operaciones en forma paralela en varios conjuntos de
datos, o paralelismo en el flujo de control del programa que es el que se basa en
tener varios flujos de forma simultánea efectuándose de forma paralela (García
Carrasco, 1993).
“Se entiende como paralelismo a la realización de varias tareas de forma simultánea,
de forma de que cada tarea es realizada por un agente o un procesador diferente, por lo
que es necesario que pueda disponer de más de una CPU” (Salinas, 1992).
Objetivos del paralelismo
El objetivo del paralelismo es poder hacer que en un computador un programa pueda
utilizar varios procesadores, trabajando de forma conjunta como un único sistema
integrado, ayudando a los usuarios a tener un desempeño más eficiente (Morera
Pascual, 2002).
El procesamiento paralelo tiene como principal objetivo explotar el paralelismo en las
aplicaciones informáticas, de esa forma aplicando en todas las tareas que realice un
programa (Univeraidad de Valencia, 2020).
3. 3
El paralelismo busca encargarse de varios programas de forma rápida y que una
cumpla de forma eficaz pudiendo así de esa manera que cada programa pueda correr y
ejecutarse sin ningún problema (Sola, 2007).
Condiciones del paralelismo
Una de las formas más efectivas para mejorar el desempeño de los microprocesadores
es la implementación de técnicas de hardware y software que permitan la ejecución de
más de una instrucción en paralelo durante un sólo ciclo de máquina. Las condiciones
necesarias para satisfacer lo expuesto, son los principios de las técnicas de paralelismo
implementadas en los microprocesadores (Ruiz, 2004, pág. 1).
Es decir, para que los procesos puedan ejecutarse en paralelo y de manera
independiente, existen diferentes dependencias tales como de datos, de control y de
recursos.
Según Betanzo (2013) indica que para que dos conjuntos de instrucciones se puedan
ejecutar concurrentemente se tiene que cumplir que:
La intersección entre el conjunto de variables leídas por uno, con el conjunto de
variables que escribe el otro, debe ser nulo y viceversa.
La intersección del conjunto de variables que escribe uno y el conjunto que escribe
el otro, debe ser nulo.
Por otro lado, el autor Moreno & Brunete (2020) señala estas condiciones:
• La transformación de código secuencial en paralelo puede realizarse:
– Manualmente por el programador (paralelismo explícito).
– Automáticamente por el compilador (paralelismo implícito).
• En ambos casos, el “particionamiento” del código es un paso clave.
• El particionamiento o división del código determina sí (y cómo) un segmento de código
puede ser ejecutado en paralelo o en un orden en particular.
• La detección de segmentos paralelos requiere la verificación de las relaciones de
dependencia.
4. 4
Niveles del paralelismo
1. Nivel de trabajo
“Cada trabajo tiene su propio procesador y todos los procesos e hilos son ejecutados
por el mismo procesador“ ( McIver McHoes, 2010, pág. 174).
2. Nivel de tarea
El paralelismo a nivel de tarea (TLP), que consiste en la ejecución solapada de
instrucciones independientes procedentes de distintos contextos, es decir, hilos o
tareas. Así, los programas con múltiples hilos explícitos pueden beneficiarse de los
procesadores multinúcleo, dado que cada hilo puede ejecutarse por separado (Yuste,
2008, pág. 2).
3. Nivel de hilo
“En un procesador multihilo los distintos hilos (hardware) de ejecución comparten las
unidades funcionales del procesador lo que hace necesario su replicación. Se distinguen
tres aproximaciones: multihilo de grano fino, multihilo de grano grueso y multihilo
simultáneo” (García & Pérez, 2018, pág. 4).
Paralelismo y concurrencia: diferencias
PARALELISMO CONCURRENCIA
“Es la acción de ejecutar tareas
literalmente en el transcurso de un
mismo tiempo” (DOKRY, 2017).
“Es el método de ejecutarse y
completarse tareas en periodos de
tiempos superpuestos” (DOKRY,
2017).
“Tiene como propósito aumentar
la velocidad computacional mediante
el uso de múltiples procesadores
denominada ejecución simultánea”
(Gutiérrez, 2020).
“EL objetivo primordial es disminuir el
tiempo de repuesta del sistema
aplicando una sola unidad de
procesamiento secuencial”
(Gutiérrez, 2020).
5. 5
“Se identifica en base a tomar un
problema inicial, dividirlo en
fracciones pequeñas y luego
procesarlas en forma concurrente
aprovechando al máximo la
capacidad del procesador” (Torres,
2013).
“Comprende en iniciar procesos en
forma de intervalos de ejecución
teniendo en cuenta el cálculo
secuencial con su propio flujo de
control de datos y recursos” (Torres,
2013).
6. 6
Bibliografía
McIver McHoes, A. (2010). Sistemas Operativos. Cengage Learning. Obtenido de
https://books.google.com.ec/books?id=JS2VOACxk3gC&pg=PA174&dq=niveles+de
+paralelismo+sistemas+operativos&hl=es&sa=X&ved=2ahUKEwii8IrAssjsAhWoxVk
KHcvyA0UQ6AEwAXoECAEQAg#v=onepage&q=niveles%20de%20paralelismo%20
sistemas%20operativos&f=false
Betanzo, E. (2013). Análisis en el procesamiento en paralelo en las base de datos.
Universidad Autónoma de México.
DOKRY. (22 de 08 de 2017). ¿Cuál es la diferencia entre concurrencia y paralelismo?
Recuperado el 22 de 10 de 2020, de www.dokry.com: https://www.dokry.com/2208
García Carrasco, J. (1993). Desarrollo de herramientas para una programación eficiente de
las redes de transputers. Univ de Castilla La Mancha, 1993. Recuperado el 22 de 10
de 2020
García, D., & Pérez, Ó. (2018). Paralelismo a nivel de instrucción. Universidad Carlos III de
Madrid. Obtenido de http://ocw.uc3m.es/ingenieria-informatica/arquitectura-de-
computadores/materiales/es-m3-intro.pdf/at_download/file
Gutiérrez, E. (05 de 01 de 2020). FONDOPERLATERRA. Recuperado el 22 de 10 de 2020,
de es.fondoperlaterra.org: https://es.fondoperlaterra.org/comdifference-between-
concurrency-and-parallelism-38
Moreno, L., & Brunete, A. (2020). Universidad Carlos III de Madrid. Obtenido de
Condiciones del paralelismo: http://163.117.136.247/ingenieria-
informatica/organizacion-de-computadores/material-teorico-1/OC_T04.pdf
7. 7
Morera Pascual, J. (2002). Conceptos de sistemas operativos. Madrid: Univ Pontifica
Comillas. Recuperado el 22 de 10 de 2020
Morris Mano, M. (1993). Arquitectura de computadoras. Iztapalapa: Pearson Educación,
1994. Recuperado el 22 de 10 de 2020
Ruiz, L. (2004). Consideraciones del diseño del paralelismo interno en hardware a nivel de
instrucción en Microprocesadores. Guatemala: Universidad de San Carlos de
Guatemala. Obtenido de http://biblioteca.usac.edu.gt/tesis/08/08_0117_EO.pdf
Salinas, M. (1992). FUNDAMENTOS Y APLICACIÓN AUTOMÁTICA DEL PARALELISMO.
Madrid. Recuperado el 22 de 10 de 2020
Sola, C. (2007). Fundamentos de sistemas operativos. Teoría y ejercicios resueltos: teoría
y ejercicios resueltos. Madrid: Editorial Paraninfo. Recuperado el 22ç de 11 de 2020
Torres, J. (06 de 04 de 2013). Paralelismo y Concurrencia. Recuperado el 22 de 10 de
2020, de medium.com: https://medium.com/jmtorres/paralelismo-y-concurrencia-
c143ddfce6d9
Univeraidad de Valencia. (2020). Ingenieria de Informatica. Universidad de Valencia.
Yuste, D. (2008). Detección automática de paralelismo a nivel de función. Universidad
Politécnica de Valencia. Obtenido de
https://riunet.upv.es/bitstream/handle/10251/13181/TesisDeMaster.pdf