sergio fuenlabrada velázquez edna martha miranda chávez sistemas operativos unidad iv....

49
Sergio Fuenlabrada Velázquez Sergio Fuenlabrada Velázquez Edna Martha Miranda Chávez Sistemas operativos Unidad IV. Administración de procesos

Upload: manolo-coro

Post on 23-Jan-2016

235 views

Category:

Documents


1 download

TRANSCRIPT

Sergio Fuenlabrada Velázquez

Sergio Fuenlabrada Velázquez

Edna Martha Miranda Chávez

Sistemas operativos

Unidad IV.

Administración de procesos

S.O.

Sergio Fuenlabrada Velázquez, Edna Martha Miranda Chávez

Definición de Proceso

• El usuario activa un programa ejecutable (compilado y enlazado o interpretado) por medio de una orden especializada tal como EXECUTE, JAVA o RUN, etc., este comando es una llamada al sistema operativo.

• El sistema operativo responde creando un proceso, y para identificarlo crea la PCB.

• Un proceso es un programa en ejecución junto con su entorno asociado (registro, variables, áreas de memoria, archivos, impresora asignada, etc.).

S.O.

Sergio Fuenlabrada Velázquez, Edna Martha Miranda Chávez

Clasificación según como retienen los recursos asignados:

Apropiativos.Los procesos que al tener asignado un recurso no permiten que otro proceso pueda acceder a él hasta que haya dejado de utilizarlo.No apropiativos.Permiten que otros procesos puedan acceder a un

recurso que esta siendo utilizado por él (pero no al mismo tiempo).

Según su forma de ejecución:

• Residentes. Los procesos que permanecen en memoria principal todo el tiempo que dure su ejecución.

• Intercambiables.Los procesos que pueden ser llevados de la memoria principal a disco (memoria virtual) mientras estan bloqueados.

Clasificación de los procesosExisten varias clasificaciones para los procesos o hilos, a continuación se enumeran algunas:

S.O.

Sergio Fuenlabrada Velázquez, Edna Martha Miranda Chávez

Clasificación de los procesos

Clasificación según los datos que procesan:

Reutilizables• Cambian los datos que utilizan cada vez que inician el ciclo

de ejecución, comienzan desde su estado inicial para procesar nuevos datos. (Ejemplo la mayoría de los sistemas que conocemos)

Reentrantes• No tienen datos asociados, solo se conforman de código

puro. Los datos que utilizan se encuentran dentro del programa en pilas, listas o registros internos y no pueden ser modificados durante su uso.

S.O.

Sergio Fuenlabrada Velázquez, Edna Martha Miranda Chávez

Procesos e hilosUn proceso a su vez se puede subdividir en funciones y generar sub-procesos a los que se les denomina procesos hijos, hilos, hebra (thread).

El proceso principal o raíz se le denomina padre, este incluso puede tener facultades de administración sobre sus procesos hilos, como sería el activarlos o suspenderlos.

El proceso padre si requiere varias solicitudes del mismo tipo (operaciones iguales requeridas por varios usuarios) puede generar varios hilos que hagan el mismo proceso para usuarios diferentes, este concepto se conoce como multihilo.

En el concepto de multihilo cada hilo es independiente y actúa sobre sus propios datos y trabajan a su propio ritmo. Java soporta computación multihilo

S.O.

Sergio Fuenlabrada Velázquez, Edna Martha Miranda Chávez

Operaciones sobre los procesos

Los S.O. poseen una serie de funciones u operaciones cuyo objetivo es la de manipular los procesos.

• Crear el proceso.Se produce una llamada al SO, la orden de ejecución del programa, y el SO responde generando la PCB, la cual será insertada en la cola de procesos en espera.– Entorno. A cada proceso se le asignan los recursos

requeridos, como son variables, buffer´s, archivos, dispositivos, a esto se le denomina su entorno.

