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 |