Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz

Slides:



Advertisements
Presentaciones similares
GESTION DE PROCESOS.
Advertisements

Concurrencia Exclusión mutua y sincronización
Mecanismo de semáforos
III - Gestión de memoria
Programación Básica con NQC Pedro F. Toledo – Patricio Castillo 18/08/2006.
I.T.E.S.R.C. Romina Tamez Andrea Martínez Ma. De Lourdes Solís
Daniel Morillo Jorge Boscán Gregory Carrasco
DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO
DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO
Concepto de programa. Directorio Concepto de programa. Analisis del problema. Resolucion del problema. Desarroollo de un programa. Partes constitutivas.
Informática II Prof. Dr. Gustavo Patiño MJ
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Inter bloqueo DeadLock.
SISTEMAS OPERATIVOS UNIDAD 1..
Johanna Lizeth Rodríguez Lorena Fda. Chávarro Ramos
Estructuras de Repetición
7a.1 Silberschatz, Galvin y Gagne ©2003 Sistemas Operativos 6ª edición Capítulo 7: Sincronización de procesos parte a.
Deadlocks Caracterización de deadlock Métodos para manejar deadlock Prevenir, Predecir, detección Recuperación de deadlock Emely Arráiz Ene-Mar 08.
Material de apoyo Unidad 2 Estructura de datos
Tema 6: Clases Antonio J. Sierra.

Concurrencia: interbloqueo e inanición
Bloqueos Mortales Cecilia Hernández Bloqueos Mortales Definición Un proceso/hebra esta bloqueada cuando esta esperando por un evento que nunca ocurrirá.
Administración del espacio
Semana 5 Subprogramas..
Deadlocks Abrazo Mortal Bloqueos mutuos
Concurrencia: Exclusión Mútua y Sincronización
Capítulo 3 Concurrencia: exclusión mutua y sincronización. Comunicación entre procesos.
Conceptos generales: Concurrencia: Existencia simultánea de varios procesos en ejecución. IMPORTANTE: EXISTENCIA SIMULTÁNEA NO IMPLICA EJECUCIÓN SIMULTÁNEA.
Sincronización de Procesos Semáforos Emely Arráiz Ene-Mar 08.
Semáforos Cecilia Hernández
Unidad III Administración de procesos
Tablas de verdad en PHP Programación en Internet II.
IET110 Sistemas Operativos P04: Exclusión Mutua Prof. Jonathan MakucSlide: 1.
PROGRAMACION CONCURRENTE
Sebastián Sánchez Prieto
Planificación y Gestión de procesos
 El acceso concurrente a datos compartidos puede dar pie a inconsistencia de datos  Mantener la consistencia de los datos requiere mecanismos para asegurar.
Sincronización de Procesos Conceptos Problema SC Soluciones Software Soluciones Hardware Emely Arráiz Ene-Mar 08.
Capítulo 7 Gestión de memoria.
Sincronización de Procesos
El interbloqueo Situación en la que se encuentran un conjunto de procesos, (al menos dos), tal que cada proceso del conjunto espera la ocurrencia de un.
Sincronización de Procesos
Tema 9.6: Sincronización de Procesos
Monitores Cabudare, noviembre de 2010 Universidad Fermín Toro
Integrantes: Ma Carmen Zaragoza Santiago Leticia González Hernández Abraham Obispo Antonio Alexis González Ramírez Eduardo Hernández Tolentino.
Administrador de procesos
Teoría de Sistemas Operativos Departamento de Electrónica 2º Semestre, 2002 Gabriel Astudillo Muñoz
SISTEMAS OPERATIVOS DEADLOCK ABRAZO MORTAL BLOQUEO MUTUO.
Estructura de los Sistemas Operativos
Teoría de Sistemas Operativos Sincronización Procesos
Operadores Lógicos Y (Conjunción): Tanto P como Q (Ambas). O (Disyunción): Puede ser que P o Q o ambas (mínimo 1)
Visual Basic FUNCIONES Y PROCEDIMIENTOS
Threads en Java  Threads: programas multitarea  Creación de threads  Ciclo de vida de un thread  Sincronización.
ALMACENAMIENTO DE DATOS. Son componentes que leen o escriben datos en medios o soportes de almacenamiento, y juntos conforman lamemoria o almacenamiento.
La estrategia de prevención del interbloqueo consiste, a grandes rasgos, en diseñar un sistema de manera que esté excluida, a priori, la posibilidad de.
UTFSM - Sistemas Operativos
INTERRUPCIONES – ABRAZO MORTAL
Estructuras de Decisión
Lic. Carla Aguirre Montalvo
Objetivos del tema. Hemos visto lo que es la estructura de un programa, los datos, que esos datos en realidad se convierten en variables de distinto.
Desarrollador Profesional de Juegos Programación III Unidad II Trabajando con bloqueo de datos.
Teoría de Sistemas Operativos Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
MEMORIA DINÁMICA.
Desarrollador Profesional de Juegos Programación III Unidad II introducción a Mutex Secciones críticas.
Page 1 Ciclo de Estructuras de Repetición Carlos Bautista García Unidad VI PROG 2270L.
Bloqueos Mutuos Modelo del Sistema Caracterización de Deadlock Métodos de manejo de Deadlocks Prevención de Deadlocks Evitación de Deadlocks Detección.
1 Tema 6: Concurrencia de Procesos Sistemas Operativos.
Ciclos condicionales y exactos Estructura de control de ciclos
El principal trabajo del procesador es ejecutar las instrucciones de máquina que se encuentran en memoria principal. Estas instrucciones se encuentran.
Transcripción de la presentación:

Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz

