Está en la página 1de 66

TEMA 2.

Procesos

Concepto de proceso
Qu entendemos por proceso? Estados de un proceso Bloque de Control de Proceso (PCB) Cambio de contexto

Planificacin de procesos
Tipos de planificadores Despachador Polticas de planificacin de la CPU

Operaciones sobre procesos Hebras (Threads)


Tema 2: Procesos y hebras

TEMA 2. Objetivos
1. 2. 3. 4. 5.

6. 7. 8.

Conocer y diferenciar los conceptos de proceso y hebra. Conocer los estados bsicos de un proceso/hebra, causas y efectos que produce la transicin entre dichos estados. Conocer el concepto de cambio de contexto y sus costes. Contenido y utilidad de las estructuras de datos que el SO utiliza para la gestin de los procesos/hebras. Conocer el concepto de planificacin, y los distintos planificadores de CPU, as como algunos de los algoritmos de planificacin de CPU. Comparar los distintos algoritmos de planificacin de CPU. Conocer y compara las distintas implementaciones de las hebras Conocer las operaciones bsicas sobre procesos/hebras que pueden realizar los usuarios
Tema 2: Procesos y hebras

Qu entendemos por proceso?

1. Concepto de proceso

Un proceso es una instancia de un programa en ejecucin: Pueden existir varios procesos ejecutando un mismo programa, pero cada uno es un proceso distinto, con su propia representacin. Un proceso consta al menos de: el cdigo del programa. los datos del programa. una pila de ejecucin. el PC indicando la prxima instruccin. un conjunto de registros de propsito general con los valores actuales. un conjunto de recursos del SO (memoria, archivos abiertos, etc.)
Tema 2: Procesos y hebras

Qu entendemos por proceso? (II)

1. Concepto de proceso

Para la planificacin de la CPU lo importante son los procesos, no los programas. La idea bsica es que un proceso se puede ver como: unidad de ejecucin: cada proceso se ejecuta independientemente y tiene su propio flujo de control. unidad de planificacin.

Tema 2: Procesos y hebras

1. Concepto de proceso
Estados de un proceso

Cada proceso tiene un estado de ejecucin que indica lo que esta haciendo actualmente, p. ej.
Nuevo El proceso se est creando. Ejecutndose - ejecutando instrucciones en la CPU. Preparado o ejecutable - en espera de la CPU. Bloqueado - esperando por un suceso. Terminado El proceso termin su ejecucin.

Durante su vida en el sistema, un proceso va pasando de un estado a otro.


Tema 2: Procesos y hebras

1. Concepto de proceso
Estados y transiciones
Diagrama de estados
Nuevo
Admitido Interrupcin/fin de su tiempo

Finalizado
El proceso termin

Preparado
Fin de E/S o suceso

Ejecutndose
Planificacin Espera por E/S o suceso

Bloqueado
Tema 2: Procesos y hebras

1. Concepto de proceso
Bloque de Control de Proceso

PCB (Bloque de Control de Proceso)


estructura de datos que representa al proceso, es decir, que contiene la informacin asociada con cada proceso. estructura de datos donde el SO mantiene toda la informacin sobre el estado de ejecucin del proceso, p. ej. PC y registros, cuando ste no se esta ejecutando...

Tabla de procesos: matriz o lista enlazada de PCBs (una entrada por cada proceso que exista actualmente en el sistema)

Tema 2: Procesos y hebras

1. Concepto de proceso Contenido


del PCB

Identificador del proceso en el sistema. Estado actual del proceso. Valores de los registros de la CPU. Informacin de planificacin. Informacin para la gestin de memoria. Informacin del estado de las E/S. Informacin de contabilidad o estadstica. Suceso por el cual el proceso est bloqueado.
Tema 2: Procesos y hebras

1. Concepto de proceso
Cambio de contexto

