1.757 visualizaciones desde el 17 de Enero del 2019
889,3 KB
16 paginas
Creado hace 13a (22/05/2011)
Sistemas Operativos Distribuidos
Gestión de
Gestión de
Procesos
Procesos
Escenario de Partida: Términos
• Trabajos: Conjuntos de tareas (procesos o hilos) que
demandan: (recursos x tiempo)
– Recursos: Datos dispositivos CPU u otros requisitos (finitos)
Recursos: Datos, dispositivos, CPU u otros requisitos (finitos)
necesarios para la realización de trabajos.
– Tiempo: Periodo durante el cual los recursos están asignados (de
forma exclusiva o no) a un determinado trabajo.
– Relación entre las tareas: Las tareas se deben ejecutar siguiendo
unas restricciones en relación a los datos que generan o necesitan
(dependientes y concurrentes)
(
)
p
y
• Planificación: Asignación de trabajos a los nodos de proceso
correspondientes. Puede implicar revisar, auditar y corregir
esa asignación.
Gestión de Procesos
1. Conceptos y taxonomías: Trabajos y sistemas paralelos
2. Planificación estática:
! Planificación de tareas dependientes
! Planificación de tareas dependientes
! Planificación de tareas paralelas
! Planificación de múltiples tareas
3. Planificación dinámica:
! Equilibrado de carga
! Migración de procesos
! Migración de datos
! Migración de datos
! Equilibrado de conexiones
Escenario de Partida
Recursos demandados
Fernando Pérez Costoya
José María Peña Sánchez
Nodos
(Procesadores)
Trabajos
Tareas
OBJETIVO
Asignación de los trabajos de los usuarios a los
distintos procesadores, con el objetivo de mejorar
prestaciones frente a la solución tradicional
Sistemas Operativos Distribuidos
3
Fernando Pérez Costoya
José María Peña Sánchez
Sistemas Operativos Distribuidos
4
Fernando Pérez Costoya
José María Peña Sánchez
1
Características de un Sistema Distribuido
Escenario de Partida: Trabajos
• Sistemas con memoria compartida
– Recursos de un proceso accesibles desde todos los procesadores
p
• Mapa de memoria
• Recursos internos del SO (ficheros/dispositivos abiertos, puertos, etc.)
– Reparto/equilibrio de carga (load sharing/balancing) automático
• Si el procesador queda libre puede ejecutar cualquier proceso listo
– Beneficios del reparto de carga:
• Mejora uso de recursos y rendimiento en el sistema
• Aplicación paralela usa automáticamente procesadores disponibles
di t ib id
• Sistemas distribuidos
Si t
– Proceso ligado a procesador durante toda su vida
– Recursos de un proceso accesibles sólo desde procesador local
¿Qué se tiene que ejecutar?
Tareas en las que se dividen los trabajos:
• Tareas disjuntas
T
– Procesos independientes
– Pertenecientes a distintos usuarios
di
t
j
• Tareas cooperantes
– Interaccionan entre sí
– Pertenecientes a una misma aplicación
– Pueden presentar dependencias
– O Pueden requerir ejecución en paralelo
• No sólo mapa de memoria; También recursos internos del SO
– Reparto de carga requiere migración de procesos
Sistemas Operativos Distribuidos
5
Fernando Pérez Costoya
José María Peña Sánchez
Sistemas Operativos Distribuidos
6
Fernando Pérez Costoya
José María Peña Sánchez
Tareas Cooperantes
Escenario de Partida: Objetivos
Dependencias entre tareas
• Modelizado por medio de un
grafo dirigido acíclico (DAG).
)
g
g
(
Tareas
Transferencia de datos
Ejecución paralela
•
j
Implican un número de tareas
concurrentes ejecutando
simultáneamente:
– De forma síncrona o asíncrona.
– En base a una topología de
conexión.
– Siguiendo un modelo
maestro/esclavo o distribuido.
– Con unas tasas de comunicación y
un intercambio de mensajes.
¿Qué “mejoras de prestaciones” se espera conseguir?
Tipología de sistemas:
• Sistemas de alta disponibilidad
Sistemas de alta disponibilidad
– HAS: High Availability Systems
– Que el servicio siempre esté operativo
– Tolerancia a fallos
• Sistemas de alto rendimiento
– HPC: High Performance Computing
– Que se alcance una potencia de cómputo mayor
– Ejecución de trabajos pesados en menor tiempo
Ejecución de trabajos pesados en menor tiempo
• Sistemas de alto aprovechamiento
• Ejemplo: Workflow
• Ejemplo: Código MPI
– HTS: High Troughput Systems
– Que el número de tareas servidas sea el máximo posible
– Maximizar el uso de los recursos o servir a más clientes (puede no ser lo mismo).
Sistemas Operativos Distribuidos
7
Fernando Pérez Costoya
José María Peña Sánchez
Sistemas Operativos Distribuidos
8
Fernando Pérez Costoya
José María Peña Sánchez
2
Sistemas de Cómputo
• Dependen de uso previsto del sistema:
– Máquinas autónomas de usuarios independientes
• Usuario cede uso de su máquina pero sólo cuando está desocupada
• ¿Qué ocurre cuando deja de estarlo?
q
p
p
– Migrar procesos externos a otros nodos inactivos
– Continuar ejecutando procesos externos con prioridad baja
– Sistema dedicado sólo a ejecutar trabajos paralelos
• Se puede hacer una estrategia de asignación a priori
• O ajustar el comportamiento del sistema dinámicamente
• Se intenta optimizar tiempo de ejecución de la aplicación o el
p
p
p
j
aprovechamiento de los recursos
– Sistema distribuido general (múltiples usuarios y aplicaciones)
• Se intenta lograr un reparto de carga adecuado
Tipología de Clusters
• High Performance Clusters
• Beowulf; programas paralelos; MPI; dedicación a un problema
• High Availability Clusters
High Availability Clusters
• ServiceGuard, Lifekeeper, Failsafe, heartbeat
• High Throughput Clusters
• Workload/resource managers; equilibrado de carga; instalaciones de supercomputación
• Según servicio de aplicación:
– Web-Service Clusters
• LVS/Piranha; equilibrado de conexiones TCP; datos replicados
• GFS; sistemas de ficheros paralelos; identica visión de los datos desde cada nodo
– Storage Clusters
– Database Clusters
• Oracle Parallel Server;
Sistemas Operativos Distribuidos
9
Fernando Pérez Costoya
José María Peña Sánchez
Sistemas Operativos Distribuidos
10
Fernando Pérez Costoya
José María Peña Sánchez
Planificación
Planificación
• La planificación consiste en el despliegue de las tareas de un
• Dedicación de los procesadores:
trabajo sobre unos nodos del sistema:
– Atendiendo a las necesidades de recursos
Atendiendo a las necesidades de recursos
– Atendiendo a las dependencias entre las tareas
• El rendimiento final depende de diversos factores:
– Concurrencia: Uso del mayor número de procesadores
simultáneamente.
– Grado de paralelismo: El grado más fino en el que se pueda
descomponer la tarea
descomponer la tarea.
– Costes de comunicación: Diferentes entre procesadores dentro del
mismo nodo y procesadores en diferentes nodos.
– Recursos compartidos: Uso de recursos (como la memoria) comunes
para varios procesadores dentro del mismo nodo.
– Exclusiva: Asignación de una tarea por procesador.
– Tiempo compartido: En tareas de cómputo masivo con E/S reducida
afecta dramáticamente en el rendimiento. Habitualmente no se hace.
p
p
p
• La planificación de un trabajo puede hacerse de dos formas:
– Planificación estática: Inicialmente se determina dónde y cuándo se
va a ejecutar las tareas asociadas a un determinado trabajo. Se
determina antes de que el trabajo entre en máquina.
– Planificación dinámica: Una vez desplegado un trabajo, y de
Planificación dinámica: Una vez desplegado un trabajo, y de
acuerdo al comportamiento del sistema, se puede revisar este
despliegue inicial. Considera que el trabajo ya está en ejecución en la
máquina.
Fernando Pérez Costoya
José María Peña Sánchez
Sistemas Operativos Distribuidos
12
Fernando Pérez Costoya
José María Peña Sánchez
3
Sistemas Operativos Distribuidos
Planificación Estática
Planificación Estática
Gestión de
Gestión de
Procesos
Procesos
Fernando Pérez Costoya
José María Peña Sánchez
• Generalmente se aplica antes de permitir la ejecución del
trabajo en el sistema.
• El planificador (a menudo llamado resource manager)
El planificador (a menudo llamado resource manager)
selecciona un trabajo de la cola (según política) y si hay
recursos disponibles lo pone en ejecución, si no espera.
Cola de Trabajos
Pl
Planificador
ifi d
Recursos?
sí
no
p
espera
Sistema
Fernando Pérez Costoya
José María Peña Sánchez
Trabajos
Descripción de los Trabajos
Planificación de Tareas Dependientes
j
• Para poder tomar las decisiones correspondientes a la política
del planificador, éste debe disponer de información sobre los
trabajos:
– Número de tareas (ejecutables correspondientes)
– Prioridad
– Relación entre ellas (DAG)
– Estimación de consumo de recursos (procesadores, memoria, disco)
– Estimación del tiempo de ejecución (por tarea)
– Otros parámetros de ejecución
– Restricciones aplicables
Restricciones aplicables
• Estas definiciones se incluyen en un fichero de descripción del
trabajo, cuyo formato depende del planificador
correspondiente.
Fernando Pérez Costoya
José María Peña Sánchez
• Considera los siguientes aspectos:
– Duración (estimada) de cada tarea.
– Volumen de datos transmitido al finalizar la tarea (e.g. fichero)
)
– Precedencia entre tareas (una tarea requiere la finalización previa de
( g
otras).
– Restricciones debidas a la necesidad de recursos especiales.
11
7
1
1
4
2
2
1
1
4
2
2
3
1
1
3
5
Representado por medio de un grafo acíclico dirigido
(DAG)
Sistemas Operativos Distribuidos
16
Una opción consiste en transformar todos
los datos a las mismas unidades (tiempo):
" Tiempo de ejecución (tareas)
" Tiempo de transmisión (datos)
" Tiempo de transmisión (datos)
La Heterogeneidad complica estas
estimación:
" Ejecución dependiente de procesador
" Comunicación dependiente de conexión
Fernando Pérez Costoya
José María Peña Sánchez
4
Planificación de Tareas Dependientes
Ejemplo de Tareas Dependientes
• Planificación consiste en la asignación de tareas a
procesadores en un instante determinado de tiempo:
– Para un solo trabajo existen heurísticas eficientes: buscar camino
Para un solo trabajo existen heurísticas eficientes: buscar camino
crítico (camino más largo en grafo) y asignar tareas implicadas al
mismo pro
Links de descarga
http://lwp-l.com/pdf14879
Comentarios de: Gestión de Procesos - Sistemas Operativos Distribuidos (0)
Comentarios de: Gestión de Procesos - Sistemas Operativos Distribuidos (0)
No hay comentarios