Está en la página 1de 7

Materia: Programación concurrente

Profesor: ALAN MAZZOCO DOSSETTI

Actividad: 3 Reporte Investigación


Fecha: 13/06/22
Alumnos: Cristian Eduardo Mariño
Gea
Objetivo
Examinar los problemas más comunes asociados con la programación concurrente y su
relación con los principales modelos de programación existentes.
A. Ejemplo de código en el que se evidencie una condición de carrera en su
sección crítica y otro en el que se muestre el principio de interbloqueo

Condición de carrera en su sección crítica

Principio de interbloqueo
B. Explicación detallada de cada código planteado, mencionando en que
punto ocurre la condición de carrera o el interbloqueo, según
corresponda

Condición de Carrera
Su código tendrá una condición de carrera si existe la posibilidad de producir
resultados incorrectos debido al entrelazado de hilos. Esta sección describe dos tipos
de condiciones de carrera:
a. Comprobar-luego-actuar
b. Leer -modificar- escribir

El problema aquí es que cuando el primer hilo actuará después de la verificación


anterior, otro hilo podría haber intercalado y cambiado el valor del campo. Ahora, el
primer hilo actuará basándose en un valor que ya no es válido

En la imagen siguiente podemos observar los resultados de la ejecución de diferentes


hilos y como los resultados son alterados debido que no contamos con algún método
que controlo la condición de carrera

T13 | Changed
T17 | Changed

T35 | Not changed


T10 | Changed

T48 | Not changed


T14 | Changed

T60 | Not changed


T6 | Changed

T5 | Changed
T63 | Not changed
T18 | Not changed
Interbloqueo

El interbloqueo describe una situación en la que dos o más subprocesos se


bloquean para siempre, esperando el uno por el otro. El interbloqueo se produce
cuando varios subprocesos necesitan los mismos bloqueos, pero los obtienen en
un orden diferente.
Cuando compila y ejecuta el programa anterior, encuentra una situación de
interbloqueo y la siguiente es la salida producida por el programa:

Salida
Hilo 1: bloqueo de retención 1
...Hilo 2: bloqueo de sujeción
2 ... Hilo 1: Esperando
bloqueo 2 ...
Hilo 2: Esperando bloqueo 1 ...

El programa anterior se colgará para siempre porque ninguno de los hilos en


posición puede continuar y esperar el uno al otro para liberar el bloqueo, por lo
quepuede salir del programa presionando CTRL + C.
C. Resumen acerca de los autómatas finitos deterministas y resuelve los
ejercicios 1 y 2 contenidos en el material
Autómatas Finitos Determinísticos.

Definición

Autómata: Modelo matemático de un sistema con entradas y

salidas discretas.

Finito: Tiene un número. finito de estados.

Determinístico: En todo momento está en un solo estado.

Interpretación de funcionamiento:

Este autómata recibirá una cadena en la cinta de entrada e ira procesando de uno
a la vez los símbolos de entrada. Comenzará su funcionamiento posicionado en el
estado inicial, y desde este estado comenzará su ejecución. En cada intervalo de
tiempo discreto realizará dos acciones las cuales serán consideradas como
acciones indivisibles en un determinado intervalo de tiempo.

Las acciones que realiza son:

· Leer el próximo símbolo, desde la cinta de entrada.


· Transitar, cambiar de estado

Extensión a palabras

El autómata finito determinista realizará transiciones de estados a través de la función f solo


cuando reciba un símbolo de entrada. Esto puede generalizarse a una palabra completa, o
cuando reciba la palabra vacía, en este caso se denominará una función de transición f´
como la función
Conclusión

Si dudad la programación concurrente, sus problemas y soluciones a ellas, son de vital

importancia a la hora de inmiscuirse en este mundo; hoy revisamos dos problemas bastante

comunes en este tipo de programación, la condición de Carrera, donde podemos observar

que sin un control de la misma nuestros resultados podrían variar, ya que la ejecución de

los subprocesos por más de un hilo podría modificar los valores y/o resultados.

Por otro lado, el interbloqueo, donde nos percatamos de que la secuencia en el uso de los

recursos es vital para evitar dicho problema.

Referencia

Fervari, R. (2020). Autómatas Finitos Deterministicos (DFA) Haga clic para ver más

opciones [Archivo PDF]. Recuperado de

https://cs.famaf.unc.edu.ar/~rfervari/icc16/slides/class-1-slides.pdf

Jorba, E. y Suppi, R. (2004). Administración Avanzada GNU Linux Haga clic para ver más

opciones [Archivo PDF]. Recuperado de

https://libros.metabiblioteca.org/bitstream/001/425/1/871.pdf

También podría gustarte