Teoría de Sistemas Operativos Sistemas distribuidos

Download Report

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