Вы находитесь на странице: 1из 13

INTERBLOQUEOS 05-01UNIVERSIDAD CENTRAL DEL ECUADOR

FACULTAD DE INGENIERIA CIENCIAS FISICAS Y MATEMATICAS SISTEMAS OPERATIVOS II

LINUX Y WINDOWS

PAULINA ORTIZ FERNNDEZ

2012

DEFINICION.Un conjunto de procesos/hebras se encuentra interbloqueado si cada uno de ellos est esperando un suceso que slo otro proceso del conjunto puede causar. El Interbloqueo se puede definir como el bloque permanente de un conjunto de procesos que compiten por los recursos del sistema, todos los interbloqueos suponen necesidades contradictorias de recursos, por parte de dos o ms procesos. Ejemplo: Cuatro coches llegan aproximadamente en el mismo instante a un cruce de cuatro caminos. Los cuatro cuadrantes de la interseccin son los recursos compartidos sobre los que se demanda control; por tanto, si los coches desean atravesar el cruce, las necesidades de recursos son las siguientes: El coche que va hacia el norte necesita los cuadrantes 1 y 2. El coche que va hacia el oeste necesita los cuadrantes 2 y 3. El coche que va hacia el sur necesita los cuadrantes 3 y 4. El coche que va hacia el este necesita los cuadrantes 4 y 1.

Habitualmente el suceso esperado es la liberacin de algn tipo de recurso o seccin critica. Ninguno de los procesos puede... Ejecutarse Liberar un recurso o seccin critica Ser despertado (desbloqueado) CONDICIONES NECESARIAS DE INTERBLOQUEO Exclusividad: Cada recurso o es asignado exclusivamente a un proceso o est disponible.

Retencin y espera: Los procesos que tiene recursos asignados pueden solicitar nuevos recursos. No expropiacin: Los recursos ya asignados no pueden ser arrebatados al proceso sino que este debe liberarlos de forma voluntaria. Espera circular: Debe existir una cadena circular de dos o ms procesos cada uno de los cuales espera por un recurso en manos del siguiente proceso.

de

recursos

a) El recurso R1 ha sido asignado al proceso P1. b) El proceso P2 espera a que el recurso R2 le sea asignado. c) Interbloqueo. RESOLUCION DE INTERBLOQUEOS

Prevenir: anular una de las cuatro condiciones necesarias para la aparicin de un interbloqueo. Evitar: asignar recursos de forma cuidadosa para que no pueda aparecer el interbloqueo. Detectar y recuperar: intentar detectar el interbloqueo y tomar medidas para resolverlo en caso de que aparezca. Ignorar: no hacer nada con la esperanza de que no aparezca el interbloqueo. PREVENCIN DEL INTERBLOQUEO La estrategia bsica de la prevencin del interbloqueo consiste, a grandes rasgos, en disear su sistema de manera que est excluida, a priori, la posibilidad de interbloqueo.

Los mtodos para prevenir el interbloqueo son de dos tipos:

Los mtodos indirectos que consisten en impedir la aparicin de alguna de las tres condiciones necesarias para que se de el interbloqueo. Los mtodos directos que consisten en evitar la aparicin del crculo vicioso de espera. Exclusin mutua Si ningn recurso se puede asignar de forma exclusiva, no se producir interbloqueo. Sin embargo, existen recursos para los que no es posible negar la condicin de exclusin mutua. No obstante, es posible eliminar esta condicin en algunos procesos. Por ejemplo, una impresora es un recurso no compatible pues si se permite que dos procesos escriban en la impresora al mismo tiempo, la salida resulta catica. Pero con el spooling de salida varios procesos pueden generar salida al mismo tiempo. Puesto que el spooler nunca solicita otros recuerdos, se elimina el bloqueo originado por la impresora. El inconveniente es que no todos los recursos pueden usarse de esta forma (por ejemplo, la tabla de procesos no se presenta al spooling y, adems, la implementacin de esta tcnica puede introducir nuevos motivos de interbloqueo, ya que el spooling emplea una zona de disco finita) Retencin y espera La condicin de retencin y espera puede prevenirse exigiendo que todos los procesos soliciten todos los recursos que necesiten a un mismo tiempo y bloqueando el proceso hasta que todos los recursos puedan concederse simultneamente. Esta solucin resulta ineficiente por dos factores: En primer lugar, un proceso puede estar suspendido durante mucho tiempo, esperando que concedan todas sus solicitudes de recursos, cuando de hecho podra haber avanzado con solo algunos de los recursos. Y en segundo lugar, los recursos asignados a un proceso pueden permanecer sin usarse durante periodos considerables, tiempo durante el cual se priva del acceso a otros procesos. No apropiacin La condicin de no apropiacin puede prevenirse de varias formas. Primero, si a un proceso que retiene ciertos recursos se le deniega una nueva solicitud, dicho proceso deber liberar sus recursos anteriores y solicitarlos de nuevo, cuando sea necesario, junto con el recurso adicional. Por otra parte, si un proceso solicita un recurso que actualmente esta retenido por otro proceso, el sistema operativo debe expulsar al segundo proceso y

