You are on page 1of 67

Voluntario Involuntario

Cambio de hebra
Gustavo Romero
Arquitectura y Tecnolog a de Computadores

13 de febrero de 2009

c Gustavo Romero

Cambio de hebra (1/67)

Voluntario Involuntario

Indice

Voluntario Versi on simplicada Gesti on de la pila Estudio de viabilidad Involuntario Interrupci on del reloj Gesti on de la pila Estudio de viabilidad

c Gustavo Romero

Cambio de hebra (2/67)

Voluntario Involuntario

Lecturas recomendadas

Tanuenbaum Sistemas Operativos Modernos (2.2) Silberschatz Stallings Fundamentos de Sistemas Operativos (4) Sistemas Operativos (4)

c Gustavo Romero

Cambio de hebra (3/67)

Voluntario Involuntario

Motivaci on
Motivos para cambiar de hebra:
Comportamiento interno de la hebra.
ejemplo: operaci on de E/S.

Objetivos del sistema.


ejemplo: planicaci on justa. las hebras se ejecutan peri odicamente 0 < n < ciclos.

Tipos de cambio de hebra:


Voluntario:
planicaci on cooperativa. entre hebras de usuario. sin entrada/salida del n ucleo.

Involuntario:
planicaci on apropiativa/expropiativa (preemtive). entre cualquier tipo de hebras. es necesario entrar y salir del n ucleo.

c Gustavo Romero

Cambio de hebra (4/67)

Voluntario Involuntario

Versi on simplicada Gesti on de la pila Estudio de viabilidad

Voluntario

c Gustavo Romero

Cambio de hebra (5/67)

Voluntario Involuntario

Versi on simplicada Gesti on de la pila Estudio de viabilidad

Planicaci on cooperativa

Modelo simplicado: 2 hebras tipo usuario limitadas por uso de procesador activaci on alternativa mediante yield.

c Gustavo Romero

Cambio de hebra (6/67)

Voluntario Involuntario

Versi on simplicada Gesti on de la pila Estudio de viabilidad

yield simplicado (1)

c Gustavo Romero

Cambio de hebra (7/67)

Voluntario Involuntario

Versi on simplicada Gesti on de la pila Estudio de viabilidad

yield simplicado (2)

c Gustavo Romero

Cambio de hebra (8/67)

Voluntario Involuntario

Versi on simplicada Gesti on de la pila Estudio de viabilidad

yield simplicado (3)


La primera parte de yield se ejecuta bajo control de la hebra llamadora. La segunda parte de yield se ejecuta bajo control de la siguiente hebra. Supondremos que las dos hebras ya han llamado a yield antes. Cada hebra recibe y cede el control del procesador exactamente en la misma instrucci on. procedimiento yield void yield(hebra siguiente) { ... almacenar contexto de la hebra actual ...??? recuperar contexto de la siguiente hebra ... }

c Gustavo Romero

Cambio de hebra (9/67)

Voluntario Involuntario

Versi on simplicada Gesti on de la pila Estudio de viabilidad

yield simplicado (4)


