Aquí un resumen de algunos estados de los procesos en Linux, de forma alfabética y…
T5-ISO (1). Gestión de procesos
2 Gestión de Procesos
2.1 Conceptos básicos
Se denomina proceso a un programa que está en ejecución. Cada vez que un programa se convierte en un proceso, además de cargarse en memoria las instrucciones y los datos que necesita, se le asocia una estructura llamada bloque de control de proceso (PCB).
Este bloque de control de procesos contiene para cada proceso, entre otra, la siguiente información:
– Estado en el que se encuentra
– Identificador del proceso (PID)
– prioridad que le asigna automáticamente el S.O.
– Zona de memoria asignada
2.2 Estados de un proceso
(En este caso vamos a suponer un modelo con sólo 3 estados).
Una de las funciones de un S.O. es controlar en que estado se encuentran los diferentes procesos.
Denominamos hilo, hembra o thread a una copia de parte del bloque de control de proceso (PCB) de un proceso. Unidad de procesamiento más pequeña que puede ser manejada por el SO.
Los diferentes procesos o hilos pueden estar en tres estados distintos:
– Ejecución: un proceso está en ejecución cuando se encuentra utilizando en ese momento su tiempo de CPU
– Preparado (activo, en espera) un proceso está preparado cuando está esperando a que la CPU le asigne su tiempo de ejecución
– Bloqueado: un proceso está bloqueado por diferentes motivos:
* necesita utilizar un determinado dispositivo que está ocupado
* necesita que un usuario introduzca cierta información…
* etc.
2.3 Transición entre estados
A) De ejecución a bloqueado: se produce cuando el proceso que está en ejecución necesita algún dato, señal o recurso para continuar ejecutándose
B) De ejecución a preparado: se produce cuando al proceso que está en ejecución se le termina su tiempo de CPU
C) De preparado a ejecución: se produce cuando al proceso le llega su turno para ser ejecutado en la CPU
D) De bloqueado a preparado se produce cuando el proceso que estaba bloqueado ha recibido el dato, la señal o el recurso que taba esperando
A los cambios o transiciones entre estado se les conoce también como cambios de contexto.
2.4 Algoritmos de planificación de procesos
Cuando ponemos el nombre de un fichero ejecutable en el intérprete de comando (command) y pulsamos intro lo que hacemos es ejecutar un proceso del S.O. denominado cargador. Este cargador lo que hace es preparar el programa para ser lanzado en ejecución.
Si nos centramos en la planificación a corto plazo, denominamos planificador a la parte del S.O. encargada de elegir que proceso será el siguiente en ser atendido por la CPU, es decir, el encargado de elegir uno de los procesos que están en el estado de preparado y pasarlo a estado de ejecución.
El reparto del tiempo de ejecución en la CPU entre los distintos procesos se denomina multiprogramación.
El planificador para hacer este reparto utiliza los llamados algoritmos de la planificación
Un algoritmo es una secuencia finita de instrucciones o pasos que hay que seguir para resolver un problema determinado.
Los algoritmos de planificación se diseñan en base a unos criterios, entre otros están los siguientes:
– Equidad: los procesos se han tratado de la misma forma
– Minimizar el tiempo de respuesta (es el tiempo entre el momento en el que proceso está disponible hasta el momento que finaliza)
– Minimizar el tiempo de espera (es el tiempo entre el momento en el que proceso está disponible hasta el momento que empieza a ejecutarse)
– Maximizar el uso de la CPU:
Dependiendo del algoritmo que utilicemos vamos a conseguir cumplir determinados criterios pero no otros.
2.4.1 Tipos de Algoritmos
- FCFS (First Come First Served)
- SJF (Shortest Job First)
- SRTF (Shortest Remaining Time First)
- Round-Robin (q=número)