Sistemas Operativos

Anuncio
Sistemas Operativos
Clase 15: sistemas especializados.
Sistemas distribuidos
• Un sistema distribuido (SD) lo forman un conjunto de
dispositivos físicamente distribuidos, conectados a
través de una red y que se coordinan más allá de las
fronteras de una solo dispositivo.
• “Un sistema distribuido es aquél en el que no puedes
trabajar con tu máquina por el fallo de otra máquina
que ni siquiera sabías que existía”.
Sistemas distribuidos
Una característica muy importante en un sistema
distribuido, es que el sistema coopera entre si para
poder realizar una tarea.
Algunas características de un SD son:
• Compartir
recursos:
procesamiento,
datos,
hardware.
• Escalabilidad: basta con conectar más computadoras
a la red.
• Fiabilidad y disponibilidad: el sistema siempre debe
seguir ofreciendo funcionalidad.
Sistemas distribuidos
• El software es más complejo: debido a que hay
procesos concurrentes en varios niveles.
• Seguridad: al estar las computadoras conectadas en
una red, hace que la información sea más
susceptible de ser accedida por otros.
Sistemas distribuidos
Cuando se diseña un SD, hay que considerar muchos
aspectos de diseño; algunos son:
Heterogeneidad.
Nombrado.
Comunicación y sincronización.
Capacidad de crecimiento.
Estructura software.
Reparto de la carga.
Tratamiento de fallos.
Consistencia.
Calidad de servicio.
Fiabilidad.
Seguridad.
Transparencia.
Rendimiento.
Sistemas distribuidos
Heterogeneidad
Un SD no tiene por que estar construido con la misma
clase de dispositivos, por lo que esto resulta ser un
problema importante; por ejemplo, dos computadoras
conectadas al SD, no necesariamente tienen que tener
el mismo SO. Algunas soluciones:
• Construcción de interfaces.
• Empleo de mecanismos
homogéneos.
de
comunicación
Sistemas distribuidos
Nombrado
Es la manera en que usuario debe llamar a un objeto
dentro del SD; para el usuario podría ser
www.google.com, pero para el sistema sería
64.78.23.12. Algunos puntos a considerar:
• El espacio de nombres.
• El servicio de nombres.
Sistemas distribuidos
Comunicación y sincronización
Quizá otro gran problema en ambientes distribuidos, ya
que incluye:
• Sincronización de procesos (ordenación de eventos).
• Exclusión mutua.
Sistemas distribuidos
Comunicación y sincronización
Existen muchos algoritmos para asegurar la
comunicación y sincronización en un ambiente
distribuido; el más sencillo se conoce como paso de
testigo.
Sistemas distribuidos
Tratamiento de fallos
Dado que un SD debe ofrecer disponibilidad, debe
entonces ejecutar las acciones necesarias para evitar o
resolver los problemas que pueden surgir ante un fallo
del sistema. Esto también se conoce como tolerancia a
fallos, y es una de las características más complicadas
de implementar en un SD.
Sistemas distribuidos
Estructura de software
Se refiere a la manera en que el usuario dispone de los
programas; la estructura clásica en un sistema
centralizado es:
Aplicaciones
Lenguajes de programación
Sistema operativo
Hardware
Sistemas distribuidos
Estructura de software
En un SD el software se estructura de manera
diferente; existen tres posibilidades:
• SO de red.
• SO distribuidos.
• Middlewares.
Sistemas distribuidos
Estructura de software: SO red
Aplicaciones
Aplicaciones
Lenguajes de programación
Lenguajes de programación
Sistema operativo
Sistema operativo
Hardware
Hardware
Red de interconexión
No hay transparencia, ya que se accede directamente al
recurso. Las maquinas no son independientes.
Sistemas distribuidos
Estructura de software: SO distribuido
Aplicaciones
Lenguajes de programación
Sistema operativo
Hardware
Hardware
Red de interconexión
Se comporta como un único sistema, como en un
sistema centralizado. Hay transparencia, pero todas las
maquina deben ejecutar en mismo SD.
Sistemas distribuidos
Estructura de software: middleware
Aplicaciones
Lenguajes de programación
Middleware
Sistema operativo
Sistema operativo
Hardware
Hardware
Red de interconexión
Sistemas distribuidos
Características de la estructura de software
• Servicios y protocolos estandarizados.
• Pueden ofrecer servicios no incluidos en el SO
(servicios de archivos distribuidos, servicios de
nombres).
• Facilitar el desarrollo de aplicaciones distribuidas
• Independientes del HW y del SO subyacente.
Sistemas distribuidos
Reparto de carga
Es la manera en que el SD reparte los recursos en el
sistema de manera que se haga un uso optimo de ellos;
los recursos más importantes para repartir son el
procesador y el almacenamiento.
Una característica importante en el reparto de carga, es
la migración.
Sistemas distribuidos
Consistencia
El problema de la consistencia (coherencia), surge
cuando varios procesos acceden y actualizan datos de
forma concurrente. Podemos mencionar dos casos:
• Coherencia de las actualizaciones
• Coherencia de la replicación
Sistemas distribuidos
Tratamiento de fallos
Dado que un SD debe ofrecer disponibilidad, debe
entonces ejecutar las acciones necesarias para evitar o
resolver los problemas que pueden surgir ante un fallo
del sistema. Esto también se conoce como tolerancia a
fallos, y es una de las características más complicadas
de implementar en un SD.
Sistemas distribuidos
Calidad de servicio
La calidad de servicio incluye dos
importantes: fiabilidad y rendimiento.
conceptos
• Rendimiento: el tiempo de respuesta debe ser el
adecuado. Generalmente, el rendimiento viene
determinado por la red de comunicación; pero
también por el tiempo de procesamiento del
sistema.
• Fiabilidad: disponibilidad, consistencia, seguridad y
confidencialidad.
Sistemas distribuidos
Transparencia
La transparencia la forman un conjunto
características, entre las cuales tenemos:
de
• Acceso: acceso a recursos remotos y locales de igual
manera.
• Posición: acceso a los recursos sin necesidad de
conocer su ubicación.
• Replicación: Acceso a recursos replicados sin
conocimiento de que lo son.
Sistemas distribuidos
Transparencia
• Fallos: funcionamiento continuo del servicio, aun en
presencia de problemas.
• Migración: permite que los recursos y objetos se
muevan sin afectar a la operación de los programas.
Sistemas distribuidos
Rendimiento
En términos generales, el rendimiento no es una
característica muy importante; un SD persigue la
cooperación, no así el computo paralelo que si busca el
rendimiento.
En un SD se habla de calidad de servicio, el usuario
espera que sus trabajos se hagan, y en el mejor tiempo
posible.
Sistemas distribuidos
¿Sistemas operativos distribuidos (SOD)?
Sabemos que un SO se encarga de gestionar los
recursos del sistema, pero en el caso de un SO
distribuido, no solo gestiona las recursos del sistema de
manera local, sino que también lo hace con los recursos
remotos; además, debe hacer creer a los usuarios que
están en un “gran sistema centralizado”.
Sistemas distribuidos
Sistema operativo distribuido
En general es muy complicado disponer de un sistema
operativo distribuido, ya que la gestión de los recursos
de manera remota es muy complicada; es más común
encontrar sistemas basados en middleware que
sistemas basados en SOD.
Sólo examinaremos la gestión de procesos en un
ambiente distribuido.
Sistemas distribuidos
Sistema operativo distribuido: procesos
De manera básica, existen tres manera de organizar los
procesadores en un SD:
• Estaciones de trabajo: en cada nodo se ejecutan los
procesos de su respectivo usuario. Hay servicio de
archivos distribuidos. Es posible que la carga en el
sistema no sea equitativa.
Sistemas distribuidos
Sistema operativo distribuido: procesos
• Pila de procesadores: los procesadores están
compartidos por todos los usuarios, por lo que la
ejecución de un programa va hacia el procesador del
tope de la pila.
• Hibrido: los procesos iterativos se ejecutan en la
computadora de manera local (estación de trabajo),
y los no iterativos van a la pila de procesadores.
Sistemas distribuidos
Sistema operativo distribuido: procesos
La asignación de procesos al procesador en un SD no es
un tarea sencilla, el objetivo es decidir qué procesador
debería ejecutar determinado proceso, de tal manera
que se equilibre la carga. Para saber que procesador
esta inactivo, esto puede hacerse de dos maneras:
• Centralizada. Un cliente informa a un servidor.
• Distribuida. Los clientes se informan.
Sistemas distribuidos
Sistema operativo distribuido: procesos
Una vez conocida la estación inactiva, una
computadora muy cargada podría eventualmente hacer
alguna de las siguientes acciones:
• Migrar algún proceso: pero es muy complicado.
• Bajar la prioridad a algunos procesos.
• Desde luego, no hacer nada.
Sistemas distribuidos
Sistema operativo distribuido: procesos
La migración de procesos es una acción muy
complicada de llevar a cabo, requiere de la
implementación de algoritmos de distribución de carga,
los cuales consideran los siguientes aspectos:
• Política de transferencia: la manera en que se
determina cuando transferir un proceso. La política
puede ser expulsiva y no expulsiva.
Sistemas distribuidos
Sistema operativo distribuido: procesos
• Política de selección: determina qué proceso se debe
transferir: los nuevos procesos, lo procesos con poca
ejecución y mínimo uso de recursos (o con ciertos
recursos), o los procesos cuyo tiempo de respuesta
estimado es menor en un sistema remoto que en el
local.
Sistemas distribuidos
Sistema operativo distribuido (SOD): procesos
• Política de ubicación: la manera en que se decidirá a
qué nodo debe ir el proceso. En este caso, es
necesario conocer el estado de todo el SD, y para
ello se puede hacer de dos maneras:
• Bajo demanda: la información se obtiene cuando
un nodo se convierte en receptor o transmisor de
procesos.
• Periódica: los nodos hacen intercambio de
información cada determinados instantes de
tiempo.
Sistemas distribuidos
Sistema operativo distribuido (SOD): memoria
La gestión de memoria es otro punto importante en un
ambiente distribuido; la manera de hacerlo es
básicamente de dos maneras:
• Paginadores externos: se emplea en memoria virtual,
y la idea es hacer uso de los manejadores de
archivos distribuidos; las páginas que deben ser
bajadas a disco, son enviadas a un disco remoto.
Sistemas distribuidos
Sistema operativo distribuido (SOD): memoria
• Memoria compartida distribuida: cada proceso en el
entorno distribuido, “ve” a la memoria de cada nodo
como una sola gran memoria. Los mensajes son el
mecanismo por el cual se transfiere la información
de una memoria a otra. Este esquema permite una
programación sencilla, el modelo que se emplea es
el de memoria compartida.
Fin de clase 15
Descargar