Administración de Procesos en Sistemas Operativos: Funciones y Estructura

Clasificado en Informática

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

Gestión de Procesos

Introducción

Un Sistema Operativo (SO) es un conjunto de programas que actúa como intermediario entre el usuario y el hardware del ordenador, gestionando los recursos del sistema y optimizando su uso.

Funciones del SO:

  • Controlar la ejecución de programas.
  • Administrar periféricos.
  • Gestionar permisos y usuarios.
  • Control de concurrencia.
  • Control de errores.
  • Administración de memoria.
  • Control de Seguridad.

En concordancia con las funciones del SO, su estructura se divide en 5 niveles:

Estructura del SO en 5 niveles:

  • Nivel 1: Gestión del Procesador.
    • Objetivo: Compartir la CPU entre procesos.
    • Funciones:
      • Arranque inicial.
      • Sincronización entre procesos.
      • Conmutación de la CPU.
      • Gestión de interrupciones.
  • Nivel 2: Gestión de Memoria.
    • Objetivo: Repartir la memoria entre procesos.
    • Funciones:
      • Asignación y liberación de memoria.
      • Control de violación de acceso.
  • Nivel 3: Gestión de Procesos.
    • Objetivo: Gestión de procesos de alto nivel.
    • Funciones:
      • Creación y destrucción de procesos.
      • Intercambio de mensajes entre procesos.
      • Detención y arranque de procesos.
  • Nivel 4: Gestión de Dispositivos.
    • Objetivo: Realizar la gestión de las E/S en función de los dispositivos existentes.
    • Funciones:
      • Creación de procesos de E/S.
      • Asignación y liberación de dispositivos de E/S.
      • Planificación de la E/S.
  • Nivel 5: Gestión de Información.
    • Objetivo: Gestionar el espacio de nombres lógicos, almacenamiento y protección de la información.
    • Funciones:
      • Creación y destrucción de archivos y directorios.
      • Apertura y cierre de archivos.
      • Lectura y escritura de archivos.
      • Protección de acceso.

Los niveles 1 y 2 dentro del SO dependen del hardware. Cada nivel se comunica con el inferior y superior coordinando sus funciones.

¿Qué es un Proceso?

Un proceso es la instancia de un programa en ejecución, la unidad de trabajo más pequeña, individualmente planificable a nivel de usuario, formada por código y datos, caracterizada por atributos y un estado dinámico. El entorno del proceso consiste en un conjunto de variables que se le pasan al proceso en el momento de su creación.

IMPORTANTE: Un proceso es un programa en ejecución. NO es lo mismo un programa o archivo que un proceso.

Los procesos son creados por los SO. Cuando un proceso crea a otro proceso se llama bifurcación. El generador se llama proceso padre y el otro proceso hijo. Cuando el proceso termina, el SO libera memoria y recursos. La terminación puede ser normal o dar algún error.

Un proceso consta al menos de un hilo.

Tipos de Procesos:

  • De usuarios: Programas que utiliza el usuario y que se encuentran conectados a una terminal, interactuando con él.
  • Demonios: Funcionan solos y no interactúan con el usuario. Creados por el demonio de arranque init (ppid=1) y se ejecutan en segundo plano. Pueden estar ubicados en cualquier parte del disco. Siempre van a tener asociado un script que se suele encontrar en /etc/init.d/. Con este script estos procesos pueden ser iniciados o parados.

Cada vez que un programa se convierte en un proceso:

  1. Se carga el código en la memoria principal.
  2. Se crea un segmento de datos que contiene las variables globales que el proceso manipula.
  3. Se crea una estructura de datos única para el proceso que va a servir al SO para identificar y controlar su correcta ejecución (BCP - Bloque de Control de Proceso).
  4. Se crea un segmento pila que contiene los parámetros que pasan a las funciones o procedimientos.

Estados de un Proceso:

  • Preparado.
  • En ejecución.
  • Detenido.
  • Bloqueado.

Información de los Procesos:

La UID del usuario indica quién ha creado el proceso, los privilegios y quién podrá mandarle señales.

Información para gestionar la memoria: almacenará la dirección inicial y final del conjunto de todas a las que puede acceder el proceso. Los periféricos de E/S asignados al proceso, la lista de archivos abiertos, el directorio actual y el directorio raíz. Guarda las señales recibidas por el proceso y no tratadas.

Información de la contabilidad: La hora de inicio y tiempo de ejecución del proceso, porcentaje de uso de CPU.

Estado de registros de la CPU:

  • Contador del programa: guarda la dirección de la siguiente instrucción a ejecutar.
  • Otros Registros: almacenan el valor de los diferentes registros de la CPU en un instante dado, si se abandona se puede retomar.

Entradas relacionadas: