Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
De hardware y de software.
Tambin con los sistemas distribuidos se pueden compartir otros recursos como
programas y perifricos costosos:
Otra importante razn es lograr una mejor comunicacin entre las personas:
Conceptos de Hardware
Todos los sistemas distribuidos constan de varias cpu, organizadas de diversas formas,
especialmente respecto de [25, Tanenbaum]:
Existen diversos esquemas de clasificacin para los sistemas de cmputos con varias
cpu:
No se presenta en la prctica.
Cada una de las categoras indicadas se puede clasificar segn la arquitectura de la red
de interconexin en:
Esquema de bus:
o Existe una sola red, bus, cable u otro medio que conecta todas las
mquinas:
Ej.: la televisin por cable.
Esquema con conmutador:
o No existe una sola columna vertebral de conexin:
Hay mltiples conexiones y varios patrones de conexionado.
Los mensajes de mueven a travs de los medios de conexin.
Se decide explcitamente la conmutacin en cada etapa para
dirigir el mensaje a lo largo de uno de los cables de salida.
Ej.: el sistema mundial telefnico pblico.
Otro aspecto de la clasificacin considera el acoplamiento entre los equipos:
Sistemas fuertemente acoplados:
o El retraso al enviar un mensaje de una computadora a otra es corto y la
tasa de transmisin es alta.
o Generalmente se los utiliza como sistemas paralelos.
Sistemas dbilmente acoplados:
o El retraso de los mensajes entre las mquinas es grande y la tasa de
transmisin es baja.
o Generalmente se los utiliza como sistemas distribuidos.
32 lneas de direcciones.
32 lneas de datos.
30 lneas de control.
Cada vez que un cach observa una escritura a una direccin de memoria
presente en l, puede eliminar ese dato o actualizarlo en el cach con el nuevo
valor.
Estos cachs se denominan cachs monitores.
Un diseo con cachs monitores y de escritura es coherente e invisible para el
programador, por lo que es muy utilizado en multiprocesadores basados en buses.
n
50
log 2 n
5,64385619
n * log 2 n
282
n*n
2.500
75
100
125
150
6,22881869
6,64385619
6,96578428
7,22881869
467
664
871
1.084
5.625
10.000
15.625
22.500
175
7,45121111
1.304
30.625
200
7,64385619
1.529
40.000
1.024 10
10.240
1.048.576
Tabla 7.1: Conmutador de cruceta versus red
omega.
Es un cubo n - dimensional.
En un hipercubo de dimensin 4:
Se puede considerar como dos cubos ordinarios, cada uno de ellos con 8
vrtices y 12 aristas.
o Cada vrtice es un cubo.
o Cada arista es una conexin entre 2 cpu.
o Se conectan los vrtices correspondientes de cada uno de los cubos.
En un hipercubo de dimensin 5:
o Se deberan aadir dos cubos conectados entre s y conectar las aristas
correspondientes en las dos mitades, y as sucesivamente.
En un hipercubo de n dimensiones:
o Cada cpu tiene n conexiones con otras cpu.
o La complejidad del cableado aumenta en proporcin logartmica con el
tamao.
o Solo se conectan los procesadores vecinos ms cercanos:
Muchos mensajes deben realizar varios saltos antes de llegar a su
destino.
La trayectoria ms grande crece en forma logartmica con el
tamao:
En la retcula crece como la raz cuadrada del nmero de
cpu.
o Con la tecnologa actual ya se pueden producir hipercubos de 16.384 cpu
(ver Figura 7.7 [25, Tanenbaum]).
o
Conceptos de Software
La importancia del software supera frecuentemente a la del hardware [25,
Tanenbaum].
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 fcilmente, como el hardware, pero se los puede
clasificar en dos tipos:
Dbilmente acoplados.
Fuertemente acoplados.
Tiene su propio S. O.
La mayora de los requerimientos se resuelven localmente.
Es posible que un usuario se conecte de manera remota con otra estacin de
trabajo:
o Mediante un comando de login remoto.
o Se convierte la propia estacin de trabajo del usuario en una terminal
remota enlazada con la mquina remota.
o Los comandos se envan a la mquina remota.
o La salida de la mquina remota se exhibe en la pantalla local.
Para alternar con otra mquina remota, primero hay que desconectarse de la
primera:
o En cualquier instante solo se puede utilizar una mquina.
Las redes tambin disponen de un comando de copiado remoto de archivos de
una mquina a otra:
o Requiere que el usuario conozca:
La posicin de todos los archivos.
El sitio donde se ejecutan todos los comandos.
Una mejor solucin consiste en un sistema de archivos global compartido, accesible
desde todas las estaciones de trabajo:
Todas las mquinas pueden ejecutar el mismo S. O., pero esto no es necesario.
Si los clientes y los servidores ejecutan diversos S. O., como mnimo deben coincidir en
el formato y significado de todos los mensajes que podran intercambiar.
Esquemas como este se denominan sistema operativo de red:
Soporta sistemas heterogneos, por ej.: clientes de MS - DOS que hagan uso de
servidores UNIX.
Los equipos pueden ser tambin de hardware heterogneo.
La arquitectura.
El protocolo.
La implantacin.
La Arquitectura de NFS
La idea fundamental es permitir que una coleccin arbitraria de clientes y servidores
compartan un sistema de archivos comn.
Generalmente todos los clientes y servidores estn 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 mquina 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 raz; 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 jerarqua de directorios local;
esto produce un sistema de archivos que es en parte local y en parte remoto.
Si dos o ms clientes montan el mismo directorio al mismo tiempo:
El sistema de archivos remotos (RFS) del Sistema V de UNIX no funciona as, sino
que:
El servidor lleva un registro del hecho que cierto archivo est abierto y la
posicin actual del lector.
Si un servidor falla y vuelve a arrancar rpidamente:
o Se pierden todas las conexiones abiertas.
o Los programas cliente fallan.
En un servidor sin estado, como NFS:
Los bloqueos no tienen que asociarse con los archivos abiertos y el servidor no
sabe cules archivos estn abiertos.
Se necesita un mecanismo adicional independiente para controlar el bloqueo.
NFS utiliza el esquema de proteccin de UNIX, con los bits rwx para el propietario,
grupo y otros.
Se puede utilizar la criptografa de claves pblicas 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 autentificacin, as como otra informacin, estn
contenidas en el NIS:
Implantacin de NFS
La implantacin del cdigo del cliente y el servidor es independiente de los protocolos
NFS.
Una implementacin que suele tomarse como referencia es la de Sun, que consta de tres
capas (ver Figura 7.8 [25, Tanenbaum]).
La capa VFS mantiene una tabla con una entrada por cada archivo abierto que es
anloga a la tabla de nodos-i para los archivos abiertos en UNIX.
La capa VFS tiene una entrada por cada archivo abierto:
El ncleo:
Luego de haber recibido la capa VFS del cliente el bloque necesario, emite la
solicitud del siguiente bloque; esto se denomina lectura adelantada (read
ahead).
Tambin se define un sistema distribuido como aquel que se ejecuta en una coleccin
de mquinas enlazadas mediante una red pero que actan como un uniprocesador
virtual.
Algunas de las caractersticas de los sistemas distribuidos son las siguientes:
La caracterstica clave es la existencia de una sola cola para ejecucin (Ver Figura 7.9
[25, Tanenbaum]):
Una lista de todos los procesos en el sistema que no estn bloqueados en forma
lgica y listos para su ejecucin.
La cola de ejecucin es una estructura de datos contenida en la memoria
compartida.
Encuentra que el cach del procesador est ocupado por palabras de memoria
que pertenecen a aquella parte de la memoria compartida que contiene al
programa del proceso anterior.
Luego de un breve lapso se habrn reemplazado por el cdigo y los datos del
programa del proceso asignado a ese procesador.
Ninguna cpu tiene memoria local, es decir que todos los programas se almacenan en la
memoria global compartida.
Si todas las cpu estn inactivas en espera de e / s y un proceso est listo para su
ejecucin:
Es conveniente asignarlo a la cpu que se utiliz por ltima vez (para ese
proceso):
o La hiptesis es que ningn otro proceso utiliz esa cpu desde entonces
(hiptesis de Vaswani y Zahorjan).
Suspenderlo.
Dejarlo en espera ocupada:
o Es aplicable cuando la mayora de la e / s se realiza en menos tiempo del
que tarda un cambio entre los procesos.
o El proceso conserva su procesador por algunos milisegundos en espera
de que la e / s finalice:
Si se agota el tiempo de espera y no ha finalizado la e / s, se
realiza una conmutacin de procesos.
Transparencia.
Flexibilidad.
Confiabilidad.
Desempeo.
Escalabilidad.
Transparencia
Un aspecto muy importante es la forma de lograr la imagen de un nico sistema [25,
Tanenbaum].
Los usuarios deben percibir que la coleccin de mquinas conectadas son un sistema de
tiempo compartido de un solo procesador:
Flexibilidad
La flexibilidad es de fundamental importancia [25, Tanenbaum].
Capacidades de red.
Integracin de servicios remotos.
Existe una interfaz bien definida con cada servicio (conjunto de mensajes que
comprende el servidor).
Cada servicio es igual de accesible para todos los clientes, independientemente
de la posicin.
Es fcil implantar, instalar y depurar nuevos servicios, sin necesidad de detener
el sistema totalmente.
Confiabilidad
Un importante objetivo de los sistemas distribuidos es que si una mquina falla, alguna
otra debe encargarse del trabajo [25, Tanenbaum].
La confiabilidad global terica del sistema podra ser el or booleano de la
confiabilidad de los componentes; ejemplo:
Desempeo
Cuando se ejecuta una aplicacin en un sistema distribuido no debe parecer peor que su
ejecucin en un nico procesador, pero esto es difcil de lograr [25, Tanenbaum].
Algunas mtricas del desempeo son:
Tiempo de respuesta.
Rendimiento (nmero de trabajos por hora).
Uso del sistema y cantidad consumida de la capacidad de la red.
La velocidad de proceso.
La velocidad de la comunicacin dentro de un mismo procesador.
Escalabilidad
La tendencia indica que el tamao de los sistemas distribuidos es hacia cientos de miles
y aun decenas de millones de usuarios conectados [25, Tanenbaum].
Existen cuellos de botella potenciales que se debe intentar evitar en los sistemas
distribuidos de gran escala:
Componentes centralizados:
o Ej.: un solo servidor de correo para todos los usuarios.
Tablas centralizadas:
o Ej.: un nico directorio telefnico en lnea.
Algoritmos centralizados:
o Ej.: realizacin de un ruteo con base en la informacin completa.
Ninguna mquina tiene la informacin completa acerca del estado del sistema.
Las mquinas toman decisiones solo en base a la informacin disponible de
manera local.
El fallo de una mquina no arruina el algoritmo.
No existe una hiptesis implcita de la existencia de un reloj global.