Gestión de procesos en sistemas operativos: conceptos, bloque de control y planificación


Gestión de procesos: Conceptos generales

Proceso

Proceso: se puede definir como un programa en ejecución. Presenta las siguientes características:

  1. Para iniciar su ejecución debe cargarse completamente en memoria y tener asignados todos los recursos necesarios.
  2. Este proceso debe estar protegido del resto de los procesos; es decir, ningún proceso podrá escribir en la zona de memoria que pertenezca a otro proceso.
  3. Puede pertenecer al usuario o ser propio del sistema operativo. Si pertenece al usuario se ejecutará en modo usuario; si pertenece al sistema operativo, se ejecutará en modo núcleo o modo privilegiado del procesador.
  4. Cada proceso tendrá una estructura de datos llamada bloque de control de proceso, donde se almacena la información acerca del proceso.
  5. Cada proceso puede comunicarse, sincronizarse y colaborar con los demás. Estas operaciones se realizan mediante mecanismos de comunicación, sincronización y colaboración.

Bloque de Control de Proceso (BCP)

El Bloque de Control de Proceso contiene la información necesaria para la gestión y control del proceso. Entre los elementos que contiene se encuentran:

Elementos principales

  • Estado actual del proceso: un proceso puede estar en ejecución, detenido o bloqueado. El estado de bloqueado es especialmente conflictivo, ya que los bloqueos pueden provocar que otros procesos también dejen de funcionar, especialmente si el bloqueo es provocado por un componente hardware y varios procesos utilizan el mismo componente.
  • Identificador del proceso: a cada proceso, dependiendo del sistema operativo, se le asigna un PID (código identificador de proceso).
  • Prioridad del proceso: la prioridad de cada proceso se asigna de forma automática por el sistema operativo. La prioridad puede ser modificada por usuarios con los privilegios adecuados.
  • Ubicación de memoria: teniendo en cuenta la técnica utilizada para ubicar los programas en memoria y el tipo de programa, el sistema operativo ubicará cada proceso en una zona independiente de memoria.
  • Recursos utilizados: cada proceso requiere determinados recursos hardware y algunos recursos software para poder ejecutarse. Estos recursos se pondrán a disposición del proceso en el momento de su ejecución.

Enumeración de puntos del Bloque de Control de Proceso

(Contenido del Bloque de Control de Procesos)

  1. Identificador del proceso.
  2. Prioridad.
  3. Estado del proceso (ejecución, detenido o bloqueado).
  4. Estado hardware.
  5. Información de planificación y estadísticas de uso.
  6. Información de gestión de memoria.
  7. Estado de las entradas/salidas (dispositivos asignados, operaciones pendientes, etc.).
  8. Información de gestión de archivos (archivos abiertos, permisos, etc.).
  9. Información de mantenimiento.

Hebra y multihebra (conceptos)

Hebra o subproceso es un punto de ejecución de un proceso. Un proceso siempre tendrá como mínimo una hebra en la que se ejecuta el propio programa. Las hebras representan un método software que permite mejorar el rendimiento y la eficacia de los sistemas operativos, reduciendo la sobrecarga por el cambio de contexto entre procesos.

Las hebras asumen el papel de unidad de planificación dentro de un proceso: el proceso actúa como propietario de los recursos para una serie de hebras. Todos los recursos, excepto la CPU, son gestionados por el proceso. El proceso es el propietario de la memoria que necesita, del hardware, de los ficheros, etc.

Los tiempos de CPU se gestionan y asignan a los diferentes hilos de un proceso; es decir, cuando uno se está ejecutando, el resto de las hebras estarán en espera o bloqueadas. La gestión de recursos es responsabilidad del proceso, no de las hebras. De esta forma, las hebras de un mismo proceso comparten el mismo espacio de memoria, lo que facilita la comunicación entre ellas.

Estados, prioridades y planificador de procesos

Los estados principales de un proceso son tres:

  1. Estado en ejecución: el procesador está ejecutando instrucciones de ese proceso en un instante determinado.
  2. Estado preparado / en espera / activo: el proceso está preparado para ejecutarse; es decir, espera su turno para utilizar su intervalo de tiempo de la CPU.
  3. Estado bloqueado: el proceso está retenido o bloqueado por alguna razón. Puede deberse a que dos procesos utilicen el mismo fichero de datos, que necesiten la misma unidad lectora de CD, memoria compartida u otro recurso limitado.

Algoritmos de planificación

La elección de los algoritmos de planificación se realiza teniendo en cuenta sus características frente a los criterios de diseño seleccionados.

Algoritmo de operación por rondas (Round Robin)

La asignación de tiempos de ejecución a los diferentes procesos es la misma y se realiza de forma secuencial; a cada proceso se le asigna el mismo quantum de tiempo y la selección se realiza mediante una cola FIFO (primero en entrar, primero en salir). Cuando llega un proceso nuevo y hay otro en ejecución, los ciclos de CPU se distribuyen entre ellos, ejecutándose primero el proceso activo y, a continuación, el recién llegado recibirá su quantum.

Algoritmo FCFS (First-Come, First-Served)

FCFS: primero en entrar, primero en ser servido. Los ciclos de CPU de cada proceso se asignan en función de una cola FIFO. En este caso, a cada proceso se le asignan tiempos de CPU hasta que se complete completamente; a continuación se ejecuta el siguiente proceso de la cola y así sucesivamente hasta finalizar la ejecución del último proceso.

STR (Shortest Time Remaining)

STR (siglas: el resto de tiempo más corto) permite asignar tiempo de ejecución de forma prioritaria a procesos muy cortos para ejecutarlos en el menor tiempo posible. Si se está ejecutando un proceso y llega otro, independientemente de la duración del nuevo, el proceso que está en ejecución finalizará lo que esté haciendo, y una vez finalizado, el siguiente proceso a consumir ciclos de CPU será el más corto de los que haya en la cola de espera.

SRTF (Shortest Remaining Time First)

SRTF (primero el del tiempo restante más breve) es una variante de STR. En este caso, la asignación de ciclos de la CPU se hace en función del proceso al que le queden menos ciclos para terminar. Cuando llega un proceso nuevo se estiman los ciclos que le quedan tanto al proceso en ejecución como al recién llegado; de los procesos que haya en la cola, se terminará primero aquel al que le queden menos ciclos, y así sucesivamente hasta finalizar todos los procesos planificados.

Dejar un Comentario

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