Anda di halaman 1dari 39

Sistemas Operativos Distribuidos

Evolucin de los Sistemas Operativos Modernos(1)


Un sistema operativo es un conjunto de mdulos de software que de manera colectiva presentan una mquina extendida o mquina virtual que sirve de interfaz entre los programas de aplicacin y el hardware del sistema, todo esto con la meta principal de obtener un sistema computacional eficiente, seguro y fcil de usar. Alternativamente podemos decir que un sistema operativo tiene como funcin administrar y controlar todos los elementos que componen a una computadora. Las funciones principales del sistema operativo son:
n n

Multiplexacin y planificacin del procesador o procesadores Coordinar la ejecucin de los procesos interactivos
2

Evolucin de los Sistemas Operativos Modernos(2)


n n n

Administrar los recursos del sistema (dispositivos de E/S, memoria, archivos) Asegurar el control de acceso y la proteccin Mantener la integridad del sistema y realizar recuperacin ante errores Proporcionar una interfaz a los usuarios

Es comn y deseable estructurar estas funciones en dos categoras: Servicios del sistema y el ncleo del sistema operativo. Los servicios del sistema son funciones de alto nivel y son las que perciben los programas de aplicacin, el ncleo consiste nicamente de las funciones esenciales que son dependientes de la arquitectura sobre la que se subyace.
3

Evolucin de los Sistemas Operativos Modernos(3)


Usuarios

Programas de Aplicacin
Servicios del Sistema Ncleo Hardware

La abstraccin de la mquina es la meta principal, y la administracin de los recursos es la forma de lograrlo.

Evolucin de los Sistemas Operativos Modernos(4)


La proliferacin de las computadoras personales y las redes de rea local han llevado al desarrollo de nuevos conceptos en el ramo de los sistemas operativos como los sistemas operativos de red, los sistemas operativos distribuidos y ltimamente el concepto de sistemas autnomos cooperativos. Estos ltimos hacen nfasis en el diseo de aplicaciones distribuidas para ambientes de sistemas abiertos. Un sistema abierto est relacionado principalmente con la flexibilidad para integrar y portar componentes heterogneos, para soportar trabajo cooperativo a gran escala y a nivel de aplicacin. Una manera de realizar una comparacin entre los conceptos de sistemas operativos es identificarlos por sus objetivos y caractersticas:
5

Evolucin de los Sistemas Operativos Modernos(5)


Generacin Sistema Caractersticas Metas
Primera Sistema operativo centralizado Administracin Administracin Administracin E/S Administracin de procesos de memoria de dispositivos de de archivos Administracin de recursos. Mquina extendida. (abstraccin) Comparticin de recursos. (interoperabilidad) Se percibe al sistema de mltiples computadoras como a una sola. (transparencia) Trabajo cooperativo (autonoma)

Segunda

Sistema operativo de red

Acceso remoto Intercambio de Informacin Visualizacin de la red Vista global del: sistema de archivos, espacio de nombres, tiempo, seguridad, poder de cmputo Aplicaciones distribuidas abiertas y cooperativas

Tercera

Sistema operativo distribuido

Cuarta

Sistema autnomo cooperativo

Evolucin de los Sistemas Operativos Modernos(6)


La interoperabilidad se refiere a la capacidad del sistema de intercambiar informacin entre componentes heterogneos. Esta es la meta principal en el diseo de un sistema operativo de red para un ambiente heterogneo. Un sistema operativo distribuido proporciona a los usuarios una vista lgica del sistema que es independiente del sistema fsico. En particular, los usuarios perciben al sistema compuesto por mltiples computadoras como un sistema de una sola computadora. La existencia de la red y los detalles de la implementacin del sistema son transparentes para el usuario. En primera instancia podra parecer que la transparencia es una meta importante, sin embargo no siempre deseable debido a que implica cierto grado de control centralizado.
7

Evolucin de los Sistemas Operativos Modernos(7)


