Lección 3.

Procesos
n n n n n n n n n

Definición de procesos Analogía El bloque de control del proceso (PCB) Estados de los procesos Transiciones entre estados Operaciones sobre procesos Prioridades Tipos de procesos Excepciones

Procesos. Introducción.
n

n

Los procesos son la entidad básica en los S.O. actuales. Es el núcleo (kernel) de un S.O. el encargado de gestionar el procesador, la memoria, las E/S y el resto de los recursos; de esta forma atiende el funcionamiento y las peticiones del sistema.

Concepto de procesos.
n

n

Un proceso es un programa en ejecución junto con su entorno asociado (registros, variables, ...). El núcleo del S.O. se relaciona con los procesos, creandolos, terminandolos y respondiendo a cualquier petición de servicios de estos.

Concepto de proceso.
Registros (PC, SP)

Datos de la pila (Stack)

Datos de las variables

Instrucciones (Programa en ejecución)

ENTORNO

Analogía de un proceso.
n

n

Es importante distinguir entre un programa (conjunto de instrucciones) y un proceso (instrucciones ejecutandose). En la analogía se compara un ordenador con un taller mecánico donde hay averías (procesos) complejas y sencillas. Para reparar (ejecutar) las primeras hay que consultar un manual (programa) que puede interrumpirse si aparece otra avería (proceso), pero antes tenemos que guardar el estado en que abandonamos la primera y cambia de manual de reparaciones (programa) para afrontar el nuevo proceso se necesitaran otras herramientas (recursos) y las piezas de repuesto (datos). El mecánico es el procesador y la actividad de reparar sería el proceso (junto con los datos y los recursos).

Bloque de control del proceso (PCB)
n n

n

Un proceso se representa por un conjunto de datos denominado PCB. Estos datos permiten al S.O. localizar información sobre el proceso y mantenerlo registrado por si hay que suspender la ejecución temporalmente. La información contenida es: – Estado del proceso (CP,Reg. Int., Prio. y modo). – Estadísticas de t. y uso de recursos. – Ocupación de mem. interna y externa (swapping). – Recursos en uso. – Archivos en uso. – Privilegios.

Bloque de control del Sistema (SCB)
n n

El objetivo del SCB es similar al anterior y además enlazar los PCB´s. Para entender como se cambia entre procesos vamos a suponer un solo procesador y dos procesos A y B ambos en mem. principal: – En primer lugar se deja de ejecutar el proceso A (interrumpe) cediendo el control al núcleo del S.O., salvando su estado y se cambia de contexto pasando del modo usuario al supervisor. – Después el kernel estudia si el proceso B está preparado y cambia de modo supervisor a usuario, reponiendo su estado y ejecutandolo.

SCB y PCB.
SCB PCB PCB Excepciones Puntero

Fallos de la CPU

Número del proceso

Reloj y consola

Estado del proceso

PCB´s

Prioridad

Interrupciones

Contador del programa

Límites de memoria

Registros

Archivos abiertos

Cambio de proceso.
Prog. A modo usuario Ejecución Núcleo S.O. modo supervisor Prog. B modo usuario

Interrupción

Salva registros A

Comienza ejecución Carga registros B Ejecución

Salva registros B

Interrupción

Comienza ejecución

Carga registros A

Ejecución

Estados de los procesos.
n

n

n

Los estados en que pueden encontrarse los procesos los controla el S.O. y son transparentes al usuario. Los BCP´s de cada uno de los procesos se almacenan en colas y hay una por cada estado posible. Se dividen en:
– Activos – Inactivos

Estados activos
n

Son aquellos que compiten por el procesador o están en condiciones de hacerlo: – Ejecución: cuando un proceso tiene el control del procesador. – Preparado: aquellos procesos que están dispuestos para ser ejecutados. – Bloqueado: no pueden ejecutarse de momento por necesitar algún recurso no disponible

Estados inactivos
n

Son aquellos que no pueden competir por el procesador, pero pueden volver a hacerlo si se soluciona el problema que los ha dejado “en suspenso” (avería de un dispositivo E/S): – Suspendido bloqueado: proceso que ha sido suspendido y que además está a la espera de un evento para desbloquearse. – Suspendido preparado: proceso que ha sido simplemente suspendido.

Colas de estado
Trabajo 1 Cola de procesos preparados

Trabajo 2

Cola de trabajos en espera CPU Proceso en ejecución Completo

Cola de procesos bloqueados Trabajo 3

Gestor de trabajos

Gestor de procesos

Cambios de estado de un proceso
Suspende Proceso PREPARADO Reanuda Interrupción Comienza la ejecución Proceso SUSPENDIDO PREPARADO

Suspende

Terminación de la causa (E/S)

Proceso en EJECUCIÓN

Terminación de la causa (operación E/S)

Espera por recursos

Suspende

