La gestión de procesos es una de las funciones más críticas de un sistema operativo. Un proceso es un programa en ejecución, y el sistema operativo debe gestionar estos procesos para asegurar que los recursos del sistema se utilicen de manera eficiente y que los procesos se ejecuten sin conflictos.

Conceptos Clave

¿Qué es un Proceso?

Un proceso es una instancia de un programa en ejecución. Incluye:

  • Código del programa: Las instrucciones que se están ejecutando.
  • Contador de programa: La dirección de la siguiente instrucción a ejecutar.
  • Registros de CPU: Los valores actuales de los registros del procesador.
  • Pila: Contiene datos temporales como parámetros de funciones, direcciones de retorno y variables locales.
  • Segmento de datos: Contiene variables globales.
  • Heap: Memoria dinámica asignada durante la ejecución del proceso.

Estados de un Proceso

Un proceso puede estar en uno de los siguientes estados:

  • Nuevo: El proceso está siendo creado.
  • Listo: El proceso está esperando para ser asignado a un procesador.
  • En ejecución: Las instrucciones del proceso están siendo ejecutadas.
  • Bloqueado: El proceso está esperando algún evento (como la finalización de una operación de E/S).
  • Terminado: El proceso ha terminado su ejecución.

Transiciones de Estado

Las transiciones entre estos estados se pueden representar en un diagrama de estado, como se muestra a continuación:

Estado Actual Evento Nuevo Estado
Nuevo Admisión Listo
Listo Asignación de CPU En ejecución
En ejecución Interrupción Listo
En ejecución Solicitud de E/S Bloqueado
Bloqueado Finalización de E/S Listo
En ejecución Finalización Terminado

Bloque de Control de Proceso (PCB)

El PCB es una estructura de datos que contiene toda la información sobre un proceso específico. Incluye:

  • Estado del proceso
  • Contador de programa
  • Registros de CPU
  • Información de planificación
  • Información de gestión de memoria
  • Información de contabilidad
  • Información de E/S

Planificación de Procesos

Objetivos de la Planificación

  • Maximizar el uso de la CPU
  • Maximizar el rendimiento del sistema
  • Minimizar el tiempo de respuesta
  • Minimizar el tiempo de espera
  • Minimizar el tiempo de vuelta

Algoritmos de Planificación

  1. First-Come, First-Served (FCFS): Los procesos se atienden en el orden en que llegan.
  2. Shortest Job Next (SJN): El proceso con el menor tiempo de ejecución se atiende primero.
  3. Round Robin (RR): Cada proceso recibe una cantidad fija de tiempo de CPU (quantum).
  4. Priority Scheduling: Los procesos se atienden según su prioridad.

Ejemplo de Algoritmo Round Robin

Supongamos que tenemos tres procesos con los siguientes tiempos de ejecución y un quantum de 4 unidades de tiempo:

Proceso Tiempo de Ejecución
P1 10
P2 5
P3 8

La secuencia de ejecución sería:

  1. P1 se ejecuta durante 4 unidades de tiempo (restan 6).
  2. P2 se ejecuta durante 4 unidades de tiempo (resta 1).
  3. P3 se ejecuta durante 4 unidades de tiempo (restan 4).
  4. P1 se ejecuta durante 4 unidades de tiempo (restan 2).
  5. P2 se ejecuta durante 1 unidad de tiempo (completa).
  6. P3 se ejecuta durante 4 unidades de tiempo (completa).
  7. P1 se ejecuta durante 2 unidades de tiempo (completa).

Ejercicios Prácticos

Ejercicio 1: Diagrama de Estado de Procesos

Dibuja un diagrama de estado para un proceso que pasa por los siguientes estados: Nuevo, Listo, En ejecución, Bloqueado, Terminado. Indica las transiciones posibles entre estos estados.

Ejercicio 2: Algoritmo de Planificación FCFS

Dado los siguientes procesos con sus tiempos de llegada y tiempos de ejecución, calcula el tiempo de espera y el tiempo de vuelta para cada proceso usando el algoritmo FCFS.

Proceso Tiempo de Llegada Tiempo de Ejecución
P1 0 5
P2 2 3
P3 4 2

Solución:

  1. P1: Tiempo de espera = 0, Tiempo de vuelta = 5
  2. P2: Tiempo de espera = 3, Tiempo de vuelta = 6
  3. P3: Tiempo de espera = 4, Tiempo de vuelta = 6

Ejercicio 3: Algoritmo de Planificación Round Robin

Dado los siguientes procesos con sus tiempos de ejecución y un quantum de 3 unidades de tiempo, determina la secuencia de ejecución y el tiempo de vuelta para cada proceso.

Proceso Tiempo de Ejecución
P1 6
P2 8
P3 7

Solución:

  1. Secuencia de ejecución: P1, P2, P3, P1, P2, P3, P2
  2. Tiempo de vuelta:
    • P1: 9
    • P2: 18
    • P3: 16

Conclusión

La gestión de procesos es esencial para el funcionamiento eficiente de un sistema operativo. Comprender los estados de un proceso, el PCB y los algoritmos de planificación permite optimizar el uso de recursos y mejorar el rendimiento del sistema. En el próximo módulo, exploraremos la gestión de memoria, que es otro componente crucial en la administración de recursos del sistema operativo.

© Copyright 2024. Todos los derechos reservados