Cuando un proceso esta ejecutndose, su PC, puntero a pila, registros, etc., estn cargados en la CPU (es decir, los registros hardware contienen los valores actuales). Cuando el SO detiene un proceso ejecutndose, salva los valores actuales de estos registros (contexto) en el PCB de ese proceso. La accin de conmutar la CPU de un proceso a otro se denomina cambio de contexto. Los sistemas de tiempo compartido realizan de 100 a 1000 cambios de contexto por segundo. Este trabajo es sobrecarga.
Tema 2: Procesos y hebras

1. Concepto de proceso
Cambio de contexto
P1
Activo
Agotado t de CPU

Sistema Operativo
Guardar contexto de P1 en su PCB Cargar contexto de P2 desde su PCB

P2

Activo

Guardar contexto de P2 en su PCB Cargar contexto de P1 desde su PCB


Activo
Agotado t de CPU

Tema 2: Procesos y hebras

1. Concepto de proceso
PCBs y Colas de Estados

El SO mantiene una coleccin de colas que representan el estado de todos los procesos en el sistema. Tpicamente hay una cola por estado. Cada PCB esta encolado en una cola de estado acorde a su estado actual. Conforme un proceso cambia de estado, su PCB es retirado de una cola y encolado en otra.
Tema 2: Procesos y hebras

1. Concepto de proceso
Colas de estados

Cola de trabajos -- conjunto de los trabajos pendientes de ser admitidos en el sistema (trabajos por lotes que no estn en memoria). Cola de preparados -- conjunto de todos los procesos que residen en memoria principal, preparados y esperando para ejecutarse. Cola(s) de bloqueados -- conjunto de todos los procesos esperando por un dispositivo de E/S particular o por un suceso.
Tema 2: Procesos y hebras

1. Concepto de proceso Migracin


entre colas
(1) Cola de Trabajos Cola de Preparados CPU Programas interactivos E/S suceso Cola(s) de bloqueados
Tema 2: Procesos y hebras

Fin

(2)

2. Planificacin de procesos
Tipos de planificadores

Planificador Parte del SO que controla la utilizacin de un recurso. Tipos de planificadores de la CPU: Planificador a largo plazo (planificador de trabajos) selecciona los procesos que deben llevarse a la cola de preparados; (1) en figura anterior. Planificador a corto plazo (planificador de la CPU) selecciona al proceso que debe ejecutarse a continuacin, y le asigna la CPU; (2) en figura anterior. Planificador a medio plazo.

Tema 2: Procesos y hebras

Caractersticas de los planificadores

2. Planificacin de procesos

El planificador a corto plazo :


trabaja con la cola de preparados. se invoca muy frecuentemente (milisegundos) por lo que debe ser rpido.

El planificador a largo plazo


Permite controlar el grado de multiprogramacin. se invoca poco frecuentemente (segundos o minutos), por lo que puede ser ms lento.

Tema 2: Procesos y hebras

2. Planificacin de procesos
Clasificacin de procesos

Procesos limitados por E/S o procesos cortos -dedican ms tiempo a realizar E/S que computo; muchas rfagas de CPU cortas y largos perodos de espera. Procesos limitados por CPU o procesos largos -dedican ms tiempo en computacin que en realizar E/S; pocas rfagas de CPU pero largas.

Tema 2: Procesos y hebras

2. Planificacin de procesos
Mezcla de trabajos
Es importante que el planificador a largo plazo seleccione una buena mezcla de trabajos, ya que:

Si todos los trabajos estn limitados por E/S, la cola de preparados estar casi siempre vaca y el planificador a corto plazo tendr poco que hacer. Si todos los procesos estn limitados por CPU, la cola de E/S estar casi siempre vaca y el sistema estar de nuevo desequilibrado.
Tema 2: Procesos y hebras

2. Planificacin de procesos
Planificador a medio plazo
En algunos SOs, p. ej. SO de tiempo compartido, a veces es necesario sacar procesos de la memoria (reducir el grado de multiprogramacin), bien para mejorar la mezcla de procesos, bien por cambio en los requisitos de memoria, y luego volverlos a introducir (intercambio). El planificador a medio plazo se encarga de devolver los procesos a memoria. Transicin (3) en la siguiente figura.

