Los Sistemas Operativos y su Distribución – Parte IV

Mañana paro. Igual yo trabajo, y no tiene que ver con mi ideología política, sino con mi economía… A mi no me sirve ni perder el presentismo ni tener que andar compensando horas. Y admito tener un gran problema tanto con la clase política como con la clase sindical argentina…

No me voy a extender más y vayamos a la cuarta parte con respecto a la distribución.

Si quieren pueden pasar por:

Servicios básicos y extendidos de un sistema operativo distribuido

Cuando pensamos acerca de los servicios básicos y extendidos que provee un sistema ope­rativo, surgen los conceptos de administración de memoria, CPU y hardware como servicios básicos y por ejemplo autenticación y autorización de usuarios como servicios extendidos (en­tre otros). En entornos distribuidos muchos de los servicios que se consideran básicos para un sistema operativo ya se asumen satisfechos por cada nodo, mientras que surgen otros que resultan de vital importancia con el fin de interoperar con el resto de los nodos que componen el sistema.

En un sistema distribuido, cada nodo posee su propio espacio de memoria, sus dispositivos de entrada salida y sus planificadores. Inclusive, cada nodo representa y administra los datos y recursos, de acuerdo a la arquitectura de hardware y sistema operativo que corra en cada uno. Es de este ultimo concepto, conocido como heterogeneidad que surge una de las premisas mas importantes que deben respetar los servicios en entornos distribuidos. Los sistemas deben proveer las correspondientes especificaciones con el fin de poder definir interfaces comunes que permitan construir sobre ellas los servicios que el sistema distribuido brindara. Esto ultimo permitirá lograr la visión de sistema único que interopera con un fin especifico.

Dentro de los servicios básicos de un sistema operativo distribuido se pueden considerar:

  • Servicio de comunicacion:La diferencia mas importante entre un sistema distri­buido y un sistema de un unico procesador es la comunicacion entre procesos” (Tanenbaum, 2007). En los sistemas operativos tradicionales, la comunicación entre procesos se realiza a través del pasaje de mensajes asumiendo areas de memoria compartida. En los sistemas distribuidos, no existe la memoria compartida, ya que cada nodo posee su propia área de memoria que gestiona de modo independiente. La comunicación entre procesos, resulta ahora mas compleja y requiere de mecanismos que prevean la distribución e inclusive la heterogeneidad. Dichos mecanismos se encuentran plasmados en reglas conocidas como protocolos de comunicación. En lineas generales, cuando un proceso A desea comunicarse con un proceso B residente en otro nodo, el primer proceso construye el mensaje en su propio espacio de direcciones, ejecuta una llamada al sistema para indicarle a su sistema operativo que envié el mensaje a través de la red y se espera que el proceso B en el nodo remoto reciba los datos. En cada uno de los pasos mencionados, el mensa­je atraviesa distintas capas de software que se encargan de normalizar el mensaje, de modo tal que pueda ser transmitido y recibido por el destinatario de forma Inte­gra. Mas adelante, en este mismo capitulo, se analizara en detalle el sistema de comunicación y su analogía con las distintas capas de software.
  • Servicio de sincronizacion: “Ademas de la comunicación, es fundamental la forma en que los procesos cooperan y se sincronizan entre si” (Tanenbaum, 2007). En los sistemas operativos tradicionales, la sincronización es llevada a cabo por el sistema base en un punto centralizado que puede ser consumido por todos los procesos. En los sistemas distribuidos, cada nodo posee su propio reloj, por lo cual surge la necesidad de contar con un mecanismo de sincronización global. Una primera aproximación a la sincronización de relojes en entornos distribuidos, es la que se conoce como sincronización de relojes físicos. En esta técnica, el reloj de cada nodo se sincroniza contra un punto central conocido como servidor de hora. De este modo, to- dos los sistemas operan bajo el mismo esquema horario. Si bien esta aproximación provee buenos resultados, cuando es necesario sincronizar una gran cantidad de nodos, es muy común la producción de desfasajes.

Otra técnica es la utilización de relojes lógicos. En esta ultima, no es necesario con­tar con una sincronización exacta de los relojes, sino que es mas relevante contar con un orden de ocurrencia de los eventos. De este modo, se define la relación sucedió an­tes, que permite determinar que si dos procesos se encuentran relacionados, un evento de uno de ellos suceda antes que otro.

  • Servicio de gestión distribuida de procesos: La gestión de procesos es una función básica de cualquier sistema operativo. El mismo realiza la gestión en forma centralizada. Sin embargo, cuando se trata de realizar la gestión en un entorno distribuido, existen distintas consideraciones que deben tenerse en cuenta. En un sis­tema distribuido, los procesadores virtuales se encuentran divididos en los nodos que componen al mismo. Para la ejecución de los procesos, es necesario organizar los procesadores de acuerdo a la arquitectura elegida. Existen tres arquitecturas posibles para realizar la gestión:
    • Modelo de estaciones de trabajo: En este esquema, cada proceso se eje­cuta en un nodo, mientras que se utilizan sistemas de archivos compartidos para compartir los datos. Este modelo puede provocar que ciertos nodos tengan mucha carga, mientras que otros puedan estar ociosos.
    • Pila de procesadores: Cada vez que se debe ejecutar un proceso, el mismo es agregado a una pila de donde se seleccionan para su ejecucion. De este modo cada nodo que posea recursos para realizar alguna tarea, seleccionara los procesos de la pila global para ser ejecutados. o Modelo hibrido: Los trabajos interactivos son ejecutados bajo el modelo de estaciones de trabajo, mientras que los no interactivos se ejecutan bajo el modelo de pila de procesadores.

