Está en la página 1de 21

Sistemas Operativos Centralizados y Distribuidos

1) Sistemas Operativos Centralizados.......................................................................................... 4 1.1) Concepto............................................................................................................................... 4 1.2) Gestin de procesos.............................................................................................................. 5 1.3) Gestin de memoria.............................................................................................................. 5 1.4) Gestin de dispositivos.......................................................................................................... 6 1.5) Gestin de archivos............................................................................................................... 6 2) Sistemas Operativos Distribuidos.............................................................................................7 2.1) Concepto............................................................................................................................... 7 2.2) Ventajas y Desventajas......................................................................................................... 7 2.3) Aspectos del Diseo.............................................................................................................. 8 2.3.1) Transparencia..................................................................................................................... 8 2.3.2) Flexibilidad.......................................................................................................................... 9 2.3.3) Confiabilidad....................................................................................................................... 9 2.3.4) Desempeo......................................................................................................................... 9 2.3.5) Escalabilidad...................................................................................................................... 9 2.4) Comunicacin en los sistemas distribuidos.......................................................................... 10 2.5) Sincronizacin en sistemas distribuidos............................................................................... 10 2.6) Procesos y procesadores..................................................................................................... 10 2.7) Sistemas distribuidos de archivos........................................................................................ 11 2.8) Memoria compartida distribuida............................................................................................ 11 2.9) Modelos de Sistemas Distribuidos........................................................................................ 12 2.9.1) Grupos de Procesadores................................................................................................... 12 2.9.2) Cliente Servidor.................................................................................................................. 12 3) Comparacin entre Sistemas Operativos Centralizados y Distribuido.......................................13 4) Ejemplos.....................................................................................................................................14 4.1) Ejemplos de Sistemas Operativos Centralizados.................................................................. 14 4.1.1) DOS.................................................................................................................................... 14 4.1.2) UNIX................................................................................................................................... 15 4.1.3) Mac OS.............................................................................................................................. 15 4.2) Ejemplos de Sistemas Operativos Distribuidos.................................................................... 16 4.2.1) Amoeba.............................................................................................................................. 16 4.2.2) Mach................................................................................................................................... 17 4.2.3) Chorus................................................................................................................................. 18 4.2.4) DCE..................................................................................................................................... 18 Bibliografa......................................................................................................................................21 Conclusiones..................................................................................................................................20

ndice de contenido

Sistemas Operativos Centralizados y Distribuidos 1) Sistemas Operativos Centralizados 1.1) Concepto Si queremos dar una definicin simple de lo que es un sistema operativo centralizado, diremos que se trata de de aquel que utiliza los recursos de una sola computadora, es decir, su memoria, CPU, disco y perifricos. Respecto al hardware podemos decir que se suele tratar de un computador caro y de gran potencia, con terminales alfanumricos directamente conectados. Suele tratarse de una computadora de tipo desktop, en las cuales es comn encontrar un monitor grande con un teclado y un mouse; adems de un case para albergar la unidad de procesamiento y los dems componentes. Podemos encontrar este tipo de sistemas operativos en un entorno de empresa, en el cual puede haber un soporte multiusuario. Las empresas, en especial las antiguas, utilizan una mainframe potente para dar capacidad de cmputo a muchos terminales, o tambin se puede encontrar empresas con abundantes minicomputadores para los empleados que las necesiten en sus actividades. Uno de los primeros modelos de ordenadores interconectados fue el centralizado,donde todo el procesamiento de la organizacin se llevaba a cabo en una sola computadora,normalmente un Mainframe, y los usuarios empleaban sencillos ordenadores personales. Los problemas de este modelo son que cuando la carga de procesamiento aumentaba se tena que cambiar el hardware del Mainframe, lo cual es ms costoso que aadir ms computadores personales clientes o servidores que aumenten las capacidades. El otro problema que surgi son las modernas interfaces grficas de usuario, las cuales podan conllevar a un gran aumento de trfico en los medios de comunicacin y por consiguiente podan colapsar. Otro entorno donde se encuentran sistemas operativos de arquitectura centralizada es en los entornos cientficos. En ellos se busca la ejecucin eficiente de aplicaciones y el uso de supercomputadores, que son computadoras con capacidades de clculo muy superiores a las comnmente disponibles de las mquinas de escritorio. Se suele usar este tipo de mquinas para clculos en los que intervienen una gran cantidad de operaciones complejas y muchos factores. En un entorno familiar se puede encontrar una computadora. Estas tienen un sistema operativo centralizado porque el ordenador es nico y no necesita trabajar en paralelo con ninguna otra computadora, ya que no se encuentra conectado a ninguna. Normalmente estos ordenadores tienen uno o dos procesadores potentes y caros que satisfacen las necesidades de cmputo del usuario. En estos sistemas hay un uso ocasional de la red, como para transferir ficheros o logins remotos. Actualmente prcticamente todos (por no decir todos) los sistemas operativos permiten la transferencia de ficheros. Uno puede conectarse con una mquina en la misma red y acceder a los documentos que sta est dispuesta a compartir por orden del usuario o viceversa. Pero no se trata de una transferencia realmente transparente pues el usuario est consciente de que est accediendo a archivos almacenados en un disco diferente al que le

