Gestión de Procesos y Hebras en Sistemas Operativos

Enviado por Comunidad Xuletas y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 5,14 KB

1. Procesos y Flujos

Un proceso es un conjunto de instrucciones correspondientes a un programa, que son ejecutadas por el microprocesador (CPU).

A los procesos, dependiendo del sistema operativo (SO) utilizado, se les denomina flujos de control, tareas, hilos o procesos. Cuando se ejecuta más de un proceso, la CPU se encarga de asignar recursos a estos procesos en el orden adecuado y atendiendo a las prioridades.

También realiza tareas de sincronización entre los procesos. Cada vez que se ejecuta un proceso, las instrucciones se copian en la memoria RAM y al proceso se le asocia una estructura de datos, el BCP (Bloque de Control de Proceso), que contiene información sobre el proceso (estado actual, identificador de proceso, prioridad, ubicación en memoria RAM y recursos utilizados).

2. Hebras y Estados de los Procesos

Una hebra (o hilo) es un subproceso de un proceso que consume recursos propios pero que depende del proceso padre que lo ha creado.

Las hebras de un mismo proceso compartirán recursos, como memoria, archivos, recursos hardware, etc.

Un proceso clásico será aquel que solo posee una hebra (ej. si abrimos un documento de Word, tendremos abierta una hebra-subproceso de Word; si abro otro documento, tendré otra hebra).

Estados de los Procesos:

  • En ejecución: El microprocesador está ejecutando instrucciones del programa y tiene concedido el tiempo de uso de la CPU en un instante concreto.
  • Preparado: Está esperando su turno para poder utilizar su intervalo de tiempo asignado.
  • Bloqueado: El proceso está retenido debido a causas múltiples (otro proceso con mayor prioridad, por espera de una operación de E/S, como la introducción de un número, etc.).

Cada proceso tiene un identificador asignado por el SO (PID) para identificarlo, lanzarlo, detenerlo, pausarlo, reanudarlo, etc.

Un programa se convierte en proceso cuando se ejecuta y reside en memoria RAM.

3. Transiciones entre Estados de Procesos y Planificación

Un proceso puede transitar entre diferentes estados. Un diagrama simplificado de transiciones es:

Ejecución → Bloqueado → Preparado → Ejecución

También son posibles las transiciones:

  • Preparado ↔ Ejecución
  • Desde cualquier estado a un estado final (no mostrado en el diagrama simplificado).

En un sistema multiproceso o multitarea, el cambio de estado de un proceso a otro se denomina cambio de contexto. Este puede ser parcial si es entre hebras del mismo proceso y completo si es entre hebras de procesos diferentes.

Las propiedades (como la prioridad) son asignadas por el SO o por el administrador y se asignan por proceso.

Existen algoritmos de planificación que deciden qué proceso se va a ejecutar en cada momento. Los algoritmos de planificación deben cumplir ciertos criterios:

  • Imparcialidad: No beneficiar ni perjudicar a ningún proceso.
  • Eficiencia: Mantener la CPU ocupada el mayor tiempo posible.
  • Tiempo de respuesta: Minimizar el tiempo que tarda el sistema en empezar a responder a una petición.
  • Rendimiento (Throughput): Maximizar el número de procesos completados por unidad de tiempo.

Cuando se ejecutan varios procesos a la vez, es necesario utilizar la técnica de tiempo compartido, dividiendo el tiempo de ejecución de la CPU en pequeños intervalos de tiempo llamados quantum, y asignando cada uno de estos quantum a cada proceso.

4. Métricas de Rendimiento en Planificación de Procesos

Para evaluar la eficiencia de los algoritmos de planificación, se utilizan diversas métricas:

  • Tiempo de respuesta: Tiempo que transcurre desde que se realiza una petición hasta que el sistema comienza a dar respuesta. Depende de la CPU, el número de procesos, la memoria RAM y las operaciones de E/S.
  • Tiempo de servicio: Tiempo total que un proceso necesita para completarse. Incluye el tiempo de carga en memoria RAM, el tiempo de espera en estado 'Preparado', el tiempo en ejecución y el tiempo en operaciones de E/S.
  • Tiempo de ejecución: Tiempo que el proceso pasa efectivamente utilizando la CPU. Se calcula como Tiempo de Servicio - Tiempo de Espera.

Fórmulas relacionadas:

  • Tiempo de Servicio (T) = Tiempo final (tf) - Tiempo inicial (ti) (Nota: tf y ti suelen referirse al tiempo de llegada y finalización en el sistema)
  • Tiempo de Ejecución (t) = T - E (donde E es el Tiempo de Espera)
  • Tiempo de Espera (E) = T - t

Otra métrica importante es el Índice de servicio:

  • Indica la eficiencia del proceso. Es un valor entre 0 y 1 (cercano a 1 indica alta eficiencia, cercano a 0 baja eficiencia).
  • Fórmula: I = t / T, donde I ∈ [0, 1]