• Usando hilos, se puede permitir el uso de llamadas al
sistema bloqueantes sin necesidad de “bloquear” todo el proceso. Esta propiedad vuelve a los hilos particularmente atractivos para su uso dentro de sistemas distribuidos. CLIENTES MULTIHILOS • Para establecer un alto grado de transparencia de distribución, los sistemas distribuidos que operan en redes de área de amplia pudieran necesitar la conciliación de grandes tiempos de propagación de mensajes de interproceso. En redes de área amplia, los ciclos tienen retrasos que pueden rondar fácilmente el orden de cientos milisegundos, o incluso segundos en algunas ocasiones. • La manera más común de ocultar las latencias de comunicación es iniciar la comunicación y proceder de inmediato con alguna otra cosa. CLIENTE MULTIHILOS EJEMPLO: SERVIDORES MULTIHILOS • Aunque existen importantes beneficios para los clientes multihilos, como hemos visto en los sistemas distribuidos el principal uso de la tecnología multihilos está del lado del servidor. La práctica muestra que la tecnología multihilos no solamente simplifica el código del servidor de manera considerable, sino que además hace mas sencillo el desarrollo de servidores que explotan el paralelismo para lograr un alto rendimiento, incluso en sistemas de un solo procesador. Sin embargo, ahora las computadoras multiproceso están ampliamente disponibles como estaciones de trabajo de propósito general, aplicar la tecnología multihilos para implementar el paralelismo es aún más útil SERVIDORES MULTIHILOS SERVIDORES MULTIHILOS • Hasta el momento solo hemos visto dos diseños posibles: un servidor de archivos multihilos y un servidor de archivos de un solo hilo. Supongamos que los hilos no están disponibles, pero los diseñadores de sistemas consideran inaceptables la pérdida de rendimiento debido al uso de un solo hilo. Una tercera posibilidad es la de ejecutar el hilo servidor como una gran máquina de estado finito. Cuando entra una petición, la examina el único hilo. Si podemos satisfacer la petición desde el caché, bien, pero si no, debemos enviar un mensaje al disco. SERVIDORES MULTIHILOS • En este diseño se pierde el modelo de “proceso secuencial” que teníamos en los 2 primeros casos, el estado del cálculo debe ser guardado y almacenado de manera explícita en la tabla para cada mensaje enviado y recibido