– Entorno heredado . Cada proceso hijo que se crea, hereda el entorno de ejecución de su padre.

S.O.

Sergio Fuenlabrada Velázquez, Edna Martha Miranda Chávez

Operaciones sobre los procesos• Prioridad. El SO asigna a los procesos la prioridad de ejecución,

esto lo realiza con base en el algoritmo de planificación que tenga activo el SO en ese momento, si el algoritmo de planificación da prioridad a procesos cortos, estos tendrán prioridad sobre procesos largo (batch), etc. Normalmente los procesos ingresan con la más baja prioridad y se ejecutan en el orden en que fueron llegando.

• Cambio de prioridad de un proceso. El SO contempla comandos para que el operador o administrador del SO cambie la prioridad asignada al proceso

• Temporizar la ejecución de un proceso. El adminsitrador del SO puede establecer que se ejecute un proceso en un día y hora determinada, quedando encolado en la cola de espera hasta que se cumpla la condición..

• Despertar un proceso. Desbloquear un proceso que había sido bloqueado por temporización o cualquier otra causa

• Destruir un proceso. Es la orden de eliminación del proceso y la PCB.

• Suspender un proceso. Paraliza, detiene un proceso el cual puede ser reanudado después.

S.O.

Sergio Fuenlabrada Velázquez, Edna Martha Miranda Chávez

Carga del procesoLa carga del proceso es la operación de efectuar una copia del proceso (archivo) o parte de él, de la unidad de memoria secundaria o auxiliar a la memoria primaria.

Memoria

PrimariaUnidad de

entrada /salida

Memoria Secundaria

Buffers

Procesador

Buffers

Unidad de control

Unidad aritmética y lógica

PC IR FR

MAR MDR AC

S.O.

Sergio Fuenlabrada Velázquez, Edna Martha Miranda Chávez

PCBUn proceso desde el punto de vista del sistema operativo se representa por medio de su identificador o PCB (Bloque de Control del Proceso), la cual contiene la siguiente información:

Estado del proceso. (Program Counter, PC), prioridad del proceso, modo de ejecución, estado de los registros internos de la computadora, etc.

Estadística de tiempo y ocupación de recursos.

Ocupación de memoria interna y externa para el intercambio (swapping).

Recursos en uso (unidades de entrada/salida).

Archivos en uso.

Privilegios. Etc.

S.O.

Sergio Fuenlabrada Velázquez, Edna Martha Miranda Chávez

El Bloque de control de procesos permite al sistema operativo:

• La localización del proceso y la información sobre este.

• Mantener registrados los datos del proceso en caso de tener que suspender temporalmente su ejecución o reanudarla.

PCB

S.O.

Sergio Fuenlabrada Velázquez, Edna Martha Miranda Chávez

Ejemplo de Medidas de Seguridad para el Manejo de la Información

RESTRINGIDA CONFIDENCIAL INTERNA PÚBLICA

ACCESO DOBLE PASSWORD DOBLE PASSWORD PASSWORDENTRADA

SINPASSWORD

TRANSPORTA-CIÓN

CON UN PROPIO DENTRO DE BOLSASCERRADAS CONCINTIILLO DESEGURIDAD

EN SOBRESCERRADOS

SINRESTRICCIÓN

ENCRIPCIÓN ARCHIVOPARTICIONADO,ENVIIANDOCODIGO Y LLAVEPOR SEPARADO

ENVIO DE CODIGOY LLAVE POR SEPARADO

NOREQUERIDA

NO REQUERIDA

FOTOCOPIADO NORECOMENDADO

CONTROLAR MEDIANTESELLOS EL No. DECOPIAS EXISTENTES

SINRESTRICCIÓN

SINRESTRICCIÓN

CONSULTA DEINFORMACIÓN

PRIVADA YCONSULTAMONITOREADA

PRIVADA Y EN ALGUNOSCASOS CON CONSULTAMONITOREADA

BAJOFACULTADES

