unidad iv

10
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.

Upload: luis-moran

Post on 10-Jul-2015

178 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Unidad IV

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.

Page 2: Unidad IV

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.

Page 3: Unidad IV

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.

Page 4: Unidad IV

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

Page 5: Unidad IV

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

Page 6: Unidad IV

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:

Page 7: Unidad IV

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

Page 8: Unidad IV

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.

Page 9: Unidad IV

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.

Page 10: Unidad IV

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.