1/6 PROCESOS E HILOS - Hilo! contexto de ejecución que se planifica de forma independiente pero que comparte un mismo espacio de direcciones con otros hilos - Proceso! conjunto de uno o más hilos y los recursos del sistema asociados (memoria, datos, archivos abiertos y dispositivos) - Proceso = tarea! programa en ejecución. Es controlado y planificado por el sistema operativo - MONOHILO! enfoque tradicional con un solo hilo de ejecución por proceso " Un proceso, un hilo! MS-DOS " Múltiples procesos, un hilo por proceso! UNIX - MULTIHILO! capacidad de un S.O. para mantener varios hilos de ejecución dentro de un mismo proceso - Elementos de los procesos: " Espacio de direcciones virtuales que contiene la imagen del proceso " Acceso protegido a los procesadores, otros procesos archivos y recursos de E/S - Elementos de los hilos de un proceso: " Estado del hilo (ejecución, listo, etc.) " Contexto del procesador (contador de programa independiente) " Pila de ejecución " Almacenamiento estático para las variables locales " Acceso a memoria y recursos del proceso, compartidos con el resto de hilos del mismo proceso
2/6 MODELOS DE PROCESO MONOHILO Y MULTIHILO Modelo de Proceso Monohilo Modelo de proceso multihilo Hilo Hilo Bloque de Pila de Bloque Bloque control de usuario de control de control proceso de hilo de hilo Bloque de Espacio de Pila del control de Pila de Pila de direcciones núcleo proceso usuario usuario de usuario Espacio de Pila del Pila del direcciones núcleo núcleo de usuario ENTORNO MULTIHILO " Un único bloque de control de proceso " Un único espacio de direcciones de usuario " Una Pila separada para cada hilo " Un bloque de control para cada hilo " Todos los hilos de un proceso: # comparten el estado y los recursos del proceso # residen en el mismo espacio de direcciones # tienen acceso a los mismos datos Ventajas de la implementación de hilos: # Creación de un nuevo hilo más rápido que un proceso # Terminación de un hilo más rápido que un proceso # Rapidez en cambiar de un hilo a otro # Los hilos de un mismo proceso se comunican SIN acceder al núcleo # Es más eficiente relacionar un conjunto de hilos que un conjunto de procesos # Ejemplo: Servidor de Archivos
3/6 IMPLEMENTACION DE HILOS a) Nivel de Usuario puro b) Nivel de Núcleo puro c) Combinado Hilo a nivel de usuario Hilo a nivel de núcleo Proceso a) Hilos a nivel de usuario (ULT = user level thread) Todo el trabajo de hilos lo realiza la aplicación en el espacio de usuario El núcleo no es consciente de la existencia de hilos Biblioteca de hilos: o crea y destruye hilos o intercambia mensajes y datos o planifica la ejecución o mantiene el contexto de los hilos b) Hilos a nivel de núcleo (KLT = kernel level thread) Todo el trabajo de hilos lo realiza el núcleo (Windows 2000, Linux y OS/2) La planificación se realiza en función de los hilos c) Combinado Combina las ventajas de ULT y KLT (Solaris)
4/6 MILTIPROCESO SIMÉTRICO (SMP) ARQUITECTURAS SMP Procesadores paralelos Memoria compartida (fuertemente acoplada) Memoria distribuida (débilmente acoplada) Maestro/esclavo Multiproceso Agrupaciones simétrico (SMP) a) Arquitectura Maestro/esclavo El núcleo siempre se ejecuta en el mismo procesador Un procesador posee el control de la memoria y dispositivos de E/S Desventajas! fallo en el maestro y puede ser un cuello de botella b) Multiprocesador simétrico El núcleo se puede ejecutar en cualquier procesador S.O. más complejo, cada procesador se autoplanifica c) Agrupaciones Proporcionan escalabilidad, alto rendimiento y alta disponibilidad DEFINICIÓN = grupo de computadoras interconectadas que trabajan juntas creando la ilusión de ser una única máquina
5/6 MICRONUCLEOS Micronúcleo! es un pequeño núcleo del S.O. que proporciona las bases para ampliaciones modulares Ejemplos: Windows 2000, Mach Antecesores: - S.O. monolíticos S.O. por capas ARQUITECTURA MICRONUCLEO (microkernel) Filosofía:! sólo las funciones esenciales del núcleo del S.O. permanecen en el núcleo! las aplicaciones y servicios se construyen sobre el micronúcleo y se ejecutan en modo usuario! ejemplos: controladores de dispositivos, sistemas de archivos, gestores de memoria virtual, sistemas de ventanas y servicios de seguridad! en núcleo permite la comunicación entre servidores, administra los mensajes y protege el intercambio de mensajes Núcleos por capas Micronúcleos Modo Usuarios P G S S M Usuario r e e e e Sistemas de Archivos o s r r m C t v v o Comunicación entre procesos Usuario. o i I r r d d i Modo Gestión de dispositivos y E/S C.... o o a Núcleo l d r r Memoria virtual i i V e s A P i Gestión de procesos primitivos n p r r r t o c o t e s h c. HARDWARE Nucleo Micronúcleo HARDWARE
6/6 Ventajas: $ Uniformidad de interfaces! utilización de mensajes $ Extensibilidad! posibilidad de añadir nuevos servicios $ Flexibilidad! se adapta a las necesidades de los usuarios $ Portabilidad $ Fiabilidad! un micronúcleo puede probarse rigurosamente $ Soporte a sistemas distribuidos $ Soporte para S.O. orientados a objetos DISEÑO DE MICRONUCLEO Funciones: $ Gestión de memoria a bajo nivel! traducción de página virtual en marco físico $ Comunicación entre procesos (IPC)! a través de mensajes $ Gestión de interrupciones y E/S HILOS Y PROCESOS EN LINUX Estados de los procesos # Ejecución! abarca dos estados: ejecutando o listo # Interrumpible! estado de bloqueo, el proceso espera un suceso de E/S, la liberación de un recurso o una señal de otro proceso # No interrumpible! estado de bloqueo, un proceso espera una condición de HW (no acepta señales) # Parado! el proceso ha sido detenido por otro proceso # Zombie! el proceso terminó, pero debe permanecer en la tabla de procesos Hilos en Linux # Cuando dos procesos comparten la misma memoria virtual, operan como hilos dentro de un único proceso, pero Linux no diferencia entre hilo y proceso