Es perfectamente probable que los usuarios deseen tener su vista propia del sistema. Lo que los usuarios necesitan es un ambiente de sistemas abiertos que no necesariamente requiera transparencia sino ms bien que el sistema proporcione a los usuarios la posibilidad de libremente modificar, portar, integrar y expandir sus aplicaciones dentro de un sistema heterogneo. Esto debido a que los usuarios estn concientes de la existencia de mltiples recursos y de otros usuarios, y donde los sistemas y los usuarios son completamente autnomos. Adicionalmente, los sistemas de software se construyen de manera cooperativa integrando servicios provistos por unidades autnomas. Este tipo de sistemas autnomos cooperativos se comportan de manera parecida a las sociedades humanas.
8

Sistemas Operativos Centralizados(1)


Los sistemas operativos tradicionales para arquitecturas de uno o varios procesadores son sistemas operativos centralizados. Estos sistemas son fuertemente acoplados en el sentido de que todos los recursos se comparten internamente y que la comunicacin entre procesos se logra mediante memoria compartida o por interrupciones directas a los procesos. La estructura de los sistemas operativos centralizados ha evolucionado desde un simple programa de control, responsable de proporcionar una interfaz de usuario y de controlar los dispositivos de E/S, a sistemas multitarea y/o multiusuario que requieren una administracin compleja de los procesadores, memoria, archivos y dispositivos.
9

Sistemas Operativos Centralizados(2)


La tabla muestra las funciones administrativas necearas para cada requerimiento adicional del sistema.
Requerimientos del Sistema Un solo usuario E/S eficiente Procesos grandes Mltiples usuarios Funciones de Administracin Interfaz de usuario, control de E/S, interrupciones, manejadores de dispositivos E/S virtual, encolado Memoria virtual, paginacin y segmentacin Multiprogramacin y tiempo compartido, planificacin de procesos, control de acceso y proteccin, comparticin de archivos y control de concurrencia Procesamiento concurrente, sincronizacin de procesos, comunicacin entre procesos

Multitarea

10

Sistemas Operativos Centralizados(3): Estructura del SO


Un sistema operativo consta de miles o millones de lneas de cdigo, por lo que es necesario que este tipo de sistemas se estructuren en mdulos manejables. Es deseable proporcionar interfaces claramente definidas entre los mdulos y establecer restricciones en cuanto a cmo interactan los mdulos entre s. Tradicionalmente existen dos esquemas para particionar a los sistemas operativos en mdulos, y se conocen como vertical y horizontal. La estructuracin horizontal es un concepto en el cual los mdulos que componen al sistema operativo se agrupan en diferentes capas, y nicamente est permitida la interaccin entre capas adyacentes. Los mdulos dentro de cada capa se pueden organizar de manera vertical para obtener componentes disjuntos.
11

Sistemas Operativos Centralizados(4): Estructura del SO


Servicios del Sistema
Ncleo Hardware b) esquema horizontal

Administrador de Memoria

Administrador de Procesos

...

Sistema de Archivos

Ncleo a) esquema vertical

12

Sistemas Operativos Centralizados(5): Estructura del SO


La portabilidad de un sistema operativo se puede aumentar separando el cdigo del sistema que es dependiente hardware, del que es independiente de l. Se puede disear al sistema operativo de tal manera que la parte del cdigo que es dependiente del hardware se mantenga lo ms pequea posible y separada de los servicios del sistema. Este esquema del ncleo mnimo reduce la complejidad de portar un sistema operativo de una arquitectura a otra debido a que slo es necesario rescribir la parte del ncleo.

13

Sistemas Operativos Centralizados(6): Estructura del SO


Las funciones que comnmente se implementan en un ncleo mnimo son la multiplexacin de los procesadores con soporte para multiprogramacin, manejo de interrupciones, primitivas de sincronizacin de procesos y facilidades de comunicacin entre procesos. La estructura de un sistema operativo se puede ampliar utilizando el modelo cliente-servidor. De esta forma, las llamadas al sistema realizadas desde los procesos de aplicacin solicitando algn servicio del sistema puede verse como una solicitud de un cliente a un proceso servidor.

14

Sistemas Operativos Centralizados(7):


