Funcionamiento de los Procesos y el Bloque de Control del Sistema Operativo
Clasificado en Informática
Escrito el en
español con un tamaño de 2,7 KB
Interrupción de la Ejecución de un Proceso
Al ejecutarse un proceso en un sistema de multiprogramación, este tiene la oportunidad de realizar un conjunto indeterminado de instrucciones durante un tiempo limitado. Una vez que ese tiempo se ha cumplido, el sistema operativo debe decidir qué proceso debe continuar su ejecución; esto lo hace teniendo en cuenta una lista de procesos y unas listas por prioridades de procesos, donde algunos procesos tienen más tiempo de ejecución que otros y poseen una prioridad mayor que les permite "avanzar más rápido en la fila". Usualmente, estos procesos con prioridades más altas forman parte del propio sistema o son los servicios.
Sistema Operativo en Proceso
Un proceso en ejecución tiene, además de sus instrucciones, características propias que lo describen y que definen su estado mientras este se ejecuta. Estas características son:
- El estado del proceso: el valor de cada uno de los registros del procesador y las banderas establecidas.
- El conjunto de instrucciones.
- La pila (es decir, el Stack).
- Memoria de trabajo: espacio de memoria reservado en el heap (es decir, el montón de memoria) y sus contenidos.
Sistema Operativo: PCB (Process Control Block)
- Identificación: Un identificador único asociado al proceso para distinguirlo del resto de procesos. Puede también almacenar el identificador del proceso padre que lo creó y el identificador del usuario, dependiendo del sistema.
- Estado: Indica si el proceso está actualmente en ejecución o en otro estado, como listo, suspendido, parado o zombi. Los estados varían según el tipo de sistema operativo.
- Información de planificación: Nivel de prioridad relativo al resto de procesos y el evento por el que espera el proceso mientras está bloqueado.
- Descripción de los segmentos de memoria asignados al proceso: Espacio de direcciones o límites de memoria asignados al proceso.
- Punteros a memoria: Incluye los punteros al código del programa y los datos asociados a dicho proceso; además, incluye cualquier bloque de memoria compartido con otros procesos, e incluso si el proceso utiliza memoria virtual. También se almacenan los punteros a la pila y al montículo (heap) del proceso.