Ordenadores y Portátiles
Control de bloqueo
Control de bloqueo

El proceso de control de bloqueo

Toda la información necesaria para mantener un seguimiento de un proceso cuando cambia de uno a otro, se mantiene en un paquete de datos llamado proceso de control de bloqueo. El control de bloqueo normalmente contiene lo siguiente:

  • Un número de identificación que identifica el proceso.
  • Punteros que localizan los programas y sus datos donde ocurrió el último proceso.
  • El estado de las varias etiquetas y conmutaciones.
  • Punteros a los picos altos y bajos de memoria requeridas por el proceso.
  • Una lista de ficheros abiertos por el proceso.
  • El estatus de todos los dispositivos de entrada y salida (I/O) necesarios por el proceso.

Cada proceso tiene un estatus asociado a el. Muchos procesos consumen ninguna CPU hasta que reciben algún tipo de entrada. Por ejemplo, un proceso puede estar esperando que el usuario teclee algún comando que haga algo. Mientras que está esperando esta orden, no usa la CPU en absoluto. Mientras está esperando, está en un modo “suspendido”. Cuando le llega la orden del comando lanzado por el usuario, El sistema operativo cambia se estado. Cuando este estado cambia de pendiente a activo, la información en el proceso de control de bloqueo debe ser usado, como los datos de cualquier otro programa, para direccionar la ejecución de esa porción del conmutador de tareas del sistema operativo.


El proceso de cambio ocurre sin el interfaz de usuario directo, y cada proceso recibe suficientes ciclos de CPU para realizar sus tareas en una cantidad de tiempo razonable. Los problemas pueden surgir si el usuario trata de tener demasiados procesos funcionando al mismo tiempo. El propio sistema operativo requiere algunos ciclos de la CPU para poder salvar y conmutar todos los registros, colas y pilas de memoria de los procesos de aplicación.

Si suficientes procesos son empezados, y si el sistema operativo no ha sido cuidadosamente diseñado, el sistema puede empezar a usar la mayoría de los ciclos disponibles de la CPU para cambiar entre procesos en lugar de hacerlos funcionar. Cuando esto pasa, usualmente requiere algún tipo de intervención directa del usuario para parar procesos y poner orden de nuevo en el sistema operativo. Una manera en que los diseñadores de sistemas operativos evitan la posibilidad de que ocurra esto, es reducir la necesidad de nuevos procesos para realizar varias tareas. Algunos OS permiten ciertas funciones que pueden gestionar un trabajo intensivo de la CPU en un proceso normal, pero normalmente no maneja los muchos tipos de I/O. Tampoco establece estructuras requiriendo el extensivo proceso de control de bloqueo de un proceso normal.

Por ahora, lo que hemos comentado se refería a una sola CPU. Con un sistema con una o más CPUs, el sistema operativo tiene que dividir la carga entra las CPUs, intentando balancear las demandas de los procesos requeridos con los ciclos disponibles en las diferentes CPUs. Los sistemas operativos asimétricos usan una CPU para sus propias necesidades y dividen los procesos de aplicación entre las CPUs que quedan. Los sistemas operativos simétricos se dividen a si mismos entre varias CPUs, balanceando la demanda y la disponibilidad de la CPU, incluso cuando el OS es todo lo que está funcionando.

Si el sistema operativo es el único software con necesidades de ejecución, la CPU no es el único recurso que debe ser programado. La gestión de memoria es el siguiente paso crucial para hacer que todos los procesos funcionen correctamente. Lo veremos en la siguiente parte del artículo, el cual puedes ver aquí.

Leer mas artículos relacionados