pertenece, al que forma parte de su computadora. Asimismo es posible conectarse de forma remota a otra computadora como en el caso de la asistencia remota, pero son ms que nada utilidades o funciones agregadas que permite realizar el sistema operativo centralizado, sin llegar a ser lo que buscaba como objetivo principal el sistema al ser diseado. Son muy conocidos los sistemas centralizados con los que contamos en la actualidad, basta con empezar por los que tenemos instalados en nuestras propias computadoras como Windows, Linux, Mac OS, Unix, etc. 1.2) Gestin de procesos Respecto al manejo de procesos podemos cubrir 3 cosas: la comunicacin entre procesos, lasincronizacin y la planificacin. Para ejecutar un proceso, se le asigna memoria y se ejecuta sobre el (normalmente) nico procesador del sistema. Es ms simple que en un sistema distribuido pues siempre se va a elegir el procesador local, as que el tema pasa ms por buscar el funcionamiento ptimo del procesador que se posea y en buscar en qu procesador ejecutar un proceso para aprovechar las posibilidades de cmputo. La gestin de procesos en un sistema operativo centralizado se ocupa de los mecanismos y polticas para compartir o repartir un procesador entre diversos procesos de usuario. Los procesos pueden comunicarse entre s a travs de memoria compartida, ya sean variables compartidas o buffers, o a travs de las herramientas provistas por las rutinas de IPC (InterprocessCommunication). La IPC provee un mecanismo que permite a los procesos comunicarse y sincronizarse entre s. Normalmente a travs de un sistema de bajo nivel de paso de mensajes que ofrece la red subyacente. Hay varios modelos de sincronizacin de procesos tales como el de exclusin mutua, semforos y mensaje. En el caso de un sistema operativo centralizado se puede usar la memoria compartida para facilitar la sincronizacin. El sistema operativo debe decidir qu proceso ejecutar de aquellos que estn listos para ejecucin. El planificador es la parte del sistema operativo que realiza la decisin mediante el algoritmo de planificacin. Los objetivos son mejorar la equidad, eficiencia, tiempo de respuesta, minimizar el tiempo de proceso global y maximizar el nmero de trabajos procesados. El problema es que el comportamiento de los procesos es nico e impredecible. Se puede usar diferentes algoritmos de planificacin 1.3) Gestin de memoria El manejo de memoria tiene que ver con la asignacin de memoria, el mapeo lgico y fsico, la memoria virtual y los mecanismos de proteccin. En el sistema centralizado se maneja slo la memoria con la que cuenta la computadora en la que est instalado el sistema. Es la parte del sistema encargada de asignar memoria a los procesos, tratar de repartir de forma eficiente la memoria para introducir tantos procesos como sea posible.

La asignacin de memoria consiste en el proceso de asignar memoria para propsitos especficos, ya sea en tiempo de compilacin o de ejecucin. Si es en tiempo de compilacin es esttica, si es en tiempo de ejecucin es dinmica y si son variables locales a un grupo de sentencias se denomina automtica. Generalmente se divide la memoria en dos particiones, una para el SO residente y otra para los procesos de usuario. La asignacin de memoria es exclusiva para el proceso que la requiere, es decir, sta es lgicamente separada de la de cualquier otro proceso del sistema. El manejo de la memoria virtual consiste en hace creer a los programas que existe una memoria principal de gran tamao y explota localidad de acceso a travs de la jerarqua de memoria. Adems la gestin de memoria debe cumplir algunos requisitos de proteccin como que el cdigo de un proceso no debe hacer referencia a posiciones de otros procesos sin permiso.

1.4) Gestin de dispositivos

Sobre el manejo de dispositivos podemos tratar los driver de los dispositivos, el buffering y el spooling. Para que sea un sistema centralizado la gestin de dispositivos debe encargarse slo de los dispositivos que le pertenecen a una sola computadora. La gestin de dispositivos tiene que ver con los drivers y con los controladores. Los drivers o manejadores son programas que se encargan de detalles que son dependientes de los dispositivos. Los controladores son elementos electrnicos de la unidad E/S, los cuales brindan una abstraccin de lo que hace el dispositivo pues uno le enva la funcin al controlador y l se encarga de ver que el dispositivo realice las acciones necesarias. En un sistema centralizado, la asignacin de los recursos disponibles est gestionada, como ya sabemos, por el sistema operativo. Tambin se encarga de aplicar las tcnicas de buffering y spooling. Para desacoplar las velocidades de funcionamiento de los dispositivos con las de otros elementos del sistema y, por lo tanto, aumentar el rendimiento, es habitual la utilizacin de almacenamiento intermedio o buffering tanto de entrada como de salida. El uso del spooling consiste en tener un buffer que almacena datos a enviar a un dispositivo que no admite operaciones de diferentes orgenes intercaladas.

1.5) Gestin de archivos


Para el manejo de archivos hay que tener en cuenta el acceso a archivos, la comparticin de archivos, el control de concurrencia y la replicacin de datos. Es la parte del sistema operativo centralizado que se encarga de proporcionar a los usuarios y aplicaciones servicios de para el uso, acceso y control de accesos, tanto de archivos como a directorios. Los objetivos bsicos de la gestin de archivos son: garantizar que la informacin del archivo sea vlida, optimizar el acceso a los archivos, proveer soporte E/S a gran variedad de dispositivos de almacenamiento, entregar los datos que el usuario pide, minimizar o eliminar una potencial perdida de datos, proveer un conjunto estndar de rutinas E/S, proveer soporte de E/S a mltiples usuarios.

Las funciones bsicas que debe cubrir son las de crear un archivo, borrar un archivo abrir un archivo y cerrar un archivo.

2) Sistemas Operativos Distribuidos


