Transcript Teoría de Sistemas Operativos Sistemas distribuidos
Teoría de Sistemas Operativos
Sistemas distribuidos
Sistemas Distribuidos
RLOGIN RSH SMTP
FTP
TELNET APLICACIONES DNS NFS XDR TFTP BOOTP RPC TCP/UDP IP + ICMP + IGMP ARP RARP HARDWARE + ENLACE DE DATOS + PROTOCOLOS DE ACCESO
2
Sistemas Distribuidos
Protocolo RPC (R
emote
P
rocedure
C
all
)
3
Sistemas Distribuidos
Protocolo RPC (Remote Procedure Call)
RPC es un protocolo que provee un paradigma de comunicación de alto nivel . (Protocolo capa 5 - Sesión) RPC asume la existencia de un protocolo de transporte de más bajo nivel , tal como TCP/IP o
UDP
.
RPC implemente un sistema de comunicación tipo cliente-servidor y fue diseñado específicamente para soporte a aplicaciones en redes de computadores.
4
Sistemas Distribuidos
Paradigma de comunicación de RPC
5
Sistemas Distribuidos
Paradigma de comunicación de RPC
Proc. Usuario
HOST K
1 2 3
HOST M
1.- El proceso usuario realiza una llamada RPC.
2.- El cliente RPC empaqueta la llamada.
3.- El cliente transmite el mensaje RPC al Server RPC 6
Sistemas Distribuidos
Paradigma de comunicación de RPC
Proc. Usuario
HOST K
1 2 8 7 3
HOST M
4 5 6 4.- El mensaje RPC es decodificado por el server 5.- Se ejecuta el procedimiento 6.- El server empaqueta los resultados en un mensaje RPC 7
Sistemas Distribuidos
Paradigma de comunicación de RPC
La comunicación es ocultada por los llamadas a procedimientos. Estos procedimientos puden ser ejecutados en distintos hosts.
RPC oculta los detalles. Un programador decide qué procedimientos son ejecutados y dónde.
8
Sistemas Distribuidos
Paradigma de comunicación de RPC
Para ocultar los detalles, los procedimientos remotos se deben ejecutar como locales.
Solución:
Usar un generador RPC (
RPCGEN
) que automáticamente genere la parte cliente y la parte servidor.
9
Sistemas Distribuidos
Paradigma de comunicación de RPC
RPCGEN 10
Sistemas Distribuidos
Paradigma de comunicación de RPC
client.c
date_clnt.c
gcc client
date.x
date_proc.c
RPCGEN
date_svc.c
date.h
RPC library gcc date_svc
11
Sistemas Distribuidos
Paradigma de comunicación de RPC
Los RPC funcionan mediante un portmapper, un puerto que mapea las peticiones RPC a los puertos correspondientes. (puerto 111/tcp)(RPCBIND) 12
Sistemas Distribuidos
Protocolo XDR (e
X
ternal
D
ata
R
epresentation ) 13
Sistemas Distribuidos
XDR (eXternal data Representation) Características
•Protocolo que trabaja en la capa de presentación del modelo OSI.
•Define un formato de representación de datos independiente de la máquina.
•Permite la comunicación entre distintas plataformas de HW.
14
Sistemas Distribuidos
XDR (eXternal data Representation)
15
Sistemas Distribuidos
Protocolo
NFS
(
N
etwork
F
ile
S
ystem) 16
Sistemas Distribuidos
Protocolo NFS (Network File System)
El
Network File System
fue desarrollado por Sun Microsystems.
Permite compartir recursos en forma independiente de la máquina y transparente para el usuario. WS 1 WS 2
. . .
Srv NFS 17
Sistemas Distribuidos
Protocolo NFS (Network File System) NFS
utiliza RPC a través del protocolo XDR para lograr la comunicación entre distintos computadores.
NFS
permite a los usuarios y procesos operaciones transparentes de Lectura/Escritura en sistemas de archivos remotos.
El cliente lo usa como si fuera parte de su sistema de archivos local.
18
Sistemas Distribuidos
Protocolo NFS (Network File System) NFS
no mantiene un estado general de sus conexiones ==> problema delegado hacia RPC. El
NFS
server no mantiene información acerca del estado de los archivos que tienen abiertos los clientes ==> esto debe ser realizado por los clientes.
19
Sistemas Distribuidos
Protocolo NFS (Network File System)
En
UNIX
un archivo se puede abrir y bloquear para que otros procesos no tengan acceso a él. Al cerrar el archivo, se liberan los bloqueos. En un servidor sin estado como
NFS
, las cerraduras no se pueden asociar con los archivos abiertos, puesto que el servidor no sabe cuáles son los archivos están abiertos.
==>
NFS
necesita un mecanismo independiente adicional para controlar los bloqueos. ==>
nfslockd
20
Sistemas Distribuidos
Protocolo NFS (Network File System)
Un ejemplo Cliente NFS (pc01) Servidor NFS (darkcity)
Cliente
SO
:
Hw
:
Nombre
: Linux i386 pc01
Servidor
SO
:
Hw
:
Nombre
: SunOS 2.6
Sparc darkcity 21
Sistemas Distribuidos
Protocolo NFS (Network File System)
Un ejemplo Cliente NFS (pc01) Prueba: - Usuario “test” se logea en pc01 - En darkcity se baja el servicio de NFS.
- No se producen errores fatales en pc01 y cuando se inicia nuevamente NFS, el cliente se recupera satisfactoriamente.
Servidor NFS (darkcity) 22
Sistemas Distribuidos
Protocolo NFS (Network File System) Implantación
System Call VFS (vnodes) UFS NFS Cliente RPC/XDR NFS Server RPC/XDR VFS UFS Red 23
Sistemas Distribuidos
Protocolo NFS (Network File System) Utilización
Para utiliza el NFS debe existir “algo” que permita acceder a dichos recursos: El protocolo de montaje
Mount
es utilizado para especificar el
host remoto
y el
sistema de archivos
al que se va a acceder.
Además indica dónde se va a localizar en la jerarquía local de archivos. 24
Sistemas Distribuidos
Protocolo NFS (Network File System) Utilización
El protocolo Mount es una aplicación de RPC integrada con NFS. Tal como NFS, este protocolo es transportado por UDP. Mount es un servidor RPC y proporciona un total de seis procedimientos.
25
Sistemas Distribuidos
Protocolo NFS (Network File System) Utilización
NULL
No hace nada, es útil para testear las respuestas del servidor
MOUNT
Función Mount, devuelve un descriptor de fichero apuntando al directorio
DUMP
Devuelve la lista de todos los sistemas de ficheros montados 26
Sistemas Distribuidos
Protocolo NFS (Network File System) Utilización
UMOUNT
Elimina una entrada de la lista de sistemas de ficheros montados
UNMTALL
Elimina todas de las entradas de la lista de sistemas de ficheros montados para el cliente
EXPORT
Devuelve información sobre los sistemas de ficheros disponibles 27
Sistemas Distribuidos
Protocolo NFS (Network File System) Utilización
La llamada a MOUNT devuelve un descriptor de archivo que apunta al directorio. Este descriptor es un campo de 32 bytes, que el cliente usará posteriormente para acceder a los archivo. Los descriptores son una parte fundamental de NFS ya que a través de ellos se referenciará cada archivo y directorio.
El comando MOUNT aporta la interfaz a esta aplicación de RPC. El usuario ejecuta el comando MOUNT para localizar el
Sistemas Distribuidos
Protocolo NFS (Network File System) Utilización
Se utiliza el comando
mount
, al que se le especifica en nombre del host servidor y la ruta a montar en el cliente.
mount joshua:/opt/public /mnt/test Recurso compartido (
exportado
) en el servidor Lugar en el sistema de archivos local donde se va a acceder a dicho recurso 29
Sistemas Distribuidos
Protocolo NFS (Network File System) Utilización
Cliente Servidor mnt test Directorio “exportado” opt public file1 Punto de montaje fileN 30
Sistemas Distribuidos
Protocolo NFS (Network File System) Utilización
•El programa mount analiza el nombre del recurso remoto.
•Si dicho recurso esta disponible, el servidor retorna un
identificador de archivo
.
•Dicho identificador se le pasa al kernel y construye un vnodo para este recurso.
•Para aumentar la eficiencia, los datos se envían en bloques grandes, generalmente de 8Kb.
31
Sistemas Distribuidos
Protocolo NFS (Network File System) Utilización
•Existe una especia de caché para agilizar las lecturas y escrituras problemas de coherencia.
•Solución : cada bloque que está en caché se le asocia un período de expiración. Generalmente 3 segundo para los bloques de archivos y 30 segundos para los bloques de directorios.
32