Conceptos de Software

La importancia del software supera frecuentemente a la del hardware.

La imagen que un sistema presenta queda determinada en gran medida por el software del S. O. y no por el hardware.

Los S. O. no se pueden encasillar fácilmente, como el hardware, pero se los puede clasificar en dos tipos:

El software débilmente acoplado de un sistema distribuido:

Combinando los distintos tipos de hardware distribuido con software distribuido se logran distintas soluciones:


 

Sistemas Operativos de Redes

Una posibilidad es el software débilmente acoplado en hardware débilmente acoplado:

Cada usuario tiene una estación de trabajo para su uso exclusivo:

Una mejor solución consiste en un sistema de archivos global compartido, accesible desde todas las estaciones de trabajo:

Los “servidores de archivos”:

Las estaciones de trabajo pueden importar o montar estos sistemas de archivos:

El S. O. de este tipo de ambiente debe:

Todas las máquinas pueden ejecutar el mismo S. O., pero esto no es necesario.

Si los clientes y los servidores ejecutan diversos S. O., como mínimo deben coincidir en el formato y significado de todos los mensajes que podrían intercambiar.

Esquemas como este se denominan “sistema operativo de red”:


NFS: Network File System

Es uno de los más conocidos y aceptado como sistema operativo de red.

Fue un desarrollo de Sun Microsystems, soportado también por distintos fabricantes:

Los aspectos más interesantes son los relacionados con:


La Arquitectura de NFS

La idea fundamental es permitir que una colección arbitraria de clientes y servidores compartan un sistema de archivos común.

Generalmente todos los clientes y servidores están en la misma LAN, pero esto no es necesario; por ello se puede ejecutar NFS en una WAN (“red de área amplia”).

NFS permite que cada máquina sea un cliente y un servidor al mismo tiempo.

Cada servidor de NFS exporta uno o varios de sus directorios (y subdirectorios dependientes) para el acceso por parte de clientes remotos.

Los clientes tienen acceso a los directorios exportados mediante el montaje:

Un cliente sin disco puede montar un archivo remoto en su directorio raíz; esto produce un sistema de archivos soportado en su totalidad en un servidor remoto.

Las estaciones de trabajo que no poseen discos locales pueden montar directorios remotos en donde lo deseen, en la parte superior de su jerarquía de directorios local; esto produce un sistema de archivos que es en parte local y en parte remoto.

Si dos o más clientes montan el mismo directorio al mismo tiempo:

Los archivos compartidos figuran en la jerarquía de directorios de varias máquinas y se los puede leer o escribir de la manera usual.

Protocolos de NFS

Uno de los objetivos de NFS es:

NFS logra este objetivo definiendo dos “protocolos cliente - servidor”:

Un “protocolo de NFS” maneja el montaje.

Un cliente puede:

Si el nombre de la ruta de acceso es válido y el directorio especificado ha sido exportado:

Algunos S. O. soportan la alternativa del “automontaje”:

NFS no da soporte a la duplicación de archivos o directorios.

Otro “protocolo de NFS” es para el acceso a los directorios y archivos.

Los clientes pueden:

NFS soporta “servidores sin estado”:

El “sistema de archivos remotos” (RFS) del Sistema V de UNIX no funciona así, sino que:

En un “servidor sin estado”, como NFS:

NFS utiliza el esquema de protección de UNIX, con los bits “rwx” para el propietario, grupo y otros.

Se puede utilizar la criptografía de claves públicas para dar validez al cliente y el servidor en cada solicitud y respuesta; el cliente malicioso no puede personificar a otro cliente, ya que no conoce su clave secreta.

Las claves utilizadas para la autentificación, así como otra información, están contenidas en el NIS:


Implantación de NFS

La implantación del código del cliente y el servidor es independiente de los protocolos NFS.

Una implementación que suele tomarse como referencia es la de Sun, que consta de tres capas (ver Figura 7.8).

Estructura de capas de NFS.

La capa superior es la de llamadas al sistema:

La capa VFS mantiene una tabla con una entrada por cada archivo abierto que es análoga a la tabla de nodos-i para los archivos abiertos en UNIX.

La capa VFS tiene una entrada por cada archivo abierto:

Para montar un sistema remoto de archivos, el administrador del sistema llama al programa mount :

El núcleo:

El nodo-v apunta al nodo-r.

Cada nodo-v de la capa VFS contendrá en última instancia un apuntador a un nodo-i en el S. O. local.

Es posible ver desde el nodo-v si un archivo o directorio es local o remoto y, si es remoto, encontrar su asa de archivo.

Todo archivo o directorio abierto tiene un nodo-v que apunta a un nodo-r o a un nodo-i.

Por razones de eficiencia las transferencias entre cliente y servidor se hacen en bloques grandes, generalmente de 8k:

Un criterio similar se sigue con la escritura:

Otra técnica utilizada para mejorar el rendimiento es el ocultamiento o caching:

Los clientes mantienen dos cachés:

Cuando se necesita un nodo-i o un bloque del archivo:

Un problema importante del caching es que el caché no es coherente; ej.:


Resumiendo:


Sistemas Realmente Distribuidos

NFS es un ejemplo de software débilmente acoplado en hardware débilmente acoplado::

Las multicomputadoras son un ejemplo de software fuertemente acoplado en hardware débilmente acoplado:

Un sistema distribuido es aquel que se ejecuta en una colección de máquinas sin memoria compartida, pero que aparece ante sus usuarios como una sola computadora:

También se define un sistema distribuido como aquel que se ejecuta en una colección de máquinas enlazadas mediante una red pero que actúan como un uniprocesador virtual.

Algunas de las características de los sistemas distribuidos son las siguientes:

 

Sistemas de Multiprocesador con Tiempo Compartido

Corresponde a software fuertemente acoplado en hardware fuertemente acoplado.

Los ejemplos más comunes de propósito general son los multiprocesadores:

La característica clave es la existencia de una sola cola para ejecución (Ver Figura 7.9:


Multiprocesador con una sola cola de ejecución.

Los programas de los procesos están en la memoria compartida, también el S.O.

El planificador (de procesos) del S. O. se ejecuta como una “región crítica”, con ello se evita que dos CPU elijan el mismo proceso para su ejecución inmediata.

Cuando un proceso se asigna a un procesador:

Ninguna CPU tiene memoria local, es decir que todos los programas se almacenan en la memoria global compartida.

Si todas las CPU están inactivas en espera de e / s y un proceso está listo para su ejecución:

Si un proceso se bloquea en espera de e / s en un multiprocesador, el S. O. puede:

Generalmente se dispondrá de un sistema de archivos tradicional, con un único caché:

 

Hosted by www.Geocities.ws

1