Tema 2: Procesos y hebras

2. Planificacin de procesos
Planificador a medio plazo
Cola de Trabajos
Procesos parcialmente ejecutados e intercambiados a disco

(3) CPU Cola de Preparados

Fin

Programas interactivos

E/S suceso Cola(s) de bloqueados


Tema 2: Procesos y hebras

2. Planificacin de procesos.
Planificador a corto plazo.

Las decisiones de planificacin a corto plazo pueden tener lugar :


1. 2. 3. 4. 5. Un proceso finaliza (ejecutndose a finalizado). Un proceso se bloquea (ejecutndose a bloqueado). Un proceso pasa de ejecutndose a ejecutable por ej: cuando un proceso agota el quantum de tiempo asignado. Un suceso cambia el estado de un proceso bloqueado a ejecutable. Se crea un proceso.

No apropiativas (sin desplazamiento): una vez que se le asigna el procesador a un proceso, no se le puede retirar hasta que ste voluntariamente lo deje (finalice o se bloquee) (1)(2) Apropiativas (con desplazamiento): al contrario, el SO puede apropiarse del procesador cuando lo decida.(1)(2)(3)(4)(5)
Tema 2: Procesos y hebras

2. Planificacin de procesos
Despachador

El despachador (dispatcher) es el mdulo del SO que da el control de la CPU al proceso seleccionado por el planificador a corto plazo; esto involucra: Cambio de contexto (se realiza en modo kernel). Conmutacin a modo usuario. salto a la posicin de memoria adecuada del programa para su reanudacin. Latencia de despacho -- tiempo que emplea el despachador en detener un proceso y comenzar a ejecutar otro.

Tema 2: Procesos y hebras

2. Planificacin de procesos
Criterios de planificacin

Para saber si un proceso obtiene un buen servicio, definiremos un conjunto de medidas: dado un proceso P, que necesita un tiempo de servicio (rfaga) t Tiempo de respuesta (T)-- tiempo transcurrido desde que se
remite una solicitud (entra en la cola de preparados) hasta que se produce la primera respuesta (no se considera el tiempo que tarda en dar la salida)

Tiempo de espera (M)-- tiempo que un proceso ha estado


esperando en la cola de preparados: T-t

Penalizacin (P) -- T/t Indice de respuesta (R) -- t/T : fraccin de tiempo que P est
recibiendo servicio.

Tema 2: Procesos y hebras

2. Planificacin de procesos
Criterios de planificacin ( II)

Mtricas de planificacin
Mxima utilizacin. Mxima productividad. Mnimo tiempo de retorno. Mnimo tiempo de respuesta. Mnimo tiempo de espera. Las polticas de planificacin se comportan de distinta manera dependiendo de la clase de procesos Ninguna poltica de planificacin es completamente satisfactoria, cualquier mejora en una clase de procesos es a expensas de perder eficiencia en los procesos de otra clase .
Tema 2: Procesos y hebras

2. Planificacin de procesos Criterios


de planificacin ( y III)

Otras medidas interesantes son: Tiempo del ncleo-- tiempo perdido por el SO
tomando decisiones que afectan a la planificacin de procesos y haciendo los cambios de contexto necesarios. En un sistema eficiente debe representar entre el 10% y el 30% del total del tiempo del procesador

Tiempo de inactividad-- tiempo en el que la cola de


ejecutables est vaca y no se realiza ningn trabajo productivo

Tema 2: Procesos y hebras

2. Planificacin de procesos Polticas


de planificacin de la CPU

FCFS El ms corto primero:


no apropiativo apropiativo

Planificacin por prioridades Por turnos Colas mltiples Colas mltiples con realimentacin.
Tema 2: Procesos y hebras

FCFS (First Come First Served)