exigirle que libere sus recursos. Este ltimo esquema evitar el interbloqueo slo si no hay dos procesos que posean la misma prioridad. Esta tcnica es prctica slo cuando se aplica a recursos cuyo estado puede salvarse y restaurarse ms tarde de una forma fcil, como es el caso de un procesador. Circulo vicioso de espera La condicin del crculo vicioso de espera puede prevenirse definiendo una ordenacin lineal de los tipos de recursos. Si a un proceso se le han asignado recursos de tipo R, entonces slo podr realizar peticiones posteriores sobre los recursos de los tipos siguientes a R en la ordenacin. Para comprobar el funcionamiento de esta estrategia, se asocia un ndice a cada tipo de recurso. En tal caso, el recurso Ri antecede a Rj en la ordenacin si i<j. Entonces, supngase que dos procesos A y B, estn interbloqueados, porque A ha adquirido Ri y solicitado Rj, mientras que B ha adquirido Rj y solicitado Ri. Esta condicin es imposible porque implica que i<j y j<i. Como en la retencin y espera, la prevencin del circulo vicioso de espera puede ser ineficiente, retardando procesos y denegando accesos a recursos innecesariamente.
TRATAMIENTO DEL INTERBLOQUEO Las formas de tratar los interbloqueos se dividen en 4 grandes tcnicas. 1 TCNICA - TCNICA DEL AVESTRUZ Se basa en que: Si no se ve el problema, es que no existe. (se omite). Para omitir el interbloqueo, debemos tener en cuenta estos factores: 1. Nmero de veces que ocurre el interbloqueo. 2. Gravedad de la ocurrencia del interbloqueo. 3. Coste de las consecuencias. 4. Coste, en caso de hacer algo. Linux usa esta tcnica. 2 TCNICA PREVENCIN Consiste en eliminar del sistema al menos, una de las condiciones de interbloqueo. Ventajas: Mtodo limpio, no tiene ni que matar procesos, ni que expropiar recursos. Desventajas: Se aprovechan mal los recursos. 3 TCNICA EVITACIN Consiste en permitir la posibilidad de interbloqueo. De modo que se chequea el sistema continuamente. Este chequeo se realiza en las asignaciones de recursos a procesos, ya que las solicitudes no son evitables. Ventajas: Mtodo limpio. Desventajas: Poco rendimiento, sobrecarga mucho el sistema. Chequear continuamente el sistema.

EVITAR INTERBLOQUEOS
Funcionamiento: Cuando todas las condiciones necesarias de interbloqueo estn presentes, menos la espera circular, seguimos lo siguiente: Cada vez que un proceso solicite un recurso se evala el sistema. En el supuesto de que se le concediera el recurso, apareciera una espera circular, no se le concedera el recurso. En el caso de que no apareciera espera circular, se le concedera el recurso. Inconvenientes: Necesitamos saber de antemano, la informacin de los recursos que se van a solicitar. Esto es casi imposible. OPCIONES DE EVITACIN. A) DIAGRAMA DE EJECUCIN DE PROCESOS. Su utilidad es puramente terica, ya que explica el punto de no retorno y nunca se lleva a la prctica ya que solo es aplicable a dos procesos y dos recursos. Situacin de interbloqueo:

Procesos: A, B Recursos: Impresora, Cinta. El proceso A pide la cinta y luego pide la impresora, finalizando con esta ltima. El proceso B pide la impresora, y luego la cinta, finalizando con esta ltima.

Actuar sobre las decisiones que el sistema toma en tiempo de ejecucin con respecto a si la creacin de una nueva hebra o una nueva solicitud de recurso podra conducir a un interbloqueo. Dos polticas son posibles: No iniciar una nueva hebra si la suma de todos los recursos que necesita ms los recursos ya asignados a otras hebras puede conducir a un interbloqueo. No conceder solicitudes de nuevos recursos si su asignacin puede llevar el sistema a un interbloqueo. Siempre hemos de tener en cuenta el peor caso posible. La mayor restriccin es conocer por adelantado los recursos que va a necesitar un proceso. Qu hacer una vez detectado un interbloqueo? Finalizar procesos Finalizar todos los procesos interbloqueados. Es rpido pero desperdicia mucho trabajo. Finalizar procesos de uno en uno hasta que desaparezca el interbloqueo. Este mtodo consume ms recursos. Es mejor en cuanto a la cantidad de trabajo aprovechado. En qu orden finalizar los procesos? RECUPERACION DE INTERBLOQUEOS Recuperacin mediante expropiacin: Tomar el recurso en conflicto de otro proceso. Mtodo aplicable slo a recursos expropiables.

