ADMINISTRACIÓN DE RECURSOS
CAPÍTULO 1. ADMINISTRACIÓN DE LOS PROCESOS
Actividad inicial:
Haga una lista con los que Usted considera son procesos que maneja un sistema operativo. El cuadro debe tener dos columnas: El proceso y la descripción del proceso.
Guarde la lista para la actividad final.
1.1 Introducción a los procesos
Los sistemas operativos de la antigüedad sólo permitían ejecutar un programa a la vez. Este programa obtenía el control completo del sistema.
Los sistemas operativos actuales permiten la ejecución concurrente de múltiples programas cargados en memoria. Entonces nace el concepto de proceso.
Un proceso es un programa en ejecución. Es la unidad de trabajo de un S.O moderno.
Un S.O se puede ver como un conjunto de procesos. De esta manera decimos que los procesos del S.O. ejecutan código de sistema y los procesos de usuarios ejecutan código de usuario.
Todos los procesos se ejecutan en forma pseudo-concurrente, con la CPU conmutando entre ellos. De esta manera se logra que el sistema computacional sea más productivo. Veamos entonces cómo es la gestión de los procesos, por parte de un sistema operativo.
1.1.1 Concepto de proceso
Uno de los conceptos más importantes que gira entorno a un sistema operativo es el de proceso.
En términos simples, un proceso es un programa en ejecución junto con el entorno asociado (registros, variables, etc.). La ejecución de un proceso se realiza de una forma secuencial.
Los conceptos de job (tareas) y procesos son equivalentes y se pueden intercambiar. Un proceso tiene recursos como:
¾ Código ejecutable
25 Las figuras de este capítulo fueron tomadas del documento pdf: Sistemas Operativos. Profesor
Javier Cañas. Capítulos 4, 5 y 6.
¾ Datos
¾ Registros temporales ¾ Stack
¾ Program Counter
El corazón de un sistema operativo es el núcleo, un programa de control que reacciona ante cualquier interrupción de eventos externos y que da servicio a los procesos, creándolos, terminándolos y respondiendo a cualquier petición de servicio por parte de los mismos.
Un proceso es una actividad que se apoya en datos, recursos, un estado en cada momento y un programa.
También es importante considerar que si dos o más procesos forman parte de un mismo programa, se consideran secuencias separadas de ejecución y que pueden cooperar entre ellos.
1.1.2 Estados de un proceso
Es necesario resaltar que un proceso tiene una naturaleza dinámica, es decir es una entidad activa.
Cuando un proceso se ejecuta, cambia de estado.
Los estados de los procesos son internos del sistema operativo y transparentes para el usuario. Para éste, su proceso estará siempre en ejecución independientemente del estado en que se encuentre internamente en el sistema. Un proceso puede estar en alguno de los siguientes estados:
¾ Nuevo: se está creando.
¾ Corriendo (Run): se están ejecutando instrucciones. El proceso tiene el control del procesador. En un sistema monoprocesador este estado sólo lo puede tener un proceso. (Ejecución)
¾ Espera (Wait): el proceso espera que ocurra algún evento. Por ejemplo el término de una operación de E/S o la recepción de una señal. Son los procesos que no pueden ejecutarse de momento por necesitar algún recurso no disponible (generalmente recursos de E/S). (Bloqueado)
¾ Listo (Ready): El proceso está listo para ocupar la CPU. Aquellos procesos que están dispuestos para ser ejecutados, pero no están en ejecución por alguna causa (interrupción, haber entrado en cola estando otro proceso en ejecución, etc). (Preparado)
¾ Fin: el proceso terminó su ejecución
Gráfica 32. Estados de un proceso
1.1.3 Transiciones de estados
Todo proceso a lo largo de su existencia puede cambiar de estado varias veces. Cada uno de estos cambios se denomina transición de estado. Estas transiciones son las siguientes:
¾ Comienzo de la ejecución. Todo proceso comienza al ser dada la orden de ejecución del programa insertándose en la cola de preparados. El encolamiento dependerá de la política de gestión de dicha cola.
¾ Paso a estado de ejecución. Cuando el procesador se encuentra inactivo y en la cola de preparados exista algún proceso en espera de ser ejecutado, se pondrá en ejecución el primero de ellos.
¾ Paso a estado bloqueado. Un proceso que se encuentre en ejecución y que solicite una operación a un dispositivo externo, teniendo que esperar a que dicha operación finalice, será pasado de estado de ejecución a estado bloqueado insertándose su PCB en la cola correspondiente de bloqueados. A partir de este momento el procesador pone en ejecución el siguiente proceso, que será el primero de la cola de preparados.
¾ Paso a estado preparado. Este paso puede ser producido por alguna de las siguientes causas:
• Orden de ejecución de un programa, con lo cual el proceso pasa a la cola de preparados.
• Si un proceso está en estado bloqueado por causa de una operación de entrada/salida y ésta finaliza, pasará de la cola de bloqueados a la de preparados.
• Si un proceso está en ejecución y aparece una interrupción que fuerza al sistema operativo a ejecutar otro proceso, el primero pasará al estado preparado y su PCB a la cola de preparados.
• Activación. Un proceso suspendido previamente sin estar bloqueado pasará al estado preparado al ser activado nuevamente.
¾ Paso a estado suspendido bloqueado. Si un proceso está bloqueado y el sistema operativo recibe la orden de suspenderlo, su PCB entrará en la cola de procesos suspendidos bloqueados.
¾ Paso a estado suspendido preparado. Este paso se puede producir bajo tres circunstancias:
• Suspensión de un proceso preparado pasando éste de la cola de procesos preparados a la de suspendidos preparados.
• Suspensión de un proceso en ejecución, con lo cual el proceso pasa a la cola de suspendidos preparados.
• Desbloqueo de un proceso suspendido bloqueado por desaparecer la causa que impedía el ser activado de nuevo.