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

Unidad IV

  • 1.
    Hilo – Multihilo Unhilo 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 servidorde 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 deun 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 Estacionesde 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 Estacionesde 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 Pilade 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 Aspectosde 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 SistemasDistribuidos 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 deTiempo 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 deTiempo 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.