INTERBLOQUEOS DE PROCESOS EN SISTEMAS OPERATIVOS Lucia Velรกsquez Rondรณn. C.I: 23.592.420 Asignatura: Sistemas Operativos I.
ÍNDICE Procesos…………………………………………………..03-06 Que es un Proceso……………………………………...03 Como están Conformados los Procesos? ………………04 Tipos de Procesos……………………………………..05-06 Interbloqueos …………………………………………..07-09 Que es un Interbloqueo ………………………………07 Formas para Enfrentar un interbloqueo …………........08 Condiciones Necesarias para un Interbloqueo ……......09 Exclusión Mutua …………………………………………10 Que es la Exclusión Mutua …………………………..10 Condiciones para la Exclusión Mutua …………….......10 Soluciones para la Exclusión Mutua ………………….11 Solución por Software ……………………………11 Solución por Hardware …………………………..12 Tipos de soluciones por Hardware……………12
PROCESOS Que es un proceso ? Se puede definir a los procesos como a un programa en ejecución los cuales incluyen valores actuales que llevan los contadores de un programa en especifico como lo son sus registros y variables. Estos procesos pueden ser creados como también eliminados o destruidos por el sistema operativo que se este manejando. Se debe tomar en cuenta que los sistemas operativos son los que se encargan de la documentación entre procesos realizándolos bajo petición de otros procesos.
En teoría, dichos procesos cuentan con su CPU virtual de manera especifica e individual. Desde luego, en la realidad la verdadera CPU conmuta de un proceso a otro. Sabias que ? El mecanismo por el cual un proceso crea otro proceso se denomina bifurcación (fork). Los nuevos procesos pueden ser independientes y no compartir el espacio de memoria con el proceso que los ha creado o ser creados en el mismo espacio de memoria
3
COMO ESTÁN CONFORMADOS LOS PROCESOS? Un proceso es un concepto manejado por el sistema operativo que consiste en el conjunto formado por:
Las instrucciones de un programa destinadas a ser ejecutadas por el microprocesador. Su estado de ejecución en un momento dado, esto es, los valores de los registros de la CPU para dicho programa. Su memoria de trabajo, es decir, la memoria que ha reservado y sus contenidos. Otra información que permite al sistema operativo su planificación.
4
Tipos de Procesos.
Según su diseño: Reutilizables: Se cargan en memoria cada vez que se usan. Los programas de usuario suelen ser de este tipo. Reentrantes: Se carga una sola copia del código en memoria. Cada vez que se usan se crea un nuevo proceso con su zona de datos propia, pero compartiendo el código.
Según su acceso a CPU y recursos: Apropiativos: Acceden a los recursos y sólo los abandonan de forma voluntaria (mediante instrucción CPU). No apropiativos: Permiten a otros procesos apropiarse de los recursos que ahora poseen.
Según su permanencia en memoria: Residentes: Tienen que permanecer en memoria durante toda su evolución (desde creación hasta terminación). Intercambiables (swappable): Es lo más normal. El SO puede decidir llevarlos a disco a lo largo de su evolución.
5
Tipos de Procesos.
Según su nivel de privilegio (no en todos los SO): Privilegiados: se ejecutan en modo supervisor. No privilegiados: los que normalmente ejecuta el usuario.
Según su propietario: Procesos de usuario: son los diseñados por los usuarios. Se ejecutan en modo no protegido. Procesos del sistema: son los que forman parte del SO (de E/S, de planificación de otros procesos, etc).
6
QUE ES UN 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.
7
F O RMAS PARA ENF RENTAR UN INTERBLOQUEO. • 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á. • 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.
8
CONDICIONES NECESARIAS DE 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. • 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: 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).
9
Que es la Exclusión Mutua ? La Exclusión mutua consiste en que un solo proceso excluye temporalmente a todos los demás para usar un recurso compartido de forma que garantice la integridad del sistema.
Condiciones para una Exclusión Mutua : Exclusión en en cuanto a la velocidad LaNo se debenmutua hacer consiste suposiciones que un de solo proceso en excluye relativa los procesos conflicto. temporalmente a todos los usarque unesté recurso demás Ningúnpara proceso fuera de su sección crítica compartido de aforma debe interrumpir otro paraque el acceso a la sección garantice la integridad del crítica. sistema. Cuando más de un proceso desee entrar en su sección crítica, se le debe conceder la entrada en un tiempo finito, es decir, que nunca se le tendrá esperando en un bucle que no tenga final. 10
Soluciones para la Exclusión Mutua Para solucionar el problema de la exclusión mutua se debe tener en cuenta tres tipos de soluciones. Soluciones por software: Soluciones por hardware Soluciones aportadas por el sistema operativo.
Soluciones por Software. Son aquellas soluciones que pueden implementarse para los procesos concurrentes que se ejecutan en máquinas monoprocesador o multiprocesador con memoria principal compartida.
11
Tipos de soluciones por Hardware.
Existen 2 Soluciones para las exclusiones mutuas que van por la vía del Hardware.
Optimistas:
Pesimistas:
Considera que Consideran que lo mas probable es que no haya conflictos, y si los hay sea en número reducido, por lo que permiten cualquier acceso a la variable compartida. En caso de conflicto, mantienen la integridad del sistema descartando las actualizaciones.
Son todas aquellas soluciones en las que se realiza un bloqueo de todo lo que pueda interferir como también la habilitación y desafiliación de interruptores.
12
SISTEMAS OPERATIVOS.
Lucia Velรกsquez Rondรณn. C.I:23.592.420. Asignatura: Sistemas Operativos I.
13