Situación Sincronización de Procesos Conceptos Soluciones Bloqueos 2 Dos o más procesos leen o escriben ciertas zonas compartidas El resultado final puede depender de lo que cada proceso ejecutó.

Situación Sincronización de Procesos Conceptos Soluciones Bloqueos 3 Supongamos el siguiente problema: Tenemos una Base de Datos financiera. Cada ficha representa una persona y puede o no tener deuda. El código que permite buscar deudores es el siguiente:

Situación Sincronización de Procesos Conceptos Soluciones Bloqueos 4 void main(){ int deudores busca(0,3000); busca(3001, 5000); printf(“Deudores: %d”,deudores); } void busca(int ind1, ind2) { for(i=ind1; i<=ind2; i++) if(esDeudor(i)) deudores++; }

Situación Sincronización de Procesos Conceptos Soluciones Bloqueos 5 Qué pasa si modificamos el código de la siguiente manera? void main(){ int deudores pid=fork() if(pid==0){ busca(0,3000);} else{ busca(3001, 5000); } printf(“Deudores: %d”,deudores); }

Situación Sincronización de Procesos Conceptos Soluciones Bloqueos 6 Lo anterior se conoce como una “condición de competencia”. Existe la necesidad de eliminar este tipos de condiciones.  El resultado final no puede depender Del tiempo ni del lugar de ejecución de los procesos

Situación Sincronización de Procesos Conceptos Soluciones Bloqueos 7 Exclusión Mutua: concepto que garantiza que si un proceso utiliza un recurso compartido, los demás no pueden utilizarlo. Sección Crítica: Parte del programa en la que tiene acceso al recurso compartido.  Para evitar que existan condiciones de competencia, se debe evitar que dos o más procesos accedan al mismo tiempo a la Sección Crítica

Situación Sincronización de Procesos Conceptos Soluciones Bloqueos 8 Cualquier solución al problema debe cumplir: 1.Dos procesos no deben encontrarse al mismo tiempo dentro de sus secciones críticas. 2.No se deben hacer hipótesis sobre la velocidad o el número de CPU. 3.Ningún proceso que esté en ejecución fuera de su sección crítica puede bloquear a otros procesos. 4.Ningún proceso debe esperar eternamente para entrar a su sección crítica.

Situación Sincronización de Procesos Conceptos Soluciones Bloqueos 9 Alternancia estricta:  ¿Qué sucede si un proceso quiere entrar dos veces consecutivas a su sección crítica?

Situación Sincronización de Procesos Conceptos Soluciones Bloqueos 10 Solución de Peterson: Para el proceso P(i), i=0,1: otro=1-i; while (TRUE) { interesado[i] = TRUE; turno = otro; while (interesado[otro] && turno==otro); sección_crítica(); interesado[i]=FALSE; sección_no_crítica(); } Inicialmente interesado[0]=interesado[1]=FALSE y turno puede ser 1 o 0.

Situación Sincronización de Procesos Conceptos Soluciones Bloqueos 11 Solución de Peterson: Exclusión Mutua: Dos procesos quieren entrar:  No pueden entrar al mismo tiempo, porque la condición de espera en el while no puede ser falsa para ambos procesos a la vez.  Entonces supongamos que Pi entra primero. En ese caso, turno=i, y para que el otro entre, turno debe cambiar a 1-i, o bien interesado[i] a FALSE.  El único que hace esos cambios es el propio proceso i, y lo hace cuando está fuera de su sección crítica.

Situación Sincronización de Procesos Conceptos Soluciones Bloqueos 12 Solución de Peterson: Ausencia de Aplazamiento indefinido (starvation) Si el proceso i quiere entrar y el otro está ejecutando su sección no crítica,  interesado[otro]==FALSE y Pi no tiene impedimento para entrar. Entrada garantizada. Si un proceso quiere entrar, a lo más debe esperar que el otro salga de la sección crítica

Situación Sincronización de Procesos Conceptos Soluciones Bloqueos 13 Instrucción TSL: Lee el contenido de una palabra de memoria en un registro para después almacenar un valor distinto de cero en esa dirección Las operaciones de lectura y almacenamiento de la palabra tienen la garantía de ser indivisibles

Situación Sincronización de Procesos Conceptos Soluciones Bloqueos 14 Instrucción TSL: Se emplea una variable compartida, flag. Ésta coordina el acceso al recurso compartido. Cuando flag==0, cualquier proceso puede darle el valor 1 mediante la instrucción TSL y después leer o escribir en el recurso compartido. Al terminar, el proceso vuelve a hacer flag=0.

