Hilos(threads) En este contexto, un proceso recibe el nombre de proceso pesado, mientras que un hilo recibe el nombre de proceso ligero. El trmino hilo se refiere sintctica y semnticamente a hilos de ejecucin. Hilos(threads) En Sistemas Operativos, un hilo de ejecucin, hebra o subproceso es la unidad de procesamiento ms pequea que puede ser planificada por un sistema operativo. Los hilos de ejecucin que comparten los mismos recursos, sumados a estos recursos, son en conjunto conocidos como un proceso. Hilos(threads) Un Hilo o proceso ligero o contexto de ejecucin es la unidad bsica de utilizacin del CPU; consiste de: Contador de programa Conjunto de registro Espacio de stack Estado de un hilo en ejecucin Hilos(threads) Un hilo comparte con sus Hilos pares: Seccin de cdigo Seccin de cdigo Recursos del Sistema Operativo En conjunto se lo conoce como tarea
Un proceso tradicional o pesado, es igual a una tarea con
un hilo. Hilos y procesos Procesos con un solo hilo o mltiples hilos Hilos En una tarea donde hay mltiples hilos, mientras un hilo servidor est bloqueado y esperando, otro hilo en la misma tarea puede ejecutarse. Cooperacin de mltiples hilos en la misma tarea aumenta la tasa de trabajos por unidad de tiempo y mejorar el rendimiento. Aplicaciones que requieren compartir un buffer comn sacan provecho de la utilizacin de hilos. Los hilos proveen mecanismos que permiten a procesos secuenciales hacer llamadas bloqueantes mientras otros en paralelo ejecutan otras operaciones. Beneficios
Comparticin de recursos Economa Utilizacin de Arquitecturas de mltiples procesadores Multihilos
El trmino multihilo hace referencia a la capacidad de
un SO para mantener varios hilos de ejecucin dentro del mismo proceso. Sistema Operativo que mantiene varios hilos de ejecucin dentro de un mismo proceso. MS-DOS soporta un solo hilo Unix soporta mltiples procesos de usuario, pero solo un hilo por proceso. Windows 2000,Solaris,Linux, Mac OS, soportan mltiples hilos. Modelos de proceso con un solo hilo y de muchos hilos MMU (Memory Management Unit) La unidad de gestin de memoria, unidad de administracin de memoria o unidad de manejo de memoria (del ingls Memory Management Unit, MMU) es un dispositivo de hadware formado por un grupo de circuitos integrados, responsable del manejo de los accesos a la memoria por parte de la CPU o procesador. Entre las funciones de este dispositivo se encuentran la traduccin de las direcciones lgicas (o virtuales) a direcciones fsicas (o reales), la proteccin de la memoria, el control de cach. (TLB) Translation Lookaside Buffer Es una memoria cach administrada por la MMU, que contiene partes de la tabla de paginacin, es decir, relaciones entre direcciones lgicas y fsicas. Posee un nmero fijo de entradas y se utiliza para obtener la traduccin rpida de direcciones. Si no existe una entrada buscada, se deber revisar la tabla de paginacin y tardar varios ciclos ms, sobre todo si la pgina que contiene la direccin buscada no est en memoria primaria . Si en la tabla de paginacin no se encuentra la direccin buscada, saltar una interrupcin conocida como fallo de pagina. Direcciones Lgicas y Fsicas Direccin Lgica: generada por el CPU, tambin llamada direccin virtual. Direccin Fsica: direccin vista por la unidad de memoria. Direcciones lgicas y fsicas son las mismas en los esquemas de tiempo de compilacin y tiempo de carga; difieren en el esquema de tiempo de ejecucin. IPC (Inter-Process Communication) La comunicacin entre procesos es una funcin bsica de los sistemas operativos que provee un mecanismo que permite a los procesos comunicarse y sincronizarse entre s, normalmente a travs de un sistema de bajo nivel de paso de mensajes que ofrece la red subyacente. IPC (Inter-Process Communication)
Las tcnicas de IPC estn divididas dentro de mtodos
para: paso de mensajes, sincronizacin, memoria compartida y llamadas de procedimientos remotos (RPC). IPC (Inter-Process Communication) Mtodos para implementar Hilos Biblioteca de hilos a nivel de usuario Biblioteca de hilos a nivel de Kernel Hilos a nivel de usuario El manejo de hilos lo hace una librera de hilos a nivel de usuario. Ejemplo: Hilos POSIX Mach C- threads Hilo de solaris Hilos a nivel de usuario (un CPU con dos ncleos) Multiprocesos vs multihilos Multiprocesos vs multihilos