Programación Concurrente

Page 8

P C R O O N G C R U A R M R A E C N I T Ó E N REGIONAL UNIVERSITARIO DE PANAMÁ OESTE FACULTAD DE INFORMÁTICA, ELECTRÓNICA Y COMUNICACIÓN ESCUELA DE INGENIERÍA EN INFORMÁTICA

ELABORADO POR:

ASPRILLA, MAYRA BONILLA, LILIAM

INDICE Introducción 1. ¿Qué es concurrencia?........................................................1 2. Origen……………………………………………………………2 3. Programación concurrente……………………………….……3 3.1.Importancia…………………………………………….…4 3.2.Multitareas………………………………………………..5 3.3.Motivaciones……………………………………….…….6 3.4.¿Para qué es útil la programación concurrente?........7 3.5.Beneficios……………………………………………..….8 3.6.Formas de concurrencia………………………………..9 4. Paralelismo vs concurrencia………………………………....10 5. Modelos de sistemas reales………………………………….11 6. Cómo especificar concurrencia………………………………12 7. Abstracción de la concurrencia………………………….…..13 8. Lenguajes concurrentes……………………………………...14 Página

INTRODUCCIÓN

Cuando hablamos de concurrencia nos referimos a la ejecución de varias acciones de forma simultánea por partedelordenador.NuestroobjetivoEnestedocumento es el de responder a ciertas interrogantes que nos ayudarán a conocer términos importantes en la programación

INTRODUCCIÓN A LA PROGRAMACIÓN CONCURRENTE

¿Quéesconcurrencia?

La concurrencia es la capacidad de que diferentes partes o unidades de un programa, algoritmo o problema se ejecuten de forma desordenada o parcial, sin afectar el resultado final.

Origen

La programación concurrente tiene sus raíces en los sistemas operativos y en la programación de sistemas, no en vano, los primeros programas concurrentes fueron los propios sistemas operativos de multiprogramación en los que un solo procesador de gran capacidad debía compartirsu tiempo entre muchos usuarios.

Programación concurrente Importancia

La importancia de la programación concurrente está en que proporciona un entorno abstracto donde estudiar el paralelismo sin tener que enfrascarse en los detalles de implementación. La concurrencia en los lenguajes de programación permite definir programas más legibles, fáciles de mantener, aumentar la portabilidad y, sin ella, en los casos de sistemas embebidos no podría existirun sistema operativo residente.

Multitareas

La multitarea es la característicadelossistemas operativos modernos que permite que varios procesos o aplicaciones se ejecuten aparentemente al mismo tiempo, compartiendo uno o másprocesadores.

Motivaciones

Existen sistemas inherentemente concurrentes: Lossistemasreactivos.

Aparte de esta motivación existen otras dos motivaciones principales, que de hecho fueron anteriores en eltiempoa la utilización de la programación concurrente para la construcción de sistemas reactivos: Explotación de arquitecturasparalelasparaobtenergananciaen lavelocidadde ejecución (Programación Paralela).

Seencargadelestudiodelasnocionesde ejecución concurrente, así como sus problemas de comunicación y sincronización.Sepueden“repartir”entre procesadores o gestionar en un único procesador según importancia. cuya solución es más fácil utilizando esta metodología.

¿Para qué es útil la programación concurrente?

Beneficios

Hace posible compartir recursos y subsistemas complejos. En sistemas monoprocesador permite optimizar el uso de los recursos. Facilita la programación de tiemporeal,yaquesepuedenconcebircomo procesos cuya ejecución se planifica de acuerdoconlaurgencia.

Paralelismo vs Concurrencia

Formas de concurrencia

Laprogramaciónconcurrentenoes más que la forma en la cual podemos resolver carets problemáticas de forma concurrente, es decir,ejecutando múltiplestiresalamismavezyno de forma ecumenical. En un programa concurrente las tires pueden continuar sin la necesidad dequeotrascomiencenofinalicen.

El paralelismo requiere un soporte físico: varios procesadores. La concurrencia es el caso general y el paralelismo un caso particular. La concurrencia (y el paralelismo) se refiere a la ejecución de código: Hay procesosconcurrentesyflujosconcurrentes.

Modelos de sistemas reales.

Los modelos pueden ser:

Icónico: Es una representación física de algunos objetos, ya sea en forma idealizada o en escala distinta. Podemos decir, por ejemplo, que un automóvil de juguete esun modelo icónico de un automóvil de verdad.

Analógico: Los modelos análogos se construyen mediante un conjunto de convenciones que sintetizan y codifican propiedades del objeto real para facilitar la "lectura"o interpretación de las mismas.

Gráfico: Un modelo gráfico representa todas las cantidades involucradas en el modelo mediante nodos de una gráfica dirigida, el modelo representa el supuesto que dados los nodos padres padres(v) p a d r e s ( v ) cada nodo es independiente del resto de los nodos a excepción de sus descendientes.

Simbólico: se construyen representando el objeto real mediante una codificación matemática (geométrica, estadística, etc.) Ejemplo: la representación de un edificio mediante la identificación y codificación en una estructura geométrica de suselementosbásicos.