SINRESTRICCIÓN

USOTELEFONOCELULAR

PROHIBIDO SUUSO

PERMITIDO SÓLO ENPRIVADO

EVITARLUGARESPÚBLICOS

SINRESTRICCIÓN

REUNIONES EN PRIVADO Y ENOFICINAS DE LAEMPRESA

EN PRIVADO Y DEPREFERENCIA ENOFICINAS DE LAEMPRESA

EXCLUIRÁREASPUBLICAS

SINRESTRICCIÓN

ACTIVIDAD

SEGURIDAD ESTABECIDA

TIPO DE IFORMACIÓN

S.O.

Sergio Fuenlabrada Velázquez, Edna Martha Miranda Chávez

Estados del proceso

• El administrador de procesos para controlar la ejecución de los procesos establece varias colas de control, denominándolas: cola de espera, cola de listo o preparado, cola de ejecución, cola de bloqueados y cola de suspendido.

• Dependiendo en la cola en donde el administrador de procesos almacena la PCB, determina el estado del proceso.

• Durante la ejecución del proceso, este pasa por varios estados denominándose a esto TRANSICIÓN DE ESTADOS.

• Los estados en espera, listo, ejecución y bloqueado son normales.

• El estado suspendido, establece una situación de problema con la ejecución del proceso.

S.O.

Sergio Fuenlabrada Velázquez, Edna Martha Miranda Chávez

Transición de estados• Inicia insertándose el proceso en la cola de procesos en espera de ejecución o

simplemente en espera.

• Una vez que los recursos que necesita el proceso están disponibles, el administrador de procesos. se los asigna al proceso. Cuando el proceso tiene asignados todos los recursos que necesita pasa la PCB del proceso a la cola de procesos listos o preparados.

• Cuando el procesador esta inactivo, el administrador de procesos selecciona la PCB (proceso) que esta en la cima de la cola de procesos listos o preparados y le sede el procesador al proceso. Cambiando el estado del proceso a ejecución. En computadores con un solo procesador, solo un proceso puede estar ejecutando en una instancia de tiempo.

• Si el proceso solicita una operación la cual tenga que utilizar un dispositivo diferente del procesador, (cualquier dispositivos de Ent./Sal.), el administrador de procesos. lo pasa a la cola de procesos Bloqueados, para que el administrador de dispositivos le asigne el dispositivo solicitado.

• Cuando el proceso esta listo para volver a utilizar el procesador el administrador de procesos lo inserta en la cola de procesos listos o preparados. Repitiéndose todo el ciclo hasta que termina el proceso.

S.O.

Sergio Fuenlabrada Velázquez, Edna Martha Miranda Chávez

Transición normal de estados del proceso

Cola de procesos en espera

Cola de procesos listos o preparado

Cola de procesos en ejecución

Cola de procesos bloqueados

Cola de procesos suspendidos

S.O.

Sergio Fuenlabrada Velázquez, Edna Martha Miranda Chávez

• Paso de estado de espera a listo o preparado. El Administrador de procesos (AP) asigno al proceso los recursos que necesita para ejecutarse.

• Paso de listo a ejecución. El AP asigno el procesador al proceso.

• Paso de ejecución a bloqueado El AP detecta que el proceso requiere efectuar operaciones de Entrada / Salida.

• Paso de bloqueado a listo o preparado El AP detecta que el proceso ha terminado las operaciones de entrada/salida y requiere utilizar el procesador nuevamente.

Transición de estados

S.O.

Sergio Fuenlabrada Velázquez, Edna Martha Miranda Chávez

Transición de estados

• Si el proceso tiene algún problema en la ejecución, el Administrador de procesos lo encola en la cola de procesos suspendidos, hasta que se solucione el problema o hasta que el Sistema Operativo envié una segunda señal de suspensión al proceso. Cuando un proceso esta en estado suspendido y recibe una segunda señal se suspensión el Administrador de procesos cancela al proceso.

