Clase 5 1)Planificación de Procesos Conceptos y Criterios.pdf
Document Details
Uploaded by HardWorkingErudition
Tags
Full Transcript
PLANIFICACIÓN DE PROCESOS La planificación de procesos es un componente fundamental de los sistemas operativos que se encarga de determinar el orden y la asignación de la ejecución de los procesos en la CPU. En otras palabras, implica tomar decisiones sobre qué proceso se ejecutará a continuación...
PLANIFICACIÓN DE PROCESOS La planificación de procesos es un componente fundamental de los sistemas operativos que se encarga de determinar el orden y la asignación de la ejecución de los procesos en la CPU. En otras palabras, implica tomar decisiones sobre qué proceso se ejecutará a continuación y durante cuánto tiempo. El objetivo principal de la planificación de procesos es lograr una utilización eficiente de los recursos de la CPU y proporcionar una respuesta rápida a las solicitudes de los usuarios. Aspectos Clave de la Planificación de Procesos: ● Optimización del Rendimiento: La planificación de procesos busca optimizar el rendimiento del sistema al maximizar la utilización de la CPU y minimizar los tiempos de espera de los procesos. Esto se logra seleccionando y programando los procesos de manera efectiva. ● Tiempo Compartido: En sistemas multitarea, la CPU se comparte entre varios procesos. La planificación de procesos decide cuánto tiempo de CPU se asigna a cada proceso en función de su prioridad y otros factores. ● Políticas de Planificación: Los sistemas operativos implementan políticas de planificación que determinan cómo se tomarán las decisiones sobre la ejecución de procesos. Estas políticas pueden ser preemptivas (la CPU se asigna a otro proceso incluso si el actual no ha terminado) o no preemptivas (el proceso actual no se interrumpe hasta que termine su ejecución o se bloquee). ● Colas de Planificación: Los procesos se mantienen en colas de planificación según su estado y prioridad. Estas colas pueden incluir la cola de procesos listos para ejecución, la cola de procesos en espera y más. ● Cambio de Contexto: Cuando un proceso pasa de estar en ejecución a estar en espera (por ejemplo, para esperar entrada/salida), se realiza un cambio de contexto. Esto implica guardar el estado actual del proceso y cargar el estado del próximo proceso que se ejecutará. Importancia de la Planificación de Procesos: La planificación de procesos es esencial para garantizar que el sistema operativo funcione de manera eficiente y que los usuarios obtengan una respuesta rápida a sus solicitudes. Una mala planificación puede resultar en tiempos de espera prolongados, baja utilización de recursos y una experiencia de usuario insatisfactoria. La elección de los algoritmos y políticas de planificación adecuados es crucial para garantizar un rendimiento óptimo del sistema. Algoritmos y Estrategias de Planificación: Existen diversos algoritmos y estrategias de planificación de procesos, como First-Come, First-Served (FCFS), Shortest Job Next (SJN), Round Robin (RR), Prioridad, entre otros. Cada uno de estos algoritmos tiene sus propias ventajas y desventajas, y su elección depende de las características del sistema y los objetivos de rendimiento. En resumen, la planificación de procesos es una función clave de los sistemas operativos que se encarga de decidir qué proceso se ejecutará a continuación y durante cuánto tiempo en la CPU. Su objetivo principal es lograr una utilización eficiente de los recursos y brindar una experiencia de usuario óptima. Thread (Hilo) y su Relación con los Procesos: Un hilo (thread) es una unidad más pequeña de ejecución dentro de un proceso. Mientras que un proceso es una instancia en ejecución de un programa, un hilo es una secuencia de instrucciones que puede ejecutarse de manera independiente en el contexto de un proceso. Los hilos comparten recursos como el espacio de direcciones y archivos abiertos del proceso que los contiene, lo que les permite comunicarse y cooperar de manera eficiente. Utilización del Procesador y Productividad: La utilización del procesador y la productividad son aspectos cruciales en la planificación de procesos y la administración de sistemas operativos. Una eficiente gestión de la CPU no solo influye en el rendimiento general del sistema, sino que también afecta directamente la productividad de los usuarios y la capacidad del sistema para realizar tareas de manera efectiva. Veamos cómo la utilización del procesador se relaciona con la productividad: Eficiencia en la Utilización del Procesador: La CPU es uno de los recursos más valiosos de un sistema informático, y su uso eficiente es esencial para lograr un rendimiento óptimo. La eficiencia en la utilización del procesador implica asegurarse de que la CPU esté ocupada y ejecutando procesos útiles la mayor parte del tiempo. Una baja utilización de la CPU puede indicar subutilización de recursos, mientras que una alta utilización puede llevar a congestiones y tiempos de respuesta lentos. Estrategias para Maximizar la Utilización y Productividad: ●Planificación de Procesos: Utilizar algoritmos de planificación adecuados que asignen tiempo de CPU de manera justa y eficiente a los procesos. ●Prioridades Adecuadas: Asignar prioridades a los procesos de manera coherente con sus necesidades y la importancia de sus tareas. ●Detección de Cuellos de Botella: Monitorear el rendimiento del sistema para identificar cuellos de botella y utilizar recursos de manera más efectiva. ●Aprovechar la Multitarea: Fomentar el uso de aplicaciones y sistemas que aprovechen la multitarea, permitiendo que los usuarios realicen varias tareas de manera simultánea. ●Optimización de Cargas de Trabajo: Analizar las cargas de trabajo y ajustar la planificación de procesos según las demandas específicas. Relación con la Productividad: Respuesta Rápida: Una utilización eficiente de la CPU garantiza que los procesos y las aplicaciones respondan rápidamente a las solicitudes de los usuarios. Esto se traduce en una experiencia más fluida y agradable para los usuarios finales. Multitarea Eficiente: Una CPU bien administrada permite ejecutar múltiples procesos de manera concurrente. Esto es crucial para la multitarea, donde los usuarios pueden trabajar en varias tareas a la vez, cómo navegar por la web mientras escuchan música y editan documentos. Tiempo de Espera Reducido: Una adecuada planificación de procesos y una eficiente asignación de tiempo de CPU reducen los tiempos de espera de los procesos en las colas de espera. Esto es especialmente importante en sistemas interactivos, donde los usuarios no deben enfrentar retrasos significativos. Cómputo Paralelo: En sistemas con múltiples núcleos de CPU, la utilización eficiente de la CPU permite realizar cómputos paralelos, dónde tareas intensivas en CPU pueden ejecutarse simultáneamente en núcleos diferentes, acelerando el procesamiento. En la planificación de procesos, se utilizan tres métricas clave para evaluar y medir el rendimiento de los algoritmos y estrategias de planificación. Estas métricas son los tiempos de retorno, espera y respuesta. Cada una de estas métricas proporciona información valiosa sobre cómo los procesos son manejados por el sistema operativo y cómo afecta su ejecución. Veamos qué significa cada uno de estos tiempos: 1. Tiempo de Retorno (Turnaround Time): El tiempo de retorno se refiere al tiempo total que transcurre desde que un proceso se coloca en la cola de listos hasta que se completa su ejecución y se finaliza. Incluye el tiempo que el proceso pasa en la cola de espera, el tiempo de ejecución en la CPU y el tiempo que se necesita para completar las operaciones de entrada/salida (si las hay). El tiempo de retorno es una métrica importante para evaluar la eficiencia general de la planificación de procesos, ya que representa el tiempo que un proceso necesita para completarse desde su inicio hasta su finalización. 2. Tiempo de Espera (Waiting Time): El tiempo de espera se refiere al tiempo total que un proceso pasa en la cola de espera de la CPU antes de comenzar su ejecución. Incluye el tiempo que el proceso pasa en la cola de listos esperando su turno para ser ejecutado. El tiempo de espera es una medida de cuánto tiempo un proceso debe esperar antes de que se le asigne la CPU para su ejecución. Una planificación de procesos eficiente debe intentar minimizar el tiempo de espera, ya que tiempos de espera largos pueden llevar a una experiencia de usuario deficiente. 3. Tiempo de Respuesta (Response Time): El tiempo de respuesta se refiere al tiempo que transcurre desde que se envía una solicitud o se inicia un proceso hasta que se produce la primera respuesta o salida del sistema. En otras palabras, es el tiempo que un usuario debe esperar para obtener la primera respuesta de una aplicación. El tiempo de respuesta es especialmente importante en sistemas interactivos, como sistemas operativos de tiempo compartido, donde los usuarios esperan respuestas rápidas a sus acciones. Una baja latencia en el tiempo de respuesta es esencial para proporcionar una experiencia de usuario receptiva. Importancia de las Métricas de Tiempo: Estas métricas son esenciales para evaluar la eficiencia y el rendimiento de los algoritmos de planificación de procesos. Al comparar diferentes algoritmos, puedes analizar cómo afectan estos tiempos y decidir cuál es más adecuado para tu sistema y las necesidades de los usuarios. La optimización de estos tiempos puede mejorar la calidad del servicio y la satisfacción de los usuarios, ya que procesos más rápidos y tiempos de espera reducidos son deseables en cualquier sistema informático. Tipos de Planificación en Sistemas Operativos: En los sistemas operativos, la planificación de procesos se divide en tres niveles o tipos, cada uno de los cuales se encarga de diferentes aspectos de la administración de procesos. Estos tipos son: planificación a largo plazo, planificación a mediano plazo y planificación a corto plazo. 1. Planificación a Largo Plazo: La planificación a largo plazo, también conocida como planificación de admisión, se encarga de decidir cuántos nuevos procesos deben admitirse en el sistema. Esta etapa está involucrada en la creación de procesos y define cuáles de ellos se cargarán en la memoria principal desde el almacenamiento secundario. Objetivos: ● ● Controlar la cantidad de procesos en ejecución para evitar la sobrecarga del sistema. Mantener un equilibrio entre la capacidad del sistema y la carga de trabajo. Acciones: ● ● Decidir cuándo admitir nuevos procesos en el sistema. Asignar recursos iniciales a los procesos que ingresan. 2. Planificación a Mediano Plazo: La planificación a mediano plazo se encarga de administrar la memoria principal y la memoria secundaria. Esta planificación es responsable de decidir cuándo y qué procesos se mueven entre la memoria principal y la memoria secundaria para optimizar el uso de los recursos. Objetivos: ● ● Mantener un conjunto de procesos en memoria que permita un rendimiento óptimo. Evitar la saturación de la memoria principal. Acciones: ● ● Decidir cuándo mover procesos de la memoria principal a la secundaria (swap out). Decidir cuándo traer procesos de la memoria secundaria a la principal (swap in). 3. Planificación a Corto Plazo: La planificación a corto plazo, también conocida como planificación de CPU, se encarga de decidir qué proceso se ejecutará a continuación en la CPU. Esta es la forma más frecuente de planificación y determina la secuencia de ejecución de los procesos en la CPU. Objetivos: ● ● Maximizar la utilización de la CPU. Minimizar los tiempos de espera y respuesta de los procesos. Acciones: ● ● Decidir cuál de los procesos en estado listo se ejecutará a continuación. Realizar cambios de contexto para alternar entre procesos. Importancia de los Tipos de Planificación: Cada tipo de planificación cumple una función esencial en la administración de procesos y recursos en un sistema operativo. La planificación a largo plazo controla la cantidad de procesos admitidos, la planificación a mediano plazo gestiona la memoria y la planificación a corto plazo asegura un uso eficiente de la CPU. El equilibrio adecuado entre estos tipos de planificación es esencial para garantizar un rendimiento óptimo y una experiencia de usuario satisfactoria.