2.1) Concepto
Segn Tanenbaum, un sistema distribuido es "una coleccin de computadoras independientes que aparecen ante los usuarios del sistema como una nica computadora. De eso podemos entender que las mquinas son autnomas y los usuarios siempre piensan que el sistema es como una nica computadora. Un sistema distribuido se caracteriza por comportarse frente al usuario como una sola mquina; el usuario desconoce sobre qu procesador se est ejecutando sus procesos y dnde residen sus ficheros. Vamos a dar un ejemplo. Primero consideremos una red de estaciones de trabajo en un departamento de una compaa. Adems de cada estacin de trabajo podra existir una pila de procesadores en el cuarto de mquinas que no estn asignados a usuarios especficos sino que se utilicen de manera dinmica conforme sea necesario. Tal vez el sistema podra tener un sistema de archivos nico con todos los archivos accesibles desde todas las mquinas de la misma forma y con el mismo nombre de ruta de acceso. Adems, cuando el usuario escriba un comando el sistema podra buscar el mejor lugar para ejecutarlo, tal vez en la propia estacin de trabajo de usuario o en una estacin de trabajo inactiva que pertenezca a otra persona o en uno de los procesadores no asignados en el cuarto de mquinas. Si el sistema se ve como un todo y acta como un sistema de tiempo compartido clsico con un nico procesador pondra considerarse como un sistema distribuido. Otro ejemplo es el de un enorme banco con cientos de sucursales por todo el mundo. Cada oficina tiene una computadora maestra para guardar las cuentas locales y el manejo de las transacciones locales. Adems cada computadora tiene la capacidad de comunicarse con las otras sucursales y con una computadora central en las oficinas centrales. Si las transacciones se pueden realizar sin importar dnde se encuentre el cliente o la cuenta y los usuarios no observan diferencia alguna entre este sistema y el antiguo centralizado que ha reemplazado tambin se podra considerar como un sistema distribuido. Los sistemas operativos de red estn formados por un software dbilmente acoplado en un hardware dbilmente acoplado. De no ser por el sistema compartido de archivos a los usuarios les parecera que el sistema consta de varias computadoras. Puede ejecutar su propio sistema operativo y hacer lo que quiera. El siguiente paso en la evolucin es el del software fuertemente acoplado en hardware dbilmente acoplado, esta es la aparicin de los sistemas distribuidos. El objetivo es crear la ilusin en las mentes de los usuarios que toda la red de computadoras es un sistema de tiempo compartido, en vez de mquinas diversas.

Debe haber un mecanismo de comunicacin global entre los procesos, de forma que cualquier proceso pueda comunicarse con cualquier otro. Tambin un sistema global de proteccin. La administracin de procesos debe ser la misma en todas partes. La forma en que se crean, destruyen y detienen los procesos no debe variar de una mquina a otra. Tambin el sistema de archivos debe tener la misma apariencia en todas partes. Como consecuencia lgica de hecho de tener una misma interfaz de llamadas al sistema en todas partes, es normal que se ejecuten ncleos idnticos en todos los CPU de sistema. Eso facilita la coordinacin de las actividades globales. Por ejemplo, cuando se inicie un proceso, todos los ncleos deben cooperar en la bsqueda del mejor lugar para ejecutarlo. Los sistemas distribuidos se basan en la utilizacin de sistemas de transmisin fiables, eficaces, rpidos que permitan integrar sistemas de distintos fabricantes.

2.2) Ventajas y Desventajas


Entre las ventajas tenemos: La descentralizacin econmica. Por ejemplo, en el caso de los CPU, si uno est dispuesto a pagar el doble so obtiene el mismo CPU slo que con una velocidad un poco mayor. De tal forma, es ms cmodo limitarse a un gran nmero de CPU baratos reunidos en un mismo sistema. Los sistemas distribuidos tienen en potencia una proporcin precio/desempeo mucho mejor que la de un sistema centralizado. Adems ciertas aplicaciones son distribuidas en forma inherente. Una cadena de supermercados podra tener muchas tiendas las cuales reciben los artculos de manera local realiza ventas locales y toma decisiones locales acerca de las verduras que estn viejas o podridas y qu debe hacerse. Por lo tanto, tiene sentido mantener un inventario de cada tienda dentro de una computadora local a la vez de tenerlo de manera central en las oficinas de la compaa. Despus de todo, la mayora de las solicitudes y actualizaciones se haran en forma local. Sin embargo de vez en cuando la administracin central podra tratar de determinar la cantidad de nabos que posee en cierto momento. Una forma de lograr este objetivo es hacer que todo el sistema se vea como una computadora para los programas de aplicacin pero implementado de manera descentralizada en una computadora por tienda como ya se ha descrito. ste sera entonces un sistema distribuido comercial. Otra ventaja sobre los sistemas centralizados es la confiabilidad. Al distribuir la carga de un trabajo en muchas mquinas la falla de un circuito descompondra a lo ms una mquina y el resto seguira intacto. Tambin est el crecimiento por incrementos, ya que no es necesario comprar una nueva mainframe carsima cuando la empresa necesita ms poder de cmputo. Entre las desventajas tenemos: y El peor de los problemas es el software: qu lenguajes de programacin utilizar, que aplicaciones son adecuadas. y El problema de las redes de comunicacin. Se pueden perder mensajes, lo cual requiere un software especial para su manejo y puede verse sobrecargado. Al saturarse la red sta debe reemplazarse o aadir una segunda. De cualquier forma, es un gran costo.

El hecho que los datos se puedan compartir puede ser un arma de doble filo, pues tambin pueden acceder a datos que no les corresponde ver. La seguridad es con frecuencia un problema.

2.3) Aspectos del Diseo 2.3.1) Transparencia


Tal vez sea el aspecto ms importante. Consiste en engaar a todas las personas para que piensen que la coleccin de mquinas es tan solo un sistema de tiempo compartido de un procesador, a la manera antigua. La transparencia se puede lograr en dos niveles distintos. Lo ms fcil es ocultar la distribucin a los usuarios. Para ellos lo nico poco usual es que el desempeo del sistema tiene un cambio decente. En un nivel inferior tambin es posible que el sistema sea transparente para los programas. Se puede disear la interfaz de llamadas al sistema de modo que no sea visible la existencia de varios procesadores. Hay varios tipos de transparencia: y Transparencia de localizacin: Los usuarios no pueden indicar la localizacin de los recursos. y Transparencia de migracin: Los recursos se pueden mover a voluntad sin cambiar susnombres. y Transparencia de rplica: Los usuarios no pueden indicar el nmero de copias existentes. y Transparencia de concurrencia: Varios usuarios pueden compartir recursos de manera automtica. y Transparencia de paralelismo: Las actividades pueden ocurrir en paralelo sin el conocimiento de los usuarios. 2.3.2) Flexibilidad Es importante que el sistema sea flexible. Junto con la transparencia son fundamentales. Es bueno mantener las opciones abiertas. Existen dos escuelas de pensamiento en cuanto a la estructura de los sistemas distribuidos. Una escuela mantiene que cada mquina debe ejecutar un ncleo tradicional que proporcione la mayora de los servicios. La otra consiste que el ncleo proporcione lo menos posible y que el grueso de los servicios del sistema operativo se obtenga a partir de los servidores a nivel de usuario. Estos dos modos son conocidos como el ncleo monoltico y microncleo. 2.3.3) Confiabilidad La idea es que si una mquina falle, otra se encargue del trabajo. Los sistemas distribuidos actuales cuentan con que un nmero de ciertos servidores sirvan para que el todo funcione. La disponibilidad se refiere a la fraccin de tiempo en que se puede utilizar el sistema. Esta se puede mejorar mediante un diseo que no exija el funcionamiento simultneo de un nmero sustancial de componentes crticos. Otra herramienta es la redundancia, se puede duplicar piezas clave del hardware y de software, de modo que si una de ellas falla, las otras pueden llenar su hueco. Otro aspecto es la tolerancia a fallos. Supongamos que un servidor falla y vuelve a arrancar de manera sbita. Si el servidor tiene tablas con importante informacin