S.O.

Sergio Fuenlabrada Velázquez, Edna Martha Miranda Chávez

• Paso de estado de listo o preparado a suspendido El SO detecta que existe algún error que impide que se le asignen los recursos al proceso.

• Paso de ejecución a suspendido. El SO detecta un problema en la ejecución (uso del procesador) del proceso.

• Paso de bloqueado a suspendido. El SO detecta un problema en las operaciones de Ent/Sal del proceso

• Si el proceso esta en estado de suspendido y recibe una segunda orden por parte del SO de suspensión, el proceso se cancela.

Transición de estados

S.O.

Sergio Fuenlabrada Velázquez, Edna Martha Miranda Chávez

Transición con problemas de estados de los procesos

Cola de procesos en espera

Cola de procesos listos o preparado

Cola de procesos en ejecución

Cola de procesos bloqueados

Cola de procesos suspendidos

S.O.

Sergio Fuenlabrada Velázquez, Edna Martha Miranda Chávez

Estado de proceso

1

2

3

“El diagrama de estados más básico tiene tres estados: listo, ejecución y bloqueado …”

Sistemas Operativos, Gary Nutt, Ed.

Pearson

Sistemas Operativos. Gary Nutt. Ed. Pearson

S.O.

Sergio Fuenlabrada Velázquez, Edna Martha Miranda Chávez

Diagrama de estados de UNIX

Bloqueado – por una operación de I/O, es igual a estado de sueño ininterrumpido (uninterruptible sleeping).

Bloqueado – por otro recurso, es igual a estado de dormido (sleeping)

Si el proceso (hilo) esta esperando por alguna orden del proceso padre, esta en estado traceado o parado.

Si el proceso (hilo) ya termino pero no ha recibido la orden del proceso padre de liberar los recursos y después borrarse, esta en estado Zombi

Sistemas Operativos. Gary Nutt. Ed. Pearson

S.O.

Sergio Fuenlabrada Velázquez, Edna Martha Miranda Chávez

Diagrama de estados de un proceso reflejando control

Un proceso padre puede extender la responsabilidad de gestionar sus procesos hijos (hilos)…. El padre puede activar o suspender a sus procesos hilos.

Sistemas Operativos. Gary Nutt. Ed. Pearson

S.O.

Sergio Fuenlabrada Velázquez, Edna Martha Miranda Chávez

Planificación de los hilos

El planificador

“El planificador cambia de estado de un proceso/hilo de preparado al estado de ejecución, el distribuidor asigna el procesador al proceso y el de conmutador de contexto desalojar los procesos del procesador y sitúa otro en su lugar”.

Sistemas Operativos. Gary Nutt. Ed. Pearson

S.O.

Sergio Fuenlabrada Velázquez, Edna Martha Miranda Chávez

Concurrencia• Variables compartidas. Se establece cuando un conjunto

de procesos tiene acceso a un espacio común de direcciones (área global). Esta practica puede conducir a inconsistencias.

• Sección critica. Una o mas variables compartidas por varios procesos. Es una secuencia de instrucciones con un comienzo y un final claramente marcados que delimita la actualización de una o mas variables compartidas. – Debe completar todas las instrucciones incluidas en ella

antes de que se permita a cualquier otro proceso entrar a la misma sección critica.

S.O.

Sergio Fuenlabrada Velázquez, Edna Martha Miranda Chávez

Concurrencia

Concurrencia: Es la existencia de varias actividades ejecutándose simultáneamente, y se requieren sincronizar para actuarse conjuntamente.

Para que dos actividades sean concurrentes deben tener relación entre si, como puede ser la cooperación en un trabajo determinado o el uso de información compartida.

Hace referencia a las actividades, sin importar el número de procesadores presentes.

Para evitar la concurrencia se puede establecer un control optimista o pesimista.

S.O.

Sergio Fuenlabrada Velázquez, Edna Martha Miranda Chávez