Los procesos son servidos segn el orden de llegada a la cola de ejecutables. Es no apropiativo, cada proceso se ejecutar hasta que finalice o se bloquee. Fcil de implementar pero pobre en cuanto a prestaciones. Todos los procesos pierden la misma cantidad de tiempo esperando en la cola de ejecutables independientemente de sus necesidades. Procesos cortos muy penalizados. Procesos largos poco penalizados.
Tema 2: Procesos y hebras

FCFS (First Come First Served)


Procesos T llegada A 0 B 1 C 2 Rfaga 15 3 3 T(t respuesta) M(t espera) 15-0=15 0 18-1=17 14 21-2=19 16

Diagrama de ocupacin de la CPU


A B C
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

Tema 2: Procesos y hebras

FCFS (y II)
Procesos T llegada Rfaga A 2 15 B 1 3 C 0 3 T(t respuesta) M(t espera) 21-2 = 19 4 6-1 = 5 2 3-0 = 3 0

Diagrama de ocupacin de la CPU


A B C
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

Tema 2: Procesos y hebras

El ms corto primero (SJF)


Es no apropiativo. Cuando el procesador queda libre, selecciona el proceso que requiera un tiempo de servicio menor. Si existen dos o ms procesos en igualdad de condiciones, se sigue FCFS. Necesita conocer explcitamente el tiempo estimado de ejecucin (t servicio) Cmo?. Disminuye el tiempo de respuesta para los procesos cortos y discrimina a los largos. Tiempo medio de espera bajo.
Tema 2: Procesos y hebras

El ms corto primero (II)


Procesos T llegada A 0 B 1 C 3 D 2 Rfaga real 3 5 2 5 Rfaga estimada 3 5 2 5

Diagrama de ocupacin de la CPU


A B C D
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
Tema 2: Procesos y hebras

El ms corto primero (y III)


Procesos T llegada A 0 B 1 C 3 D 2 Rfaga real 3 5 2 5 Rfaga estimada 3 6 5 5

Diagrama de ocupacin de la CPU


A B C D
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
Tema 2: Procesos y hebras

El ms corto primero apropiativo (SRTF)

Cada vez que entra un proceso a la cola de ejecutables se comprueba si su tiempo de servicio es menor que el tiempo de servicio que le queda al proceso que est ejecutndose. Casos: Si es menor: se realiza un cambio de contexto y el proceso con menor tiempo de servicio es el que se ejecuta. No es menor: contina el proceso que estaba ejecutndose. El tiempo de respuesta es menor excepto para procesos muy largos. Se obtiene la menor penalizacin en promedio (mantiene la cola de ejecutables con la mnima ocupacin posible).
Tema 2: Procesos y hebras

El ms corto primero apropiativo (y II)


Procesos T llegada A 0 B 1 C 2 D 3 Rfaga real 6 2 7 3 Rfaga estimado 6 2 7 3

Diagrama de ocupacin de la CPU


A B C D
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
Tema 2: Procesos y hebras

Cmo podemos conocer la duracin de la siguiente rfaga de CPU?


Slo podemos estimar su duracin. Podemos estimar el valor de la siguiente rfaga basndonos en las rfagas previas de CPU y utilizando una media exponencial, por ejemplo, para la n+1 rfaga:
Tn = duracin actual de la n-sima rfaga n = valor estimado de la n-sima rfaga 0W1 Definimos: n+1 = W * Tn + (1-W) n 0 = valor inicial (constante o promedio global del sistema)
Tema 2: Procesos y hebras

Ejemplos

W=0 n+1 = n La historia reciente no influye. W=1 n+1 = Tn Slo cuenta la rfaga actual. Si desarrollamos la formula: n+1 = W * Tn + (1-W) * W * Tn-1 + (1-W)2 * W * Tn-2 + ... + (1-W)q* W * Tn-q Si W = 1/2 cada trmino sucesivo tiene menos efecto.
Tema 2: Procesos y hebras

Planificacin por prioridades