Soluci on: cambiar el puntero de pila (sp). procedimiento yield void yield(hebra siguiente) { ... almacenar contexto de la hebra actual actual.sp = sp; // intercambiar sp = siguiente.sp; // puntero de pila recuperar contexto de la siguiente hebra ... }

c Gustavo Romero

Cambio de hebra (10/67)

Voluntario Involuntario

Versi on simplicada Gesti on de la pila Estudio de viabilidad

Contenido de la pila en yield (1)

c Gustavo Romero

Cambio de hebra (11/67)

Voluntario Involuntario

Versi on simplicada Gesti on de la pila Estudio de viabilidad

Contenido de la pila en yield (2)

c Gustavo Romero

Cambio de hebra (12/67)

Voluntario Involuntario

Versi on simplicada Gesti on de la pila Estudio de viabilidad

Contenido de la pila en yield (3)

c Gustavo Romero

Cambio de hebra (13/67)

Voluntario Involuntario

Versi on simplicada Gesti on de la pila Estudio de viabilidad

Contenido de la pila en yield (4)

c Gustavo Romero

Cambio de hebra (14/67)

Voluntario Involuntario

Versi on simplicada Gesti on de la pila Estudio de viabilidad

Contenido de la pila en yield (5)

c Gustavo Romero

Cambio de hebra (15/67)

Voluntario Involuntario

Versi on simplicada Gesti on de la pila Estudio de viabilidad

Contenido de la pila en yield (6)

c Gustavo Romero

Cambio de hebra (16/67)

Voluntario Involuntario

Versi on simplicada Gesti on de la pila Estudio de viabilidad

Contenido de la pila en yield (7)

c Gustavo Romero

Cambio de hebra (17/67)

Voluntario Involuntario

Versi on simplicada Gesti on de la pila Estudio de viabilidad

Contenido de la pila en yield (8)

c Gustavo Romero

Cambio de hebra (18/67)

Voluntario Involuntario

Versi on simplicada Gesti on de la pila Estudio de viabilidad

Resumen sobre hebras de usuario y yield


Suponiendo que hay un s olo procesador y yield es la u nica posibilidad de activaci on... s olo la pila de la hebra en ejecuci on es utilizable. el n umero y orden de las pilas es conocido. el contenido de las pilas diere muy poco. cada hebra puede tener diferentes variables locales.

c Gustavo Romero

Cambio de hebra (19/67)

Voluntario Involuntario

Versi on simplicada Gesti on de la pila Estudio de viabilidad

Restricciones de yield para hebras de usuario


El n ucleo no es consciente de la existencia de hebras tipo usuario. La gesti on de hebras se realiza en la aplicaci on o en un subsistema mediante una biblioteca de hebras. El cambio de hebra no requiere privilegios de modo n ucleo = ahorro de cambios de proceso y modo. La planicaci on pueden hacerse espec ca para cada aplicaci on. Qu e sucede cuando una hebra no llama a yield?
c Gustavo Romero Cambio de hebra (20/67)

Voluntario Involuntario

Versi on simplicada Gesti on de la pila Estudio de viabilidad

Contenido de una biblioteca de hebras

Creaci on y destrucci on de hebras. Paso de mensajes entre hebras. Planicaci on de hebras. Sincronizaci on de hebras. Almacenamiento y restauraci on del estado de una hebra.

c Gustavo Romero

Cambio de hebra (21/67)

Voluntario Involuntario

Versi on simplicada Gesti on de la pila Estudio de viabilidad

Posible trabajo para el n ucleo

Aunque el n ucleo no es consciente de la existencia de hebras de usuario gestiona el funcionamiento del proceso que aloja la hebra de usuario. Ejemplo:
Cuando una hebra realiza una llamada al sistema bloqueante = el n ucleo bloquea al proceso completo. Desde el punto de vista del planicador de hebras de usuario la hebra sigue en estado ejecutando.

Los estados de las hebras son independientes del estado del proceso que las aloja.

c Gustavo Romero

Cambio de hebra (22/67)

Voluntario Involuntario

Versi on simplicada Gesti on de la pila Estudio de viabilidad

Ventajas e inconvenientes de las hebras de usuario


Ventajas: la gesti on de las hebras no requiere del n ucleo no requiere cambio de modo mayor velocidad la pol tica de planicaci on puede ser espec ca por aplicaci on utilizar la que mejor convenga las hebras de usuario pueden utilizarse en cualquier SO (si dispone de una biblioteca de hebras)
c Gustavo Romero Cambio de hebra (23/67)

Inconvenientes: si una hebra se bloquea se bloquean todas las hebras del proceso el n ucleo s olo puede asignar el procesador a procesos 2 hebras del mismo proceso nunca podr an ejecutarse simult aneamente s olo concurrencia

Voluntario Involuntario

Versi on simplicada Gesti on de la pila Estudio de viabilidad

Inconvenientes de un yield de sistema

Si es tan r apido, por qu e no utilizarlo en en SO completo? 1 La planicaci on cooperativa requiere de usuarios cooperativos.
Dejar as libre un recurso que podr as necesitar en el futuro?
2

Incluso en el caso de existir usuarios muy cooperativos el problema de d onde colocar las llamadas a yield es muy complejo. Dependiendo de la complejidad del hardware y del software hay muchos eventos que pueden requerir cambios de modo que de todas formas el n ucleo debe gestionar.

c Gustavo Romero

Cambio de hebra (24/67)

Voluntario Involuntario

Interrupci on del reloj Gesti on de la pila Estudio de viabilidad

Involuntario

c Gustavo Romero

Cambio de hebra (25/67)

Voluntario Involuntario

Interrupci on del reloj Gesti on de la pila Estudio de viabilidad

Causas para el cambio de hebra


s ncronas la hebra actual termina. llamada s ncrona al sistema (espera de E/S). paso de mensaje (envio de mensaje/espera de respuesta). hebra cooperativa llama a yield. as ncronas la hebra excede su fracci on de tiempo asignado. la hebra en ejecuci on posee una prioridad inferior a otra preparada. un controlador de dispositivo solicita ser atendido.

c Gustavo Romero

Cambio de hebra (26/67)

Voluntario Involuntario

Interrupci on del reloj Gesti on de la pila Estudio de viabilidad

Eventos que disparan un cambio de hebra

Excepciones (eventos s ncronos): Fallos (eventos reproducibles):


divisi on entre cero (durante la instrucci on). violaci on de espacio de direcciones (durante la instrucci on).

Eventos impredecibles:1
fallo de p agina (antes de la instrucci on).

Puntos de ruptura (breakpoint):


datos (despu es de la instrucci on). c odigo (antes de la instrucci on).

Llamada al sistema.

Cu ando ser a predecible un fallo de p agina? pol tica de paginaci on local.


c Gustavo Romero Cambio de hebra (27/67)

Voluntario Involuntario

Interrupci on del reloj Gesti on de la pila Estudio de viabilidad

Eventos que disparan un cambio de hebra


Interrupciones (eventos as ncronos): Reloj:
nal de la fracci on de tiempo asignado. se nal de despertar (alarma).

Impresora:
atasco de papel. tinta agotada.

Red:
paquete recibido.

Otros procesadores (desde el punto de vista del procesador interrumpido):


se nales entre procesadores. interrupci on software.

c Gustavo Romero

Cambio de hebra (28/67)

Voluntario Involuntario

Interrupci on del reloj Gesti on de la pila Estudio de viabilidad

Manejo de interrupciones en Linux

En funci on del sistema operativo y del tipo de interrupci on, a veces, la siguiente hebra es la misma que la hebra actual.
c Gustavo Romero Cambio de hebra (29/67)

Voluntario Involuntario

Interrupci on del reloj Gesti on de la pila Estudio de viabilidad

Manejo de interrupciones anidadas

Las interrupciones pueden anidarse sin problema. Un circuito se encarga de la gesti on de interrupciones (APIC).
c Gustavo Romero Cambio de hebra (30/67)

Voluntario Involuntario

Interrupci on del reloj Gesti on de la pila Estudio de viabilidad

Manejo de excepciones

Algunos sistemas permiten utilizar manejadores de excepciones espec cos.

c Gustavo Romero

Cambio de hebra (31/67)

Voluntario Involuntario

Interrupci on del reloj Gesti on de la pila Estudio de viabilidad

Manejo de excepciones anidadas

Algunos sistemas permiten anidar dos o tres excepciones pero no m as. Suelen indicar fallos en el propio sistema operativo.
c Gustavo Romero Cambio de hebra (32/67)

Voluntario Involuntario

Interrupci on del reloj Gesti on de la pila Estudio de viabilidad

Conclusiones

Debido a los eventos se necesita un control centralizado:


n ucleo. micron ucleo.

Debido a la sensibilidad de estas operaciones tanto el cambio de hebra como el control de hebras necesitan un protecci on especial:
modo n ucleo. c odigo y datos en el interior del espacio de direcciones del n ucleo.

c Gustavo Romero

Cambio de hebra (33/67)

Voluntario Involuntario

Interrupci on del reloj Gesti on de la pila Estudio de viabilidad

Finalizaci on del tiempo asignado


Estudiaremos el caso del cambio entre hebras cuando una excede su quantum de tiempo asignado. Hebras tipo n ucleo. Objetivo: planicaci on justa No estudiaremos otros tipos de cambio de hebra en detalle. Visi on simplicada de la interrupci on de reloj.

c Gustavo Romero

Cambio de hebra (34/67)

Voluntario Involuntario

Interrupci on del reloj Gesti on de la pila Estudio de viabilidad

cambio de hebra simplicado (1)

c Gustavo Romero

Cambio de hebra (35/67)

Voluntario Involuntario

Interrupci on del reloj Gesti on de la pila Estudio de viabilidad

cambio de hebra simplicado (2)

c Gustavo Romero

Cambio de hebra (36/67)

Voluntario Involuntario

Interrupci on del reloj Gesti on de la pila Estudio de viabilidad

cambio de hebra simplicado (3)

c Gustavo Romero

Cambio de hebra (37/67)

Voluntario Involuntario

Interrupci on del reloj Gesti on de la pila Estudio de viabilidad

cambio de hebra simplicado (4)

c Gustavo Romero

Cambio de hebra (38/67)

Voluntario Involuntario

Interrupci on del reloj Gesti on de la pila Estudio de viabilidad

cambio de hebra simplicado (5)

c Gustavo Romero

Cambio de hebra (39/67)

Voluntario Involuntario

Interrupci on del reloj Gesti on de la pila Estudio de viabilidad

cambio de hebra simplicado (6)

c Gustavo Romero

Cambio de hebra (40/67)

Voluntario Involuntario

Interrupci on del reloj Gesti on de la pila Estudio de viabilidad

cambio de hebra simplicado (7)

c Gustavo Romero

Cambio de hebra (41/67)

Voluntario Involuntario

Interrupci on del reloj Gesti on de la pila Estudio de viabilidad

cambio de hebra simplicado (8)

c Gustavo Romero

Cambio de hebra (42/67)

Voluntario Involuntario

Interrupci on del reloj Gesti on de la pila Estudio de viabilidad

cambio de hebra simplicado (9)

c Gustavo Romero

Cambio de hebra (43/67)

Voluntario Involuntario

Interrupci on del reloj Gesti on de la pila Estudio de viabilidad

cambio de hebra simplicado (10)

c Gustavo Romero

Cambio de hebra (44/67)

Voluntario Involuntario

Interrupci on del reloj Gesti on de la pila Estudio de viabilidad

cambio de hebra simplicado (11)

c Gustavo Romero

Cambio de hebra (45/67)

Voluntario Involuntario

Interrupci on del reloj Gesti on de la pila Estudio de viabilidad

cambio de hebra simplicado (12)

c Gustavo Romero

Cambio de hebra (46/67)

Voluntario Involuntario

Interrupci on del reloj Gesti on de la pila Estudio de viabilidad

cambio de hebra simplicado (13)

c Gustavo Romero

Cambio de hebra (47/67)

Voluntario Involuntario

Interrupci on del reloj Gesti on de la pila Estudio de viabilidad

cambio de hebra simplicado (13)

El hardware autom aticamente almacena ip, sp y las banderas en la pila n ucleo de la hebra actual. La pila n ucleo forma parte del TCB de cada hebra.

c Gustavo Romero

Cambio de hebra (48/67)

Voluntario Involuntario

Interrupci on del reloj Gesti on de la pila Estudio de viabilidad

Estudio de la pila (1)

c Gustavo Romero

Cambio de hebra (49/67)

Voluntario Involuntario

Interrupci on del reloj Gesti on de la pila Estudio de viabilidad

Estudio de la pila (2)

c Gustavo Romero

Cambio de hebra (50/67)

Voluntario Involuntario

Interrupci on del reloj Gesti on de la pila Estudio de viabilidad

Estudio de la pila (3)

c Gustavo Romero

Cambio de hebra (51/67)

Voluntario Involuntario

Interrupci on del reloj Gesti on de la pila Estudio de viabilidad

Estudio de la pila (4)

c Gustavo Romero

Cambio de hebra (52/67)

Voluntario Involuntario

Interrupci on del reloj Gesti on de la pila Estudio de viabilidad

Estudio de la pila (5)

c Gustavo Romero

Cambio de hebra (53/67)

Voluntario Involuntario

Interrupci on del reloj Gesti on de la pila Estudio de viabilidad

Estudio de la pila (6)

c Gustavo Romero

Cambio de hebra (54/67)

Voluntario Involuntario

Interrupci on del reloj Gesti on de la pila Estudio de viabilidad

Estudio de la pila (7)

c Gustavo Romero

Cambio de hebra (55/67)

Voluntario Involuntario

Interrupci on del reloj Gesti on de la pila Estudio de viabilidad

Estudio de la pila (8)

c Gustavo Romero

Cambio de hebra (56/67)

Voluntario Involuntario

Interrupci on del reloj Gesti on de la pila Estudio de viabilidad

Alternativas de implementaci on

... en funci on del n umero de pilas n ucleo utilizadas: Una unica pila n ucleo para todas las hebras. Una pila n ucleo por hebra.

Qu e implicaciones tienen estas dos soluciones?

c Gustavo Romero

Cambio de hebra (57/67)

Voluntario Involuntario

Interrupci on del reloj Gesti on de la pila Estudio de viabilidad

Pila n ucleo por hebra


modelo de proceso

El estado del n ucleo es almacenado de forma impl cita en la pila de activaci on del n ucleo. Si la hebra debe bloquearse mientras est a en modo n ucleo, simplemente podemos cambiar a la pila de otra hebra hasta su reanudaci on. La reanudaci on es tan sencilla como intercambiar de nuevo la pila por la original. La apropiaci on es f acil de implementar. No existe diferencia conceptual entre modo n ucleo y modo usuario

c Gustavo Romero

Cambio de hebra (58/67)

Voluntario Involuntario

Interrupci on del reloj Gesti on de la pila Estudio de viabilidad

Pila n ucleo unica


modelo de evento o interrupci on

C omo puede una unica pila n ucleo dar soporte a m ultiples hebras? C omo manejar las llamadas al sistema bloqueantes
Continuaciones (continuations): Draves et al. Using continuations to implement thread management and comunication in operating systems. Proc.13th SOSP (1991). N ucleo sin estado (stateless kernel): Ford et al. Interface and execution models in the uke kernel. Proc.3th OSDI.

C omo puede una unica pila n ucleo dar soporte a m ultiples hebras en un sistema multiprocesador?
No puede = es necesaria una pila por procesador.

c Gustavo Romero

Cambio de hebra (59/67)

Voluntario Involuntario

Interrupci on del reloj Gesti on de la pila Estudio de viabilidad

Problemas que hemos ignorado por simplicidad (1) Si la hebra siguiente no es conocida por adelantado... c omo decidimos que hebra ejecutar a continuaci on? = planicador. Una vez escogida la hebra siguiente, de d onde recuperamos su TCB? Si la pila n ucleo es parte del TCB = corremos el peligro de que el desbordamiento de la pila lo destruya. C omo lograr la inicializaci on y nalizaci on de una hebra?
c Gustavo Romero Cambio de hebra (60/67)

Voluntario Involuntario

Interrupci on del reloj Gesti on de la pila Estudio de viabilidad

Problemas que hemos ignorado por simplicidad (2)

El tama no de la pila n ucleo no es un problema en la pr actica. EL desbordamiento de la pila n ucleo supone la existencia de un grave error dentro del n ucleo. En cuanto a la inicializaci on y nalizaci on de una hebra... como principio general es deseable = resolver los casos especiales empleando las soluciones de los casos generales.
c Gustavo Romero Cambio de hebra (61/67)

Voluntario Involuntario

Interrupci on del reloj Gesti on de la pila Estudio de viabilidad

Finalizaci on de una hebra


C omo nalizar una hebra? Hacer todo el trabajo necesario para limpiar el entorno de la hebra. Cambiar a otra hebra y nunca regresar a la hebra que naliza. Ser a deseable no requerir mecanismos adicionales.

c Gustavo Romero

Cambio de hebra (62/67)

Voluntario Involuntario

Interrupci on del reloj Gesti on de la pila Estudio de viabilidad

Inicializaci on de una hebra

Qu e hacer cuando cambiamos a una nueva hebra por primera vez?

c Gustavo Romero

Cambio de hebra (63/67)

Voluntario Involuntario

Interrupci on del reloj Gesti on de la pila Estudio de viabilidad

Inicializaci on de una hebra


Inicializar la pila n ucleo de la nueva hebra con la segunda parte de las funciones cambio de hebra y exit. El retorno desde cambio de hebra cede el control a la segunda parte de exit. El regreso desde exit al modo usuario provoca la ejecuci on de la primera instrucci on de la nueva hebra.

c Gustavo Romero

Cambio de hebra (64/67)

Voluntario Involuntario

Interrupci on del reloj Gesti on de la pila Estudio de viabilidad

El problema del procesador desocupado


Qu e hacer cuando no hay otra hebra a la que cambiar? Soluci on: evitar el problema introduciendo una hebra ociosa que siempre sea ejecutable. C omo garantizar que una hebra sea siempre ejecutable?
evitar cualquier posible evento.

Qu e otras propiedades tiene la hebra ociosa?


ahorro de energ a halt. lanzar tareas peri odicas de baja prioridad desfragmentador.

Cu ando introducirla en el sistema?


antes de arrancar. durante el arranque. despu es de arrancar.

c Gustavo Romero

Cambio de hebra (65/67)

Voluntario Involuntario

Interrupci on del reloj Gesti on de la pila Estudio de viabilidad

Resumen hebras tipo n ucleo


Todas las operaciones de gesti on de hebras son realizadas en el n ucleo. No es necesaria una biblioteca de hebras sino utilizar el API de n ucleo. El n ucleo mantiene los TCBs de las hebras. El cambio de hebra require la intervenci on del n ucleo = cambio de contexto. La planicaci on se realizar a sobre hebras y no sobre procesos.

c Gustavo Romero

Cambio de hebra (66/67)

Voluntario Involuntario

Interrupci on del reloj Gesti on de la pila Estudio de viabilidad

Ventajas e inconvenientes de las hebras tipo n ucleo

Ventajas: Las hebras de un proceso pueden ejecutarse simult aneamente sobre varios procesadores paralelismo Una llamada al sistema bloqueante s olo bloquea a la hebra llamadora y no al resto de hebras de un proceso Podemos hacer que el propio n ucleo se implemente de forma multihebra
c Gustavo Romero

Inconvenientes: El cambio de hebra dentro de un proceso requiere de la intervenci on del n ucleo y provocar a dos cambios de modo por cambio de hebra La sobrecarga provocada por la intervenci on del n ucleo har a que su rendimiento sea peor que las hebras tipo usuario

Cambio de hebra (67/67)

You might also like