Post on 02-Feb-2016
description
(C) 2008 Mario Medina 1
Hebras
Mario MedinaSistemas Operativos 2008
mariomedina@udec.cl
Hebras (Threads)
• Algunos sistemas operativos permitentener varias líneas de ejecución de código dentro de un mismo proceso
Un proceso, una hebra: MS-DOSVarios procesos, una hebra: UNIX clásicoUn proceso, multi-hebras: Máquina virtual de JavaVarios procesos, multi-hebra: Unix, Linux, Windows, Solaris
Hebras y procesos Procesos en sistemas multi-hebras
• Sistema operativo separa protección(procesos) de concurrencia (hebras)
S. O. asigna recursos a nivel de procesoS. O. protege al proceso del resto del sistemaConcurrencia puede darse a nivel de
HebrasProcesosAmbos
Sistemas multi-hebras
• Un proceso puede tener una o máshebras, cada una con su propio
Estado de ejecuciónListo, en Ejecución, Bloqueado
Contexto de la CPU (PC, IR, etc.)Pila de usuarioVariables localesAcceso a memoria y recursos del proceso
Qué comparten las hebras?
• Todas las hebras de un mismoproceso comparten
El PCB del procesoEl estado del procesoLos recursos y la memoria del procesoEl mismo espacio de direccionesLos datos del proceso
(C) 2008 Mario Medina 2
Mono- y Multi-hebras Ventajas de las hebras
• Creación y destrucción rápida• Cambio de hebra más rápido que
cambio de contexto• Comunicación entre hebras más
eficiente que entre procesos• Esquema útil para
Servidores, acceso a dispositivos, procesamiento asincrónicoSistemas multiprocesadores
Estado de una hebra
• Similar a los estados de un procesoEn ejecución, Listo, Bloqueado
• Suspensión ocurre a nivel de procesoSi proceso es suspendido, todas lashebras se expulsan de memoria
• Crear proceso es crear una hebra• Una hebra puede crear otras hebras• Terminar una hebra libera su memoria
Queda disponible para las otras hebras
Hebras y tiempo compartido
• Hebras de nivel de sistema
Bloqueo de hebras• Bloqueo de una hebra implica bloqueo
del proceso?Depende de la implementación de hebras
• Hebras de nivel de usuarioLlamadas también ULT (User-Level Threads)
• Hebras de nivel de sistemaLlamadas también KLT (Kernel-Level Threads)
Hebras de nivel de usuario
• Sistema operativomaneja procesos
No sabe nada sobre lashebras!
• Aplicación maneja lashebras a través de una biblioteca de nivelde usuario
Ejemplos: Solaris Green Threads, GNU Portable Threads
Modelo muchos-a-uno
(C) 2008 Mario Medina 3
Hebras de nivel de usuario
• Biblioteca de nivel de usuarioCreación/destrucción de hebrasCambio/reemplazo de hebrasControl de ejecución de hebrasMantención de estado de las hebrasIntercambio de datos entre las hebras
Planificación de ULT
Planificación de ULT• Caso a)
Hebra 1 espera por CPUHebra 2 está en ejecución, yProceso está en ejecución
• Caso b)Hebra 1 espera por CPUHebra 2 en ejecuciónsolicita E/S, por lo queProceso se bloquea en espera de evento
• Caso c)Hebra 1 espera por CPUHebra 2 está en ejecución(pero proceso no tieneCPU) Ocurre el evento, y proceso pasa a Listo
• Caso d)Proceso se ejecuta, por lo queAhora hebra 2 se bloquea, yHebra 1 entra en ejecución
Ventajas y desventajas de ULT
• VentajasCambio de hebras no involucra cambio de contexto
Más barato!
Manejo de hebras bajocontrol de aplicaciónNo depende del S. O.Datos compartidos en el mismo espacio de datos del usuario
• DesventajasLlamada al sistemabloquea todas lashebrasNo aprovecha el paralelismo en sistemas multi-procesadores o multi-core
Hebras de nivel de sistema
• Sistema operativomaneja procesoscomo un todo
Mantiene informaciónde cada proceso y sushebras
• Planificación a nivelde procesos
Una hebra de kernel por cada hebra de usuario Modelo uno-a-uno
Ventajas y desventajas de KLT
• VentajasLlamada al sistemasólo bloquea unahebraSistemas operativosde hoy usan KLT
Windows 2000 / XP / Vista, Linux, Mac OS X
S. O. planifica hebrasde un mismo procesoen múltiples CPUs
• Desventajascambio de hebrainvolucra cambio de modo
Igual es más baratoque cambio de contexto
Crear hebra de usuario implica crearhebra de sistema
Más costoso
(C) 2008 Mario Medina 4
Esquema combinado
• Costo de creación de hebras en KLT es alto
S. O. limitan númerode hebras
• Esquema combinadomultiplexa ULT en varias KLT
Desacopla hebras de usuario de hebras de sistema
Esquema combinado
• Aplicación usa hebras de nivel de usuario
Provistas por biblioteca
• S. O. planifica hebras de nivel de sistema
Apto para sistemas multi-procesador / multi-core
• Esquema implementado en IRIX, HP-UX, Solaris 8
Esquema combinado
• Busca aprovechar las ventajas de ULT y KLT
Aplicación es escrita al nivel de paralelismo lógico más convenientePermite alta concurrenciaAplicación es ejecutada al nivel de paralelismo físico más conveniente
Reduce costosAprovecha paralelismo del hardware
Windows: Process Explorer
Windows: Process Explorer