Documente Academic
Documente Profesional
Documente Cultură
Contenido
Introduccin y conceptos previos Ejemplos de aplicaciones distribuidas Caractersticas de los sistemas distribuidos Desventajas Sistemas paralelos Principales aspectos de diseo
SISTEMAS OPERATIVOS
Un sistema operativo (SO) es un conjunto de programas o software destinado a permitir la comunicacin del usuario con un ordenador y gestionar sus recursos de manera cmoda y eficiente. Comienza a trabajar cuando se enciende el ordenador, y gestiona el hardware de la mquina desde los niveles ms bsicos. Hoy en da un sistema operativo se puede encontrar normalmente en ordenadores o productos electrnicos como telfonos mviles.
3
SISTEMAS OPERATIVOS
Otra definicin posible y bastante aceptada define un sistema operativo como una capa compleja entre el hardware y el usuario, concebible tambin como una mquina virtual, que facilita al usuario o al programador las herramientas e interfaces adecuadas para realizar sus tareas informticas, abstrayndole de los complicados procesos necesarios para llevarlas a cabo. Por ejemplo, un usuario normal simplemente abre los ficheros grabados en un disco, sin preocuparse por la disposicin de los bits en el medio fsico, los tiempos de espera del motor del disco, la posicin de un cabezal, el acceso de otros usuarios, etc.
4
SISTEMAS OPERATIVOS
Aunque es un tema propenso a la discusin, algunos expertos estn de acuerdo en que un sistema operativo debe constar de, por lo menos, un conjunto de programas similar al siguiente:
Un compilador de algn lenguaje de programacin, en Unix es C. Un enlazador. Un ensamblador. Un intrprete de comandos. Una amplia biblioteca del lenguaje de la plataforma. Un kernel o ncleo.
5
SISTEMAS OPERATIVOS
Otra definicin, ms coloquial, denomina sistema operativo a todo el software que viene con el ordenador antes de que se instale ninguna aplicacin. Segn esta definicin, orientada al usuario final, las herramientas de desarrollo no son necesarias y, sin embargo, se consideran elementos imprescindibles un amplio nmero de programas orientados a diferentes tareas, como editores de texto, administradores de archivos, navegadores, etc. En industrias como la manufacturera o de servicios, se le denomina sistema operativo a la aplicacin de software que se usa como principal fuente de datos de entrada de la compaa, es decir, el sistema que se usa en el rea operativa.
6
Caractersticas
Administracin de tareas:
Monotarea: Si solamente puede ejecutar un programa (aparte de los procesos del propio S.O.) en un momento dado. Una vez que empieza a funcionar un programa, continuar hacindolo hasta su finalizacin o interrupcin. Multitarea: Si es capaz de ejecutar varios programas al mismo tiempo. Este tipo de S.O. normalmente asigna los recursos disponibles (CPU, memoria, perifricos) de forma alternativa a los programas que los solicitan, de manera que el usuario percibe que todos funcionan a la vez.
10
Caractersticas
Administracin de usuarios: Monousuario: Si slo permite ejecutar los programas de un usuario al mismo tiempo. Multiusuario: Si permite que varios usuarios ejecuten simultneamente sus programas, accediendo a la vez a los recursos del ordenador. Normalmente estos S.O. utilizan mtodos de proteccin de datos, de manera que un programa no pueda usar o cambiar los datos de otro usuario.
11
Manejo de recursos:
Centralizado: Si permite utilizar los recursos de un solo ordenador. Distribuido: Si permite utilizar los recursos (memoria, CPU, disco, perifricos...) de ms de un ordenador al mismo tiempo.
Multiproceso
Las computadoras que tienen mas de un CPU son llamadas multiproceso. Un sistema operativo multiproceso coordina las operaciones de la computadoras multiprocesadoras. Ya que cada CPU en una computadora de multiproceso puede estar ejecutando una instruccin, el otro procesador queda liberado para procesar otras instrucciones simultneamente. Al usar una computadora con capacidades de multiproceso incrementamos su velocidad de respuesta y procesos. Casi todas las computadoras que tienen capacidad de mu ltiproceso ofrecen una gran ventaja.
13
Multiproceso
Los primeros Sistemas Operativos Multiproceso realizaban lo que se conoce como: Multiproceso asimtrico: Una CPU principal retiene el control global de la computadora, as como el de los otros procesadores. Esto fue un primer paso hacia el multiproceso pero no fue la direccin ideal a seguir ya que la CPU principal poda conv ertirse en un cuello de botella.
Multiproceso simtrico: En un sistema multiproceso simtrico, no existe una CPU controladora nica. La barrera a vencer al implementar el multiproceso simtrico es que los SO tienen que ser rediseados o diseados desde el principio para trabajar en u n ambiente multiproceso.
Las extensiones de Unix, que soportan multiproceso asimtrico ya estn disponibles y las extensiones simtricas se estn haciendo disponibles. Windows NT de Microsoft soporta multiproceso 14 simtrico.
Evolucin de la informtica
En los 70 - Mainframes centrales Sistemas de tiempo compartido Recursos centralizados - Interfaces de usuario poco amigables - Aparecen las primeras redes En los 80: - PCs y estaciones de trabajo - Interfaces amigables - Redes de rea local - Aparecen los primeros sistemas operativos distribuidos Mach, Sprite, Chorus, ...
15
Evolucin de la informtica
En los 90: - Despegue de las aplicaciones cliente/servidor - Mas descentralizacin - Enorme difusin de internet gracias al Web - Nuevas necesidades y aplicaciones basadas en el Web Siglo XXI: Comercio electrnico Multimedia Sistemas de control Pginas Dinmicas
Conceptos previos
Un programa es un conjunto de instrucciones. Un proceso es un programa en ejecucin. Una red de computadoras es un conjunto de computadoras concectadas por una red de interconexin. Un sistema distribuido (SD) Modelo fsico: conjunto de nodos (procesadores sin memoria ni reloj comn) conectados por una red. Modelo lgico: conjunto de procesos que ejecutan
concurrentemente en uno o ms computadores que colaboran y comunican intercambiando mensajes. Un protocolo es un conjunto de reglas e instrucciones que gobiernan la comunicacin en un
Definicin y concepto
Un sistema distribuido es aquel en el que dos o ms mquinas colaboran para la obtencin de un resultado. En todo sistema distribuido se establecen una o varias comunicaciones siguiendo un protocolo prefijado mediante un esquema cliente-servidor.
18
Definicin y concepto
En un esquema cliente-servidor, se denomina cliente la mquina que solicita un determinado servicio y se denomina servidor la mquina que lo proporciona. El servicio puede ser la ejecucin de un determinado algoritmo, el acceso a determinado banco de informacin o el acceso a un dispositivo hardware.
19
Definicin y concepto
Por extensin, se puede aplicar el esquema cliente-servidor dentro de una misma mquina, donde el proceso servidor y el proceso cliente son dos procesos independientes que corren dentro de la misma instancia de sistema operativo. Es por tanto un elemento primordial para que haya un sistema distribuido, la presencia de un medio fsico de comunicacin entre ambas mquinas, y ser la naturaleza de este medio la que marque en muchos casos la viabilidad del sistema.
20
Otras definiciones
Un sistema distribuido es aqul en el que no puedes trabajar con tu mquina por el fallo de otra mquina que ni siquiera sabas que exista
-Leslie Lamport
21
Sistema distribuido sncrono: Tiempo de entrega de un mensaje est acotado. Desviacin de los relojes acotada. Ventaja: se pueden utilizar el esquema de timeout para detectar fallos o prdidas de mensajes.
22
23
Caractersticas de los SD
Compartir recursos (HW, SW, datos). Acceso a recursos remotos. Modelo cliente-servidor Modelo basado en objetos Ofrecen una buena relacin costo/rendimiento Capacidad de crecimiento Tolerancia a fallos, disponibilidad Replicacin Concurrencia Velocidad Paralelismo
25
Caractersticas de los SD
Sistemas abiertos Se caracterizan por emplear unas interfaces pblicas estandarizadas. Pueden construirse sobre HW y SW heterogneo de diferentes vendedores. Independiente de los vendedores. Puede extenderse fcilmente: Hardware: nuevas computadoras Software: nuevos servicios Transparencia Un SD se percibe como un sistema nico, no como un conjunto de componentes independientes
26
Transparencia
Acceso: acceso a recursos remotos y locales de igual
forma Posicin: acceso a los recursos sin necesidad de conocer su situacin Concurrencia: acceso concurrente a recursos compartidos sin interferencias Replicacin: Acceso a recursos replicados sin conocimiento de que lo son Fallos: mantenimiento del servicio en presencia de fallos. Migracin: permite que los recursos y objetos se muevan sin afectar a la operacin de los programas. Capacidad de crecimiento: facilidad para crecer sin afectar a la estructura del sistema
27
28
Objetivos de diseo
Rendimiento Capacidad de crecimiento Transparencia Consistencia Fiabilidad: Tolerancia a fallos Disponibilidad Recuperacin Consistencia Seguridad Confidencialidad Rendimiento predecible, calidad de servicio
30
Problemas de diseo
Nombrado Comunicacin y sincronizacin entre procesos Estructura del software Reparto de la carga Coherencia Calidad de servicio Rendimiento Fiabilidad
31
Nombrado
Los usuarios designan a los objetos mediante un
nombre.
Objetivo importante: nombres independientes de la posicin Consideraciones de diseo a tener en cuenta: El espacio de nombres (tamao, estructura, jerarqua, ...) El servicio de nombres que realiza la resolucin
32
Comunicacin y sincronizacin (C y S)
Forma bsica de C y S: paso de mensajes. Mecanismos sncronos Mecanismos asncronos Comunicacin cliente-servidor Primitivas de comunicacin bsicas (send, receive) Llamadas a procedimientos remotos Invocacin de objetos remotos Comunicacin en grupos Multicast, broadcast til para localizar un objeto, tolerancia a fallos, mejorar el rendimiento (replicacin), asegurar consistencia
33
Estructura software
Estructura software tpica de un sistema centralizado
Aplicaciones
Lenguajes de programacin Sistema operativo Hardware
Estructura software
Existen tres posibilidades para estructurar el software de un sistema distribuido Emplear sistemas operativos en red Utilizar un sistema operativo distribuido Utilizar middlewares o entornos distribuidos Lo importante es ofrecer un soporte para la programacin de aplicaciones distribuidas fcil y transparente
35
El usuario ve un conjunto de mquinas independientes No hay transparencia Se debe acceder de forma explcita a los recursos de otras mquinas Difciles de utilizar para desarrollar aplicaciones distribuidas
36
Se comporta como un SO nico Distribucin. Transparencia Se construyen normalmente como microncleos que ofrecen servicios bsicos de comunicacin Mach, Amoeba, Chorus. Todos los computadores deben ejecutar el mismo SOD
37
Servicios y protocolos estandarizados: Sistemas abiertos Ofrecen servicios no incluidos en el SO (servicios de ficheros distribuidos, servicios de nombres, ...) Facilitan el desarrollo de aplicaciones distribuidas Independientes del HW y del SO subyacente. DCE, CORBA, DCOM, Legion, Globe, Globus
38
Reparto de la carga
Cmo se asigna memoria y procesador a las aplicaciones? Modelos: Estaciones de trabajo: modelo tpico Modelo del pool de procesadores (Amoeba) Permiten paralelismo a lo usuarios Uso de una estacin de trabajo libre
39
Asegurar la coherencia
El problema de la coherencia surge cuando varios procesos acceden y actualizan datos de forma concurrente Coherencia de las actualizaciones Coherencia de la replicacin Coherencia de caches Coherencia ante fallos Relojes consistentes
40
Calidad de servicio
Rendimiento Tiempo de respuesta adecuado El rendimiento viene determinado por La red de comunicacin Los servicios de comunicacin empleados El sistema operativo El soporte para la programacin de sistemas distribuidos Fiabilidad Disponibilidad Consistencia Seguridad Confidencialidad
41