Asociamos a cada proceso un nmero de prioridad (entero). Se asigna la CPU al proceso con mayor priori-dad (enteros menores = mayor prioridad) Apropiativa No apropiativa Problema: Inanicin -- los procesos de baja prioridad pueden no ejecutarse nunca. Solucin: Envejecimiento -- con el paso del tiempo se incrementa la prioridad de los procesos.
Tema 2: Procesos y hebras

Planificacin por prioridades (y II)


Procesos T llegada A 1 B 3 C 0 D 0 E 2 Rfaga 10 1 2 1 5 Prioridad 3 1 3 2 2 No apropiativo Apropiativo

Diagrama de ocupacin de la CPU


A B C D E

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
Tema 2: Procesos y hebras

Por Turnos (Round-Robin)


La CPU se asigna a los procesos en intervalos de tiempo (quatum). Un proceso pierde la CPU:

Si el proceso finaliza o se bloquea antes de agotar el quantum, libera la CPU. Se toma el siguiente proceso de la cola de ejecutables (la cola es FIFO) y se le asigna un quantum completo. Si el proceso no termina durante ese quantum, se interrumpe y se coloca al final de la cola de ejecutables.

Es apropiativo. En los ejemplos supondremos que si un proceso A llega a la cola de ejecutables al mismo tiempo que otro B agota su quantum, la llegada de A a la cola de ejecutables ocurre antes de que B se incorpore a ella.
Tema 2: Procesos y hebras

Por Turnos (II)


Procesos T llegada A 0 B 1 C 3 D 9 Rfaga 3 9 2 5
Finaliza C Finaliza A

Estado de la cola de ejecutables t=0 A; t=3 BC; t=7 CB t=9 BD; t=13 DB; t=17 BD t=18 D
Finaliza B Finaliza D

q=4
A B C D

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
Tema 2: Procesos y hebras

Por Turnos (y III)


Los valores tpicos del quantum estn entre 10 y 100 msg. Penaliza a todos los procesos en la misma cantidad, sin importar si son cortos o largos. Las rfagas muy cortas estn ms penalizadas de lo deseable. valor del quantum? - muy grande (excede del t de servicio de todos los procesos) se convierte en FCFS - muy pequeo el sistema monopoliza la CPU haciendo cambios de contexto (t del ncleo muy alto)
Tema 2: Procesos y hebras

Colas mltiples

La cola de preparados se divide en varias colas y cada proceso es asignado permanentemente a una cola concreta P. ej. interactivos y batch Cada cola puede tener su propio algoritmo de planificacin P. ej. interactivos con RR y batch con
FCFS

Requiere una planificacin entre colas Planificacin con prioridades fijas. P. ej. primero
servimos a los interactivos luego a los batch

Tiempo compartido -- cada cola obtiene cierto tiempo de CPU que debe repartir entre sus procesos. P. ej. 80% interactivos en RR y 20% a los
batch con FCFS
Tema 2: Procesos y hebras

Colas mltiples (II)


P TLlegada A 0 B 4 C 3 D 2 E 1 Rfaga Bloqueo Rfaga Cola 2 10 1 1 1 5 2 1 4 2 6 3 9 3

El algoritmo de cada cola es RR con q=1, 2 y 3 mlsg. respectivamente El algoritmo entre colas es prioridades no apropiativo

A B C D E
t=0 1 2 5 6 8

Fin de A Fin de B Fin de C Fin de E 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Fin de D

10

13
BA ED

14
AB ED

15
B ED

16
ED

19
DE

22
E

Cola 1 A A B Cola 2 C C C Cola 3 E ED DE DE DE DE

Tema 2: Procesos y hebras

Colas mltiples (y III)


P TLlegada Rfaga A 0 2 B 4 1 C 3 4 D 2 6 E 1 9 Bloqueo Rfaga Cola 10 1 1 5 2 1 2 3 3
Fin de A Fin de B Fin de C Fin de E 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Fin de D

El algoritmo de cada cola es RR con q=1, 2 y 3 mlsg. respectivamente El algoritmo entre colas es prioridades es apropiativo

A B C D E

t=0

2 3

10 11 12

13 16 19
ED DE ED