• Exclusión mutua. Es cuando un solo proceso impide temporalmente a los demás procesos el uso de un recurso compartido, con el fin de asegurar la integridad del sistema.

• Asegura que como máximo un proceso a la vez tenga acceso a una variable durante las sección critica.

• Cuando se comparten dispositivos, la necesidad de exclusión mutua es más obvia si se considera que que son muchos los problemas que se generan si se utilizan sin control.

Exclusión Mutua

S.O.

Sergio Fuenlabrada Velázquez, Edna Martha Miranda Chávez

• La exclusión mutua permite que sólo un proceso en cada punto tenga permitido el control de un dispositivo reutilizable en serie.

• Es inevitable la concurrencia de procesos por eso es indispensable establecer varias formas para controlarlo. – Descartar la concurrencia. – Negociación con todos los procesos existentes.– Si sólo son dos procesos se utiliza la propuesta de

Dekker, MUTEX1 (acceso por TURNOS(0,1)), solo un proceso a la vez tiene permitido el acceso.

Exclusión Mutua

S.O.

Sergio Fuenlabrada Velázquez, Edna Martha Miranda Chávez

• El MUTEX1 tiene varios problemas:– Se tiene que conocer al proceso competidor, lo que

seria extraordinariamente inconveniente.– Cada proceso asigna explícitamente el turno al otro.– Solo funciona con dos procesos.

• Para mas procesos se utiliza la propuesta de Dijkstra llamada de Semáforo.

• Para explicar esta propuesta se presenta el problema de los cinco Filósofos.

• La sincronización tiene relacionada una bandera o semáforo para controlar el acceso al dispositivo y una cola para controlar los procesos que están en espera del recurso.

Exclusión Mutua

S.O.

Sergio Fuenlabrada Velázquez, Edna Martha Miranda Chávez

La estrategia pesimista supone el peor caso posible. Para defenderse toma medidas que con frecuencia acaban limitando la concurrencia.

1. Bloquea todo aquello que pudiera interferir. Penaliza a todos los usuarios.

2. Desbloquea la parte del sistema bloqueado o en interbloqueo elimando procesos.

S.O. de propósito GeneralControl Pesimista

S.O.

Sergio Fuenlabrada Velázquez, Edna Martha Miranda Chávez

Se basan en la suposición de que lo probable es que no haya conflictos o que se reduzca su número.

Una solución optimista puede estructurarse del modo siguiente:

1. Lee el valor de la variable global y preparar la actualización local tentativa basada en ese valor.

2. Compara el valor actual de la variable global con el valor utilizado para preparar la actualización tentativa.

Control Optimista B.D.

S.O.

Sergio Fuenlabrada Velázquez, Edna Martha Miranda Chávez

El problema de los cinco filósofosConsideraciones Filósofo – Funciones pensar

y comer. Espagueti es muy resbaloso

se requieren 2 tenedores para comerlo.

Sólo existen 6 tenedores. Filósofo con hambre – posee

un tenedor e intenta obtener otro tenedor (ya sea con su mano izquierda o derecha) Si logra obtener los dos tenedores,come un rato y después deja los tenedores para continuar pensando.

Esta propuesta resuelve la sincronización, a partir de dos estados, el pensar y el comer

S.O.

Sergio Fuenlabrada Velázquez, Edna Martha Miranda Chávez

Semáforos y sincronización de procesos La sincronización es un

conjunto de protocolos y mecanismos para preservar la integridad y consistencia del sistema, (se compone de Semáforos y colas de control)

Los procesos cooperativos deben sincronizarse unos con otros para utilizar recursos compartidos, (estructuras de datos, dispositivos físicos, etc.)

Un recurso reutilizable sólo puede ser utilizado por un proceso cada vez.

Los semáforos sencillos pero poderosos aseguran la exclusión mutua entre procesos, el programador los puede construir o utilizarlos mediante llamadas al S.O.

