Professional Documents
Culture Documents
Cambio de hebra
Gustavo Romero
Arquitectura y Tecnolog a de Computadores
13 de febrero de 2009
c Gustavo Romero
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
Voluntario Involuntario
Lecturas recomendadas
Tanuenbaum Sistemas Operativos Modernos (2.2) Silberschatz Stallings Fundamentos de Sistemas Operativos (4) Sistemas Operativos (4)
c Gustavo Romero
Voluntario Involuntario
Motivaci on
Motivos para cambiar de hebra:
Comportamiento interno de la hebra.
ejemplo: operaci on de E/S.
Involuntario:
planicaci on apropiativa/expropiativa (preemtive). entre cualquier tipo de hebras. es necesario entrar y salir del n ucleo.
c Gustavo Romero
Voluntario Involuntario
Voluntario
c Gustavo Romero
Voluntario Involuntario
Planicaci on cooperativa
Modelo simplicado: 2 hebras tipo usuario limitadas por uso de procesador activaci on alternativa mediante yield.
c Gustavo Romero
Voluntario Involuntario
c Gustavo Romero
Voluntario Involuntario
c Gustavo Romero
Voluntario Involuntario
c Gustavo Romero
Voluntario Involuntario
c Gustavo Romero
Voluntario Involuntario
c Gustavo Romero
Voluntario Involuntario
c Gustavo Romero
Voluntario Involuntario
c Gustavo Romero
Voluntario Involuntario
c Gustavo Romero
Voluntario Involuntario
c Gustavo Romero
Voluntario Involuntario
c Gustavo Romero
Voluntario Involuntario
c Gustavo Romero
Voluntario Involuntario
c Gustavo Romero
Voluntario Involuntario
c Gustavo Romero
Voluntario Involuntario
Voluntario Involuntario
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
Voluntario Involuntario
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
Voluntario Involuntario
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
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
Voluntario Involuntario
Involuntario
c Gustavo Romero
Voluntario Involuntario
c Gustavo Romero
Voluntario Involuntario
Eventos impredecibles:1
fallo de p agina (antes de la instrucci on).
Llamada al sistema.
Voluntario Involuntario
Impresora:
atasco de papel. tinta agotada.
Red:
paquete recibido.
c Gustavo Romero
Voluntario Involuntario
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
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
Manejo de excepciones
c Gustavo Romero
Voluntario Involuntario
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
Conclusiones
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
Voluntario Involuntario
c Gustavo Romero
Voluntario Involuntario
c Gustavo Romero
Voluntario Involuntario
c Gustavo Romero
Voluntario Involuntario
c Gustavo Romero
Voluntario Involuntario
c Gustavo Romero
Voluntario Involuntario
c Gustavo Romero
Voluntario Involuntario
c Gustavo Romero
Voluntario Involuntario
c Gustavo Romero
Voluntario Involuntario
c Gustavo Romero
Voluntario Involuntario
c Gustavo Romero
Voluntario Involuntario
c Gustavo Romero
Voluntario Involuntario
c Gustavo Romero
Voluntario Involuntario
c Gustavo Romero
Voluntario Involuntario
c Gustavo Romero
Voluntario Involuntario
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
Voluntario Involuntario
c Gustavo Romero
Voluntario Involuntario
c Gustavo Romero
Voluntario Involuntario
c Gustavo Romero
Voluntario Involuntario
c Gustavo Romero
Voluntario Involuntario
c Gustavo Romero
Voluntario Involuntario
c Gustavo Romero
Voluntario Involuntario
c Gustavo Romero
Voluntario Involuntario
c Gustavo Romero
Voluntario Involuntario
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.
c Gustavo Romero
Voluntario Involuntario
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
Voluntario Involuntario
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
Voluntario Involuntario
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
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
c Gustavo Romero
Voluntario Involuntario
c Gustavo Romero
Voluntario Involuntario
c Gustavo Romero
Voluntario Involuntario
c Gustavo Romero
Voluntario Involuntario
c Gustavo Romero
Voluntario Involuntario
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