Upload
luis-moran
View
178
Download
1
Embed Size (px)
Citation preview
Hilo – Multihilo
Un hilo de ejecución o subproceso es una característica que permite a una aplicación realizar varias tareas a la vez ( concurrentemente ). Los distintos hilos de ejecución comparten una serie de recursos tales como el espacio de memoria, los archivos abiertos, situación de autenticación, etc.
Esta técnica permite simplificar el diseño de una aplicación que debe llevar a cabo distintas funciones simultáneamente. Un hilo es básicamente una tarea que puede ser ejecutada en paralelo con otra tarea.
Hilos
Consideremos, un servidor de archivos que debe bloquearse en forma ocasional, en espera de acceso al disco. Si el servidor tiene varios hilos de control, se podría ejecutar un segundo hilo mientras el primero duerme. No es posible eso si se crean dos procesos servidores independientes.
Los hilos suelen ser llamados procesos ligeros.
Hilos
Los hilos de un proceso no son tan independientes como los procesos distintos. Todos los hilos tienen el mismo espacio de direcciones, comparten las mismas variables globales. Un hilo puede leer, escribir o limpiar de manera completa la pila de otro hilo.
Modelos de Sistemas
Estaciones de trabajo ( WorkStation ):
Sin disco: arranque por red ( via PXE )
Con discos individuales:
• Paginación y archivos temporales• Paginación, archivos temporales y binarios del sistema• Paginación, archivos tmp y binarios del sistema y ocultamiento de archivos• Sistema local de archivos completo
Modelos de Sistemas
Estaciones de trabajo ( WorkStation ):
Con discos individuales:Ventajas:
• Los usuarios tienen cantidad fija de poder de cómputo• Tiempo de respuesta garantizado• Alto grado de autonomía• Independencia si el servidor falla
Desventajas:• Poder de cómputo excesivo para ciertas aplicaciones• Asignación ineficiente de recursos• Alto Consumo de energía eléctrica
Modelos de Sistemas
Pila de procesadores:
• Terminales gráficas de alto desempeño• Es más parecido al modelo de tiempo compartido tradicional que al modelo PC• Economía de recursos• Basado en teoría de colas, su desempeño puede ser modelado de forma analítica• Modelo centralizado, con sus consecuentes ventajas y desventajas
Híbrido:
Asignación de Procesadores
Aspectos de diseño de asignación:
• Algoritmos deterministas vs heurísticos• Algoritmos centralizados vs descentralizados• Algoritmos óptimos vs subóptimos• Algoritmos locales vs globales• Algoritmos iniciados por emisor vs iniciados por el receptor
Planificación en Sistemas Distribuidos
Tolerancia a Fallos
Fallas de componentes ( hardware ): fallas transitorias, intermintentes y permanentesFallas de sistema: silentes, bizantinas
Uso de redundancia:
• Redundancia de información: código hamming,• Redundancia de tiempo: transacciones atómicas• Redundancia física: equipos adicionales, servidores en paralelo
Tolerancia mediante réplica activa: (deportes:árbitros, turbina de aviones)Tolerancia mediante respaldo primario: el eemplazo se realiza en forma limpia, solamente siendo notado por el sistema operativo cliente, no por la aplicación.
Sistemas Distribuidos de Tiempo REAL
Sistemas de Tiempo REAL
Es un sistema que interactúa activamente en un entorno con dinámica conocida con sus entradas, salidas y restricciones temporales. Cuando aparece un estímulo, este responde de forma correcta y en un tiempo límite. Rápido =! Preciso..
Para un RTOS ( Real Time Operating System ) se deben tener en cuenta los siguientes recursos:• Procesador: predecible, sin paginación,• Programación de tareas: lista de tareas con pocas entradas.• Comunicación entre tareas:mensajes vs semáforos. • Interrupciones:se procesa la información ántes de la siguiente interrupción.• Memoria: reparto de memoria y fragmentación. Sin paginación.• Comunicaciones: CAN bus, puertos serie.
Ejemplo de RTOS: QNX, Windows CE, VxWorks.
Sistemas Distribuidos de Tiempo REAL
Sistemas de Tiempo REAL
Aspectos de Diseño:
• Sincronización de reloj: activados por evento vs activados por tiempo.• Predictibilidad: debe asegurarse, incluso con carga pico.• Tolerancia a fallos: uso de réplica activa.• Soporte de lenguaje: se deben expresar los retrasos máximo y mínimo.