Procesos y procesadores
Procesos y Procesadores en Sistemas Distribuidos
10.1 Introducción a los Hilos (Threads)
Muchos S. O. distribuidos soportan múltiples hilos de control dentro de un proceso que [25, Tanenbaum]: ² Comparten un único espacio de direcciones. ² Se ejecutan quasi - paralelamente como si fueran procesos independientes. Ej.: servidor de archivos que debe bloquearse ocasionalmente enespera de acceso al disco: ² Si tiene varios hilos de control podría ejecutar un segundo hilo mientras el primero espera: – El resultado sería mejor rendimiento y desempeño. – No se logra esto con procesos servidores independientes puesto que deben compartir un bu¤er caché común y deben estar en el mismo espacio de direcciones. En muchos sentidos los hilos son como miniprocesos: ² Cada hilo: – Seejecuta en forma estrictamente secuencial. – Tiene su propio contador de programa y una pila para llevar un registro de su posición. ² Los hilos comparten la cpu de la misma forma que lo hacen los procesos: – Secuencialmente, en tiempo compartido. ² Solo en un multiprocesador se pueden ejecutar realmente en paralelo. 315
316CAPÍTULO 10. PROCESOS Y PROCESADORES EN SISTEMAS DISTRIBUIDOS ² Loshilos pueden crear hilos hijos. ² Mientras un hilo está bloqueado se puede ejecutar otro hilo del mismo proceso. Los distintos hilos de un proceso comparten un espacio de direcciones, el conjunto de archivos abiertos, los procesos hijos, cronómetros, señales, etc. Los hilos pueden tener distintos estados: en ejecución, bloqueado, listo, terminado.
10.2
Uso de Hilos
Los hilos permiten lacombinación del paralelismo con la ejecución secuencial y el bloqueo de las llamadas al sistema [25, Tanenbaum]. Consideramos el ejemplo del servidor de archivos con sus posibles organizaciones para muchos hilos de ejecución. Iniciamos con el modelo servidor / trabajador: ² Un hilo, el servidor, lee las solicitudes de trabajo en el buzón del sistema. ² Elige a un hilo trabajador inactivo (bloqueado) yle envía la solicitud, despertándolo. ² El hilo trabajador veri…ca si puede satisfacer la solicitud por medio del bloque caché compartido, al que tienen acceso todos los hilos. ² Si no envía un mensaje al disco para obtener el bloque necesario y se duerme esperando el …n de la operación. ² Se llama: – Al plani…cador y se inicializa otro hilo, que tal vez sea el servidor, para pedir más trabajo; o.– A otro trabajador listo para realizar un trabajo. Los hilos ganan un desempeño considerable pero cada uno de ellos se programa en forma secuencial. Otro modelo es el de equipo: ² Todos los hilos son iguales y cada uno obtiene y procesa sus propias solicitudes. ² No hay servidor. ² Se utiliza una cola de trabajo que contiene todos los trabajos pendientes, que son trabajos que los hilos no hanpodido manejar. ² Un hilo debe veri…car primero la cola de trabajo antes de buscar en el buzón del sistema. Un tercer modelo es el de entubamiento: ² El primer hilo genera ciertos datos y los trans…ere al siguiente para su procesamiento.
10.3. ASPECTOS DEL DISEÑO DE UN PAQUETE DE HILOS
317
² Los datos pasan de hilo en hilo y en cada etapa se lleva a cabo cierto procesamiento. Un programadiseñado adecuadamente y que utilice hilos debe funcionar bien: ² En una única cpu con hilos compartidos. ² En un verdadero multiprocesador.
10.3
Aspectos del Diseño de un Paquete de Hilos
Un conjunto de primitivas relacionadas con los hilos (ej.: llamadas a biblioteca) disponibles para los usuarios se llama un “paquete de hilos” [25, Tanenbaum]. Respecto del manejo de los hilos se tienenhilos estáticos e hilos dinámicos. En un diseño estático: ² Se elige el número de hilos al escribir el programa o durante su compilación. ² Cada uno de ellos tiene asociada una pila …ja. ² Se logra simplicidad pero también in‡exibilidad. En un diseño dinámico: ² Se permite la creación y destrucción de los hilos durante la ejecución. ² La llamada para la creación de hilos determina: – El programa...
Regístrate para leer el documento completo.