Conceptos Fundamentales de Sistemas Operativos: Interbloqueo y Planificación
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 8,28 KB
Conceptos Clave en Sistemas Operativos
Gestión de Interbloqueos
Interbloqueo
Situación donde uno o más procesos esperan un evento que nunca va a ocurrir, resultando en un estancamiento del sistema.
Suspensión - Reanudación
Mecanismo que permite regresar un proceso a un estado anterior, retirarle los recursos asignados y, posteriormente, devolverlo al estado en el que se encontraba para continuar su ejecución.
Condiciones Necesarias para el Interbloqueo
Para que ocurra un interbloqueo, deben cumplirse simultáneamente las siguientes cuatro condiciones:
- Exclusión Mutua: Dos o más procesos no pueden acceder al mismo recurso al mismo tiempo.
- Mantener y Solicitar (Posesión y Espera): Un proceso conserva los recursos que ya le han sido asignados mientras solicita recursos adicionales que están siendo utilizados por otros procesos. La estrategia de "solicitar todos los recursos desde el principio" rompe esta condición.
- No Apropiatividad: Los recursos no pueden ser quitados a un proceso una vez que le han sido asignados; solo pueden ser liberados voluntariamente por el proceso que los posee. La estrategia de "regresar recursos si no se pueden asignar más y luego pedirlos de nuevo" rompe esta condición.
- Espera Circular (Cadena Circular): Existe una cadena de dos o más procesos, donde cada proceso en la cadena está esperando un recurso que posee el siguiente proceso en la cadena. La estrategia de "asignar un número consecutivo a los recursos y pedirlos en orden ascendente" rompe esta condición.
Términos Relacionados con Interbloqueos
- Víctima: Nombre dado al proceso escogido para ser cancelado o suspendido con el fin de resolver un interbloqueo.
- Reducción de la GAR (Gráfica de Asignación de Recursos): Proceso de eliminar flechas en la gráfica para identificar si existe o no un interbloqueo.
- Estado Inseguro: Estado del sistema que determina que no se le debe asignar un recurso solicitado a un proceso, ya que podría conducir a un interbloqueo.
- Estado Seguro: Estado del sistema que determina que se le puede asignar un recurso solicitado a un proceso sin riesgo de interbloqueo.
- Abortar un Proceso: Acción de cancelar un proceso para eliminar un interbloqueo.
Estrategias para la Gestión de Interbloqueos
Algoritmo del Banquero
Mecanismo desarrollado por Dijkstra que detecta estados seguros o inseguros para decidir si asignar o no asignar recursos a un proceso, con el objetivo de evitar interbloqueos.
Gráfica de Asignación de Recursos (GAR)
Representación visual donde se muestran los recursos asignados a los procesos y los procesos solicitando recursos, útil para visualizar y detectar interbloqueos.
Prevención de Interbloqueos (Estrategia de Havender)
Conjunto de estrategias que buscan asegurar que al menos una de las cuatro condiciones necesarias para el interbloqueo no se cumpla:
- Solicitar todos los recursos desde el inicio: Elimina la condición de posesión y espera.
- Regresar recursos cuando no se pueden asignar adicionales: Elimina la condición de no apropiatividad.
- Asignar a los recursos un número consecutivo y solicitarlos en orden ascendente: Elimina la condición de espera circular.
Evitación/Evasión de Interbloqueos (Algoritmo de Dijkstra)
Esta estrategia, ejemplificada por el Algoritmo del Banquero, busca evitar que el sistema entre en un estado inseguro, asignando recursos solo si el sistema puede garantizar que no se producirá un interbloqueo.
Ignorar el Problema (Algoritmo del Avestruz)
Estrategia que consiste en no hacer nada frente a la posibilidad de un interbloqueo, asumiendo que la probabilidad de que ocurra es muy baja y que el costo de prevención o detección es mayor que el costo de recuperación.
Planificación de Procesos y Recursos
Prioridad
Es la preferencia que se le da a un proceso para que se ejecute antes que otros.
Tipos de Prioridad
Existen dos tipos principales de prioridad:
- Estática: La prioridad de un proceso no cambia durante su ejecución.
- Dinámica: La prioridad de un proceso puede variar durante su ejecución, ajustándose según las condiciones del sistema.
Algoritmos de Planificación con Prioridad
Algunos algoritmos que incorporan ambos tipos de prioridad son:
- HRN (Highest Response Ratio Next): Utiliza prioridad dinámica.
- SJN (Shortest Job Next): Utiliza prioridad estática.
Gestión de Prioridades en el Acceso a Archivos
Un ejemplo práctico de dónde manejar prioridades es en el acceso a archivos para escritura y lectura. Se le debe dar prioridad al proceso que realizará la escritura de un archivo para mantener la consistencia de los datos.
Problema de los Filósofos Comensales
Un problema clásico en la concurrencia que ilustra los desafíos de la asignación de recursos y la prevención de interbloqueos. La solución implica que los procesos (filósofos) compiten por recursos (tenedores) para realizar una acción (comer). Una posible solución es establecer un orden de llegada (listas) o que un administrador coordine la asignación de tenedores, designando un tenedor compartido para evitar el interbloqueo. Al final, todos los filósofos habrían comido, con el último utilizando el tenedor compartido. En este problema, los procesos son los n filósofos y los recursos son los tenedores.
Hilos (Threads)
Definición de Hilo/Thread
Los hilos son unidades de ejecución más ligeras que los procesos, a menudo descritos como "miniprocesos" que se ejecutan individualmente y de forma secuencial dentro de un mismo proceso.
Características de los Hilos
- Comparten un único espacio de direcciones de memoria.
- Cada hilo tiene su propio contador de programa y una pila para llevar un registro de su posición en memoria y el estado de su ejecución.
- Los hilos comparten la CPU de manera similar a como lo hacen los procesos, permitiendo la concurrencia dentro de una aplicación.
Planificación de la CPU
Objetivos de la Planificación de la CPU
La planificación de la CPU busca optimizar el uso del procesador y garantizar un rendimiento eficiente del sistema. Sus principales objetivos son:
- Maximizar el uso de la CPU: Mantener la CPU ocupada tanto como sea posible.
- Ser justo: Asegurar que todos los procesos reciban una porción equitativa del tiempo de CPU.
- Respetar prioridades: Dar preferencia a los procesos con mayor prioridad.
- Balancear el uso del recurso: Distribuir la carga de trabajo de manera uniforme entre los recursos disponibles.
Criterios de Evaluación de la Planificación
Para evaluar la eficacia de un algoritmo de planificación, se utilizan los siguientes criterios:
- Tiempo de Respuesta o Turnaround: Tiempo total desde que un proceso entra al sistema hasta que finaliza su ejecución.
- Tiempo de Espera: Tiempo que un proceso pasa en la cola de listos, esperando por la CPU.
- Índice de Servicio: Relación entre el tiempo de ejecución de un proceso y su tiempo de espera.
Niveles de Planificación
La planificación en sistemas operativos se realiza en diferentes niveles, cada uno con un objetivo específico:
- A Corto Plazo: Encargado de asignar la CPU a los procesos listos para ejecutarse.
- A Mediano Plazo: Responsable de la gestión de la memoria, moviendo procesos entre la memoria principal y el almacenamiento secundario (swapping).
- A Largo Plazo: Determina qué procesos son admitidos en el sistema para su ejecución, controlando el grado de multiprogramación.