Sistemas Distribuidos

Page 1

Sistemas Distribuidos Alan David Manotas Llinรกs Ing. Sistemas Esp. Telecomunicaciones CCNAI-II Certificado SCE- SIEMON aldamalli@gmail.com skype: the_bighand 316 - 4932151


Introducción a los Sistemas Distribuidos Computación Moderna (1945 - 1985)

Caracteristicas: – – –

Computadoras Grandes (Mainframe). Carencia de Cableado Estructurado o de redes de datos. Computadoras personales super costosas.

Eventos que desencadenan desarrollo de Sistemas Distribuidos:

1. Desarrollo de poderosos Microprocesadores (CPU de 16, 32, 64 bits) con capacidades muy alta de procesamiento. 2. Desarrollo de las Redes. -Invención de Redes de Area Local de alta Velocidad (LAN), Redes de Area Amplia (WAN).


Introducciรณn a los Sistemas Distribuidos Que es un Sistema Operativo?

1. El S.O. como mรกquina extendida: Proporciona a los usuarios una maquina virtual que tenga un uso mas conveniente que la mรกquina real. 2. El S.O. como controlador de recursos: Controla con eficiencia las distintas partes del sistema


Capas Sistema de computo


Capa Fisica: Contiene los dispositivos fisicos tales como memoria RAM, MB, Interfaces de Red, Fuentes de Poder, Monitor, dispositivos de entrada/salida, etc. Microprogramaciรณn: Software (microprograma) primitivo que controla en forma directa los dispositivos y proporciona una interfaz mรกs limpia con la capa superior. Lenguaje de Maquina: Conjunto de instrucciones que interpreta el microprograma No hace parte de la maquina, este lenguaje maneja de 50 a 300 instrucciones, que Sirven a grosso modo para desplazar datos, operaciones aritmeticas, comparar valores..

Sistema Operativo: Parte del software que se ejecuta en modo central รณ modo de Supervisiรณn. Campiladores: Traduce un programa escrito en un lenguaje de programaciรณn, Generando un equivalente en lenguaje de maquina. Los compiladores y editores se ejecutan en modo usuario.


Clasificación de Sistemas Operativos 1. S.O. Monotareas: Solo pueden manejar un proceso en cada momento, ejecuta tareas de una a una. 2. S.O. Multitarea: Ejecuta varias tareas al mismo tiempo, existe varios tipos de multitarea, multitarea de tiempo compartido, etc. Procesamiento en primer plano o segundo plano. 3. S.O. Monousuarios. 4. S.O. Multiusuarios. 5. S.O. por lotes. 6. S.O. de tiempo real: Son aquellos en los cuales no tiene importancia el usuario, sino los procesos. Se utilizan en entornos donde son procesados un gran número de sucesos o eventos. Muchos Sistemas Operativos de tiempo real son construidos para aplicaciones muy específicas como control de tráfico aéreo, bolsas de valores, control de refinerías, control de laminadores.


Que es un Sistema Distribuido?

DEFINICION: A. TANENBAUM “Un sistema distribuido es una colección de computadoras independientes que aparecen ante los usuarios del sistema como una única computadora” Hardware ( Maquinas Autonomas)

2 Aspectos Software (Único Sistema)


Ejemplos de Sistemas Distribuidos •

Sistema de Información de un Banco.

-

Cada sucursal maneja B.D de sus clientes, capacidad de comunición con sucursales de la misma entidad y con la oficina central de comunicaciones.

Internet, Intranet Cadenas de supermercados (EXITO) Telefonía Móvil, computación ubicua. Aerolineas – Sistema de Reservaciones

• •


Ventajas Distribuidos Vs Centralizados Elementos

Descripci贸n

Econom铆a

Los microprocesadores ofrecen una mejor proporci贸n precio/rendimiento que los mainframe

Velocidad Rendimiento

Tiene mayor procesamiento que un mainframe

Confiabilidad

Distribuye la carga de trabajo en muchas maquinas

Escalabilidad

Crecimiento por incrementos


Desventajas de Sistemas Distribuidos Elementos

Descripción

Software

Existen pocas aplicaciones distribuidas y el personal escaso

Redes

La plataforma de comunicaciones puede colapsar o causar otros problemas

Seguridad

Estado crítico – vulneración de los datos


Conceptos de Hardware Aunque todos los sistemas distribuidos constan de varios CPU, existen diversas formas de organizar el hardware; en particular, en la forma de interconectarlas y comunicarse entre si. Clasificacion segĂşn FLYNN. SISD(Single Instruction Single Data)= Un solo flujo de Instrucciones un solo flujo de Datos. Todas las computadoras tradicionales de un unico CPU. SIMD(Single Instruction Multiple Data)= Un flujo de instrucciones y varios flujos de datos. Procesamiento en paralelo con varios microprocesadores, utiles para computos que repiten muchisimos datos.


Conceptos de Hardware MISD(Multiple Instruction Single Data)= Flujo de multiples instrucciones y un solo flujo de Datos. No es aplicable. MIMD(Multiple Instruction Multiple Data)= Un grupo de computadoras independientes, cada una con su propio contador del programa, programa y datos. Todos los sistemas distribuidos son MIMD. Multiprocesadores (Memoria Compartida) MIMD Multicomputadoras (Memoria Privada)


Aspectos del Diseño Transparencia: Esta caracteristica oculta la distribución a los usuarios e incluso de los programas de aplicación. El concepto de transparecia se puede aplicar de la siguente manera: Tipo

Significado

Localización

No se identifica la localización de los recursos. Ej: /maquina1/programa.c

Migración

Los recursos se pueden mover sin tener que cambiar sus nombres. Ej: /work/new no revela posición del servidor.

Réplica

Los usuarios no pueden indicar el numero de copias existentes.

Concurrencia

Varios usuario pueden compartir recurso de manera automatica.

Paralelismo

Actividades en paralelo sin conocimiento de los usuarios.


Flexibilidad: Es la facilidad de amalgamiento, existen dos lineas de pensamiento para los sistemas distribuidos, monoliticos y micronucleo.

Confiabilidad: la capacidad de disponibilidad de los diferentes elementos de hardware del sistema. Probabiliad de funcionamiento de un servidor es de 0.92. Otro aspecto de la confiabilidad es la seguridad y la tolerancia a fallos. Desempe単o: Hace referencia a el tiempo de respuesta, rendimiento o numero de trabajos desarrollados por horas, uso del sistema y consumo de la red.

Escalabilidad: Permita el crecimiento para aumentar el rendimiento del sistema.


Gesti贸n de Procesos Todas las computadoras modernas pueden hacer varias cosas al mismo tiempo, mientras se ejecutan aplicativos de usuarios, tambien puede estar leyendo de un disco, enviando texto a una pantalla o impresora, etc. La CPU conmuta de proceso en proceso. Multiprogramaci贸n

Hombre

Pseudo Parelelismo (rapida conmutacion de la CPU)

Puede ejecutar hasta 2 procesos simultaneos


Concepto de Proceso Modelo de Proceso Un PROCESO, no es mรกs que un programa (imagen del programa) en ejecucion, que incluye los valores actuales del contador, registro, variables y demรกs. Todo el S.W. ejecutable esta organizado en una serie de procesos secuenciales. Conceptualmente cada proceso tiene asignado un porcentaje de una CPU virtual, pero para entender el sistema es mucho mรกs facil pensar en una colecciรณn de procesos que se ejecutan en pseudo paralelismo que tratar de seguir la pista a la conmutaciรณn real de la CPU.


Observaci贸n Un proceso es una actividad que tiene programa, entradas, salidas y un estado. Se puede compartir un procesador entre varios procesos, utilizando alg煤n algoritmo de planificaci贸n, que determina cuando dejar de atender un proceso para transferir la utilizacion de la CPU a otro proceso, teniendo en cuenta la politicas del planificador.