S.O.

Sergio Fuenlabrada Velázquez, Edna Martha Miranda Chávez

Sincronización

En unix el proceso padre se sincroniza con la actividad de los hijos, esperando a que cada hijo termine antes de arrancar el siguiente hilo.

En otro caso el padre puede crear al hijo pero no sincronizarse, en lugar de esto envía a ejecutar otro hilo.

S.O.

Sergio Fuenlabrada Velázquez, Edna Martha Miranda Chávez

Implementación de semáforos• Un mecanismo de semáforo consta básicamente de dos

operaciones primitivas asignado (SIGNAL) y espera (WAIT). El semáforo solo puede tomar valores enteros. El Semáforo solo puede ser accedida y manipulado por (Signal y Wait).

• WAIT (S): Decremento del valor del argumento del semáforo (Espera el dispositivo esta Asignado u Ocupado).

• SIGNAL(S): Incrementa el valor del argumento del semáforo, en una operación indivisible (El dispositivo esta Libre, Disponible por lo tanto puede ser asignado al proceso que lo require).

• Para los semáforos binarios la lógica Wait debería interpretarse como la espera hasta que la variable semáforo sea igual a LIBRE, seguido de su modificación para que indique OCUPADO antes de devolver el control al invocador.

• Wait implementa por tanto la fase de negociación del protocolo de exclusión mutua y Signal la de Liberación.

S.O.

Sergio Fuenlabrada Velázquez, Edna Martha Miranda Chávez

Relación productor - consumidor

Productores y consumidores con búfer ilimitado. El primer proceso en ejecutarse debe ser un proceso productor

con el fin de proporcionar el primer dato. Desde ese momento puede ejecutarse un proceso consumidor

habiendo más de un dato en el búfer, producido pero aún no consumido. El búfer puede ser implementado como un vector, una lista enlazada o cualquier otra colección de datos.

El código del proceso productor refleja esta situación por la ausencia de operaciones WAIT, se produce un dato, y es colocado en el búfer, y el hecho es señalizado por el semáforo general.

S.O.

Sergio Fuenlabrada Velázquez, Edna Martha Miranda Chávez

Productores y consumidores con un búfer limitado

Los procesos consumidores y productores pueden verse detenidos bajo ciertas circunstancias.

• Los productores pueden producir datos sólo mientras haya espacios vacíos en el búfer para recibirlos.

• Un consumidor sólo puede absorber datos producidos y debe esperar cuando no hay datos disponibles.

• En cualquier momento particular el búfer global compartido puede estar vació, parcialmente lleno o completo con los datos producidos listos para consumo.

S.O.

Sergio Fuenlabrada Velázquez, Edna Martha Miranda Chávez

El problema de lectores y escritores

Sistema Multiusuario. Dado un universo de lectores y un universo de escritores que accesan datos en común es necesario la sincronización para asegurar la consistencia e integridad de los datos.

La lógica es esperar que el semáforo binario este en ESCRIBIR para recibir el permiso y entrar a la sección critica.

S.O.

Sergio Fuenlabrada Velázquez, Edna Martha Miranda Chávez

• Una solución es utilizar una variable ejemplo NUMLECTORES, para llevar la cuenta de los lectores que están activamente utilizando el recurso.

• Primer proceso lector – (Numlectores = +1 uso, -1 deja de usar) si hay un grupo de lectores todos proceden a leer. Semaforo = Lectura

• Segundo proceso escritor si hay lectores se mantendrán en espera. Semáforo = Escribir.

• • Cuando el S.O. esta inactivo la disputa será imparcial,

el primero que llegue ocupa el recurso.

El problema de lectores y escritores

S.O.

Sergio Fuenlabrada Velázquez, Edna Martha Miranda Chávez

S.O. Basados en monitoresLo que se puede operar con semáforos también puede ser

operado por Monitores.. Los monitores proporcionan una abstracción de datos

