sisop05-hebras

4
(C) 2008 Mario Medina 1 Hebras Mario Medina Sistemas Operativos 2008 [email protected] Hebras (Threads) • Algunos sistemas operativos permiten tener varias líneas de ejecución de código dentro de un mismo proceso Un proceso, una hebra: MS-DOS Varios procesos, una hebra: UNIX clásico Un proceso, multi-hebras: Máquina virtual de Java Varios 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 proceso S. O. protege al proceso del resto del sistema Concurrencia puede darse a nivel de h Hebras h Procesos h Ambos Sistemas multi-hebras • Un proceso puede tener una o más hebras, cada una con su propio Estado de ejecución h Listo, en Ejecución, Bloqueado Contexto de la CPU (PC, IR, etc.) Pila de usuario Variables locales Acceso a memoria y recursos del proceso Qué comparten las hebras? • Todas las hebras de un mismo proceso comparten El PCB del proceso El estado del proceso Los recursos y la memoria del proceso El mismo espacio de direcciones Los datos del proceso

Upload: agentee4

Post on 02-Feb-2016

221 views

Category:

Documents


0 download

DESCRIPTION

Hebras

TRANSCRIPT

Page 1: SisOp05-Hebras

(C) 2008 Mario Medina 1

Hebras

Mario MedinaSistemas Operativos 2008

[email protected]

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

Page 2: SisOp05-Hebras

(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

Page 3: SisOp05-Hebras

(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

Page 4: SisOp05-Hebras

(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