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í un proceso 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)
UNIX soporta 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, pero cuando 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 hebras ven el resultado de la modificación
6
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 que entre 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 de editor 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 mismo proceso? (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 y nivel 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
Página siguiente |