Matemático: es uno de los tipos de modelos científicos que emplea algún tipo de formulismo matemático para expresar relaciones, proposiciones sustantivas de hechos, variables, parámetros, entidades y relaciones entre variables de las operaciones, para estudiar comportamientos de sistemas complejosante situacionesdifícilesde observaren la realidad.

Descriptivo: es uno de los métodos que se usan en investigaciones para la evaluación de algunas características de una población. Recopila datos cuantificables que se pueden analizar con fines estadísticos en una población objetivo. Este tipo de estudio tiene, por tanto, la forma de preguntas cerradas, lo que limita las posibilidades de obtener información exclusiva.

Cómo especificar concurrencia

Un programa concurrente especifica dos o más programas secuenciales que pueden ejecutarse concurrentemente en el tiempo como tareas o procesos.

Abstracción de la concurrencia

Nuestro programa expresa acciones concurrentes (procesos o hilos), pero éstas no tienen por qué ejecutarse en paralelo. Cada proceso concurrente se ejecuta sobre un procesador virtual. El compilador y el s.o. serán responsables de ejecutar nuestros procesos como consideren más oportuno.

Lenguajes concurrentes

Un Lenguaje de Programación será concurrente si posee las estructuras necesarias para definir y manejar diferentes tareas (hilos de ejecución) dentro de un programa. El compilador y el SO serán los responsables de “mapear” la concurrencia lógica del programa sobre el hardware disponible.

CONCLUSIÓN

La concurrenciaestápresenteenlaNaturalezayen lossistemasinformáticos.

Elhardwaremultiprocesador permite realizar mástrabajoen menostiempo.

De ahí se derivan dos grandesobjetivos: aprovecharlaconcurrenciaexistenteenelhardware facilitar al programador su misión de modelar sistemasconcurrentes

BIBLIOGRAFÍA

Concurrencia (Informática), (9 de Julio de 2022), Wikipedia https://en.m.wikipedia.org/wiki/Concurrency_(computer_science)

Paulino J., Ing. (03 de Julio de 2014), SlideShare https://es.slideshare.net/frandyjavier/programacin-concurrente35452572#:~:text=Notas%20del%20editorLa%20programaci%C3%B3n %20concurrente%20tiene%20sus%20ra%C3%ADces%20en%20los %20sistemas%20operativos,su%20tiempo%20entre%20muchos%20usuarios.

Universidad del Valle de México, CONCLUSIÓN La importancia de la programación, https://www.coursehero.com/file/42680797/A1-docx/

Bembibre V. (Enero 2009), Definición de Multitarea https://definicionabc.com/multitarea/

Programación concurrente en lenguajes funcionales, visitado 12/9/2022, Monografías https://www.monografias.com/trabajos106/programacion-concurrentelenguajes-funcionales/programacion-concurrente-lenguajes-funcionales RodríguezM. (12/9/2022), Introducción a la Programación Concurrente, CTM, https://www.google.com/url?sa=t&source=web&rct=j&url=https:// www2.ulpgc.es/hege/almacen/download/20/20233/ tema1.pdf&ved=2ahUKEwiDcHampz6AhV4toQIHf5tBJMQFnoECA0QAQ&usg=AOvVaw0ldLWmWEhGD5FC_s5n9FN

Drake J. Visitaso (12/9/2022) Programación Concurrente, ProcodisPdf https://www.google.com/url?sa=t&source=web&rct=j&url=https:// www.ctr.unican.es/asignaturas/procodis_3_ii/doc/ procodis_1_01.pdf&ved=2ahUKEwijhsGCj5z6AhXgkGoFHcTICdkQFnoECAUQ Bg&usg=AOvVaw249rWnu0Z5sOlWub_mFQrq

Gil M. Introducción a los Sistemas Operativos, Concurrencia yparalelismo, Pdf https://www.google.com/url?sa=t&source=web&rct=j&url=https:// people.ac.upc.edu/marisa/miso/ concurrencia.pdf&ved=2ahUKEwiW6c7JnZz6AhVjtoQIHQVoCBwQFnoECAUQ Bg&usg=AOvVaw3343EcXykC8JG1CRqTnucJ

Noriangel M. (23/7/2015),Tiposde Modelos de sistemasen relación a laTGS. https://prezi.com/9utvzfar6jvy/tipos-de-modelos-de-sistemas-en-relacion-a-laestructura-st/

Sistemas concurrentes, visitado (12/9/2022)Monografías

https://www.monografias.com/trabajos106/sistemas-concurrentesprogramacion-concurrente/sistemas-concurrentes-programacion-concurrente2

Programación Concurrente , visitado (12/9/2022)Informática, Pdf

https://www.google.com/url?sa=t&source=web&rct=j&url=http:// informatica.uv.es/iiguia/LP/teoria/apuntes/cuatr1/ tema3_1_concurrencia.pdf&ved=2ahUKEwjOwoPi0Zz6AhWGTDABHfuiAYoQF noECAUQBg&usg=AOvVaw3vJtmnOx0wncCrHExBzIIE

Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.
Programación Concurrente by mayra - Issuu