acerca de las actividades en proceso, lo menos que ocurrir es que la recuperacin ser difcil. 2.3.4) Desempeo La construccin de un sistema distribuido transparente, flexible y confiable no servir si el sistema es lento. Se puede utilizar diversas mtricas del desempeo. El tiempo de respuesta es una, poro tambin lo son el rendimiento, uso de sistema y cantidad consumida de capacidad de red. El problema del desempeo se complica por el hecho de la comunicacin, factor esencial en un sistema distribuido. El envo y obtencin de una respuesta en una LAN es lento. Para ello hay que minimizar el nmero de mensajes. La dificultad con esta estrategia es que la mejor forma de mejorar el desempeo es tener muchas actividades en ejecucin paralela en distintos procesadores, pero esto requiere el envo de muchos mensajes. Una posibilidad es prestar atencin al grano de todos los clculos. En general, los trabajos que implican gran nmero de pequeos clculos, en particular aquellos que interactan en gran medida con otros, pueden ser la causa de algunos problemas en los sistemas distribuidos con una comunicacin lenta. 2.3.5) Escalabilidad La mayor parte de los sistemas distribuidos estn diseados para trabajar con unos cuantos cientos de CPU. Un sistema distribuid puede empezar con una cantidad manejable de usuarios, pero cuando pasa el tiempo puede que se tenga un sistema distribuido con decenas de millones de usuarios. La cuestin es si los mtodos que se desarrollan en la actualidad podrn escalarse hacia tales grandes sistemas. Lo que queda claro es que se debe evitar los componentes, tablas y algoritmos centralizados, pues no es una buena idea tener un solo servidor de correo para 50 millones de usuarios. Adems, el servidor no tolerara bien las fallas. 2.4) Comunicacin en los sistemas distribuidos La diferencia principal entre un sistema distribuido y un sistema con un procesador es la comunicacin entre procesos. En un sistema con un procesador la mayor parte de la comunicacin entre procesos supone de manera implcita la existencia de memoria compartida. Un proceso escribe en un buffer compartido y otro proceso lee de l. En un sistema distribuido no existe tal memoria compartida, por lo que toda la naturaleza de la comunicacin entre procesos debe replantearse desde cero. Para los sistemas distribuidos de rea amplia relativamente lentos, se utilizan los protocolos de capas orientadas hacia la conexin como OSI y TCP/IP, puesto que el problema principal por resolver es el transporte confiable de los bits a travs de lneas fsicas pobres. Para los basados en LAN, los protocolos con capas se utilizan muy pocos. En vez de ellos, se adopta por lo general un modelo mucho ms sencillo donde el cliente enva un mensaje al servidor y ste enva de regreso una respuesta al cliente. Tambin se utiliza mucho la llamada a procedimientos remotos (RPC). Con ella un proceso cliente que se ejecuta en una mquina llama a un procedimiento que se ejecuta en otra mquina.

2.5) Sincronizacin en sistemas distribuidos Es importante la forma en que los procesos cooperan y se sincronizan entre s. Por ejemplo, la forma de implantar las regiones crticas o asignar recursos en un sistema distribuido. En los sistemas con un CPU, los problemas relativos a regiones crticas, la exclusin mutua y la sincronizacin se resuelven en general mediante mtodos tales como los semforos y monitores. Pero estos no son adecuados para sistemas distribuidos, puesto que siempre se basan en la existencia de memoria compartida, por lo que se necesitan otras tcnicas. La mayora de sistemas operativos distribuidos tienen un paquete de hilos. La sincronizacin de procesos en los sistemas distribuidos resulta ms compleja que en los centralizados, debido a que la informacin y el procesamiento se mantienen en diferentes nodos. Un sistema distribuido debe mantener vistas parciales y consistentes de todos los procesos cooperativos y de cmputo. Tales vistas pueden ser provistas por los mecanismos de sincronizacin. La sincronizacin no tiene por qu ser exacta, y bastar con que sea aproximadamente igual en todos los ordenadores. Hay que tener en cuenta, eso s, el modo de actualizar la hora de un reloj en particular. 2.6) Procesos y procesadores Se utilizan por lo comn dos modelos de organizacin de los procesadores: el modelo de estacin de trabajo y el modelo de la pila de procesadores. En el primero, cada usuario tiene su propia estacin de trabajo y a veces puede ejecutar procesos en las estaciones de trabajo inactivas. En el segundo, todas las instalaciones de cmputo son un recurso compartido. Los procesadores se asignan de manera dinmica a los usuarios conforme sea necesario y se regresan a la pila al terminar el trabajo. Dada una coleccin de procesadores, se necesita un algoritmo para asignar los procesos a los procesadores. Tales algoritmos pueden ser deterministas o heursticos, centralizados o distribuidos, ptimos o subptimos, locales o globales, iniciados por el emisor o por el receptor. Aunque los procesos se planifican por lo general de manera independiente, se puede mejorar el desempeo mediante la co-planificacin, para garantizar que los procesos que deben comunicarse se ejecutan al mismo tiempo. Sobre la planificacin en los sistemas distribuidos podemos decir que por lo general cada procesador hace su planificacin local sin preocuparse por lo que hacen los dems procesadores. Tambin hay varios algoritmos de coplanificacin, que toman en cuenta los patrones de comunicacin entre los proceso durante la planificacin para garantizar que todos los miembros de un grupo se ejecuten al mismo tiempo.

