sábado, 9 de julio de 2016

INTERBLOQUEOS







INTERBLOQUEOS







Interbloqueo Se dice que dos o más procesos están bloqueados, cuando están suspendidos en espera de un evento que sólo puede ser activado por uno de los procesos bloqueados, y por lo tanto dicho evento nunca sucederá. Para este problema no existe solución Un ejemplo fácil para entender este contexto es imaginar que existen dos procesos que compiten por dos recursos que necesitan para funcionar, que solo pueden ser usados por un proceso a la vez. El primer proceso obtiene el permiso de utilizar uno de los recursos. El segundo proceso toma el otro recurso, y luego intenta utilizar el recurso ya utilizado por el primer proceso, por lo tanto queda en espera. Cuando el primer proceso a su vez intenta utilizar el otro recurso, se produce un interbloqueo, donde los dos procesos esperan la liberación del recurso que utiliza el otro proceso.
Condiciones necesarias para un interbloqueo  • Exclusión mutua: Si dos procesos solicitan un recurso exclusivo, uno de los dos quedará suspendido hasta que el favorecido libere el recurso.     • Contención o retención y espera: Si un proceso necesita más de un recurso para realizar su trabajo, conservará en su poder los recursos exclusivos ya asignados, mientras espera por otro recurso adicional.
Condiciones necesarias para un interbloqueo • Inapropiatividad: Los recursos asignados a un proceso, sólo pueden ser liberados por el proceso mismo y no pueden ser desasignados por el sistema, cuando otro proceso los necesite. • Espera circular: Dependencia: Si un proceso P1 está suspendido en espera de un recurso exclusivo que está asignado a otro proceso P2, entonces decimos que P1 depende de P2 (P1 <= P2).
Formas de enfrentar los interbloqueos • Indiferencia: Problema del usuario y del programador, lograr que no se dé el interbloqueo. • Prevención: Consisten en condicionar el sistema con una serie de restricciones a los programadores, para que no se den al menos una de las condiciones del interbloqueo, por lo que éste nunca sucederá.




Formas de enfrentar los interbloqueos • Evitación o predicción: Esta estrategia consiste en dejar que las condiciones para el interbloqueo se puedan dar, pero en el momento de asignar recursos, y se detecte que puede ocurrir un interbloqueo, deniega la asignación del recurso que puede desencadenar el interbloqueo. • Detección y recuperación: En esta política, el sistema deja que suceda el interbloqueo, pero se implementan procesos encargados de revisar el estado de asignación de los procesos, para detectar los interbloqueo. Una vez detectado, se pueden implementar políticas de recuperación de interbloqueo, que básicamente consisten en matar procesos.





Ejemplos de  interbloqueo

  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 más procesos.
Un ejemplo clásico de interbloqueo es el interbloqueo de tráfico:


2.- Ahora se describe una situación de interbloqueo, en la que intervienen procesos y recursos informáticos, al siguiente gráfico se le asigna la siguiente forma:

           Proceso P                               Proceso Q
         Obtener A                               Obtener B
         Obtener B                               Obtener A
         Liberar A                                Liberar B
         Liberar B                                Liberar A



El que se produzca interbloqueo o no, depende de la dinámica de la ejecución, por ejemplo; supóngase que p no necesitara ambos recursos en el mismo instante y tuviera la siguiente forma:
Proceso P
Obtener A
Liberar A
Obtener B
Liberar B


Ejemplo Ilustrativo:




•Dos procesos compiten por el acceso exclusivo a un archivo D del disco y a una unidad de cinta C. Guiarse por la tabla  6.4, el interbloqueo se produce si un proceso pide un recurso y retiene otro.
                                      p0p1q0q1p2q2
Esta es la forma para que se produzca un interbloqueo en un sistema multiprogramado







jueves, 7 de julio de 2016

ADMINISTRACIÓN DE MEMORIA



Administración de la Memoria





