Gestión de Procesos, Hilos y Virtualización en Sistemas Distribuidos

Clasificado en Informática

Escrito el en español con un tamaño de 3,19 KB

Procesos: Programas en Ejecución

En los sistemas operativos (SO), la administración y la calendarización son los aspectos más importantes. En los sistemas distribuidos (SD), es fundamental organizar los sistemas cliente-servidor de manera eficiente mediante técnicas multihilo.

Relación proceso-hilo

Para ejecutar un programa, un SO crea un número virtual de procesos, donde cada uno ejecuta un programa diferente. Para seguir la pista de estos procesos, el SO utiliza una tabla de procesos que contiene:

  • Almacenamiento de valores de los registros de la CPU.
  • Mapas de memoria.
  • Archivos abiertos.
  • Información contable.
  • Privilegios.

Un hilo ejecuta su propio segmento de código, independiente de otros hilos. A diferencia de los procesos, no existe un intento de lograr un alto nivel de transparencia.

Uso de hilos en sistemas no distribuidos

  • Beneficio: En un proceso con un único hilo de control, cada vez que se ejecuta una llamada al sistema, el proceso completo se bloquea.
  • Paralelismo: Permite explorar el paralelismo al ejecutar programas dentro de un sistema multiprocesador.
  • Asignación: A cada hilo se le asigna una CPU diferente, mientras que los datos compartidos se almacenan en la memoria principal.

Implementación de hilos

Existen dos métodos principales:

  1. Bibliotecas de hilos ejecutables.
  2. Kernel que realiza la calendarización.

También existe una forma híbrida (procesos de peso ligero), que se ejecuta únicamente en el contexto de un solo proceso, optimizando las operaciones necesarias para crear o destruir hilos.

Hilos en Sistemas Distribuidos (SD)

El uso de hilos permite realizar llamadas de bloqueo al sistema sin detener todo el proceso. En los clientes multihilo, esto es vital para:

  • Gestionar grandes tiempos de propagación y lograr un alto grado de transparencia.
  • Evitar la latencia iniciando comunicaciones y realizando otras tareas simultáneamente (ej. AJAX).
  • Implementar servidores web replicados, balanceo de carga y servidores en paralelo para un mayor rendimiento y simplificación del código.

Virtualización

Los hilos y procesos son formas de ejecutar tareas al mismo tiempo. La virtualización de recursos permite que, a partir de una sola CPU, existan múltiples unidades de procesamiento.

Virtualización en SD

  • El software en niveles de abstracción (middleware) es más estable.
  • Aporta las interfaces necesarias para la diversidad de plataformas en las redes.
  • Mejora la portabilidad y la flexibilidad del sistema.

Arquitectura de Máquinas Virtuales

Existen diferencias en la virtualización según cuatro tipos de interfaces y niveles:

  • Hardware (HW)
  • Sistema Operativo (SO)
  • Bibliotecas de funciones
  • Aplicaciones (APLI)

Estos niveles interactúan mediante llamadas al sistema, bibliotecas de funciones e instrucciones privilegiadas o generales.

Entradas relacionadas: