modulo 2 interbloqueos

25
Módulo 2: Interbloqueos Sistemas Operativos 2 Ing. José Mendoza

Upload: jose-mendoza

Post on 13-Apr-2017

378 views

Category:

Technology


0 download

TRANSCRIPT

Interbloqueos

Mdulo 2:InterbloqueosSistemas Operativos 2

Ing. Jos Mendoza

Control de recursosCuando varios procesos que compiten necesiten recursos el modo de operacin es el siguiente:Peticin del recursoUtilizacin Liberacin

Peticin de recursosUn recurso se puede solicitar con:

Acceso compartido: se puede utilizar concurrentemente por ms de un proceso.

Acceso exclusivo: acceso en cada instante a un nico proceso.

Algunos se pueden utilizar e cualquier modo

Peticin de recursosSi un proceso pide acceso compartido mientras otro lo est usando en forma exclusiva, entonces debe esperar. Si se estaba usando en forma compartida puede seguir.

Peticin de recursos

Peticin de recursosComo los procesos pueden bloquearse al solicitar recursos, no deben pedirlos hasta que lo necesiten.Una vez asignados deben liberarse tan pronto como sea posible, una vez que la accin que se quera realizar con el recurso haya finalizado

Interbloqueo ( deadlock en ingls)Dos procesos forman un interbloqueo cuando cada uno mantiene un recurso mientras que espera el recurso mantenido por el otro.type Sem is ...;X : Sem := 1; Y : Sem := 1;task A; task body A isbegin...Wait(X);Wait(Y); ...end A;task B; task body B isbegin...Wait(Y);Wait(X);...end B;

Principios de InterbloqueosTambin conocida como embotellamiento.Situacin donde un grupo de procesos estn permanentemente bloqueados como consecuencia de que cada proceso ha adquirido un subconjunto de los recursos necesarios para su operacin y esta en espera de la liberacin de los restantes recursos mantenidos por otros procesos del mismo grupo.

8

Interbloqueo activoDos procesos forman un interbloqueo activo si cada uno se ejecuta, pero ninguno es capaz de avanzar.type Indicador is (Arriba, Abajo);Indicador1 : Indicador := Arriba;task A;task body A isbegin ... while Indicador1 = Arriba loop null; end loop; ...end A; task B;task body B isbegin ... while Indicador1 = Arriba loop null; end loop; ...end A;

Inanicin Varios procesos estn intentando continuamente conseguir acceso exclusivo al mismo recurso. Si la poltica con que se asignan no es justa, puede que un proceso no acceda nunca al recurso.

Inanicin En informtica, inanicin (starvation en ingls)Es un problema relacionado con los sistemas multitarea, donde a un proceso o un hilo de ejecucin se le deniega siempre el acceso a un recurso compartido. Sin este recurso, la tarea a ejecutar no puede ser nunca finalizada.

Inanicin Un ejemplo podra ser el de un proceso de baja importancia que est esperando en memoria para usar el procesador, pero debido a que hay otros trabajos de mayor importancia ste est en espera.Durante un rato los trabajos que estaban usando el procesador con anterioridad se retiraron, pero llegaron otros trabajos tambin de mucha importancia y el primer programa sigue esperando.Esto puede continuar indefinidamente y el proceso nunca llega a ejecutarse.

Condiciones para el interbloqueo

Estrategias para tratar el interbloqueo

Algoritmo del Avestruz

PrevencinEvitacin

DeteccinRecuperacin

Mtodos para tratar el interbloqueoCondicinEstrategiaExclusin MutuaPoner todo en SpoolRetener y EsperarSolicitar inicialmente todos los recursosNo expropiacinQuitar los recursosEspera circularOrdenar los recursos numricamente

Postergacin indefinidaEs posible que un determinado proceso quede en esperando indefinidamente por el recurso deseado, mientras otros reciben la atencin del sistema.Esto puede surgir en sistemas gestionados por prioridades ya que un proceso puede quedarse sin el control del procesador debido a que continuamente lleguen nuevos procesos de prioridad ms alta.