estructural además de controlar la concurrencia, controlan la naturaleza de las operaciones realizadas sobre los datos globales, para prevenir actuaciones dañinas o sin significado.

Los procesos de usuario no tienen modo de conocer la organización interna de un monitor. Una vez depurados no es fácil que el usuario corrompa los datos globales.

Los monitores encapsulan los datos utilizados por los procesos concurrentes y permiten su manipulación por medio de operaciones adecuadas y sincronizadas. Comunicación y sincronización entre procesos.

S.O.

Sergio Fuenlabrada Velázquez, Edna Martha Miranda Chávez

Monitores

• Un monitor se activa cuando es invocado por un proceso en ejecución.

• Cada monitor se encarga de un grupo pequeño de recursos en particular .

• Una serie de monitores puede coexistir en un S.O. • Los monitores aumentan la concurrencia y

facilitan el diseño y mantenimiento.• Si un monitor invoca a otro monitor que esta

bloqueado el primero también se bloquea. Interbloqueos entre monitores

S.O.

Sergio Fuenlabrada Velázquez, Edna Martha Miranda Chávez

Recursos Un recurso es un elemento que un programa o procesos puede utilizar en la

computadora donde se esta ejecutando, Los recursos son concedidos a un proceso solicitante cuando están disponibles. Algo que puede ser utilizado por un sólo proceso en el momento dado. Para que un proceso pueda utilizar un recurso, deberá realizar la siguiente

secuencia de operaciones: Solicitar el recurso. Si no estuviera disponible el proceso, quedará bloqueado

hasta que el SO se lo asigne. Utilizar el recurso Liberar el recurso

Los recursos de un sistema informático cuya asignación está sujeta a interbloqueos pueden ser categorizados en dos clases: recursos reutilizables y recursos consumibles.

Los recursos reutilizables pueden ser utilizados con seguridad por un sólo proceso como máximo en una instancia de tiempo, cuando el proceso no los está ocupando los pone disponibles temporalmente para que otro proceso pueda hacer unos de ellos.

Los recursos consumibles son asignados al proceso y este los retiene desde el momento de iniciar el proceso hasta su finalización. Durante este tiempo el recursos permanece en estado de asignado, por lo tanto no puede ser utilizando por ningún otro proceso.

S.O.

Sergio Fuenlabrada Velázquez, Edna Martha Miranda Chávez

Solicitando todos los recursos antes de comenzar

Liberación de todos los recursos antes de solicitar más o antes de desaparecer

Sistemas Operativos. Gary Nutt. Ed. Pearson

S.O.

Sergio Fuenlabrada Velázquez, Edna Martha Miranda Chávez

Principios de Interbloqueos

También conocida como embotellamiento. Situación donde un grupo de procesos están

permanentemente bloqueados como consecuencia de que cada proceso ha adquirido un subconjunto de los recursos necesarios para su operación y esta en espera de la liberación de los restantes recursos mantenidos por otros procesos del mismo grupo.

S.O.

Sergio Fuenlabrada Velázquez, Edna Martha Miranda Chávez

Condiciones de interbloqueoInterbloqueo es la situación de un conjunto de procesos en un

estado de espera tal que ninguno de ellos tiene suficientes criterios para continuar su ejecución. Esto sucede a menudo en la vida real.

Un conjunto de procesos ha llegado al interbloque si se cumplen las siguientes condiciones:

Exclusión mutua. Recurso exclusivo Posesión y espera. No apropiación.Liberación de recurso por acción voluntaria del

proceso. Espera circula. Los procesos forman una cadena de retención y

espera de recursos.

S.O.

Sergio Fuenlabrada Velázquez, Edna Martha Miranda Chávez

Postergación indefinida

Es posible que un determinado proceso quede en esperando indefinidamente por el recurso deseado, mientras otros reciben la atención 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 más alta.

S.O.