Estados y transición de los Procesos Aunque cada proceso es una entidad independiente, con su propio contador de programa y estado interno, los procesos a menudo requieren comunicarse con otros procesos, un proceso podría generar ciertas salidas que sean entradas para otro proceso. A continuación un ejemplo de comunicación entre procesos:

[svoip@etc]# chkconfig | grep 5:Activo | more chkconfig: Actualiza y consulta información de los servicios del sistema según su nivel de ejecución (runlevel). grep: Selecciona una cadena de texto especifica, para nuestro ejemplo “5:Activo”. more: Realiza la paginación por pantalla.


Estados y transici贸n de los Procesos


Jerarqu铆as de Procesos En la mayoria de los S.O. se hace necesaria una forma de crear y destruir procesos cuando se requiera durante la operaci贸n.

FORK

Llamada al Sistema que crea una copia identica del proceso que hace la llamada.

Para tener en cuenta: Despues de la llamada FORK, el proceso padre sigue su ejecuci贸n en paralelo con el proceso hijo. El padre puede dar lugar a m谩s hijos, y los hijos tambien pueden ejecutar FORK, generando esto un arbol jerarquico de procesos de profundidad arbitraria.



Procesamiento de Interruciones Una interrupción es un evento que altera la secuencia en que la CPU ejecuta las instrucciones; es un hecho generado por el hardware. Cuando ocurre una interrucción, el S.O.: 1. 2. 3. 4.

Obtiene el control. Salva el estado del proceso interrumpido. Analiza la interrupción. Transfiere el control a la rutina indicada. Tipo de Interrupción

Descripción

SVC

Llamada al S.O.

E/S (> prioridad linux)

Cambio de estado de un canal o dispositivo.

Externa

Evento externo al sistema

De Reinicio

Reinicio del procesamiento

Verificación de Programa

Errores de proceso

Verificación de maquina


Implantación de los Procesos El S.O. utiliza una tabla (arreglo de estructuras) llamada Tabla de Procesos. Esta tabla tiene un dato por proceso y contiene información relativa al estado del proceso, contador del programa, aputador a la pila, asignación de memoria, estado de los archivos abiertos, información de contabiliad y planificación, etc. Los datos de esta tabla son indispensables para la alternacia de estados de los procesos (en ejecución – listos).


Planificación de Procesos Cuando más de un proceso es ejecutable, el S.O. debe decidir cual de ellos debe ejecutarse en primer termino. Planificador: Parte del S.O. que asigna los tiempos de CPU. Algoritmo de Planificación: Las politicas y/o priorización para la asignación del microprocesador.

Criterio

Descripción

Equidad

Garantiza proporción justa de CPU.

Eficacia

CPU ocupada 100%

Tiempo de Respuesta

< time de respuesta para usuarios interactivos

Tiempo de Regreso

< time de respuesta para usuarios por lotes para obtener sus resultados.

Rendimiento

Maximizar numero de tareas por hora


Planificacion Apropiativa Es la estrategia de permitir que procesos ejecutables (desde el punto de vista lógico) sean suspendidos en forma temporal. Planificación no Apropiativa Es el método de ejecucion de los procesos hasta terminar.

Para tener en cuenta: Para garantizar que ningún proceso se ejecute un tiempo excesivo, casi todas las computadoras tienen un cronómetro electrónico ó un reloj incluido, que provoca una interrupción en forma periodica. Frecuencia de 50 a 60 Hz (Hertz)


Tipos de Algoritmo de Planificaci贸n Algunos algoritmos de planificaci贸n son los siguientes: 1. 2. 3. 4. 5. 6. 7. 8.

FIFO (First In First Out) Round Robin. Por Prioridad. Colas Multiples. Primero el trabajo mas corto. Planificaci贸n Garantizada. Politiva vs Mecanismo Planificaci贸n de dos niveles.


PLANIFICACION FIFO