Microncleo y Subsistemas
Un ncleo universal y mnimo sobre el cual se pueden implementar servicios estndar del sistema operativo para soportar subsistemas orientados servir a las aplicaciones de usuario, se llama microncleo (microkernel). Una arquitectura de microncleo consiste de un ncleo mnimo dependiente del hardware y un conjunto ejecutivos (servicios del sistema) independientes del hardware con Interfaces de Programas de Aplicacin (APIs) bien definidas. Lo relevante del concepto de microncleo es que proporciona un ambiente con las condiciones necesarias y suficientes para construir cualquier subsistema o sistema operativo sobre l.
15

Sistemas Operativos Centralizados(8):


Microncleo y Subsistemas
Es posible que el microncleo se estructure con un mdulo de abstraccin del hardware con el fin de facilitar la escritura del cdigo dependiente del hardware cuando se porta a otra arquitectura. A esta estructura adicional se le conoce como Capa de Abstraccin del Hardware (HAL, "Hardware Abstraction Layer") o Interfaz Proveedora de Servicios (SPI, "Service Provider Interface") cuando es utilizada por algn mdulo de software de ms alto nivel. Como puede observarse en la figura siguiente, el API proporciona extensibilidad para las aplicaciones de ms alto nivel y el SPI (o HAL) aumenta la portabilidad para plataformas de bajo nivel.
16

Sistemas Operativos Centralizados(9):


Microncleo y Subsistemas
...
Aplicacin 1 Aplicacin 2 API Servicios del Sistema SPI (o HAL) Portable

Aplicacin n

Extensible

Plataforma 1

Plataforma 2

...

Plataforma n

Como ejemplo de una arquitectura de microncleo tenemos a Windows NT. En esta arquitectura, cada cliente percibe a la computadora como un ambiente operativo diferente (OS/2, Win32, POSIX) presentado por el API del subsistema correspondiente.
17

Sistemas Operativos Centralizados(10):


Microncleo y Subsistemas
Cada subsistema posee su propio espacio de direcciones aislado y protegido de los dems subsistemas. Los subsistemas realizan sus llamadas al API del sistema ejecutivo por medio de la interfaz que proporciona el NTDLL.DLL y por lo tanto se pueden implementar independientemente de los ejecutivos, del ncleo y del hardware sobre los que se subyazca. El objetivo de un subsistema de entorno es proporcionar a los programas de aplicacin algunos de los servicios bsicos del sistema ejecutivo de Windows NT. Cada subsistema puede proporcionar acceso a distintos subconjuntos de los servicios nativos de Windows NT. Esto significa que habr algunas aplicaciones que puedan realizar ciertas actividades sobre un subsistema que no puedan realizar en otro.
18

Sistemas Operativos Centralizados(11):


Microncleo y Subsistemas
Procesos del sistema Servicios Subsistemas de entorno Aplicaciones

Controlador de servicios WinLogon Administrador de sesiones

POSIX Spooler Registro de sucesos OS/2 Win32 Aplicaciones de usuario DLL de subsistema

Hilos del sistema

NTDLL.DLL Modo usuario Modo ncleo


Despachador de Servicios del Sistema (API ejecutivo)

Interfaces que se llaman en modo ncleo Administrador de Administrador Procesos y E/S de cach subprocesos Controladores de dispositivo Ncleo Capa de Abstraccin de Hardware (HAL) ... Administrador de objetos Memoria Virtual LPC

USER y GDI Win32

Controladores Grficos

19

Sistemas Operativos Centralizados(12):


Microncleo y Subsistemas
Cada imagen ejecutable est ligada a un nico subsistema de manera que no pueden mezclarse llamadas a subsistemas distintos. Sin embargo, desde la perspectiva prctica, si cada subsistema tuviese que implementar todo el cdigo necesario para gestionar las ventanas y la E/S grfica, se duplicaran muchas de las funciones del sistema. Puesto que Win32 es el subsistema principal, los diseadores de Windows NT situaron en l estas funciones bsicas y hacen que los dems subsistemas lo utilicen. La arquitectura de Windows NT contiene todos los conceptos discutidos hasta ahora: modularizacin, capas, modelo cliente-servidor, modelo de objetos y ncleo mnimo. La mayora de los sistemas operativos modernos siguen esta misma filosofa de diseo, por supuesto, con algunas diferencias en los detalles de la implementacin.
20