Sergio Fuenlabrada Velázquez, Edna Martha Miranda Chávez

Prevención de deadlockPrevención de la condición de exclusión mutua. Con un Spooling de la salida a la impresora, varios procesos podrían generar generar

la salida al mismo tiempo.

Prevención de la condición Detenerse y esperar. Podemos evitar que los los procesos que conservan recursos esperan más exigiendo

recursos podríamos eliminar el bloqueo.exigir a todos los procesos que soliciten todos sus recursos antes de iniciar su ejecución . Si todo esta disponible, el proceso tendrá todo lo que necesite y podrá ejecutarse hasta terminar. Si están ocupados no podrá signarse recurso alguno y el proceso tendrá que esperar.

Prevención de la condición de la no apropiación. Si un proceso tiene asignada la impresora y se encuentra a la mitad de la impresión de

su salida, el hecho de quitarle a la fuerza la impresora puesto que no se dispone de un plotter es por lo menos difícil, si no es que imposible.

Prevención de la condición de esperar circular. La espera circular se puede eliminar disponiendo de una regla que un proceso sólo

está autotrizado a utilizar un recurso.

S.O.

Sergio Fuenlabrada Velázquez, Edna Martha Miranda Chávez

Modelo de estado con espera circular

“En un estado de espera circular, cada uno de los n procesos esta en posesión de un recurso y solicita otro.” Gary Nutt

Estado inseguro

Estado seguro

Estado de interbloqueo

Sistemas Operativos. Gary Nutt. Ed. Pearson

S.O.

Sergio Fuenlabrada Velázquez, Edna Martha Miranda Chávez

Otra forma de evitar la espera circular es mediante una numeración global de todos los recursosSe numeran los dispositivos en función de acuerdo a como son requeridos de mayor a menor

1.-Disco Duro maestro2.- Disco duro respaldo3.- Unidad de CD-Rom4.- Impresora5.- Escáner 6.- etc.Los procesos deben solicitar los dispositivos de acuerdo con su numeración, un proceso no podrá solicitar un dispositivo con un menor numero al que tiene asignado.

S.O.

Sergio Fuenlabrada Velázquez, Edna Martha Miranda Chávez

Recuperación de deadlockSuponiendo que el algoritmo de detección de bloqueos tiene éxito y detecte el

bloqueo. Se necesita alguna forma de recuperar y lograr que sistema continúe nuevamente.

Recuperación mediante la apropiación. En ciertos casos, podría ser posible tomar un recurso en forma temporal de su

poseedor y dárselo a otro proceso. La posibilidad de quitar un recurso a un proceso, hacer que otro recurso lo utilice y

después regresarlo si que el proceso lo note depende en gran medida de la naturaleza del recurso.La recuperación mediante esta vía es difícil o imposible.

Recuperación mediante rollback. La verificación de un proceso indica que su estado se escribe en un archivo de

modo que pueda volver a iniciar más tarde.El punto de verificación contiene la imagen de la memoria, el estado de recurso; es decir los recursos asignados en ese momento al proceso.Los nuevo puntos de verificación deben escribirse en nuevos archivos; así durante la ejecucuión del proceso se acumula toda una serie de archivos con puntos de verificación.

Al detectar un bloqueo , un proceso que posee un recurso necesario regresa hasta cierto instante en el tiempo anterior a la adquisición de algún otro recurso, mediante la inicialización de alguno de sus anteriores puntos de verificación.

S.O.

Sergio Fuenlabrada Velázquez, Edna Martha Miranda Chávez

Recuperación mediante la eliminación de procesos

La forma más sencilla de romper un bloqueo es eliminar uno o más 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 algún proceso del ciclo.

Cuando sea posible, es mejor eliminar un proceso que pueda volver a iniciar su ejecución sin efectos dañino.

Un proceso que actualiza una base de datos no siempre se puede volver a ejecutar por segunda vez con seguridad.Si el proceso añade 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.