Es muy simple, los procesos se despachan de acuerdo con su tiempo de llegada a la cola de listos. Una vez que el proceso obtiene la cpu, se ejecuta hasta terminar, ya que es una disciplina “no apropiativa”. Puede ocasionar que procesos largos hagan esperar a procesos cortos y que procesos no importantes hagan esperar a procesos importantes. Es más predecible que otros esquemas. No puede garantizar buenos tiempos de respuesta interactivos. Suele utilizarse integrado a otros esquemas, por ejemplo, de la siguiente manera: • Los procesos se despachan con algún esquema de prioridad. • Los procesos con igual prioridad se despachan “FIFO”.


PLANIFICACION ROUND ROBIN (RR) Los procesos se despachan en “FIFO” y disponen de una cantidad limitada de tiempo de cpu, llamada “división de tiempo” o “cuanto”.

Si un proceso no termina antes de expirar su tiempo de cpu ocurren las siguientes acciones: • La cpu es apropiada. • La cpu es otorgada al siguiente proceso en espera. • El proceso apropiado es situado al final de la lista de listos. Es efectiva en ambientes de tiempo compartido. La sobrecarga de la apropiación se mantiene baja mediante mecanismos eficientes de intercambio de contexto y con suficiente memoria principal para los procesos.


PLANIFICACION POR PRIORIDAD Las ideas centrales son que cada proceso tiene asociada una prioridad y que el proceso ejecutable con máxima prioridad es el que tiene el permiso de ejecución. Para que los procesos de alta prioridad no se ejecuten indefinidamente, el planificador del sistema puede disminuir la prioridad del proceso en ejecución en cada interrupción del reloj.

Un algoritmo sencillo consiste en establecer que la prioridad sea “1 / f”, donde “f” es la fracción del último cuanto utilizado por el proceso. Un proceso que utilice 2 mseg (dos milisegundos) de su cuanto de 100 mseg (cien milisegundos) tendrá prioridad 50 (cincuenta). Un proceso que se ejecutó 50 mseg antes del bloqueo tendrá prioridad 2. Un proceso que utilizó todo el cuanto tendrá prioridad 1. Frecuentemente los procesos se agrupan en “Clases de Prioridad”, en cuyo caso se utiliza la Planificación con Prioridades entre las clases y con Round Robin (RR) dentro de cada clase.


PLANIFICACION DE COLAS MULTIPLES Proporcionan una estructura para lograr los siguientes objetivos: • Favorecer trabajos cortos. • Favorecer trabajos limitados por la Entrada / Salida para optimizar el uso de los dispositivos de Entrada / Salida. • Determinar la naturaleza de un trabajo lo más rápido posible y planificar el trabajo (proceso) en consecuencia.

Maxima Prioridad

Minima Prioridad


Qué es un Protocolo de Enrutamiento? 10.120.2.0

Un protocolo de enrutamiento es el encargado de determinar las rutas y de mantener la tabla de enrutamiento de manera actualizada. Una vez determinada la ruta, de puede enrutar el protocolo enrutado.

E0

Network Protocol Connected RIP IGRP

172.16.1.0

S0

Destination Network 10.120.2.0 172.16.2.0 172.17.3.0

Exit Interface

172.17.3.0

E0 S0 S1

Protocolo Enrutado: IP Protocolo de enrutamiento: RIP, IGRP


Sistemas Autónomos IGPs: RIP, IGRP

EGPs: BGP

Autonomous System 100 

Autonomous System 200

Un sistema autómomo es un conjunto de redes y routers que se encuentran bajo un mismo “dominio” administrativo, por ejemplo un ISP. Los IGPs, son los protocolos de enrutamiento que funcionan al interior de un AS. Los EGPs, son protocolos de enrutamiento que sirven para enrutar entre AS.


Tipos de Protocolo de Enrutamiento B

Distance Vector

A

C D

Hybrid Routing

B A

C D

Link State


Distance Vector B A