Situación Sincronización de Procesos Conceptos Soluciones Bloqueos 15 Instrucción TSL:

Situación Sincronización de Procesos Conceptos Soluciones Bloqueos 16 Semáforos: Un semáforo es una variable entera (positiva), cuyo valor sólo puede ser accesado mediante las operaciones wait y signal

Situación Sincronización de Procesos Conceptos Soluciones Bloqueos 17 Semáforos: WAIT: verifica si el valor de un semáforo es mayor que cero y en este caso decrementa dicho valor y el proceso continúa. Si es cero, el proceso se va a dormir Las modificaciones al valor del semáforo sólo se ejecutan en forma indivisible, es decir, si un proceso está modificando un semáforo ningún otro proceso puede esta modificando el mismo valor

Situación Sincronización de Procesos Conceptos Soluciones Bloqueos 18 Semáforos: SIGNAL: incrementa el valor del semáforo respectivo. Si uno o más procesos dormían y no podían completar una operación DOWN anterior, el SO elige alguno de ellos y se le permite terminar la operación WAIT.  después de un SIGNAL en un semáforo con procesos durmiendo, dicho semáforo seguirá con valor 0, pero habrá un menor número de procesos durmiendo.

Situación Sincronización de Procesos Conceptos Soluciones Bloqueos 19 Semáforos:

Situación Sincronización de Procesos Conceptos Soluciones Bloqueos 20 Se produce cuando un proceso de un sistema multiprogramado espera un evento que nunca va a ocurrir. Un conjunto de procesos está en deadlock cuando cada proceso en el conjunto está esperando por un evento que solo puede ser causado por otro proceso en el conjunto.

Situación Sincronización de Procesos Conceptos Soluciones Bloqueos 21 Ejemplo ¿ Cuándo hay Bloqueo Mutuo ?

Situación Sincronización de Procesos Conceptos Soluciones Bloqueos 22 Condiciones para un bloqueo: Cada recurso está asignado a un proceso o está disponible 1.- Condición de exclusión mutua. P1 R1 Asignado

Situación Sincronización de Procesos Conceptos Soluciones Bloqueos 23 Condiciones para un bloqueo: Los procesos que tienen recursos asignados con anterioridad, pueden solicitar nuevos recursos. 2.- Condición de posesión y espera P1 R1 R2 Solicita Asignado

Situación Sincronización de Procesos Conceptos Soluciones Bloqueos 24 Condiciones para un bloqueo: Los recursos asignados no pueden ser forzados a dejar un proceso  El proceso que los posee debe liberarlos en forma explícita. Condición de no apropiación

Situación Sincronización de Procesos Conceptos Soluciones Bloqueos 25 Condiciones para un bloqueo: Debe existir una cadena circular de dos o más procesos, cada uno de los cuales espera un recurso asignado por el siguiente miembro de la cadena. Condición de espera circular P1 R1 P2 R2 Solicita Asignado Solicita Asignado

Situación Sincronización de Procesos Conceptos Soluciones Bloqueos 26

Situación Sincronización de Procesos Conceptos Soluciones Bloqueos 27

Situación Sincronización de Procesos Conceptos Soluciones Bloqueos 28

Situación Sincronización de Procesos Conceptos Soluciones Bloqueos 29 Evitar un bloqueo: En vez de restringir la forma u orden en que los procesos deben solicitar recursos, podríamos chequear que sea seguro conceder un recurso, antes de otorgarlo. Obs: Necesitamos que cada proceso declare la cantidad máxima de recursos de cada clase que va a necesitar:

Situación Sincronización de Procesos Conceptos Soluciones Bloqueos 30 Evitar un bloqueo: Un estado de asignación de recursos es el número de recursos disponibles y asignados, y el máximo declarado por cada proceso. Un estado seguro es un estado en el cual el sistema puede asignar recursos a los procesos (hasta su máximo) en alguna secuencia, y evitar bloqueo mutuo

Situación Sincronización de Procesos Conceptos Soluciones Bloqueos 31 Evitar un bloqueo: Un estado es seguro sólo si existe una secuencia segura, es decir, una secuencia de procesos donde, para cada Pi, los recursos que Pi aún puede solicitar pueden satisfacerse con los recursos disponibles y los retenidos por Pj con j<i. Si los recursos que Pi necesita no están disponibles, Pi puede esperar hasta que los Pj terminen. Si no existe tal secuencia, se dice que el sistema está en un estado inseguro

Situación Sincronización de Procesos Conceptos Soluciones Bloqueos 32 Consideremos un sistema con 12 unidades de cinta y 3 procesos: P1,P2,P3. Máximo Requerimiento t0 P0105 P142 P292 3 En t0 el sistema esta en un estado seguro, con secuencia P1,P0,P2.

Situación Sincronización de Procesos Conceptos Soluciones Bloqueos 33 Consideremos un sistema con 12 unidades de cinta y 3 procesos: P1,P2,P3. Máximo Requerimiento t0 P0105 P142 P293 2 En t0 el sistema está en un estado inseguro, No hay secuencia segura  puede existir bloqueo mutuo.