Hebras Sistemas Operativos
Capítulo 4
1
Dos características de un proceso
• Propietario de Recursos
– un proceso incluye un espacio virtual de direcciones donde se almacena
la imagen del proceso.
– En un momento dado el SO puede asignar recursos al proceso
• Es planificado/ejecutado – sigue un camino de ejecución que
puede intercalarse con la ejecución de otros procesos. Así unproceso puede estar Running, Ready, etc.
• Estas dos características son tratadas independientemente por
el SO
– Entidad que se ejecuta/despacha es llamada hebra
– Entidad dueña de recursos es llamado proceso
2
Procesamiento Multihebra
• La capacidad del SO de soportar múltiples hebras de ejecución
dentro de un proceso
• MS-DOS soporta sólo una hebra (y sólo un proceso)
• UNIXsoporta múltiples procesos de usuario, pero sólo una
hebra por proceso
• Windows, Solaris, Linux, Mach, y OS/2 soportan múltiples
hebra
• En este caso, el proceso es asociado con
– Un espacio virtual de direcciones que contiene la imagen del proceso
– Acceso protegido al procesador, otros procesos, archivos, etc.
3
4
Una hebra posee
•
•
•
•
•
Un estado de ejecución (running,ready, etc.)
Un contexto de hebra, cuando no está ejecutándose
Un stack de ejecución
Almacenamiento estático de memoria para variables locales
Derecho a acceder la memoria y recursos del proceso al que
pertenece
– Todas la hebras de un proceso comparten esta propiedad
5
• Todas la hebras de un proceso comparten los recursos de un proceso
• Cada hebra puede tener su propio estado, perocuando el proceso se suspende, todas
las hebras se suspenden. Cuando el proceso termina, todas la hebras terminan
• Cuando una hebra modifica un dato en memoria global, las otras
6
hebras ven el resultado de la modificación
Beneficios de las hebras
• Demora menos crear y eleminar una hebra que un proceso
• Demora menos hacer cambio de contexto entre hebras de un
mismo proceso queentre dos procesos
• Ya que las hebras de un proceso comparten memoria y
archivos, ellas se pueden comunicar sin necesidad de invocar
rutinas del kernel
7
Ejemplo de uso de hebras en un sistema
mono usuario multiprogramado
• Ejecución concurrente de tareas background y foreground:
– Ej cómputo y manejo de interface
• Procesamiento asíncrono
– Ej: Guarar periódicamente contenidos deeditor de texto
• Aumento velociad de ejecución
– Intercalar procesamiento con lectura de próximo job
• Estructura modular del programa
8
Estados de una hebra
• Los estados típico son Running, Ready, y Blocked
• Cuando un proceso es suspendido (swap-out), todas las hebras
son suspendiadas
• Si una hebra es bloqueada (estado Blocked), ¿qué pasa con las
otras hebras del mismoproceso? (ver ejemplo que sigue)
• Operaciones típicas que involucran estados
– Spawn
• Un proceso
• Una hebra
– Block.
• Por ejemplo debido a I/O
– Unblock
– Término
9
• RPC monohebra.
• RPC multihebra.
10
Multi hebras en mono procesador
11
Hebras nivel usuario versus nivel kernel
• Existen dos categorías generales de implementación de hebras:
nivel de usuario ynivel de kernel
• Nivel de usuario
– Toda la administración de las hebras la realiza la aplicación misma
(proceso) o por librerías de manejo de hebras
– El kernel no sabe que el proceso tiene varias hebras y planifica
(scheduled) el proceso no las hebras
– El kernel podría ser mono hebrado
12
13
Hebras a nivel de usuario
• Ventajas
– Cambio de contexto no necesita privilegios delkernel y es más rápido
– Scheduling puede depender y ser específico a la aplicación
– Pueden ser implementadas en cualquier SO, y no requieren cambios al
kernel
• Desventajas
– Cuando una hebra se boquea, el proceso entero se bloquea
– Aunque exista varios procesadores, la hebras no podrían hacer uso de
ellos en forma paralela
14
Hebras a nivel de kernel
• Toda la administración...
Regístrate para leer el documento completo.