C Distance—How Far Vector—In Which Direction

D

D

C

B

A

Routing Table

Routing Table

Routing Table

Routing Table

De manera periodica todos los routers envian la tabla de enrutamiento que poseen. En base al número de saltos.


Distance Vector: ¿Cómo funciona?. 10.1.0.0 E0

10.2.0.0 A

S0

Routing Table

S0

10.3.0.0 B

S1

Routing Table

S0

C

E0

Routing Table

10.1.0.0

E0

0

10.2.0.0

S0

0

10.3.0.0

S0

0

10.2.0.0

S0

0

10.3.0.0

S1

0

10.4.0.0

E0

0

Cada router empieza armar su tabla de enrutamiento a partir de las redes que conoce, inicialmente de las que esta directamente conectado.


Distance Vector: ¿Cómo funciona? 10.1.0.0 E0

10.2.0.0 A

S0

Routing Table

S0

10.3.0.0 B

S1

Routing Table

S0

C

E0

Routing Table

10.1.0.0

E0

0

10.2.0.0

S0

0

10.3.0.0

S0

0

10.2.0.0

S0

0

10.3.0.0

S1

0

10.4.0.0

E0

0

10.3.0.0

S0

1

10.4.0.0

S1

1

10.2.0.0

S0

1

10.1.0.0

S0

1

Luego empieza el intercambio de información entre los vecinos


Distance Vector: ¿Cómo funciona? 10.1.0.0 E0

10.2.0.0 A

S0

Routing Table

S0

10.3.0.0 B

S1

Routing Table

S0

C

E0

Routing Table

10.1.0.0

E0

0

10.2.0.0

S0

0

10.3.0.0

S0

0

10.2.0.0

S0

0

10.3.0.0

S1

0

10.4.0.0

E0

0

10.3.0.0

S0

1

10.4.0.0

S1

1

10.2.0.0

S0

1

10.4.0.0

S0

2

10.1.0.0

S0

1

10.1.0.0

S0

2

El proceso de intercambio de información continúa hasta que todos sepan como llegar a todas las redes.


Desventajas de los protocolos Distance Vectors. 

 

 

Al ser la actualización de manera periódica. Le da lentitud de reacción, ante posibles cambios imprevistos en la red. (Esto se llama Convergencia). Además de ser lentos, son propensos a presentar Loops de enrutamiento. Funciona en topologias de red planas. Se garantiza convergencia, hasta para 16 routers. Sin embargo a pesar de los inconvenientes se han encontrado soluciones para contrarrestar estos problemas. Este es el caso de RIP. Donde ya existe RipV2 que resuelven los problemas.


Configurando un protocolo de enrutamiento Router(config)#router protocol [keyword] ď Ź

Definiendo un protocolo de enrutamiento

Router(config-router)#network network-number • El comando es mandatorio por cada protocolo de enrutamiento configurado.


Comunicación en los Sistemas Distribuidos La diferencia más importante entre un sistema distribuido y un sistema de un único procesador es la comunicación entre procesos. Sistemas 1 Procesador Memoria Compartida Memoria

Sistemas Distribuidos Memoria Independiente

La comunicación entre procesos, deben apegarse a reglas conocidas como PROTOCOLOS, estos protocolos toman formas de varias CAPAS, las cuales cumplen sus propias reglas y normas.


Protocolo con CAPAS. La comunicación en los S.D. se basa en la transferencia de mensajes. Cuando un proceso 1 quiere comunicarse con un proceso 2, se debe presentar los siguientes pasos: • •

Construir un mensaje Llamada al S.O., este se encarga del envío por medio de la red. Deben existir politicas y reglas para la comunicacion de mensajes.


Protocolos seg煤n Modelo OSI Orientado a la Conexi贸n PROTOCOLOS Sin Conexi贸n

Cada capa proporciona una INTERFAZ (Conjunto de operaciones para defenir el servicio que cada capa esta en capacidad de ofrecer). El protocolo n utiliza la informaci贸n de la capa n.