22 23
DE E

Cola 1 A A Cola 2 Cola 3 E

B B B A C C C C ED DE DE DE DE DE ED ED ED

Tema 2: Procesos y hebras

Colas mltiples con realimentacin


Un proceso se puede mover entre varias colas Requiere definir los siguientes parmetros:

Nmero de colas Algoritmo de planificacin para cada cola Mtodo utilizado para determinar cuando trasladar a un proceso a otra cola Mtodo utilizado para determinar en qu cola se introducir un proceso cuando necesite un servicio Algoritmo de planificacin entre colas

Mide en tiempo de ejecucin el comportamiento real de los procesos Disciplina de planificacin ms general (Unix, Windows NT)
Tema 2: Procesos y hebras

Ejemplo de colas mltiples con realimentacin

Tres colas gestionadas mediante Round Robin: Cola 1 con quantum = 2 milisegundos Cola 2 con quantum = 4 milisegundos Cola 3 con quantum = 8 milisegundos Algoritmo entre colas: prioridades no apropiativo, cola 1 mayor prioridad, cola 3 menor prioridad. Los procesos entran inicialmente en la cola 1 Cuando un proceso se bloquea, al regresar a la cola de ejecutables sigue en la misma cola si no hay traspaso Un proceso se traspasa a una cola de menor prioridad cuando agota dos quantum de tiempo seguidos, o bien, agota uno y se bloquea en el siguiente
Tema 2: Procesos y hebras

Ejemplo de colas mltiples con realimentacin (y II)


P TLlegada TServicio total A B C 0 2 3 4 6 23 Rfaga 1 3 Bloqueo 3 4 -

(*) Los procesos


tienen un comportamiento cclico

(*)
A B C
t=0
Cola 1 A Cola 2 Cola 3

Fin de A Fin de B Fin de C

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

10
A C

11
C

15
A BC

16 19
BC C

23
C

B CAB ABC BC C

Tema 2: Procesos y hebras

3. Operaciones sobre procesos


Creacin de procesos

Qu significa crear un proceso?


Asignarle el espacio de direcciones que utilizar Crear las estructuras de datos para su administracin

Cundo se crea? Los sucesos comunes son:


En sistemas batch: en respuesta a la recepcin y admisin de un trabajo En sistemas interactivos: cuando el usuario se conecta, el SO crea un proceso que ejecuta el intrprete de rdenes El SO puede crear un proceso para llevar a cabo un servicio solicitado por un proceso de usuario Un proceso puede crear otros procesos formando un rbol de procesos. Hablamos de relacin padre-hijo (creador-creado)
Tema 2: Procesos y hebras

3. Operaciones sobre procesos


Creacin de procesos (II)

Cuando un proceso crea a otro, cmo obtiene sus recursos el proceso hijo? Los obtiene directamente del SO: padre e hijo no comparten recursos. Comparte todos los recursos con el padre. Comparte un subconjunto de los recursos del padre.

Tema 2: Procesos y hebras

3. Operaciones sobre procesos


Creacin de procesos (III)

Ejecucin: Padre e hijo se ejecutan concurrentemente. Padre espera al que el hijo termine. Espacio de direcciones: Hijo es un duplicado del padre (Unix). Hijo tiene un programa que lo carga (VMS) Ejemplo: En UNIX La llamada al sistema fork (bifurcar) crea un nuevo proceso. La llamada exec despus de fork reemplaza el espacio de direcciones con el programa del nuevo proceso.
Tema 2: Procesos y hebras

3. Operaciones sobre procesos


Creacin de procesos (y IV)

Por tanto, qu pasos, en general, deben realizarse en una operacin de creacin?


Nombrar al proceso: asignarle un PID nico Asignarle espacio (en MP y/o memoria secundaria) Crear el PCB e inicializarlo Insertarlo en la Tabla de procesos y ligarlo a la cola de planificacin correspondiente Determinar su prioridad inicial
Tema 2: Procesos y hebras

3. Operaciones sobre procesos


