Gestión y Planificación de Procesos en Sistemas Operativos: Fundamentos y Ciclo de Vida

Procesos en Sistemas Operativos

En un entorno de multiprogramación, multitud de actividades compiten por acceder a recursos como la CPU, memoria y recursos de red. Estas actividades se denominan procesos, y cada una de ellas es una instancia en memoria del programa que se ejecuta.

¿Qué es un Proceso?

  • Un programa en ejecución. El mismo programa puede dar lugar a varios procesos.
  • Cada proceso tiene asignado un número determinado de espacio en memoria.
  • Para el Sistema Operativo (SO), un proceso es:
    • Un conjunto de estructuras de datos a gestionar.
    • La ejecución de estos datos marcará la funcionalidad del sistema.

Composición Interna de un Proceso

  • Un programa ejecutable.
  • Datos asociados que necesita el programa.
  • Contexto de ejecución o estado del proceso (BCP – Bloque de Control de Proceso)
    • Registro del procesador.
    • Prioridad del proceso y estado en el que se encuentra.

Tipos de Procesos

  • Proceso de usuario: Aquel creado por el sistema operativo para cumplir con el requisito de un usuario.
  • Proceso del sistema: Aquel que es propio del sistema operativo, cuya función es la de cumplimentar tareas básicas del mismo.

Hilos (Threads)

  • Entidad mínima de trabajo a planificar.
  • Memoria de trabajo común.
  • Cada hilo posee información independiente.
  • Ejemplo: interfaz gráfica.

Interpretación de Hilos

  • Nivel Usuario: Administración por la aplicación.
  • Nivel Kernel: Administración por el kernel.

El SO y los Hilos

  • Encargado de manejar la creación de procesos.
  • Asignación de hilos.
  • Contribuyen a la eficiencia de un proceso.

Ciclo de Vida de un Proceso

  • Instancia: Arranque del sistema, por petición del usuario, lanzado por otro proceso.
  • Ejecución: Una vez iniciado, realiza las instrucciones asociadas.
  • Terminación:
    • Normal: Termina las ejecuciones relacionadas.
    • Por error: Cuando intenta acceder a un dato que ya no existe en memoria.
    • Error fatal: Memoria inaccesible, excepción (acceso nulo, divisiones por cero).
    • Por otro proceso: Un proceso acapara recursos y no deja terminar.

Niveles de Planificación de Procesos

  • Nivel 0: Planificador
    • Nivel donde se ejecutan los algoritmos de planificación de procesos. Este nivel no es modificable en la administración de procesos.
  • Nivel 1: Sistemas Operativos
    • Nivel donde el Sistema Operativo en el cual corren los procesos es capaz de modificar algunas de sus propiedades. Un claro ejemplo es el tránsito de procesos entre memoria RAM y la partición SWAP.
  • Nivel 2: Ejecución
    • Nivel donde el usuario/administrador es capaz de modificar algunas de las propiedades del proceso. Por ejemplo, la propiedad de los procesos.

Gestión de Procesos

  • Controlar el acceso a recursos.
  • Controlar y mejorar la eficiencia del sistema.
  • Mejorar la interoperabilidad de diversos programas, etc.

Objetivos de la Gestión de Procesos

  • Cumplimiento de todas las peticiones de procesos.
  • Evitar el bloqueo de la CPU, etc.

Requisitos para la Gestión de Procesos

  • Intercalado: Aprovechamiento de la CPU y de la memoria.
  • Asignación de recursos: Mediante algoritmos establecidos.
  • Solicitudes de servicio: Atender a las peticiones de ejecución sin desbordarse.
  • Mecanismos de gestión de procesos: Creación/eliminación/sincronización de procesos por parte de los usuarios.

Interrupciones

  • No siempre la ejecución de un proceso se lleva a cabo de manera perfecta.
  • Esto se debe a la existencia de interrupciones:
    • Peticiones de ejecución de otros procesos, dispositivos.
    • Necesidad de abortar una ejecución, etc.
  • En el momento en el que esto ocurre, el procesador tiene dos opciones:
    • Continuar con la ejecución en curso.
    • Parar la ejecución y empezar una nueva, aceptando la solicitud nueva.
  • Señales que llegan al núcleo del sistema y son procesadas, pudiendo:
    • Cambiar de contexto.
    • Continuar con el contexto actual.
  • El núcleo del sistema solo contempla el cambio cuando llega una interrupción.
  • Las interrupciones pueden venir de:
    • Un proceso.
    • Un dispositivo.

Daemons (Disk And Execution Monitor)

  • Situados en /etc/init.d (shell script).
    • Start
    • Stop
    • Restart
    • Reload
  • Dependiendo del runlevel se ejecutarán determinados daemons.
  • Primer Daemon: init -> /etc/rcS.d
  • Niveles de ejecución: 0 – 6 (/etc/rcX.d).
  • K: Kill, S: Start, Num: XX (Prioridad de ejecución).
  • Para saber en qué nivel de ejecución se encuentra la máquina:
    • runlevel
  • Para pasar a un nivel de ejecución:
    • init X (X: nivel de ejecución)
    • /etc/init/rc-sysinit.conf

Planificación y Gestión de Recursos

  • La gestión de recursos disponibles y la planificación de ejecución es clave. Debe cumplir:
    • Equitatividad: Procesos de igual categoría (prioridad) tienen acceso equitativo a los recursos.
    • Respuesta diferencial: La asignación de recursos debe ser homogénea; se deben cumplir la totalidad de requisitos.
    • Eficiencia: Maximizar la productividad, mejorando los tiempos de respuesta y minimizando los tiempos de espera.
  • Antes de entrar en ejecución, los procesos deben ser gestionados:
    • Mejorando la eficacia y eficiencia.
    • Mejorando la disponibilidad de recursos.
  • Esta planificación empieza con la creación de estructuras de control:
    • Relacionadas entre sí.
    • Manejan información del sistema y los procesos.

Estructuras de Control del Sistema Operativo

  • Tablas de memoria, tablas de E/S, tablas de archivos y tablas de procesos.
    • Información de cada uno de los recursos con los que cuenta la CPU.
    • Una tabla por cada recurso que administra.

Tabla de Memoria

  • Asignación de memoria principal y secundaria a cada proceso.
  • Mecanismos de protección de la memoria.

Tabla de E/S

  • Administración de los dispositivos de entrada y salida de los que dispone el sistema.
  • Relación entre dispositivo y proceso.

Tabla de Archivos

  • Información sobre los archivos y sus propiedades.
  • Localización de los archivos en memoria.

Tabla de Procesos

  • Información sobre los procesos y sus propiedades.
  • Pila del sistema, Datos de usuario, BCP.

Bloque de Control de Procesos (BCP)

  • Toda la información disponible del proceso.
  • Cada vez que entra un proceso en ejecución, se crea un BCP con la información del proceso.
  • Información que contiene:
    • Identificación del proceso.
    • Información del estado del procesador.
    • Información de control del proceso.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.