Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Exclusión Mutua
En un sistema multiprogramado con un único procesador, los procesos se
intercalan en el tiempo (i.e. Round Robin) para dar apariencia de ejecución
simultánea. Aunque no se consigue un procesado en paralelo real, y aunque
se produce un sobrecargado en la cpu por el hecho de tener que cambiar de
tarea constantemente, las ventajas de todo esto son muy elevadas. Ejemplo:
avion-torre, chat's, etc.
Uno de los grandes problemas que nos podemos encontrar es que el hecho
de compartir recursos está lleno de riesgos. Por ejemplo, si dos procesos
hacen uso al mismo tiempo de una variable global y ambos llevan a cabo
tanto operaciones de lectura como de escritura sobre dicha variable, el orden
en que se ejecuten estas lecturas y escrituras es crítico, puesto que se verá
afectado el valor de la variable.
Semáforo
- señal (despertar)
- espera (dormir)
Ventajas:
Algoritmo de Decker
Segundo intento:
Cada proceso debe tener su propia llave de la sección crítica para que, si
uno de ellos falla, pueda seguir accediendo a su sección crítica; para esto
se define un vector booleano señal. Cada proceso puede evaluar el valor de
señal del otro, pero no modificarlo. Cuando un proceso desea entrar en su
sección crítica, comprueba la variable señal del otro hasta que tiene el valor
falso (indica que el otro proceso no está en su sección crítica). Asigna a su
propia señal el valor cierto y entra en su sección crítica. Cuando deja su
sección crítica asigna falso a su señal.
Si uno de los procesos falla fuera de la sección crítica, incluso el código para
dar valor a las variables señal, el otro proceso no se queda bloqueado. El
otro proceso puede entrar en su sección crítica tantas veces como quiera,
porque la variable señal del otro proceso está siempre en falso. Pero si un
proceso falla en su sección crítica o después de haber asignado cierto a su
señal, el otro proceso estará bloqueado permanentemente.
Tercer intento
El segundo intento falla porque un proceso puede cambiar su estado
después de que el otro proceso lo ha comprobado, pero antes de que pueda
entrar en su sección crítica.
Si un proceso falla dentro de su sección crítica, incluso el código que da valor
a la variable señal que controla el acceso a la sección crítica, el otro proceso
se bloquea y si un proceso falla fuera de su sección crítica, el otro proceso
no se bloquea.
Si ambos procesos ponen sus variables señal a cierto antes de que ambos
hayan ejecutado una sentencia, cada uno pensará que el otro ha entrado en
su sección crítica, generando así un interbloqueo.
Cuarto intento
En el tercer intento, un proceso fijaba su estado sin conocer el estado del
otro. Se puede arreglar esto haciendo que los procesos activen su señal para
indicar que desean entrar en la sección crítica, pero deben estar listos para
desactivar la variable señal y ceder la preferencia al otro proceso.
Existe una situación llamada bloqueo vital, esto no es un interbloqueo,
porque cualquier cambio en la velocidad relativa de los procesos rompería
este ciclo y permitiría a uno entrar en la sección crítica. Recordando que el
interbloqueo se produce cuando un conjunto de procesos desea entrar en
sus secciones críticas, pero ninguno lo consigue. Con el bloqueo vital hay
posibles secuencias de ejecución con éxito.
Interbloqueo
El interbloqueo es una anomalía que puede ocurrir durante la ejecución de
procesos concurrentes debido a la competencia por los recursos.
Si bien es cierto que prácticamente ningún sistema operativo real incorpora
mecanismos de tratamiento de interbloqueo, esto es debido a una cuestión
de la pérdida de rendimiento que conlleva su tratamiento para la baja
probabilidad que hay de que ocurra. En un sistema operativo ideal,
sin embargo, sí deberían incluirse mecanismos para su tratamiento, dado
que existen y son bien conocidos.
El interbloqueo es un problema que afecta a procesos concurrentes que
utilizan recursos en un sistema.
Los procesos solicitan recursos al sistema y los liberan cuando ya no los
necesitan. Un recurso puede estar disponible o bien asignado a algún
proceso.
Ejemplares. Puede haber varios ejemplares de un mismo tipo de recurso (ej.
Varias impresoras). En este caso, cuando un proceso solicita un recurso, se
le concede cualquiera de los ejemplares que esté disponible.
Si un proceso solicita un recurso que no tiene ejemplares disponibles, el
proceso queda bloqueado, esperando hasta que se le asigna un ejemplar.
El problema