2.7) Sistemas distribuidos de archivos

Un componente fundamental es el sistema de archivos, es el corazn de cualquier sistema distribuido. La tarea del sistema de archivos es almacenar los programas y los datos y tenerlos disponibles cuando sea necesario. El servicio de archivos es la especificacin de los servicios que el sistema de archivos ofrece a los clientes. El servidor de archivos es un proceso que se ejecuta en alguna mquina y ayuda a implantar el servicio de archivos. Puede haber uno o varios servidores de archivos pero los clientes no deben conocer cuntos hay ni su posicin o funcin. Todo lo que saben es llamar a los procedimientos especificados en el servicio de archivos y el trabajo se hace en alguna parte. Lo ideal es que se vea como un sistema de archivos normal de un procesador. Puede haber varios servidores de archivos, por ejemplo uno UNIX y uno en MSDOS. Hay varios modelos de semntica, como la semntica UNIX, la semntica de sesin, los archivos inmutables y la semntica de transaccin. La semntica UNIX es intuitiva y familiar para la mayora de los programadores pero su implantacin es cara. La semntica de sesin es menos determinstica pero ms eficiente. Los archivos inmutables no son familias para la mayora de personas y las transacciones suelen ser redundantes. NFS ilustra cmo construir un sistema distribuido de archivos. 2.8) Memoria compartida distribuida Existen dos tipos de sistema con varios procesadores: multiprocesadores y multicomputadoreas. En un multriprocesador varias CPU comparten una memoria principal comn. En el caso de una multicomputadora cada CPU tiene su memoria particular, nada se comparte. No se puede utilizar muchos procesadores con una sola memoria compartida porque se origina un cuello de botella. En el caso de las multicomputadoras, como no hay memoria compartida se tiene que utilizar la transferencia de mensajes, haciendo que la entrada/salida sea la abstraccin central. La transferencia de mensajes trae consigo varios aspectos delicados como el flujo de control, la prdida de mensajes, el uso de buffer y el bloqueo. Aunque se han propuesto varias soluciones, la programacin con transferencia de mensajes es todava difcil. Tambin se propuso las llamadas a procesamientos remotos. Para utilizar un servicio remoto, un proceso solo llama al procedimiento de la biblioteca adecuada, el cual empaqueta el cdigo de la operacin y los parmetros del mensaje, envindolo por la red y esperando la respuesta. Se utilizan tres tcnicas generales para proporcionar memoria compartida. La primera estimula el modelo de memoria de multiprocesador, dando a cada proceso una memoria paginada lineal. Las pginas se mueven de una mquina a otra segn sea necesario. La segunda utiliza los lenguajes de programacin ordinarios con variables compartidas anotadas. La tercera se basa en los modelos de programacin de alto nivel, como la n-capa y los objetos.

En un sistema operativo distribuido, la memoria pasa a ser fsicamente privada pero lgicamente compartida. Es decir, un computador ejecuta los programas en su memoria propia, pero en caso de necesitar ms memoria utilizara los recursos disponibles de otra computadora que este capacitada y preparada dentro de la red para compartir su memoria. 2.9) Modelos de Sistemas Distribuidos Hay distintas topologas en que se basan los sistemas distribuidos. Son las siguientes: 2.9.1) Grupos de Procesadores En este modo, al abrir una sesin, el sistema asigna al usuario un procesador, pudiendo hacerlo en funcin a la sobrecarga, la proximidad o cualesquiera otros parmetros que fije el diseador. Un mtodo ms sencillo y menos comprometido es hacer que el usuario elija el nodo al que quiere conectarse, pero se pierde en transparencia y puede dar lugar a fuertes desequilibrios en el sistema. La topologa se basa en varios ordenadores unidos a travs de una red de comunicaciones la cual se pueden conectar los usuarios a travs de sus ordenadores personales. Es un paso en la evolucin de los sistemas distribuidos pero falta un sistema de ficheros transparente y global desapareciendo la idea de nodos. 2.9.2) Cliente Servidor En este se cuenta con clientes que dan acceso a usuarios a los servicios y servidores que contienen la informacin, servicios, etc. Una mquina puede ser cliente en un servicio y servidor en otro. Es el modelo ms conocido y ms ampliamente adoptado en la actualidad. Hay un conjunto de procesos servidores, cada uno actuando como un gestor de recursos para una coleccin de recursos de un tipo, y una coleccin de procesos clientes, cada uno llevando a cabo una tarea que requiere acceso a algunos recursos hardware y software compartidos. Los gestores de recursos a su vez podran necesitar acceder a recursos compartidos manejados por otros procesos, as que algunos procesos son ambos clientes y servidores. En el modelo, clienteservidor, todos los recursos compartidos son mantenidos y manejados por los procesos servidores. El modelo cliente-servidor nos da un enfoque efectivo y de propsito general para la comparacin de informacin y de recursos en los sistemas distribuidos. El modelo puede ser implementado en una gran variedad de entornos software y hardware. Las computadoras que ejecuten los programas clientes y servidores pueden ser de muchos tipos y no existe la necesidad de distinguir entre ellas. El modelo cliente-servidor se ha extendido y utilizado en los sistemas actuales con servicios manejando muchos diferentes tipos de recursos compartidos. Pero no es posible que todos los recursos que existen en un sistema distribuido sean manejados y compartidos de esta manera; algunos tipos de recursos deben permanecer locales a cada computadora de cara a una mayor eficiencia como RAM, procesador, interfaz de red local. Estos recursos clave son manejados

