Sunteți pe pagina 1din 41

Sistemas Operativos II

1. Sistemas Distribuidos (Introduccin)

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

Cmo funciona un sistema operativo?


Los Sistemas Operativos controlan diferentes procesos de la computadora. Un proceso importante es la interpretacin de los comandos que permiten al usuario comunicarse con el ordenador. Algunos intrpretes de instrucciones estn basados en texto y exigen que las instrucciones sean tecleadas. Otros estn basados en grficos, y permiten al usuario comunicarse sealando y haciendo clic en un icono.
Los Sistemas Operativos pueden ser de tarea nica o multitarea. Los sistemas operativos de tarea nica, ms primitivos, slo pueden manejar un proceso en cada momento. Por ejemplo, cuando la computadora est imprimiendo un documento, no puede iniciar otro proceso ni responder a nuevas instrucciones hasta que se termine la impresin.
7

Cmo funciona un sistema operativo?


Todos los Sistemas Operativos modernos son multitarea y pueden ejecutar varios procesos simultneamente. En la mayora de los ordenadores slo hay un CPU; un Sistema Operativo multitarea crea la ilusin de que varios procesos se ejecutan simultneamente en el CPU. El mecanismo que se emplea ms a menudo para lograr esta ilusin es la multitarea por segmentacin de tiempos, en la que cada proceso se ejecuta individualmente durante un periodo de tiempo determinado. Si el proceso no finaliza en el tiempo asignado, se suspende y se ejecuta otro proceso. Este intercambio de procesos se denomina conmutacin de contexto.
8

Cmo funciona un sistema operativo?


El sistema operativo se encarga de controlar el estado de los procesos suspendidos. Tambin cuenta con un mecanismo llamado planificador que determina el siguiente proceso que debe ejecutarse. El planificador ejecuta los procesos basndose en su prioridad para minimizar el retraso percibido por el usuario. Los procesos parecen efectuarse simultneamente por la alta velocidad del cambio de contexto.
Los Sistemas Operativos pueden emplear memoria virtual para ejecutar procesos que exigen ms memoria principal de la realmente disponible. Con esta tcnica se emplea espacio en el disco duro para simular la memoria 9 adicional necesaria.

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

sistema distribuido, es decir, el intercambio de mensajes.


17

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

Modelos de sistemas distribuidos


Sistema distribuido asncrono: Tiempo de entrega de un mensaje no est acotado. Relojes no sincronizados.

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

Ejemplos: red de rea local

23

Ejemplos de aplicaciones distribuidas


Correo electrnico, transferencia de ficheros Servicios de News World Wibe Web Sistemas de control de trfico reo Aplicaciones bancarias Comercio electrnico Aplicaciones multimedia (vdeoconferencias, video bajo demanda , etc.) El ancho de banda en estas aplicaciones es un orden de magnitud mayor que en otras Aplicaciones mdicas (transferencia de imgenes)
24

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

Desventajas de los sistemas distribuidos


Interconexin Costo Fiabilidad, prdida de mensajes Saturacin Comunicaciones inseguras Software ms complejo Potencia de cada nodo no adecuada

28

Sistemas distribuidos y paralelos


Sistemas distribuidos Objetivo: compartir recursos y colaborar. Redes de computadoras Sistemas paralelos Objetivo: ejecutar un programa muy rpido Mquinas paralelas (arquitecturas dedicadas) Multiprocesadores Multicomputadoras Redes de estaciones de trabajo trabajando como una multicomputadora (cluster)
29

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.

Los programas designan a los objetos mediante un

identificador. Resolver un nombre implica obtener el identificador a partir del 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

El sistema operativo Gestiona los recursos Ofrece servicios


34

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

Sistema operativo en red (SOR)

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

Sistema operativo distribuido (SOD)

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

Middleware y entornos distribuidos

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

S-ar putea să vă placă și