1. 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.
2. 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.
3. 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.
4. 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
5. 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
6. 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:
7. 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
8. Planificación en Sistemas Distribuidos
Tolerancia a Fallos
Fallas de componentes ( hardware ): fallas transitorias, intermintentes y permanentes
Fallas 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.
9. 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.
10. 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.