4) Ejemplos 4.1) Ejemplos de Sistemas Operativos Centralizados 4.1.1) DOS El MS-DOS se desarrollo para operar computadoras individuales deescritorio para un solo usuario. Cuando el mercado de lascomputadoras personales hizo explosin en los 80, fue el sistemaoperativo estndar para millones de mquinas. Es uno de los sistemas operativos ms sencillos de comprender. En muchas formas es un ejemplo de los primeros sistemas operativos porque maneja los trabajos en secuencia a partir de un solo usuario. Sus ventajas son su operacin fundamental y sus comandos claros para el usuario. Tiene dos desventajas. La primera es su falta de flexibilidad y su limitada capacidad para llenar las necesidades de programadores y usuarios expertos. La segunda proviene de sus races; se escribi para una familia de microprocesadores. Cuando estos microprocesadores dominaron el mercado de las computadoras personales, MS-DOS tambin lo hizo. Pero con el avance de nuevos chips, el DOS perdi su ventaja de mercado en relacin con los sistemas operativos ms elaborados. Su apoyo de entradas y salidas estndares incluyen un teclado, monitor, impresora y unidad de almacenamiento secundario. En el nivel inferior del MS-DOS est BIOS, que hace la interfaz con los diversos dispositivos de entrada y salida como las impresoras, teclados y monitores. Este sistema tiene requerimientos del sistema bajos y poco Soporte de hardware Trabaja con comandos en modo texto formados por rdenes difciles de recordar. Slo se puede ejecutar un programa en cada momento. La capacidad de aumentar el espacio de su disco duro, un antivirus, una nueva versin del programa de apoyo y recuperacin de datos,

que por aos no fue mejorado, capacidad de intercambiar datos entre computadoras por medio de un cable, optimizacin del uso de la memoria RAM y otras interesantes opciones. El DOS no es ni multiusuario ni multitarea. No puede trabajar con ms de un usuario ni en ms de un proceso a la vez. 4.1.2) UNIX Unix es un sistema interactivo diseado para manejar mltiples procesos y mltiples usuarios al mismo tiempo. Fue el primer sistema operativo escrito en el lenguaje de programacin C. Fue dieado por programadores y para programadores, para utilizarse en un entorno en el que la mayora de usuarios tienen conocimientos relativamente avanzados y se dedica a proyectos de software que suelen ser complejos. Unix cuenta con extensos recursos para trabajar en colaboracin y compartir informacin de formas controladas. Es un sistema universal, vlido para toda clase de ordenadores, grandes y pequeos. Para el Unix todo es un archivo. Permite crear archivos con nombres hasta de 255 caracteres de largo. Tiene algunas caractersticas de sistema distribuido, ya que existe un nombre nico para todos los ficheros disponibles en la red, y que es independiente de la mquina, o ms especficamente, en ese nombre no se incluye el nombre de la mquina en el que el fichero est almacenado. El ncleo es un programa escrito casi en su totalidad en lenguaje C, con excepcin de una parte del manejo de interrupciones, expresada en el lenguaje ensamblador del procesador en el que opera. El kernel hace que la computadora funcione bajo Unix y que los usuarios puedan compartir eficientemente todos los recursos. Cada usuario puede interactuar con el Sistema Operativo con el Interpretador de Comandos (Shell) de su agrado entre los que se destacan: El Bourne Shell, el C Shell, El Korn Shell, el BourneAgain Shell. El Unix utiliza y administra muy eficientemente la memoria. En la memoria libre atiende a los procesos. A cada proceso le da la cantidad exacta de memoria que aqul necesite, desde pocos kilobytes hasta varios megabytes. Cuando se acaba la memoria, utiliza el Area de Swap que es una memoria virtual. Esto permite que se pueda ejecutar un programa que sea ms grande que la memoria RAM total que tenga un servidor de Unix. Tiene capacidad de interconexin de procesos. Adems permite comunicacin entre procesos. Unix emplea un sistema jerrquico de archivos, con facilidades de proteccin de archivos, cuentas y procesos.

4.1.3) Mac OS
MacOS es abreviatura de Macintosh OperatingSystem (Sistema Operativo de Macintosh). El Mac OS original fue el primer sistema operativo con una interfaz grfica de usuario en tener xito. El equipo de Macintosh inclua a Bill Atkinson, JefRaskin y Andy Hertzfeld. Apple quit importancia de forma deliberada a la existencia del sistema operativo en los primeros aos de Macintosh para ayudar a hacer que la mquina pareciera ms agradable al usuario y a distanciarla de otros sistemas como MS-DOS, que eran un desafo tcnico. Apple quera que Macintosh

fuera visto como un sistema que trabajara nada ms con encenderlo. La interfaz grafica desarrollada por Apple que se llama Aqua. Este sistema operativo tiene un nucleo de la familia unix mas especificamente deriva de nexstep que era un sistema operativo cuyo nucleo tenia codigo del kernel Mach y del de BSD. Mac OS utiliza como gestor de ventanas x11 caracteristica que comparte con otros sistemas Unix La arquitectura para la que fue diseado originalmente eran para las Power PC es decir computadoras de tipoRisc desarrolladas por IBM,Motorola y Apple. Es decir que esta ultima hizo un sistema operativo especifico para un hardware que ellos tambien desarrollaron lo que le dio una gran estabilidad y eficacia al sistema en su conjunto. A partir del 2006 comenzaron a migrar a procesadores Intel utilizando los llamados binarios universales, es decir, aplicaciones que contienen el cdigo binario de ambas plataformas para su ejecucin transparente. Existen varias versiones 10.1 Puma,10.2 Jaguar,10.3 Panther , 10.4 Tiger y 10.5 Leopard y 10.6 Snow Leopard y cada una ha ido incorporando mejoras. 4.2) Ejemplos de Sistemas Operativos Distribuidos 4.2.1) Amoeba Es un sistema distribuido, permite que una colecin de CPU y equipo de E/S se comporten como una computadora. Tambin proporciona elementos para la programacin en paralelo si se desea. Se originn en VrijeUniversiteit en Amsterdam, Holanda, en 1981 como proyecto de investigacin en cmputo distribuido y paralelo. Fue diseado en un principio por Tanenbaum y tres estudiantes de doctorado. En 1983 un prototipo tena un nuvel operacional. El sistema evolucion durante algunos aos, adquiriendo caractersticas como la emulacin parcial de UNIX, la comunicacin en grupo y un nuevo protocolo de bajo nivel. Para evitar el enorme trabajo de escribir grandes cantidades de software de aplicacin se aadi un paquete de emulacin de UNIX. El objetivo principal del proyecto era construir un sistema operativo distribuido y transparente. Para un usuario normal, funciona igual que un sist. Tradicional. Amoeba no tiene el concepto de mquina de origen. Cuando un usuario entra al sistema entra a ste como un todo y no a una mquina especfica. El shell inicial se ejecuta en cierta mquina arbitraria, y los comando en otra mquina en general no la misma que la del shell. El sistema busca la mquina con la menor carga para ejecutar el nuevo comando. Amoeba es muy transparente respecto a la ubicacin. Todos los recursos pertenecen al sistema como un todo y son controlados por l. Amoeba busca proporcionar un colchn de prueba para la realizacin de una programacin distribuida y paralela. Los usuarios estn interesados en la experimentacin con algoritmos,