En todos los casos es responsabilidad del sistema distribuido realizar una correcta gestión de la carga de trabajo con el fin de optimizar el uso de los recursos.

  • Servicio de memoria compartida distribuida: En un sistema distribuido, la memo- ria es gestionada por cada nodo independientemente, pero se comparte lógicamente en el sistema. Cada nodo ejecuta los procesos en su memoria física privada, pero puede consumir recursos de otros nodos que compartan sus espacios de memoria. La forma de acceder a áreas de memoria compartida de otros nodos es a través del pasaje de mensajes. Cada nodo de la red aporta una porción de su memoria local para construir lo que se conoce como el espacio global de direcciones virtuales, el cual sera utilizado por los procesos que se ejecuten en el sistema distribuido. El servicio de memoria compartida distribuida se encargara de interceptar las referen­cias a memoria que realice cada proceso y satisfacerlas ya sea local o remotamente. Los accesos serán enmascarados por el servicio de modo tal de lograr la trans­parencia y garantizar la heterogeneidad.

Con el fin de disminuir la sobrecarga en la red por la transferencia de locaciones de memoria, es posible implementar técnicas de caching de las paginas mas accedidas. Si bien esta técnica provee mejoras, deben implementarse mecanismos adecuados para evitar incoherencias de los datos. Al momento de realizar actualizaciones de una pagina, deberá implementarse un protocolo que permita replicar dichos cambios en todas las copias cacheadas localmente por los nodos.



Dentro de los servicios extendidos de un sistema distribuido pueden considerar:

  • Servicio de nombres y localización: En los sistemas distribuidos, los nombres son utilizados para referirse a recursos como por ejemplo nodos, servicios, usuarios, etc. Los nombres facilitan la comunicación y la compartición de recursos. En lineas generales para que un proceso pueda compartir información con otros, el mismo debe estar nombrado de modo tal que otros puedan localizarlo y accederlo. El ejemplo mas común de servicio de nombres es el servicio DNS (Domain Name Ser­vice). Se trata de un sistema de nomenclatura jerarquica que permite dar nombre a entidades y realizar búsquedas siguiendo un esquema estructurado.
  • Servicios de Seguridad: El concepto de seguridad es amplio y abarca a los siste­mas distribuidos principalmente en dos aspectos. El primero, referente a la comunicación, tiende a asegurar la comunicación entre procesos residentes en distintos nodos. La seguridad en la comunicación de procesos que residen localmente en un nodo es llevada a cabo por el sistema operativo. En entornos distribuidos es necesario garantizar la confidencialidad e integridad de los datos transmitidos a través de la red. El segundo aspecto preve la autorización, la cual debe garantizar que un proceso tenga acceso unicamente a los recursos que le fueron concedidos.


Conceptos de sistema operativo de red

Cuando nos referimos al termino de sistema operativo de red, estamos hablando de una clase especial de software que permite que una red de nodos de computación pueda interoperar entre si. Utilizando dicho software, los nodos pueden compartir información y recursos.

Dentro de sus funciones principales se encuentran la conexión de los equipos, periféricos y demás dispositivos de red; coordinar las funciones de los nodos y controlar el acceso a los datos y elementos. El sistema operativo de red determina la forma de compartir y acceder a los recursos que gestiona. Se encuentra estrechamente ligado a la arquitectura de red (cliente servidor o trabajo en grupo).

Hoy en día es muy común hablar de sistemas operativos que trabajan en red, y a ellos se los conoce como sistemas operativos de red. Es el caso común de los sistemas operativos Microsoft Windows o GNU/Linux. Netware de Novell, es un sistema operativo de red donde el software de red del equipo cliente se integra al sistema operativo del equipo.

Los sistemas operativos de red se desarrollaron en su gran mayoría siguiendo la arquitectu­ra cliente – servidor. A nivel general, existen dos modelos de arquitectura para su construcción:

  • Modelo de acceso remoto: Este modelo ofrece a los clientes una forma de ac­ceder transparentemente a los recursos gestionados por algún servidor remoto. Debido a que los clientes desconocen la ubicación de los recursos, el sistema operativo provee mecanismos de localización e interacción con los servicios. La característica mas importante de este modelo, es que los datos residen en el servidor remoto y son invocados por los clientes. Un ejemplo de este modelo es el protocolo SSH para acceder remotamente a una linea de comando, o TEL­NET.
  • Modelo de carga y descarga: En este caso, el cliente realiza la conexión con el servidor con el fin de descargar los datos del mismo y procesarlos localmente. En la maquina cliente se genera una copia de los datos obtenidos desde el ser­vidor. Una vez que el cliente termino de utilizar los datos necesarios, vuelve a realizar la carga en el servidor para que las modificaciones se vean reflejadas. Un ejemplo típico de este modelo es el protocolo FTP.

La próxima semana ya nos metemos de lleno en el modelo de capas.

Deja un comentario