Sistema operativo: programación de procesos
Definición
La programación de procesos es la actividad del administrador de procesos que maneja la eliminación del proceso en ejecución de la CPU y la selección de otro proceso sobre la base de una estrategia particular.
La programación de procesos es una parte esencial de los sistemas operativos de multiprogramación. Dichos sistemas operativos permiten cargar más de un proceso en la memoria ejecutable a la vez y el proceso cargado comparte la CPU utilizando multiplexación de tiempo.
Colas de programación de procesos
El sistema operativo mantiene todos los PCB en colas de programación de procesos. El SO mantiene una cola separada para cada uno de los estados del proceso y los PCB de todos los procesos en el mismo estado de ejecución se colocan en la misma cola. Cuando se cambia el estado de un proceso, su PCB se desvincula de su cola actual y se mueve a su nueva cola de estado.
El sistema operativo mantiene las siguientes colas de programación de procesos importantes:
Job queue - Esta cola mantiene todos los procesos en el sistema.
Ready queue- Esta cola mantiene un conjunto de todos los procesos que residen en la memoria principal, listos y esperando para ejecutarse. Siempre se coloca un nuevo proceso en esta cola.
Device queues - Los procesos que están bloqueados debido a la falta de disponibilidad de un dispositivo de E / S constituyen esta cola.
El sistema operativo puede utilizar diferentes políticas para gestionar cada cola (FIFO, Round Robin, Prioridad, etc.). El programador del sistema operativo determina cómo mover los procesos entre las colas listas y en ejecución que solo pueden tener una entrada por núcleo de procesador en el sistema; en el diagrama anterior, se ha fusionado con la CPU.
Modelo de proceso de dos estados
El modelo de proceso de dos estados se refiere a los estados de ejecución y no ejecución que se describen a continuación:
SN | Estado y descripción |
---|---|
1 | Running Cuando se crea un nuevo proceso, ingresa al sistema como en el estado de ejecución. |
2 | Not Running Los procesos que no se están ejecutando se mantienen en cola, esperando su turno para ejecutarse. Cada entrada en la cola es un puntero a un proceso en particular. La cola se implementa mediante el uso de una lista vinculada. El uso del despachador es el siguiente. Cuando se interrumpe un proceso, ese proceso se transfiere a la cola de espera. Si el proceso se ha completado o se ha abortado, se descarta. En cualquier caso, el despachador luego selecciona un proceso de la cola para ejecutarlo. |
Programadores
Los programadores son un software de sistema especial que maneja la programación de procesos de varias maneras. Su tarea principal es seleccionar los trabajos que se enviarán al sistema y decidir qué proceso ejecutar. Los programadores son de tres tipos:
- Programador a largo plazo
- Programador a corto plazo
- Programador de mediano plazo
Programador a largo plazo
También se llama job scheduler. Un planificador a largo plazo determina qué programas se admiten en el sistema para su procesamiento. Selecciona procesos de la cola y los carga en la memoria para su ejecución. Procesar cargas en la memoria para la programación de la CPU.
El objetivo principal del programador de trabajos es proporcionar una combinación equilibrada de trabajos, como enlazados a E / S y enlazados al procesador. También controla el grado de multiprogramación. Si el grado de multiprogramación es estable, entonces la tasa promedio de creación de procesos debe ser igual a la tasa de salida promedio de los procesos que abandonan el sistema.
En algunos sistemas, el planificador a largo plazo puede no estar disponible o ser mínimo. Los sistemas operativos de tiempo compartido no tienen un planificador a largo plazo. Cuando un proceso cambia el estado de nuevo a listo, se usa un programador a largo plazo.
Programador a corto plazo
También se llama como CPU scheduler. Su principal objetivo es aumentar el rendimiento del sistema de acuerdo con el conjunto de criterios elegido. Es el cambio del estado listo al estado de ejecución del proceso. El programador de CPU selecciona un proceso entre los procesos que están listos para ejecutarse y asigna CPU a uno de ellos.
Los programadores a corto plazo, también conocidos como despachadores, toman la decisión de qué proceso ejecutar a continuación. Los programadores a corto plazo son más rápidos que los programadores a largo plazo.
Programador de mediano plazo
La programación a mediano plazo es parte de swapping. Elimina los procesos de la memoria. Reduce el grado de multiprogramación. El planificador de mediano plazo está a cargo de manejar los procesos de intercambio.
Un proceso en ejecución puede suspenderse si realiza una solicitud de E / S. Un proceso suspendido no puede avanzar hacia su finalización. En esta condición, para eliminar el proceso de la memoria y hacer espacio para otros procesos, el proceso suspendido se traslada al almacenamiento secundario. Este proceso se llamaswapping, y se dice que el proceso se cambia o se implementa. Puede ser necesario intercambiar para mejorar la mezcla del proceso.
Comparación entre Scheduler
SN | Programador a largo plazo | Programador a corto plazo | Programador de mediano plazo |
---|---|---|---|
1 | Es un programador de trabajos | Es un programador de CPU | Es un programador de intercambio de procesos. |
2 | La velocidad es menor que la del programador a corto plazo | La velocidad es la más rápida entre otros dos | La velocidad está entre el programador a corto y largo plazo. |
3 | Controla el grado de multiprogramación | Proporciona un menor control sobre el grado de multiprogramación. | Reduce el grado de multiprogramación. |
4 | Está casi ausente o es mínimo en el sistema de tiempo compartido. | También es mínimo en el sistema de tiempo compartido. | Es parte de los sistemas de tiempo compartido. |
5 | Selecciona procesos del grupo y los carga en la memoria para su ejecución. | Selecciona aquellos procesos que están listos para ejecutarse | Puede reintroducir el proceso en la memoria y la ejecución puede continuar. |
Cambio de contexto
Un cambio de contexto es el mecanismo para almacenar y restaurar el estado o el contexto de una CPU en el bloque de control de procesos para que la ejecución de un proceso pueda reanudarse desde el mismo punto en un momento posterior. Con esta técnica, un conmutador de contexto permite que varios procesos compartan una sola CPU. El cambio de contexto es una parte esencial de las características de un sistema operativo multitarea.
Cuando el programador cambia la CPU de ejecutar un proceso a ejecutar otro, el estado del proceso en ejecución actual se almacena en el bloque de control del proceso. Después de esto, el estado para que el proceso se ejecute a continuación se carga desde su propia PCB y se usa para configurar la PC, los registros, etc. En ese momento, el segundo proceso puede comenzar a ejecutarse.
Los cambios de contexto son computacionalmente intensivos ya que el registro y el estado de la memoria deben guardarse y restaurarse. Para evitar la cantidad de tiempo de cambio de contexto, algunos sistemas de hardware emplean dos o más conjuntos de registros de procesador. Cuando se cambia el proceso, la siguiente información se almacena para su uso posterior.
- Contador de programa
- Información de programación
- Valor de registro base y límite
- Registro utilizado actualmente
- Estado cambiado
- Información del estado de E / S
- Informacion de cuenta