Recuperacin mediante vuelta atrs: Almacenar el estado de los procesos peridicamente. Reiniciar el proceso en uno de los estados previos al interbloqueo. Recuperacin mediante finalizacin: Mtodo burdo pero eficaz. Eliminar procesos del ciclo que condujo al interbloqueo hasta permitir a algn otro continuar. Si disponemos de informacin elegir procesos reiniciables (compilador/base de datos). GESTION DE INTERBLOQUEOS 1. No hacer nada (algoritmo del avestruz) Ej. UNIX. Decisin de diseo, por motivos de flexibilidad. Ej. N de archivos abiertos. 2. Permitir que el sistema se bloquee y luego se recupere (requiere deteccin peridica). 3. Uso de protocolos que aseguren que el sistema nunca se bloqueara: Mediante evasin: proporcionar al sistema informacin anticipada acerca de las necesidades de recursos de los procesos, de modo que pueda encontrar secuencias de asignacin de CPU a los procesos que eviten los bloqueos. Mediante prevencin: garantizar que una (o ms) de las condiciones necesarias para la formacin de bloqueos no se cumpla. WINDOWS MECANISMOS DE CONCURRENCIA EN WINDOWS 2000 Windows 2000 (W2K) ofrece sincronizacin entre los hilos como parte de la arquitectura de objetos. El mecanismo usado por el ejecutor de W2K para implementar los servicios de sincronizacin es la familia de objetos de sincronizacin, que esta formada por los siguientes: Proceso. Hilo. Archivo. Entrada de consola. Notificacin de cambio de archivo. Mutante. Semforo. Suceso. Temporizador.

Cada caso de objeto de sincronizacin puede estar en estado sealizado o no sealizado. Un hilo puede estar suspendido por un objeto en estado no sealizado: el hilo es liberado cuando el objeto pasa a estado sealizado. El mecanismo es sencillo: un hilo genera una solicitud de espera al ejecutor de W2K por medio del descriptor (handle) del objeto de sincronizacin. Cuando

un objeto pasa a estado sealizado, el ejecutor de W2K libera todos los objetos hilo que estaban esperando por dicho objeto de sincronizacin. El objeto mutante se utiliza para hacer cumplir la exclusin mutua en el acceso a un recurso, permitiendo que slo un objeto hilo obtenga el acceso en cada instante. Por lo tanto, funciona como un semforo binario. Cuando el objeto mutante pasa a estado sealizado, slo se libera uno de los hilos que esperan. Los objetos mutuamente pueden utilizarse para sincronizar hilos que ejecutan en distintos procesos. Al igual que los mutantes, hilos de diferentes procesos pueden compartir semforos. El semforo de W2K es un semforo entero clsico. El temporizador en esencia, seala determinado momento o intervalos regulares. Objetos de sincronizacin de Windows 2000 (Resume los sucesos que hacen que cada tipo de objetos pase a estado sealizado y el efecto que tiene en los hilos que esperan)

LINUX Lo que realmente se entiende por el trmino de Linux es el Kernel, el corazn de cualquier sistema operativo tipo Unix. Pero el Kernel por si solo no forma todava un sistema operativo. Justamente para Unix existe una multitud de software libre, lo que significa que estos estn tambin disponibles para Linux. Son estas utilidades las que realmente forman el sistema operativo. Todo se complementa con XFREE86tm que es el sistema X Windows para sistemas Unix a base de PC. Todos estos componentes, junto a otros programas o tambin juegos, forman el sistema que generalmente se denomina Linux.