Administración de la memoria sin intercambio o paginación.
Los sistemas de administración de memoria se pueden clasificar en dos tipos. Los que desplazan los procesos de la memoria principal al disco y viceversa durante la ejecución (intercambio y paginación) y aquellos que no.

Monopogramación sin intercambio o paginación.
Es en forma secuencial pues solo se tiene un objeto en memoria en cada instante, el usuario carga toda la memoria con un programa, esto implica que cada proceso debe contener controladores de dispositivo para cada uno de los dispositivos E/S que utilice.

 Multiprogramación y uso de la memoria.
La multiprogramación facilita la programación de una aplicación al dividirla en dos o mas procesos. La mayoría de los procesos tardan cierto tiempo en la espera de datos de dispositivos E/S.
Un modelo para el uso y aprovechamiento de la CPU es el modelo probabilístico dado por la fórmula :
Uso de la CPU = 1 - pn

Multiprogramación con particiones fijas.
El objetivo en todo esto es tener mas de un proceso en memoria a la vez, solución posible sería dividir la memoria en n partes al inicio de una sesión de uso de la máquina, pero aún así se obtiene el desperdicio de particiones grandes con una tarea pequeña, la respuesta puede ser tener particiones pequeñas también.
Las tareas que van llegando se forman hasta que una partición adecuada está disponible, en cuyo momento la tarea se carga en esa partición y se ejecuta hasta terminar.



Intercambio.
En un sistema por lotes la organización de la memoria en particiones fijas es adecuado pero en un ambiente multiusuario la situación es distinta con el tiempo compartido, ya que existen mas usuarios de los que puede albergar la memoria, por lo que es conveniente albergar el exceso de los procesos en disco., por supuesto para ser ejecutados estos procesos deben ser trasladados a la memoria principal. Al traslado de procesos de disco a memoria y viceversa se le llama intercambio.

Multiprogramación con particiones variables.
Mediante un algoritmo de administración de memoria las particiones variables varían de forma dinámica durante el uso de la máquina, evitando desperdicio de memoria
Otros métodos de administración de memoria que tenemos son:
la administración de memoria con mapa de bits la memoria se divide en unidades de asignación, a cada asignación le corresponden un bit en el mapa de bits, un mapa de bits es una forma sencilla para llevar un registro de las palabras de la memoria en una cantidad fija de memoria.
la administración de memoria con listas ligadas otra forma de mantener un registro en memoria es mediante una lista ligada donde cada entrada de la lista específica un hueco o un proceso.
la administración de memoria con el sistema de los asociados basado en el sistema binario o utiliza para las direcciones.

 Memoria Virtual
El método diseñado por Fotheringham en 1961 se conoce como Memoria Virtual, la idea es que el tamaño combinado de la pila, programa y datos puede exceder la memoria física disponible para ello. El S.O. mantiene en memoria aquellas partes del programa que se deben permanecer en memoria y el resto lo deja en disco, las partes entre el disco y la memoria se intercambian de modo que se vayan necesitando.










Paginación.
El espacio de direcciones de cada proceso se divide en bloques de tamaño uniforme llamados páginas, los cuales se pueden colocar dentro de cualquier para página marco disponible en memoria. Cuando las tablas de páginas son muy grandes se puede utilizar un esquema de paginación de varios niveles para que las páginas se paginen a sí mismas.
Existen distintos niveles de paginación y a su vez distintos modelos de computadoras han trabajado con ellas.
Paginación de nivel 1: PDP-11
Paginación de 2 niveles: la VAX
Paginación de 3 niveles: la SPARC
Paginación de 4 niveles: la 68030

Memoria asociativa
En los algoritmos de paginación las tablas de páginas se mantienen en la memoria debido a su gran tamaño, en potencia este diseño tiene un efecto enorme en el rendimiento.

PARA COMPRENDER AUN MEJOR ACERCA DE ADMINISTRACION DE MEMORIA RECOMIENDO VER EL SIGUIENTE VIDEO QUE AQUI DEJO LA DIRECCION, NOS DA UNA BUENA EXPLICACION A CERCA DE ESTE TEMA: