Sincronizacion Flashcards
(12 cards)
Condicion de carrera que es?
Situación en la que varios procesos manipulan recursos compartidos y el resultado final de los mismos depende de la velocidad relativa de ejecución de tales procesos, pudiendo producirse valores inconsistentes.
Porque sucede?
Por las operaciones que se ejecutan sobre los recursos no se ejecutan de forma
atómica.
- Necesitan más de una instrucción para realizarse.
- La secuencia puede ser interrumpida en cualquier momento de su ejecución
Que se tiene que cumplir? SI o SI
¿Cuándo tengo? Se tienen que cumplir todas.
- Más de un proceso/hilo usando el mismo recurso.
- Al menos uno de los que lo usa está escribiendo/modificando (es compartido).
- Los accesos a dicho recurso se realizan de forma concurrente.
Que es la seccion critica
- Tiene que tener alguna operación sobre un recurso compartido. Si ese recurso es susceptible
a condiciones de carrera, se llama recurso crítico. - Tiene que ser lo más chica posible.
- Debe estar rodeada por un protocolo de E/S.
Cuales son los requerimientos:
Mutua exlcusion, Espera limitada, Progreso, Velocidad de procesos.
Mutua exclusion
Múltiples procesos ingresan a la sección crítica de uno a la vez. Necesaria para evitar la condición de carrera. Un único proceso en la S.C.
Espera limitada
Tiene que haber un límite en la cantidad de veces que otros procesos pueden ingresar en sus S.C. luego de que un proceso pide ingresar a la suya. No debería esperar indefinidamente la autorización para ejecutar su S.C.Anti starvation y deadlock.
Progreso
Si ningún proceso está ejecutando su S.C. y existen algunos que quieran entrar a la
misma, solo los procesos que no estén ejecutando su sección restante pueden participar en la
decisión de que proceso puede ingresar en su S.C. La decisión no puede posponerse
indefinidamente. Un proceso que este fuera de la S.C. no debe impedir el ingreso a dicha
región a otros procesos.
Velocidad de procesos
La solución debe funcionar sin importar cómo los procesos usen sus S.C.
Deshabilitar instrucciones cuando es buena solucion
(+) No permite que se cambie de un proceso una vez en la S.C.
(-) No es bueno en sistemas multiprocesador: Solo funciona en sistemas monoprocesador.
- Para que se cumpla la mutua exclusión, que no haya condición de carrera habría que
desactivar los otros procesadores.
- Baja eficiencia uso de CPU, poco rendimiento.
- El proceso tarda más en ingresar a la S.C.
(-) Implica cambio de modo por cada entrada a una S.C. 4 cambios de modos en total por querer entrar a una S.C.
Que es un semaforo
Variables enteras compartidas por varios procesos que sincronizan u ordenan dichos procesos controlando el acceso a los recursos compartidos que es accedida únicamente por 2 syscalls: wait y signal.
Cuando conviene usar la espera activa?
- Cuando hay más de 1 CPU (y los procesos que quieren acceder a la S.C. se ejecutan de forma paralela)
- Cuando la S.C. es chica (que el tiempo requerido para el cambio de contexto inherente al
bloqueo y desbloqueo es mayor que el tiempo requerido para pasar por la SC) - Cuando hay poca probabilidad de ocurrencia de condición de carrera.
Tiene una ejecución más rápida con espera activa, se ahorra el tiempo de bloqueo/desbloqueo + cambio de contexto, tiene mucho menos overhead.