Por su naturaleza, Linux se distribuye libremente y puede ser obtenido y utilizado sin restricciones por cualquier persona, organizacin o empresa que as lo desee, sin necesidad de que tenga que firmar ningn documento ni inscribirse como usuario. Por todo ello, es muy difcil establecer quines son los principales usuarios de Linux. No obstante, se sabe que actualmente Linux est siendo utilizado ampliamente en soportar servicios en Internet, lo utilizan Centros de Educacin alrededor del todo el mundo para sus redes y sus clases, lo utilizan empresas productoras de equipamiento industrial para vender como software de apoyo a su maquinaria, lo utilizan cadenas de supermercados, estaciones de servicio y muchas instituciones del gobierno y militares de varios pases. Obviamente, tambin es utilizado por miles de usuarios en sus computadores personales. El apoyo ms grande, sin duda, ha sido Internet ya que a travs de ella se ha podido demostrar que se puede crear un sistema operativo para todos los usuarios sin la necesidad de fines lucrativos. El sistema Linux es compatible con ciertos estndares de Unix a nivel de cdigo fuente, incluyendo el IEEE POSIX.1, System V y BSD. Fue desarrollado buscando la portabilidad de las fuentes: todo el software gratuito desarrollado para Unix se compila en Linux sin problemas. Y todo lo que se hace para Linux (cdigo del ncleo, drivers, libreras y programas de usuario) es de libre distribucin. En Linux tambin se implementa el control de trabajos POSIX (que se usa en los shells csh y bash), las pseudoterminales (dispositivos pty), y teclados nacionales mediante manejadores de teclado cargables dinmicamente. Adems, soporta consolas virtuales, lo que permite tener ms de una sesin abierta en la consola de texto y conmutar entre ellas fcilmente. Linux soporta diversos sistemas de archivos para guardar los datos. Algunos de ellos, como el ext2fs, han sido desarrollados especficamente para Linux. Linux implementa todo lo necesario para trabajar en red con TCP/IP. Desde manejadores para las tarjetas de red ms populares hasta SLIP/PPP, que permiten acceder a una red TCP/IP por el puerto serie. Tambin se implementan PLIP (para comunicarse por el puerto de la impresora) y NFS (para acceso remoto a ficheros). Y tambin se han portado los clientes de TCP/IP, como FTP, telnet, NNTP y SMTP. Esta es la mascota oficial de Linux, que fue elegida por el creador de Linux para representar el sistema operativo que l haba creado. Hoy en da todo el mundo asocia a este simptico pingino con el sistema operativo. Descripcin De Las Funciones De Linux Las ventajas que se derivan de la utilizacin de Linux parten de su potencia y flexibilidad. Son el resultado de muchas funciones incorporadas en el sistema, listo para lo que se pueda utilizar en cuanto se encienda la mquina.

Multitarea La palabra multitarea describe la capacidad de ejecutar muchos programas al mismo tiempo sin detener la ejecucin de cada aplicacin. Se le denomina multitarea prioritaria porque cada programa tiene garantizada la oportunidad de ejecutarse, y se ejecuta hasta que el sistema operativo da prioridad a otro programa para que se ejecute. Linux consigue el proceso de prioridad supervisando los procesos que esperan para ejecutarse, as como los que estn ejecutndose. El sistema programa entonces cada proceso para que disponga de las mismas oportunidades de acceso al microprocesador. Otra de las caractersticas referentes a este tema es que Linux es multiplataforma. Fue diseada para plataforma Intel pero ha sido fcilmente exportado a diversos tipos de sistema. Multiusuario La capacidad de Linux para asignar el tiempo de microprocesador simultneamente a varias aplicaciones ha derivado en la posibilidad de ofrecer servicios a diversos usuarios a la vez, ejecutando cada uno de ellos una o ms aplicaciones a la vez. Ms de una persona puede trabajar con la misma versin de la misma aplicacin al mismo tiempo. No se debe confundir esto con el hecho de que muchos usuarios puedan actualizar el mismo archivo simultneamente. Shells Programables El shell programable es otra caracterstica que hace que el sistema operativo sea el ms flexible de los existentes. Un shell es como el command.com de MS-DOS, es decir, un intrprete de comandos. Es bsicamente la interfaz, el modo de comunicacin, entre el usuario y el sistema. El shell de Linux explora cada lnea de comandos para determinar si su formacin y deletreado son coherentes con sus protocolos. El proceso de exploracin del shell se denomina anlisis. Un Shell funciona como interprete entre el usuario y el kernel (cerebro o corazn del sistema operativo), la diferencia entre los diferentes shell que puedan existir radica en la sntesis de la lnea de comandos. Cada usuario de un sistema Linux tiene su propia interfaz de usuario o Shell. Los usuarios pueden personalizar sus shells adecundolos a sus propias necesidades especficas. As, el Shell de un usuario funciona ms como un entorno operativo que el usuario puede controlar. BIBLIOGRAFIA http://es.scribd.com/doc/52933347/61/Deteccion-De-Los-Interbloqueos

http://geneura.ugr.es/~gustavo/aco/teoria/interbloqueo/interbloqueo-2x3.pdf

Вам также может понравиться