17

Prevencin de la condicin de exclusin mutua.Con un Spooling de la salida a la impresora, varios procesos podran generar generar la salida al mismo tiempo.Prevencin de la condicin Detenerse y esperar.Podemos evitar que los los procesos que conservan recursos esperan ms exigiendo recursos podramos eliminar el bloqueo, exigir a todos los procesos que soliciten todos sus recursos antes de iniciar su ejecucin . Si todo esta disponible, el proceso tendr todo lo que necesite y podr ejecutarse hasta terminar. Si estn ocupados no podr signarse recurso alguno y el proceso tendr que esperar.Prevencin de la condicin de la no apropiacin.Si un proceso tiene asignada la impresora y se encuentra a la mitad de la impresin de su salida, el hecho de quitarle a la fuerza la impresora puesto que no se dispone de un plotter es por lo menos difcil, si no es que imposible.Prevencin de la condicin de esperar circular.La espera circular se puede eliminar disponiendo de una regla que un proceso slo est autorizado a utilizar un recurso.Prevencin de Deadlock

18

Una forma de evitar la espera circular es mediante una numeracin global de todos los recursosSe numeran los dispositivos en funcin de acuerdo a como son requeridos de mayor a menor:

Disco Duro maestroDisco duro respaldoUnidad de CD-ROMImpresoraEscner Etc.Los procesos deben solicitar los dispositivos de acuerdo con su numeracin, un proceso no podr solicitar un dispositivo con un menor numero al que tiene asignado.

19

Recuperacin de DeadlockSuponiendo que el algoritmo de deteccin de bloqueos tiene xito y detecte el bloqueo. Se necesita alguna forma de recuperar y lograr que sistema contine nuevamente.Recuperacin mediante la apropiacin:

En ciertos casos, podra ser posible tomar un recurso en forma temporal de su poseedor y drselo a otro proceso.La posibilidad de quitar un recurso a un proceso, hacer que otro recurso lo utilice y despus regresarlo si que el proceso lo note depende en gran medida de la naturaleza del recurso. La recuperacin mediante esta va es difcil o imposible.

20

Recuperacin de DeadlockRecuperacin mediante rollbackLa verificacin de un proceso indica que su estado se escribe en un archivo de modo que pueda volver a iniciar ms tarde. El punto de verificacin contiene la imagen de la memoria, el estado de recurso; es decir los recursos asignados en ese momento al proceso. Los nuevo puntos de verificacin deben escribirse en nuevos archivos; as durante la ejecucin del proceso se acumula toda una serie de archivos con puntos de verificacin.Al detectar un bloqueo , un proceso que posee un recurso necesario regresa hasta cierto instante en el tiempo anterior a la adquisicin de algn otro recurso, mediante la inicializacin de alguno de sus anteriores puntos de verificacin.

21

Recuperacin mediante la eliminacin de procesosLa forma ms sencilla de romper un bloqueo es eliminar uno o ms procesos. Una posibilidad es eliminar un proceso del ciclo .Otra alternativa es elegir un proceso que no este en el ciclo, para poder liberar sus recursos se elige con cuidado el proceso por eliminar, como aquel que posee recursos necesarios para algn proceso del ciclo.Cuando sea posible, es mejor eliminar un proceso que pueda volver a iniciar su ejecucin sin efectos daino.Un proceso que actualiza una base de datos no siempre se puede volver a ejecutar por segunda vez con seguridad. Si el proceso aade 1 a cierto registro en esta base de datos, al ejecutarlo una vez, eliminarlo y volver a ejecutarlo se sumara 2 al registro, lo cual es incorrecto.

22

Video de Interbloqueos

Asignacin GrupalHacer una dramatizacin en el aula de metodologas activas, basado en todo el contenido de esta presentacin.

BibliografaW. StallingsSistemas Operativos

A. Tanuenbaum Sistemas Operativos Modernos