unidad 3 sistemas operativos

Solo disponible en BuenasTareas
  • Páginas : 5 (1125 palabras )
  • Descarga(s) : 0
  • Publicado : 6 de junio de 2013
Leer documento completo
Vista previa del texto
Concurrencia: deberes
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...
tracking img