lenguajes, herramientas y aplicaciones distribuidas y paralelas. Ofrece soporte a estos usuarios al hacer que el paralelismo subyacente est disponible para los que quieran aprovecharlo. Se dise con dos hiptesis respecto al hardware: los sistemas tienen un nmero muy grande de CPU y cada CPU tendr decenas de megabytes de memoria. Se basa en el modelo de pila de procesadores. Este consta de varios CPU, cada uno con su propia memoria local y conexin a la red. No se necesita la memoria compartida, pero si est presente se utiliza para optimizar la transferencia de mensajes al hacer el copiad de una memoria a otra, en vez de enviar mensajes a travs de la red. Cuando un usuario escribe un comando, el sistema operativo asigna en forma dinmica uno o ms procesadores para ejecutar ese comando. Al terminar el comando, se terminan los procesos y los recursos regresan a la pila, en espera de siguiente comando. El usuario tiene acceso al sistema a travs de un terminal. Tambin puede tratarse de una computadora personal o estacin de trabajo. La idea es proporcionar terminales baratos y concentrar los ciclos de cmputo en una pila comn para utilizarlos con mayor eficiencia. Amoeba consta de dos partes fundamentales, un microncleo que se ejecuta en cada procesador y una coleccin de servidores que proporcionan la mayor parte de la funcionalidad de un sistema operativo tradicional. Se soportan tres mecanismos de comunicacin: RPC y FLIP simple para la comunicacin puntual y la comunicacin confiable en un grupo par ala comunicacin entre partes. El sistema de archivos de Amoeba consta de tres servidores: el servidor de archivos para el almacenamiento de stos, el de directorios para otorgar nombres y el de rplicas para la rplica de archivos.

4.2.2) Mach
Este sistema distribuido se basa en un microncleo. Es un proyecto de diseo de sistemas operativos iniciado en la Universidad Carnegie Mellon en 1985. Se hizo que Mach fuese compatible con UNIX, esperando poder utilizar el enorme volumen disponible de software para UNIX. La primera versin apareci en 1986. Los objetivos de este proyecto han ido variando con el tiempo. Los objetivos se pueden resumir en: y Proporcionar una base para la construccin de otros sistemas operativos y Soporte de un espacio de direcciones ralo y de gran tamao y Permitir el acceso transparente a los recursos de la red y Explorar el paralelismo tanto en el sistema como en las aplicaciones y Hacer que Mach se pueda transportar a una coleccin ms grande de mquinas. La idea es explorar los multiprocesadores y los sistemas distribuidos, a la vez que se puedan emular los sistemas ya existentes como UNIX, MS-DOS y Macintosh. El microncleo de Mach se dise para emular a UNIX y otros sistemas operativos. Esto se lleva a cabo mediante una capa del software que se ejecuta fuera del ncleo, en el espacio del usuario. Cada emulador consta de una parte que est presente en el espacio de direcciones

de los programas de aplicacin, as como uno o ms servidores que se ejecutan de manera independiente a los programas de aplicacin. Se pueden ejecutar varios emuladores al mismo tiempo. El ncleo de Mach, al igual que otros microncleos, proporciona la administracin de procesos, la administracin de la memoria, la comunicacin y los servicios de E/S. Los archivos, directorios y dems funciones tradicionales de sistema operativo se controlan en el espacio del usuario. La idea del ncleo es proporcionar los mecanismos necesarios para que el sistema funcione, pero dejando la poltica a los procesos a nivel de usuario. Mach se basa en los conceptos de procesos, hilos, puertos y mensajes. Mach tiene un sistema de memoria virtual muy elaborado con objetivos de memoria que se pueden asociar o desasociar de los espacios de direcciones, respaldado por administradores de memoria externos a nivel de usuario. De esta forma se puede escribir o leer de los archivos en forma directa.

4.2.3) Chorus
Chorus surgi en el instituto francs de investigacin INRIA en 1980 como proyecto de investigacin en sistemas distribuidos. Desde entonces han aparecido 4 versiones, de la 0 a la 3. La versin 0 era quera modelar aplicaciones distribuidas como coleccin de actores, en esencia procesos estructurados, cada uno de los cuales alternaban entre la realizacin de una transaccin atmica y la ejecucin de un paso de comunicacin. La versin 1 se centr en la investigacin de multiprocesador. Fue escrita en Pascal compilado en vez de interpretado y se distribuy en una docena de universidades y compaas. La versin 2 fue una reescritura fundamental en C. Se dise de modo que las llamadas al sistema fuesen compatibles con UNIX en el nivel del cdigo fuente. La versin 3 marc la transicin de un sistema de investigacin a un producto comercial. Se introdujo la llamada a procedimientos remotos como el modelo de comunicacin usual. Para que sea un producto viable se aument la capacidad de emulacin de UNIX, de modo que los programas en UNIX se ejecutaran sin compilarse de nuevo. Los objetivos de Chorus son: y y y y Emulacin de UNIX de alto rendimiento Uso de sistemas distribuidos Aplicaciones de tiempo real Integracin de la programacin orientada a objetos en Chorus