Sistemas Operativos Centralizados(13):


Funciones de Administracin
Ahora analizaremos a un sistema operativo desde la perspectiva de un sistema como administrador de recursos. Es posible clasificar a los recursos existentes en una computadora en cuatro categoras principales: procesos/procesadores, memoria, E/S, y datos/archivos. La administracin de procesos/procesadores al nivel ms bajo no es otra cosa que asignar (o planificar) procesadores a los procesos. Para proporcionar caractersticas multiusuario y multitarea eficientes, es necesario dividir el espacio (la memoria) y el tiempo que un proceso se ejecuta (l o los procesadores). En este sentido, los usuarios nicamente estn involucrados en la coordinacin de los procesos concurrentes que interactan entre s.
21

Sistemas Operativos Centralizados(14):


Funciones de Administracin
Para lograr una correcta interaccin entre procesos es necesario proporcionar mecanismos de sincronizacin y comunicacin. Adicionalmente a la sincronizacin y comunicacin entre procesos, la administracin de los mismos incluyen funciones de planificacin. Existen varias estrategias de planificacin con diferentes objetivos como garantizar tiempos de respuesta, la eficacia y la equidad. La planificacin de procesos (o tareas) con uno o varios procesadores es un problema clsico de investigacin de operaciones. Su aplicacin a los sistemas distribuidos es complicada, debido a la existencia de mltiples computadoras y a las sobrecargas impuestas por la comunicacin.
22

Sistemas Operativos Centralizados(15):


Funciones de Administracin
La administracin de los dispositivos de E/S es responsabilidad del sistema al cual estn fsicamente incorporados. Los procesadores proporcionan una interfaz general para todos los dispositivos. Para agregar nuevos dispositivos a un sistema, es responsabilidad de los fabricantes de los dispositivos de E/S desarrollar los manejadores en hardware, as como sus controladores de software. En un sentido abstracto, es posible visualizar a los dispositivos de E/S como dispositivos de almacenamiento. Desde el punto de vista del sistema operativo, algunas veces es conveniente ver a los dispositivos de E/S como archivos lgicos. Los archivos lgicos que representan dispositivos fsicos se conocen como dispositivos virtuales. De esta manera, los procesos trabajan nicamente sobre archivos.
23

Sistemas Operativos Centralizados(16):


Funciones de Administracin
Las funciones de administracin de la memoria incluyen su asignacin y liberacin, adems de asociar los espacios de direcciones fsicos con los virtuales. El objetivo primario es mantener una alta utilizacin de la memoria y proporcionar soporte de memoria virtual para programas con grandes requerimientos de la misma. La mayora de los sistemas modernos utilizan tcnicas de paginacin y/o segmentacin para implementar la memoria virtual. Debido a que todas las pginas y segmentos no pueden residir de manera simultanea en la memoria fsica, es necesario reemplazar pginas y segmentos para responder a referencias hacia nuevos datos y cdigo durante la ejecucin de los programas.
24

Sistemas Operativos Centralizados(17):


Funciones de Administracin
Existen varios algoritmos de reemplazo de pginas que tienen como propsito reducir la frecuencia en que ocurren los fallos de pgina. El rendimiento de dichas estrategias depende fuertemente del comportamiento de los programas que se ejecutan durante un instante dado. La memoria virtual es una alternativa para resolver las discrepancias en tamao y velocidad entre los relativamente lentos dispositivos de disco y la memoria primaria. La eleccin de algoritmos de reemplazo de pginas, los efectos del tamao de las pginas y de las memorias, el impacto de las caractersticas de localidad espacial y temporal de los programas, la utilizacin de memorias intermedias y la consistencia del cach son algunas de las problemticas bsicas en la administracin de la memoria.
25

Sistemas Operativos Centralizados(18):