Terminacin de procesos

Qu sucesos determinan la finalizacin de un proceso?


Cuando un proceso ejecuta la ltima instruccin, solicita al SO su finalizacin (exit) Envo de datos del hijo al padre Recursos del proceso son liberados por el SO El padre puede finalizar la ejecucin de sus hijos (abort o kill) El hijo ha sobrepasado los recursos asignados La tarea asignada al hijo ya no es necesaria El padre va a finalizar: el SO no permite al hijo continuar (terminacin en cascada) El SO puede terminar la ejecucin de un proceso porque se hayan producido errores o condiciones de fallo
Tema 2: Procesos y hebras

4.Hebras (hilos)

Un proceso: Unidad de propiedad de los recursos: el proceso incluye memoria ( seccin de cdigo, seccin de datos) y otros recursos como: archivos abiertos, seales,... Unidad de expedicin: sigue un camino de ejecucin que puede ser intercalada con la de otros procesos. (Contador de programa, conjunto de registros, espacio de pila, estado) Estas dos caractersticas puede ser tratadas de manera independiente por el SO, apareciendo el concepto de hebra
Tema 2: Procesos y hebras

4.Hebras (II)

Una hebra (o proceso ligero) es la unidad bsica de utilizacin de la CPU (unidad de expedicin). Consta de:
Contador de programa. Conjunto de registros. Espacio de pila. Estado

Una tarea es la unidad de propiedad de los recursos.


Seccin de cdigo. Seccin de datos. Recursos del SO (archivos abiertos, seales,..).

Una hebra comparte con sus hebras pares una tarea. Un proceso pesado o tradicional es igual a una tarea con una hebra.
Tema 2: Procesos y hebras

4.Hebras (III)

Un proceso, un hilo

Un proceso, mltiples hilos

Mltiples procesos, un hilo por proceso Flujo de instrucciones

Mltiples procesos, mltiples hilos por proceso

Procesos e hilos (Stalling)


Tema 2: Procesos y hebras

4.Hebras (IV)

Una Hebra posee:


Un estado de ejecucin (Ejecucin, Listo, etc.). El contexto del procesador se salva cuando no est ejecutando. Una pila de ejecucin. Almacenamiento esttico para las variables locales. Acceso a la memoria y a los recursos del proceso, compartidos con todos los hilos del mismo.

Tema 2: Procesos y hebras

4.Hebras (y V)

Modelo de proceso monohilo


Bloque de control de proceso

Modelo de proceso multihilo


Hilo Hilo
Bloque de control de hilo Pila del usuario Bloque de control de hilo Pila del usuario

Pila del usuario

Bloque de control de proceso

Espacio de direcciones del usuario

Pila del ncleo

Espacio de direcciones del usuario Pila del ncleo


Tema 2: Procesos y hebras

Pila del ncleo

4.Hebras
Ventajas de las hebras

Se obtiene un mayor rendimiento y un mejor servicio debido a :


Se reduce el tiempo de cambio de contexto, el tiempo de creacin y el tiempo de terminacin. En una tarea con mltiples hebras, mientras una hebra servidora esta bloqueada y esperando, una segunda hebra de la misma tarea puede ejecutarse (depende del tipo de hebras) La comunicacin entre hebras de una misma tarea se realiza a travs de la memoria compartida (no necesitan utilizar los mecanismos del ncleo). Las aplicaciones que necesitan compartir memoria se benefician de la hebras.

Tema 2: Procesos y hebras

4.Hebras
Funcionalidad de las hebras.
Al igual que los procesos la hebras poseen un estado de ejecucin y pueden sincronizarse. Estados de las hebras: Ejecucin, Lista y Bloqueada. Operaciones bsicas relacionadas con el cambio de estado en hebras:

Creacin Bloqueo Desbloqueo Terminacin

Sincronizacin entre hebras.


Tema 2: Procesos y hebras

4.Hebras
Ejemplo: estados de una hebra (I).
Tiempo

Llamada a RPC Proceso 1