Est estructurado en capas. En la parte inferior est el microncleo que proporciona la mnima administracin de los nombres, procesos, hilos, memoria y comunicacin. Se tiene

acceso a estos servicios mediante llamadas al microncleo. Los procesos de las capas superiores proporcionan el resto del sistema operativo. Por arriba de microncleo pero operando tambin en el modo ncleo estn los procesos del ncelo. Estos se cargan y eliminan de manera dinmica durante la ejecucin del sistema y proporcionan una forma de extender la funcionalidad del microncleo sin que aumente de manera permanente su tamao y complejidad. El microncleo y los subsistemas proporcionan juntos tres construcciones adicionales: las posibilidades, los identificadores de proteccin y los segmentos. Los primeros dos se utilizan para nombrar y proteger los recursos del subsistema. La tercera es la base para la asignacin de memoria, tanto dentro de un proceso en ejecucin como en el disco. 4.2.4) DCE Se trata de un punto de vista diferente. DCE significa ambiente de administracin distribuido. A diferencia de los anteriores, este ambiente se construye sobre los sistemas operativos existentes. El ambiente ofrecido por DCE consta de un nmero grande de herramientas y servicios, ms de una infraestructura para que stos operen. Las herramientas y servicios han sido elegidos de modo que funcionen juntos de manera integrada y faciliten el desarrollo de aplicaciones distribuidas. Por ejemplo, DCE proporciona un mecanismo para sincronizar los relojes de mquinas diferentes y obtener el concepto global de tiempo. DCE se ejecuta en muchos tipos distintos de computadoras, sistemas operativos y redes. De esta forma los desarrolladores de aplicaciones producen con facilidad software portable en varias plataformas, amortizando los costos de desarrollo e incrementando el tamao del mercado potencial. El modelo de programacin subyacente en todo DCE es el modelo cliente/servidor. Los procesos usuario actan como clientes para tener acceso a los servicios remotos proporcionados por los procesos servidor. DCE soporta dos facilidades que se utilizan intensamente, tanto dentro del propio DCE como en los programas usuario: hilos y RPC. Los hilos permiten la existencia de varios flujos de control dentro de un proceso. RPC es el mecanismo bsico de comunicacin dentro de DCE. Permite que un proceso cliente llame a un procedimiento en una mquina remota. DCE soporta cuatro servicios principales a los que tienen acceso los clientes: los servicios de tiempo, directorios, seguridad y archivos. El servicio de directorios guarda los nombres y posiciones de todos tipos de recursos y permite que los clientes los busquen. El servicio de seguridad permite que los clientes y servidores se autentiquen entre si y realicen una RPC autentificada. El sistema de archivos proporciona un espacio de nombres para todos los archivos del sistema.

Conclusiones
Despus de la elaboracin del presente trabajo sobre los sistemas operativos centralizados y distribuidos se ha llegado a las siguientes conclusiones:

La diferencia entre estos dos tipos de sistemas operativos est en base a los recursos que maneja cada uno. Los sistemas operativos centralizados utilizan los recursos de una sla computadora, mientras que los sistemas operativos distribuidos gestionan los recursos de mltiples computadoras. Los sistemas operativos centralizados aparecieron primero y los distribuidos estn unos escalones adelante en la evolucin de los sistemas operativos. Hay mucha experiencia en los sistemas centralizados pero en los distribuidos hay an temas que requieren ms investigacin. Los sistemas operativos que usamos normalmente en nuestras casas o en la universidad son centralizados, con capacidad para conectarse en red, pues en estos ambientes slo nos interesa usar la mquina que ocupamos, pero en otros lugares, ya sea empresas u otras universidades puede interesarles tener las computadoras bajo un sistema distribuido y proporcionar por ejemplo un uso transparente de una gran capacidad de disco o capacidad de procesamiento. Es mucho ms compleja la implementacin de un sistema operativo distribuido pues al tener que gestionarse varias mquinas cambian los algoritmos, la forma de planificacin, la manera en la que se comunican los procesos, la sincronizacin, ya que en este nuevo entorno no se puede tener toda la informacin sobre todos los nodos as que hay que buscar la manera posible de sobrellevar esta situacin. El verdadero paralelismo se alcanza con los sistemas operativos distribuidos, pues tienen la caracterstica de poder ejecutar varios procesos en diferentes nodos al mismo tiempo, con lo que se mejora el performance del sistema en general. Con un sistema con un slo procesador el paralelismo era falso, ya que la tcnica de la multiprogramacin brinda slo la ilusin de que varios procesos se ejecutan a la vez, claro que tambin se puede lograr paralelismo con los nuevos procesadores de varios ncleo. Mientras que el objetivo del sistema operativo centralizado radica en llevar una buena gestin de los recursos con los que cuenta la mquina, el objetivo del sistema distribuido es crear una transparencia para el usuario, de forma que vea al conjunto de computadoras como una sola y no se d cuenta donde est el lmite entre su mquina y cualquier otro nodo. Los sistemas distribuidos tienen varias ventajas frente a los centralizados como la economa, la velocidad, la confiabilidad, la flexibilidad, la comunicacin y el crecimiento por incrementos

Bibliografa Cabello, Daz y Martnez. (1997). Sistemas Operativos, Teora y Prctica. Madrid: Daz de Santos.

Flynn, Ida y Mclver, Ann. (2001). Sistemas Operativos (3a ed.). Mxico: Thomson. Rojo, Oscar. (2003). Introduccin a los sistemas distribuidos. Obtenido el 6 de Junio de 2009, de http://www.augcyl.org/ Tanenbaum, Andrew. (1996). Sistemas Operativos Distribuidos. Mexico: Prentice Hall. Morera Pascual, Juan y Perez-Campanero, Juan. (2002). Conceptos de Sistemas Operativos. Madrid: Universidad Pontificia de Comillas.

También podría gustarte