Funciones de Administracin
En un sistema operativo centralizado, la memoria compartida ofrece la ventaja de la simplicidad y eficiencia para la comunicacin e interaccin entre procesos. En un ambiente distribuido, podra ser deseable simular un sistema de memoria compartida an cuando no se comparta memoria fsica. Este concepto de Memoria Compartida Distribuida posee problemticas relacionadas con la consistencia y el rendimiento en la comparticin de los datos, similares a los que se presentan en los sistemas de archivos distribuidos.

26

Sistemas Operativos Centralizados(19):


Funciones de Administracin
Los archivos son entidades lgicas de datos que se pueden implementar utilizando cualquier dispositivo de almacenamiento. En el sentido ms abstracto, cualquier operacin de cmputo puede verse como procesos operando sobre archivos. Las funciones bsicas de administracin de archivos son proporcionar acceso y comparticin de los archivos. Adems del objetivo bsico de la eficiencia, el acceso a los archivos requiere proteccin, mecanismos de control y de seguridad. La comparticin de archivos requiere sincronizacin y control de concurrencia.

27

Sistemas Operativos de Red(1)


Comencemos definiendo una red de computadoras como un sistema compuesto por mltiples computadoras dbilmente acopladas en las que ninguna estacin de trabajo controla directamente el hardware o software de otra, y la sobrecarga debido a la comunicacin entre estaciones de trabajo (medida en tiempo) es mucho mayor que la transferencia de datos dentro de alguna de las estaciones de trabajo. El objetivo principal de este tipo de sistemas es compartir recursos (hardware y software) a travs de la red. La nica interaccin presente en el sistema es el intercambio de informacin entre estaciones de trabajo por medio de algn tipo de canal de comunicacin externo.
28

Sistemas Operativos de Red(2)


Un sistema operativo de red puede verse como una extensin de un sistema operativo tradicional diseado para facilitar la comparticin de recursos y el intercambio de informacin. Por lo tanto, es conveniente describir un sistema operativo de red ilustrando sus aplicaciones de red ms comunes y el servicio de transporte necesario para soportarlas. El servicio de transporte es la interfaz entre los programas de aplicacin de red y la red de comunicacin fsica. Es quien implementa los protocolos de comunicacin que utilizan los sistemas operativos que alojan a las aplicaciones que participan en una interaccin. En la siguiente figura se muestra un ejemplo de integracin del servicio de transporte en un sistema operativo para un proceso de aplicacin que accede a un sistema de archivos remoto.
29

Sistemas Operativos de Red(3)


Proceso de Aplicacin Llamada al Sistema Llamada al Sistema Proceso de Aplicacin

Ncleo UNIX
Sistema de Archivos Virtual Sistema de Archivos Local Administracin de Dispositivo Manejadores de Dispositivos Sistema de Archivos de Red Servicio de Transporte Servicio de Red Protocolos punto a punto

Ncleo UNIX
Sistema de Archivos Virtual

Sistema de Archivos de Red


Servicio de Transporte Servicio de Red

Sistema de Archivos Local Administracin de Dispositivo Manejadores de Dispositivos

Red

30

Sistemas Operativos de Red(4)


La mayora de los sistemas operativos de red utilizan un API de alto nivel, como un socket o una llamada a procedimiento remota para acceder a los servicios del sistema de transporte que soportan la comunicacin entre sistemas operativos. Un sistema operativo de red se caracteriza por la inclusin de una capa de transporte y por el soporte para construir aplicaciones que hacen uso de sus servicios. Como ejemplos de aplicaciones de red tenemos: sesiones remotas, transferencia de archivos, correo electrnico, WWW y ejecucin remota.

31

Sistemas Operativos Distribuidos(1)


La proliferacin de estaciones de trabajo poderosas y los avances en las tecnologas de comunicacin han hecho posible extender el concepto de compartir recursos un paso ms delante: incluir formas ms generales de actividades cooperativas entre una coleccin de computadoras autnomas, conectadas por medio de una red de comunicacin. Compartir recursos y coordinacin de actividades distribuidas son las metas principales en el diseo de sistemas operativos distribuidos. Los recursos fsicos estn distribuidos por la naturaleza misma de los sistemas dbilmente acoplados. La informacin necesita estar distribuida debido a su naturaleza o por necesidades organizacionales como eficiencia o seguridad. Adems, se puede aumentar el rendimiento del sistema mediante la distribucin.
32

