sistemas operativos distribuidos
DESCRIPTION
SISTEMAS OPERATIVOS DISTRIBUIDOS. Introducción. *1945-1985 Computadoras grandes y costosas Las organizaciones tenían pocas computadoras No existía una forma de conectarlas Operaban de forma independiente. 10 millones de dólares -1 instrucción por segundo. - PowerPoint PPT PresentationTRANSCRIPT
Introducción
*1945-1985 Computadoras grandes y costosas Las organizaciones tenían pocas
computadoras No existía una forma de conectarlas Operaban de forma independiente. 10 millones de dólares -1 instrucción
por segundo
Dos avances tecnológicos fundamentales:
1980: Microprocesadores poderosos y económicos con
arquitecturas de 8, 16, 32 y 64 bits. 1000 dólares –ejecutan 10 millones de
instrucciones por segundo Las Redes de área Local (LAN´s) Permiten conectar docenas e incluso cientos
de máquinas dentro de un edifico. Transferir información en un milisegundo o
tiempo parecido. Cantidad de datos que pueden desplazarse
entre las maquinas van de 10 a 100 millones de bits/s o más.
RESULTADO DE ESTAS TECNOLOGIAS
Posible reunir sistemas de cómputo compuestos por un gran número de CPU conectados mediante una red de alta velocidad.
Estos reciben el nombre genérico de: SISTEMAS DISTRIBUIDOS
Cuál es el problema?
En contraste con los SISTEMAS CENTRALIZADOS ( o sistemas de un solo procesador que constan de un CPU su memoria, periférico y algunas terminales).
El software, es radicalmente distinto .
Etapa de surgimiento.
¿Qué es un SISTEMA DISTRIBUIDO?
Según Tanenbaum : "una colección de computadoras
independientes que aparecen ante los usuarios del sistema como una única computadora.”
Aspectos
Hardware= Las maquinas son autónomas Software=Los usuarios piensan que el
sistema es como una única computadora.
Así que:
“Si el sistema se ve como un todo y actúa como un sistema de tiempo compartido clásico con un único procesador podría considerarse como un sistema distribuido”.
Entonces:
“Si todos los robots actúan como dispositivos periféricos unidos a la misma computadora central y el sistema se puede programar de esta manera se considera sistema distribuido”
Ventajas S.D Vs S.C
Economía Velocidad Distribución inherente Confiabilidad Crecimiento por incrementos
Ventajas Sistemas Distribuidos VS Centralizados
Economista: Herb GroschLey de Grosch= “El poder de computo
es proporcional al cuadrado de su precio”
Si se paga el doble se obtiene 4 veces el desempeño……. Aja¡¡
Costo:
En cuanto al costo: Limitarse a un gran número de CPUs baratos reunidos en mismo sistema.
S. Distribuidos tienen una proporción precio/desempeño mucho mejor que la de un sistema centralizado.
Ciertas APLICACIONES SON DISTRIBUIDAS EN FORMA INHERENTE
Sistema Distribuido COMERCIAL: que el sistema se vea como una computadora para los programas de aplicación pero implantado de manera descentralizada con una computadora por sucursal.
Mayor Confiabilidad:
Al distribuir la carga de trabajo en muchas maquinas la falla de un circuito descompondrá a lo más a una maquina y el resto seguirá intacto.
Crecimiento por incremento: Podria añadirse solo mas
procesadores al sistema lo que permite un desarrollo gradual conforme surjan las necesidades.
Ventajas S.D vs PC independiente
Datos compartidos Dispositivos compartidos Comunicación Flexibilidad
Ventajas Sistemas Distribuidos VS PC Independientes
-Necesidad de compartir datos -Periféricos caros (impresoras,
equipos de fotocomposición, dispositivos de almacenamiento masivo)
Para lograrlo es necesario conectar a las computadoras entre si: la conexión de las maquinas conduce a un sistema distribuido.
Mayor flexibilidad potencial:
Posible tener una mezcla de computadoras personales y compartirlas y dejar q los trabajos se ejecuten de la forma más adecuada.
De esta manera la carga de trabajo se puede difundir entre computadoras de forma mas eficaz.
DESVENTAJAS
No existe mucha experiencia en el diseño e implantación y uso del software distribuido. –
¿Qué tipos de S.O, lenguajes de programación y aplicaciones son adecuadas? ¿Cuánto deben saber los usuarios de la distribucion? Que tanto hace el sistema, que tanto hacen los usuarios?
Desventajas
Redes de comunicación, pueden perder mensajes, lo que requiere un software especial para el manejo, y puede estar sobrecargado.
Al saturarse la red, esta se debe reemplazar o añadir una segunda lo que requerirá costos.
-Seguridad
Flynn (1972)
Características esenciales
Número de flujos de instrucciones
Número de flujos de datos
Esquemas de Clasificación
SISD (Single Instruction, Single Data) Computadoras Personales hasta Mainframes
SIMD (Single Instruction, Multiple Data) Sumando todos los elementos de 64 vectores
independientes
MISD (Multiple Instruction, Simple Data) No existe computadora que se ajuste a este
modelo
MIMD (Multiple Instruction, Multiple Data) Sistema Distribuido
Diferencia• Multiprocesador
Todas las maquinas comparten la misma memoria
• MulticomputadoraCada maquina tiene su propia memoria
• Fuertemente acopladas Retraso al enviar un mensaje de una
computadora a otra es corto y la tasa de trasmisión de los datos (bps) es alta• Débilmente acopladas
Retraso de los mensajes entre las máquinas es grande y la tasa de transmisión de
los datos es baja
Multiprocesador con base en buses
CONFIGURACIÓN SENCILLA
Plano de Base (Backplane) de alta velocidad o tarjeta madre
Bus típico de 32 o 64 líneas de Dirección, 32 o 64 líneas de Datos y 32 o mas líneas
de Control
Cierta cantidad de CPU, conectados a un bus común, junto con un modulo de Memoria
Características
- Uso de cache Causas:
Bus sobrecargado Bajo rendimiento
Tipos de caches a problemas:
- Escritura- Monitor
Multiprocesador con conmutador
Dividir la memoria en módulos y conectarlos a las CPU con un conmutador de cruceta
A) Conmutador de crucetaDesventaja
Con n CPU y n memorias, se necesitan n2 conmutadores en los puntos de cruce. Si n es muy grande se necesitaran de una gran cantidad de conmutadores.
B) Red OmegaCon n CPU y n memorias, se necesita log2n etapas de conmutación,
Cada una de las cuales tiene: nl2 conmutadores
Para un total de (n log2n)/2 conmutadores
Multicomputadora con base en buses
Es similar, desde el punto de vista topológico, al multiprocesador basado en un bus.
Pero se tomaran aspectos como:∇ Menos trafico∇ No es necesario de un backplane de
alta velocidad∇ Enlace para una LAN de menor
velocidad
Contenido
Conceptos de Software Sistemas operativos de redes Sistemas realmente distribuidos Sistemas de multiprocesador con
tiempo compartido
Conceptos de Software
Los S. O. no se pueden encasillar fácilmente, como el hardware, pero se los puede clasificar en dos tipos:
Débilmente acoplados. Fuertemente acoplados.
Conceptos de Software
Débilmente acoplados
Permite que las máquinas y usuarios sean independientes entre sí.
Facilita que interactúen en cierto grado cuando sea necesario.
Los equipos individuales se distinguen fácilmente.
Sistemas operativos de redes Software débilmente acoplado en
hardware débilmente acoplado. Solución muy utilizada.
Ejemplo: Red de estación de trabajo conectadas mediante una LAN.
Sistemas operativos de redesEjemplo: Red de estación de trabajo
conectadas mediante una LAN. Cada usuario tiene una estación de
trabajo para su uso: Tiene su propio S. O. La mayoría de los requerimientos se
resuelven localmente. Es posible que un usuario se conecte
de manera remota con otra estación de trabajo.
Sistemas operativos de redes Servidores de Archivos Aceptan solicitudes para la lectura y
escritura de archivos.Servidor de archivosClientes
LAN
Solicitud
Discos donde se almacena el sistema compartido de archivos
Respuesta
Dos clientes y un servidor en un sistema operativo de red
Sistemas operativos de redes
CorreoNoticias
otros
PacmanPacchild
pacwoman
Cliente 1 Cliente 2Servidor 1
juegoServidor 2
trabajo
(a)
JuegoTrabajo
Cliente 1
PacmanPacchild
pacwoman
CorreoNoticias
otros
Cliente 2
Juego
PacmanPacchild
PacwomanTrabajo Correo
Noticiasotros
(b) (c)
Los diversos clientes pueden montar los servidores en diversos lugares
Sistemas realmente distribuidos Software fuertemente acoplado en
un hardware débilmente acoplado.Objetivo:
Crear la ilusión que toda la red de computadoras es un sistema de tiempo compartido.
Imagen de único sistema
Sistemas realmente distribuidos También se define un sistema
distribuido como aquel que se ejecuta en una colección de máquinas enlazadas mediante una red pero que actúan como un uniprocesador virtual.
Sistemas realmente distribuidos¿Cuáles son algunas de las características de un sistema distribuido?Debe existir un mecanismo de comunicación global entre los procesos.Debe existir un esquema global de protección.La administración de procesos debe ser la misma en todas partes. Un sistema global de archivos
Sistemas de multiprocesador con tiempo compartido
Software y Hardware fuertemente acoplados.
Característica de este tipo de sistema: La existencia de una cola de
ejecución: una lista con todos los procesos en el sistema que no están bloqueados en forma lógica y listos para su ejecución.
Sistemas de multiprocesador con tiempo compartido
Proceso A en ejecución
cache
Proceso B en ejecución
cache
Proceso C en ejecución
cache
CPU 1 CPU 2 CPU 3
Disco
E listo
D listo
C ejecución
B ejecución
A ejecuciónCola de ejec
D, ESistema Operativo
Bus
Un multiprocesador con una cola de ejecución
Transparencia
Un aspecto muy importante es la forma de lograr la imagen de un único sistema
Los usuarios deben percibir que la colección de máquinas conectadas son un sistema de tiempo compartido de un solo procesador
No es transparente un sistema donde el acceso a los archivos remotos se realice mediante:
El establecimiento explícito de una conexión en la red con un servidor remoto.
El envío posterior de mensajes, donde el acceso a los servicios remotos será distinto al acceso a los servicios locales.
Tipos de Transparencia
TIPO SIGNIFICADO
Transparencia de Localizaciónlos usuarios no pueden indicar la localización de los recursos.
Transparencia Migraciónlos recursos se pueden mover a voluntad sin cambiar sus nombres.
Transparencia Réplicalos usuarios no pueden indicar el número de copias existentes.
Transparencia Concurrenciavarios usuarios pueden compartir recursos de manera automática.
Transparencia Paralelismolas actividades pueden ocurrir en paralelo sin el conocimiento de los usuarios.
Núcleo Monolítico
Es el S. O. centralizado aumentado con:
•Capacidades de red.
•Integración de servicios remotos.
La mayoría de las llamadas al sistema se realizan mediante señalamiento al núcleo:
• El núcleo realiza el trabajo.
• El núcleo regresa el resultado al
proceso del usuario.
La mayoría de las máquinas tiene discos y administra sus propios sistemas locales de archivos.
Micronúcleo (microkernel)
Es más flexible y proporciona solo cuatro servicios mínimos:
Un mecanismo de comunicación entre procesos.
Cierta administración de la memoria.
Una cantidad limitada de planificación y administración de
procesos de bajo nivel.
Entrada / salida de bajo nivel.
Confiabilidad
La confiabilidad global teórica del sistema podría ser el “or” booleano de la confiabilidad de los componentes; ejemplo:
Se dispone de 5 servidores de archivos, cada uno con una probabilidad de 0,95 de funcionar en un instante dado. -- La probabilidad de falla simultánea de los 5 es (0,05)5 = 0,000006. -- La probabilidad de que al menos uno esté disponible es 0,999994.
La confiabilidad práctica se ve disminuida ya que muchas veces se requiere que ciertos servidores estén en servicio simultáneamente para que el todo funcione, debido a ello algunos sistemas tienen una disponibilidad más relacionada con el “and” booleano de las componentes que con el “or” booleano.
Notas La disponibilidad se mejora mediante:
Un diseño que no exija el funcionamiento simultáneo de un número sustancial de componentes críticos.
La redundancia, es decir la duplicidad de componentes clave del hardware y del software.
Los datos no deben perderse o mezclarse y si los archivos se almacenan de manera redundante en varios servidores, todas las copias deben ser consistentes.
Tolerancia a fallas, según la cual las fallas se deben ocultar brindando una recuperación transparente para el usuario.
Seguridad, lo que significa que los archivos y otros recursos deben ser protegidos contra el uso no autorizado.
Métricas del desempeño:
Tiempo de respuesta. Rendimiento (número de trabajos por hora). Uso del sistema y cantidad consumida de la capacidad de la red.
Desempeño
Para optimizar el desempeño frecuentemente hay que:
Minimizar el número de mensajes: La dificultad es que la mejor forma de mejorar el desempeño es
tener muchas actividades en ejecución paralela en distintos procesadores, pero esto requiere el envío de muchos mensajes.
Centralizar el trabajo en una sola máquina: Resulta poco apropiado para un sistema distribuido.
Tamaño de grano de todos los cálculos:
Paralelismo de grano fino:
Corresponde a trabajos con un gran número de pequeños cálculos y mucha interacción con otros trabajos, debido a ello requieren mucha comunicación que puede afectar el desempeño.
Paralelismo de grano grueso:
Corresponde a trabajos con grandes cálculos, poca interacción y pocos datos, por lo tanto requieren poca comunicación
Concepto Ejemplo
Componentes centralizados un solo servidor de correo para todos los usuarios
Tablas centralizadas un único directorio telefónico en línea
Algoritmos centralizados realización de un ruteo con base en la información completa
Escalabilidad
Se deben utilizar algoritmos descentralizados con las siguientes características:
Ninguna máquina tiene la información completa acerca del estado del sistema.
Las máquinas toman decisiones solo en base a la información disponible de manera local.
El fallo de una máquina no arruina el algoritmo.
No existe una hipótesis implícita de la existencia de un reloj global.