Servidor

Llamada a RPC

Servidor

(a) RPC utilizando un solo hilo


Bloqueado, esperando respuesta del servidor

Ejecutando

Tema 2: Procesos y utilizando hilos. Llamadas a Procedimiento Remoto (RPC)hebras

4.Hebras
Ejemplo: estados de una hebra (y II).
Llamada a RPC Hilo A (proceso 1) Hilo B (proceso 1) Llamada a RPC
Servidor Servidor

(b) RPC utilizando un hilo por servidor (en un monoprocesador) Bloqueado, esperando respuesta de una RPC Bloqueado, esperando al procesador que est siendo usado por el hilo B Ejecutando

Llamadas a Procedimiento Remoto (RPC) y hebras hilos. Tema 2: Procesos utilizando

4.Hebras
Tipos de hebras
Tipos de hebras: Kernel, usuario y enfoques hbridos

Hebras usuario Todo el trabajo de gestin de hebras lo realiza la aplicacin, el ncleo no es consciente de la existencia de hebras. Se implementan a travs de una biblioteca en el nivel usuario. La biblioteca contiene cdigo para gestionar las hebras:
crear hebras, intercambiar datos entre hebras, planificar la ejecucin de las hebras y salvar y restaurar el contexto de las hebras.

La unidad de planificacin para el ncleo es el proceso


Tema 2: Procesos y hebras

4.Hebras
Tipos de hebras (II)

Hebras Kernel (Ncleo)


Toda la gestin de hebras lo realiza el ncleo. El SO proporciona un conjunto de llamadas al sistema similares a las existentes para los procesos (Mach, OS/2). El ncleo mantiene la informacin de contexto del proceso como un todo y de cada hebra. La unidad de planificacin es la hebra. Las propias funciones del ncleo pueden ser multihebras.
Tema 2: Procesos y hebras

4.Hebras
Tipos de hebras (III)

Ventajas del uso de las hebras tipo usuario frente a las de tipo ncleo:
Se evita la sobrecarga de cambios de modo, que sucede cada vez que se pasa el control de una hebra a otra en sistemas que utilizan hebras ncleo. Se puede tener una planificacin para las hebras distinta a la planificacin subyacente del SO. Se pueden ejecutar en cualquier SO. Su utilizacin no supone cambio en el ncleo.

Tema 2: Procesos y hebras

4.Hebras
Tipos de hebras (IV)

Desventajas del uso de las hebras tipo usuario frente a las de tipo ncleo.
Cuando un proceso realiza una llamada al sistema bloqueadora no slo se bloquea la hebra que realiz la llamada, sino todas las hebras de la tarea. En un entorno multiprocesador, una aplicacin multihebra no puede aprovechar la ventajas de dicho entorno ya que el ncleo asigna un procesador a un proceso.

Tema 2: Procesos y hebras

4.Hebras
Tipos de hebras (V)

Enfoques hbridos
Implementan tanto hebras a nivel kernel como usuario (p. ej. Solaris 2). La creacin de hebras, y la mayor parte de la planificacin y sincronizacin se realizan en el espacio de usuario. Las distintas hebras de una aplicacin se asocian con varias hebras del ncleo (mismo o menor nmero), el programador puede ajustar la asociacin para obtener un mejor resultado. Las mltiples hebras de una aplicacin se pueden paralelizar y las llamadas al sistema bloqueadoras no necesitan bloquear todo el proceso.

Tema 2: Procesos y hebras

4.Hebras
Tipos de hebras ( y VI)
Biblioteca de hilos

Espacio de usuario Espacio de ncleo

Espacio de usuario Espacio de ncleo

Biblioteca de hilos

Espacio de usuario Espacio de ncleo

(a) Nivel de usuario puro


Hilo a nivel de usuario

(b) Nivel de ncleo puro


Proceso

(c) Combinado

Hilo a nivel de ncleo

Hilos a nivel de usuario y a nivel de ncleo.


Tema 2: Procesos y hebras