Sistemas Operativos Distribuidos(2)


Es responsabilidad de un sistema operativo distribuido manejar y administrar los recursos y las actividades distribuidas. Debera un sistema operativo distribuido ser en s distribuido? La respuesta es que una gran parte debera de serlo, debido una vez ms a su naturaleza y a necesidades organizacionales. Todo esto genera la necesidad de una implementacin distribuida de las funciones de control y administracin de un sistema distribuido, es decir, el diseo de algoritmos distribuidos. Dado un sistema operativo distribuido para un sistema distribuido, es deseable ocultar los detalles de la implementacin a los usuarios del sistema. Esto lleva a la principal diferencia entre un sistema operativo de red y un sistema operativo distribuido que es el concepto de transparencia.
33

Sistemas Operativos Distribuidos(3)


En un sistema operativo distribuido, el concepto de transparencia se puede extender a la localizacin de un archivo y a los accesos concurrentes. En el caso de procesamiento distribuido, se puede obtener paralelismo y transparencia al desempeo si los procesos se pueden ejecutar en procesadores arbitrarios sin que lo perciban los usuarios. Debera haber un lmite? La viabilidad y hasta lo deseable de un sistema puramente transparente es altamente debatible. En general, la transparencia es una buena propiedad, y la utilizaremos como una de las caractersticas clave en un sistema operativo distribuido
34

Sistemas Operativos Distribuidos(4)


Al principio del captulo definimos a un sistema de computadora como un sistema abstracto formado por procesos y archivos. En este momento le aadiremos algoritmos o ms precisamente algoritmos de control distribuidos para manejar la ejecucin de procesos sobre archivos en sistemas distribuidos. De esta manera, un sistema operativo distribuido consiste de tres componentes principales: Coordinacin de procesos distribuidos, administracin de recursos distribuidos e implementacin de algoritmos distribuidos para llevar a cabo todos los servicios de un sistema centralizado.

35

Sistemas Autnomos Cooperativos(1)


Si mantenemos cierto grado de transparencia y eliminamos la nocin de la vista de un solo usuario de un sistema de mltiples computadoras, tenemos un punto de vista completamente diferente de un sistema dbilmente acoplado puro. Cada usuario o proceso opera de manera autnoma exportando y solicitando servicios. Las actividades grupales se pueden coordinar mediante el intercambio de servicios y solicitudes. Los servicios de ms alto nivel se pueden implementar mediante la composicin de servicios de ms bajo nivel. Esta es la vista de un sistema autnomo cooperativo. La figura siguiente ilustra la diferencia fundamental entre un sistema operativo distribuido y un sistema autnomo cooperativo.
36

Sistemas Autnomos Cooperativos(2)


Servicios

Descomposicin en un sistema distribuido

Integracin en un sistema autnomo

37

Sistemas Autnomos Cooperativos(3)


Los sistemas distribuidos se caracterizan por la descomposicin de los servicios, mientras que los sistemas autnomos cooperativos enfatizan la integracin de servicios. Un sistema autnomo cooperativo es software orientado a servicios de alto nivel que requieren soporte de mecanismos de comunicacin para construir protocolos de comunicacin de alto nivel. El concepto fundamental de los sistemas autnomos cooperativos es la integracin de servicios para formar actividades cooperativas. En este esquema tanto hardware como software estn completamente desacoplados y descentralizados.

38

Sistemas Autnomos Cooperativos(4)


Contrariamente a la filosofa de una sola computadora de los sistemas distribuidos, en el caso de los sistemas autnomos cooperativos se hace nfasis en cmo construir y administrar grupos lgicos de usuarios y recursos distribuidos, teniendo conocimiento explcito de la existencia de mltiples computadoras. Los grupos de usuarios forman sus propios dominios lgicos de red con objetivos especficos, y son ellos los responsables del control de acceso y la proteccin del grupo. Un sistema autnomo descentralizado es un sistema que proporciona servicios fundamentales mediante los cuales se pueden integrar servicios cooperativos de ms alto nivel.

39

Anda mungkin juga menyukai