Sistema de Archivos 1.

2. 3.

Todas las aplicaciones de computadora necesitan almacenar y recuperar la información. Cuando un proceso termina, la información se pierde. Competencia entre procesos para compartir información, datos necesarios para el funcionamiento entre procesos.

Dispositivos de Almacenamiento de Datos

Unidades Externas (cintas, memoria Flash)

Unidades Internas (HDD)

Que es un Disco Duro? Es un dispositivo que permite el almacenamiento y recuperación de grandes cantidades de información. Los discos duros forman el principal elemento de la memoria secundaria de un ordenador, llamada así en oposición a la memoria principal o memoria RAM (Random Access Memory, memoria de acceso aleatorio).


Sistema de Archivos La memoria principal es volátil, muy rápida (ya que se trata de componentes electrónicos) pero de capacidad reducida. La memoria secundaria, en cambio, es no volátil, menos rápida (componentes mecánicos) y de gran capacidad. La memoria principal contiene los datos utilizados en cada momento por el ordenador pero debe recurrir a la memoria secundaria cuando necesite recuperar nuevos datos o almacenar de forma permanente los que hayan variado.

Estructura Fisica de un HDD. Cara 1 1. 2. 3. 4.

Cara 2

Platos o Discos. Cabezas. Eje. Controladora


Estructura de un Disco Duro (HDD) El número total de caras de un disco duro coincide con su número de cabezas. Cada una de estas caras se divide en anillos concéntricos llamados pistas. En los discos duros se suele utilizar el término cilindro para referirse a la misma pista de todos los discos de la pila. Finalmente, cada pista se divide en sectores Estructura Fisica de un HDD.

Los sectores son las unidades mínimas de información que puede leer o escribir un disco duro. Generalmente, cada sector almacena 512 bytes de información. nº sectores = nº caras * nº pistas/cara * nº sectores/pista


Ejercicio: Un disco duro ST33221A de Seagate tiene las siguientes especificaciones: cilindros = 6.253 cabezas = 16 sectores = 63 El número total de sectores direccionables es, por tanto, 6.253*16*63 = 6.303.024 sectores. Si cada sector almacena 512 bytes de información, la capacidad máxima de este disco duro será de 6.303.024 sectores * 512 bytes/sector = 3.227.148.228 bytes ~ 3 GB.


Tabla de Equivalencia Unidad

Equivalente

1 Byte

8 bits

1 KiloByte (KB)

1,024 Bytes

1 MegaByte (MB)

1,024 KB

1 GigaByte (GB)

1,024 MB

1 TeraByte (TB)

1,024 GB

1 PetaByte (PB)

1,024 TB

1 ExaByte (EB)

1,024 PB

1 ZettaByte (ZB)

1,024 EB

1 YottaByte (YB)

1,024 ZB


Estructura Lógica de un HDD La estructura lógica de un disco duro está formada por: 1. El sector de arranque (Master Boot Record) 2. Espacio particionado 3. Espacio sin particionar El sector de arranque es el primer sector de todo disco duro (cabeza 0, cilindro 0, sector 1). En él se almacena la tabla de particiones y un pequeño programa master de inicialización, llamado también Master Boot. Este programa es el encargado de leer la tabla de particiones y ceder el control al sector de arranque de la partición activa. Si no existiese partición activa, mostraría un mensaje de error. El espacio particionado es el espacio del disco que ha sido asignado a alguna partición. El espacio no particionado, es espacio no accesible del disco ya que todavía no ha sido asignado a ninguna partición. A continuación se muestra un ejemplo de un disco duro con espacio particionado (2 particiones primarias y 2 lógicas) y espacio todavía sin particionar.


El caso m谩s sencillo consiste en un sector de arranque que contenga una tabla de particiones con una sola partici贸n, y que esta partici贸n ocupe la totalidad del espacio restante del disco. En este caso, no existir铆a espacio sin particionar.


Preguntas?


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.