Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Abstract
En la lectura de Dijkstra se ataca los principales problemas del computo concurrente y la comunicaión
entre procesos,más especificamente como comunicarlos a traves de un buffer y evitar que los procesos
interfieran entre si, se atacan varias soluciónes como soluciónes por semáforos o candados y se nos hace
concientes de la dificultad de este problema
1
El ”deseo” del productor en cuestión se pone a cero; esto es correcto, ya que su solicitud ha sido concedida;
el bloqueo del búfer se reduce en 1 en consecuencia.
Una operación en V en el semáforo del productor en cuestión despierta al productor dormido, una vez
finalizado este proceso el consumidor vuelve a checar si hay productores dormidos el proceso solo termina
cuando ”buffer-blocking=0” ya no hay productores durmientes, o no hay suficente espacio para los produc-
tores
2
un florin el banquero puede tardar en darselo,las preguntas a solucionar esta vez son: ¿bajo qué condiciones
puede el banquero firmar el contrato con un nuevo cliente?
¿bajo qué condiciones puede el banquero pagar un (próximo) florı́n a un cliente que lo solicita sin correr el
peligro del Abrazo Mortal?
Para la solución se crean las variables claim,loan,need,cash, cada vez que una persona solicita un florin, el
banquero ve que pasaria si se lo presta, es decir si cash es suficiente para que las transacciones de todos los
clientes puedan termianr en caso contrario le dice que espere,para el algoritmo en vez de verificar todos los
casos, el autor solo verifica aquellos en los que partiendo de una situación segura se investiga que pasaria si el
banquero hubiese dado un florin, el resultado de esta verificacion se guarda en la variable f inish − doubtf ull
3 Conclusiones
A traves de la lectura pude observar que el problema de concurrencia no es nada sencilla y que por muchos
años fue un problema que no tenia una solucion realmente convincente, pues todas las soluciones que se
daban tenian alguna falla tales como que los dos programas se bloquearan asi mismos, o que si alguno de
los dos fallaba,esto generaba una reacción en cadena que hacia que ambos fallaran, o podia pasar que ambos
trataran de acceder al mismo tiempo a una variable y la modicaran de una manera indeseada o no como
se esperaba,en esta ultima parte en particular me pude dar cuenta que la mayor parte de problemas de
concurrencia se dan por el acceso simultaneo a recursos que son compartidos, por otro lado el hecho de que
varios procesos se puedan comunicar a traves de un buffer y que el tamaño de la información a insertar pueda
ser variable hace que el problema se torne mucho más complejo y tengamos que ingeniarnola a partir de
nuevas variables que nos inidiquen, el estado de almacenamiento de buffer por unidad de almacenamiento, si
es posible o no acceder y la prioridad que le debemos dar al proceso a partir del tamaño de la información,
es interesante conocer el problema del abrazo mortal, y darse cuenta como muchas veces el acceso a una
cantidad finita de recursos disponibles por muchos programas, provoca que el sistema se bloque, me gusto
verlo con la metafora del banquera y como este tiene que ir deciendo si prestar o no prestar el recurso en
ese momento para evitar un abrazo morta, además de que en general los florines podrian ser programas en
si mismos y debiamos plantearnos el estado de cada florin.