unidad 3 sistemas operativos
Concurrencia: Exclusión Mutua y
Sincronización
•
•
•
•
Comunicación entre procesos
Compartir recursos
Sincronización de múltiples procesos
Asignación del tiempo de procesador
Capítulo 5
Concurrencia
• Aplicación Múltiple
– Multiprogramación
• Aplicación Estructurada
– La aplicación puede ser un conjunto de
procesos concurrentes
• Estructura delSistema Operativo
– Al sistema operativo es un conjunto de
procesos o threads (microkernel)
Dificultades con la Concurrencia
• Compartir recursos globales
• Gestión de asignación de recursos
• Errores de programación difíciles de localizar
Un Ejemplo Simple
void echo()
{
chin = getchar();
chout = chin;
putchar(chout);
}
Ocupaciones del Sistema Operativo
• Seguir la pista alos procesos activos
• Asignar y liberar recursos
–
–
–
–
Tiempo del procesador
Memoria
Ficheros
Dispositivos de E/S
• Proteger datos y recursos
• El resultado de un proceso debe ser
independiente de la velocidad de ejecución de
cualquier otro proceso concurrente
Un Ejemplo Simple
Proceso P1
Proceso P2
.
.
chin = getchar(); .
.
chin = getchar();
chout = chin;
chout =chin;
putchar(chout);
.
.
putchar(chout);
.
.
Interacción entre Procesos
• Los procesos se ignoran unos a otros
• Los procesos se dan cuenta indirectamente
de los otros
• Los procesos son conscientes de los otros
directamente
Competencia entre Procesos
por los Recursos
• Exclusión Mutua
– Secciones críticas
• En cada momento sólo se permite a un programa
estar en una seccióncrítica
• Por ejemplo, en un momento dado, sólo se permite a
un proceso enviar comandos a la impresora
Cooperación entre Procesos
mediante la Compartición
• La escritura debe ser exclusiva
(mutuamente)
• Las secciones críticas se usan para
asegurar la integridad de los datos
• Interbloqueo (deadlock)
• Inanición (starvation)
Cooperación entre Procesos
mediante la Comunicación
•Los mensajes son permisos
– La exclusión mutua no es una necesidad de control
• Posible interbloqueo
– Cada proceso espera un mensaje del otro proceso
• Posible inanición
– Dos procesos envían mensajes uno al otro mientras
un tercero espera un mensaje que no llega
Requisitos para la
Exclusión Mutua
• En cada momento sólo se la permite a un
proceso estar en sección critica para unrecurso
¡¡¡ pero no sólo esto !!!, sino además:
• Un proceso que termina en su sección nocrítica debe hacerlo sin interferir con otros
procesos
• No interbloqueo o inanición
Requisitos para la
Exclusión Mutua
• Un proceso no debe ser demorado en su
acceso a la sección crítica cuando no hay otro
proceso usándola
• No se debe asumir nada relativo a la velocidad
de los procesos o elnúmero de ellos
• Un proceso permanece en su sección crítica
por un tiempo finito
Corutina
• Diseñada para ser capaz de transmitir el control
de ejecución de acá para allá entre ellos
• Inadecuada para dar soporte al procesamiento
concurrente
Exclusión Mutua: Software
Alg. Dekker: Primera Tentativa
• Ocupado Esperando
– El proceso chequea continuamente si puede
entrar en la seccióncrítica
– El proceso no puede hacer nada productivo
hasta que obtiene permiso para entrar en su
sección crítica
Exclusión Mutua: Software
Alg. Dekker: Segunda Tentativa
• Cada proceso puede examinar el estado de otro pero
no puede alterarlo
• Cuando un proceso quiere entrar en la sección crítica
primera comprueba el estado de los otros procesos
• Si ningún otro proceso esta en seccióncrítica, activa
sus flag de estado para la sección crítica
• Este método no garantiza la exclusión mutua
• Cada proceso puede comprobar su flag y proceder a la
entrada en la sección critica al mismo tiempo
Exclusión Mutua: Software
Alg. Dekker: Tercera Tentativa
Exclusión Mutua: Software
Alg. Dekker: Cuarta Tentativa
• Activar el flag para entrar en sección crítica antes de...
Regístrate para leer el documento completo.