Sistemas Operativos: Optimización de Procesos y Gestión de Recursos Esenciales
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 6,76 KB
En el ámbito de la informática, lo que se ejecutan son procesos, que son trozos de programas en ejecución. Los procesos compiten entre sí por el uso de los recursos del sistema. Los programas, por su parte, son conjuntos de instrucciones y se espera de ellos que obtengan resultados específicos.
Todos los programas en ejecución necesitan recursos. El sistema operativo (SO) es el encargado fundamental de coordinar y controlar todos estos recursos a demanda de los procesos.
Clasificación de Sistemas Operativos
Los sistemas operativos se clasifican según el número de procesos que pueden gestionar simultáneamente:
- Monotarea: Permiten la ejecución de un único proceso a la vez.
- Multitarea: Permiten la ejecución concurrente de múltiples procesos.
Gestión y Sincronización de Procesos
Los procesos deben sincronizarse entre sí para completarse correctamente y asegurar que no se generen resultados inesperados o inconsistentes.
Fases de un Proceso
Un proceso atraviesa distintas fases a lo largo de su ciclo de vida:
- Nuevo: El proceso acaba de ser creado.
- En espera: El proceso está listo para ser ejecutado, esperando su turno en la CPU.
- Activo: El proceso está siendo ejecutado por la CPU.
- Bloqueado: El proceso está esperando la finalización de alguna operación de E/S o la disponibilidad de un recurso.
- Muerto: El proceso ha finalizado su ejecución.
Planificación de Recursos
El sistema operativo tiene la crucial tarea de planificar el uso de los recursos, para lo cual cuenta con un planificador. Este sistema determina qué programas se admiten en la cola de largo plazo (para su futura ejecución) y cuáles en la cola de corto plazo (para su ejecución inmediata).
Bloque de Control de Proceso (BCP)
Cuando se inicia un proceso, el sistema operativo crea un Bloque de Control de Proceso (BCP). Este BCP es una estructura de datos vital que incluye información esencial para la gestión del proceso:
- Identificador del proceso: Un número único para distinguirlo.
- Estado en el que se encuentra el proceso: Su fase actual (nuevo, en espera, activo, bloqueado, muerto).
- Prioridad del proceso: Determina su orden de ejecución frente a otros procesos.
- Recursos asignados: Información sobre los recursos que el proceso está utilizando o necesita.
El sistema operativo utiliza la información contenida en el BCP para gestionar eficientemente el sistema y los procesos.
Planificación de CPU
La planificación de CPU es la base de los sistemas multiprogramados. Su objetivo principal es alternar el uso de la CPU entre los diferentes procesos para maximizar la eficiencia y el rendimiento del sistema.
Criterios de Planificación de CPU
Los criterios fundamentales para una planificación efectiva de la CPU son:
- Maximizar la utilización de la CPU.
- Maximizar la productividad del sistema.
- Minimizar el tiempo de retorno (tiempo total desde la llegada hasta la finalización del proceso).
- Minimizar el tiempo de espera (tiempo que un proceso pasa en la cola de listos).
- Minimizar el tiempo de respuesta (tiempo desde la solicitud hasta la primera respuesta).
Multiprogramación
La multiprogramación significa que varios programas pueden residir en memoria al mismo tiempo y compartir la CPU. Un trabajo se ejecuta hasta que deba esperar por alguna razón (por ejemplo, una operación de E/S).
Beneficios de la Multiprogramación
La implementación de la multiprogramación ofrece ventajas significativas:
- Incremento de la utilización de la CPU.
- Mayor productividad general del sistema.
Algoritmos de Planificación
A la hora de seleccionar un algoritmo de planificación, debemos tener en cuenta las propiedades y métricas que optimiza:
- Utilización de la CPU.
- Productividad.
- Tiempo de retorno.
- Tiempo de espera.
- Tiempo de respuesta.
Es importante destacar que no existe una política de planificación óptima universal para todos los escenarios. La elección depende de los objetivos específicos del sistema.
Medidas de Rendimiento de Procesos
Para evaluar el rendimiento, se analiza el tiempo que un proceso necesita estar en ejecución para finalizar su trabajo. En función de estas variables, tendremos las siguientes medidas:
- Tiempo de servicio (T): El tiempo total que el proceso requiere de la CPU.
- Tiempo de espera (E): El tiempo que el proceso pasa esperando en las colas.
- El índice de servicio (I) se calcula como
I = t/T
, donde 't' es el tiempo real de ejecución. El valor máximo y óptimo de este índice es 1, indicando una utilización perfecta.
Políticas de Planificación
Las políticas de planificación se pueden dividir en varias categorías:
- Apropiativas: Un proceso puede ser interrumpido y la CPU asignada a otro.
- No apropiativas: Un proceso mantiene la CPU hasta que finaliza o se bloquea.
- De prioridades estáticas o dinámicas: Basadas en la asignación de prioridades fijas o cambiantes.
- Por quantum: Asignan un pequeño intervalo de tiempo (quantum) a cada proceso.
Gestión de Memoria
Para aprovechar el multiproceso, es fundamental repartir la memoria principal en trozos para asignar los procesos. Este reparto lo realiza el gestor de memoria. Su labor principal es asignar a los procesos aquellas partes de memoria principal que se encuentran desocupadas, a menudo mediante el traspaso de información desde la memoria secundaria (cuando la RAM no es lo suficientemente grande para acoger a la vez todos los procesos).
Objetivos de la Gestión de Memoria
Aunque el abaratamiento de los componentes hace que los equipos sean más potentes, las prestaciones que exigen los programas crecen aún más rápido. Los objetivos clave de la gestión de memoria incluyen:
- Optimizar el uso del espacio de memoria disponible.
- Proteger la memoria de un proceso de accesos no autorizados por otros.
- Permitir que los programas sean más grandes que la memoria física disponible (memoria virtual).
- Facilitar la compartición de memoria entre procesos cuando sea necesario.