Proceso BLOQUEADO Reanuda

Proceso SUSPENDIDO BLOQUEADO

Estados ACTIVOS

Estados NO ACTIVOS

Transiciones entre estados I
n

Los procesos a lo largo de su existencia pueden cambiar varias veces de estado (transición entre estados). – Comienzo de la ejecución, (entrada a preparados) al ser dada la orden de arrancar el proceso (depende del tipo de gestión de la cola de trabajos). – Paso a estado de ejecución, el procesador está inactivo y entra un proceso desde preparado. – Paso a estado bloqueado, el proceso está en ejecución y solicita un recurso externo (se inserta su PCB en la cola). El procesador ejecuta el siguiente proceso de los preparados. – Paso a estado preparado:
• Recibe la orden de ejecución. • Si estando bloqueado, finaliza la operación de E/S • Si estaba en ejecución y llega una interrupción que lo desplaza a preparados, entrando otro proceso en la CPU. • Activación (reanudación), cuando el proceso estaba suspendido y pasa a preparado.

Transiciones entre estados II
– Paso a estado suspendido bloqueado, cuando un proceso estando bloqueado y se recibe la orden de suspenderlo. – Paso a estado suspendido preparado: • Cuando se suspende un proceso preparado. • Cuando se suspende un proceso en ejecución. • Cuando desaparece la causa de bloqueo de un proceso suspendido bloqueado.

Operaciones sobre procesos: Creación
n

Los S.O. tienen funciones para manipular los procesos:
– – – – – – – Creación Destrucción Suspensión Reanudación Cambio de prioridad Temporización de la ejecución Despertar un proceso

Programa

+

Datos

Ejecutar

Proceso

+

Argumentos

n

La creación de un proceso se produce con la orden de ejecución del programa y requiere de varios argumentos (nombre, prioridad, ). En ese instante el PCB será insertado en la cola de procesos preparados.

Operaciones sobre procesos II
n

Hay dos tipos de creación de un proceso:
– Jerárquica: cada proceso que se crea hereda el entorno de ejecución del proceso “padre”. Es el más habitual. – No jerárquica: al crearse el proceso se ejecuta de forma independiente del entorno de su creador.

n n

n n n

n

Destruir un proceso: se elimina el PCB del proceso. Suspender un proceso: operación de alta prioridad que detiene un proceso momentáneamente por mal funcionamiento. Reanudar un proceso previamente suspendido. Cambiar la prioridad de un proceso. Temporizar la ejecución de un proceso: obliga a ejecutar un proceso después de transcurrido un periodo de t. Fijo. Despertar un proceso: se pone en marcha un proceso que había sido bloqueado previamente (p.e. por temporización)

Prioridades
n n

A cada proceso se le asigna una prioridad en función de la urgencia y de los recursos que precise, lo cual determina la frecuencia de acceso al procesador. Las prioridades se clasifican: – Asignadas por el S.O.: dependiendo de los privilegios de su propietario y del modo de ejecución. – Asignadas por el propietario: antes de comenzar la ejecución (en sistemas T.R.).

n

O bien en:
– Estáticas: si no pueden ser modificadas durante la ejecución (no vale para T.R.) – Dinámicas: que puede ser modificada en función de los eventos que se produzcan.

Tipos de proceso I
n

Según el uso y la forma en que se haya construido el código ejecutable:
– Reutilizables: son aquellos en los que pueden cambiar los datos, pero necesitan comenzar desde el principio. – Reentrantes: sólo contienen código puro. Los datos se encuentran en registros internos y no pueden ser modificados (programas compartidos por varios usuarios).

Tipos de proceso II
n

Según la capacidad de acceso al procesador y a los recursos:
– Apropiativos: no permiten compartir recursos, hasta que hayan acabado. – No apropiativos: permiten a otros procesos el uso de un recurso que estén utilizando.

n

Según la forma de ejecución:
– Residentes: permanecen en memoria mientras se ejecutan. – Intercambiables: pueden ser llevados al disco mientras estén bloqueados

Excepciones.
n

n

Cuando se está ejecutando un proceso pueden aparecer fallos que el S.O. debe detectar e intentar corregir (fallos de hard ó de soft, datos incorrectos, etc.). Para eso los S.O. disponen del gestor de excepciones. Los fallos pueden ser: – Catastróficos: imposibilitan el funcionamiento y no son recuperables. – No recuperables: no afectan al sistema pero impiden que el proceso pueda continuar. – Recuperables: con ciertos ajustes el proceso puede continuar.

Modelos del gestor de excepciones
Gestión de excepción con recuperación y con terminación

n

Inicio del proceso

El tratamiento de una excepción puede seguir dos modelos:
– Tratamiento y continuación del proceso. – Tratamiento y finalización del proceso.

Programa
Excepción
Gestor de excepciones

Finalización normal del proceso

Finalización anormal del proceso