Sistemas Operativos Distribuidos

Slides:



Advertisements
Presentaciones similares
Dirección IP - Características
Advertisements

“Fundamentos de Sistemas Distribuidos”
Internet y tecnologías web
Arquitectura de Sistema de E/S
UNIX COMP 240.
Multiprocesadores 3.1 Dominios de aplicación
Introducción a LAS Bases de Datos
ARQUITECTURA CLIENTE-SERVIDOR
Sistemas Operativos Distribuidos Plataforma Cliente/Servidor
Estructura de un Sistema Operativo
Los servicios de red son la fundación de una red de trabajo en un ambiente de computadoras. Generalmente los servicios de red son instalados en uno o.
Gestión de usuarios en redes Miguel A. González Ruz 19/11/07.
Informática Educativa Bogotá 2011 – Universidad de Santander UDES
Sistemas Operativos Distribuidos
Sistemas Operativos Distribuidos
Sistemas Operativos Distribuidos
Sistemas Operativos Distribuidos
Base de Datos Distribuidas
Es un Sistema operativo de red. Es una de las plataformas de servicio más fiable para ofrecer acceso seguro y continuado a la red y los recursos de.
Base de Datos Relacional.
Johanna Lizeth Rodríguez Lorena Fda. Chávarro Ramos
1.1.2 Sistemas de información para la gestión y para la ayuda en la toma de decisiones. Los SI contribuyen activamente a la consecución de los objetivos.
Capítulo 24: Nombres con el Sistema de Nombres de Dominio
Servidores de nombres de dominio (DNS)
Universidad Centroamericana
INTEGRANTES ALEXIS MENDOZA ALDAIR ARRIETA CARLOS PASTOR LORENA RODRIGUEZ ANTHONY JIMENEZ.
Ampliación de Sistemas Operativos
Introducción a los Conceptos de Bases de Datos Docente: Ing. Marleny Soria Medina.
Universidad de La Coruña Escuela Universitaria Politécnica Control de Procesos por Computador Diego Cabaleiro 24 de Noviembre 2009.
Bases de Datos Distribuidas Por: Israel Miralles y Vicente Toledo.
Direcciones físicas y direcciones virtuales (lógicas)
UNIDAD I Conceptos Básicos.
Sebastián Sánchez Prieto
OMAR SANCHEZ ROBLES HECTOR PEREZ GARCIA. “Sistemas de cómputo compuesto por un gran número de CPU´s conectados mediante una red de alta velocidad”, Tanenbaum.
BASE DE DATOS  Es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso.  Es un conjunto de datos.
Arquitectura de una aplicación
Teoría de Sistemas Operativos
Servicio de Archivos Almacenamiento persistente en los Sistemas Distribuidos.
Arquitectura NFS El servidor NFS exporta uno o más directorios
Computación en la Nube UASF.
5. Sistemas de archivos avanzados1 Tema 5: Sistemas de Archivos Avanzados Resumen: –Sistema de archivos distribuido –File Replication Service.
Introducción a los Sistemas Operativos
INTRODUCCIÓN. Motivación “Procesamiento distribuido significa dividir una aplicación en tareas y poner cada tarea en la plataforma donde pueda ser manejada.
FUNDAMENTOS TECNOLÓGICOS DE INFORMACIÓN
Despliegue de la aplicación Web
TEMA 10. SISTEMAS OPERATIVOS DISTRIBUIDOS
1 Capítulo 21: Interacción Cliente Servidor ICD 327: Redes de Computadores Agustín J. González.
Sustentante: Francis Ariel Jiménez Zapata Matricula: Grupo: 2 Profesora: Jose Doñe Asignatura: Sistema Operativo 2.
Introducción a los SOs.
Tema 8: Introducción a los SOs. Tema 8: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.), Introducción.
CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO
Sistemas Distribuidos
Departamento de Informática Universidad de Rancagua
Teoría de Sistemas Operativos Sistemas Archivos de Red
Permite a los procesos Acceso transparente Archivos Servidores remotos.
Proceso de resolución de un nombre de dominio Tema 3 SRI Vicente Sánchez Patón I.E.S Gregorio Prieto.
Teoría de Sistemas Operativos Sistemas distribuidos.
La administración de dominios
ESCALABILIDAD Es un mecanismo que funciona en entornos pequeños o globales (número de máquinas, distancia, ancho de banda, capacidad, etc.)
S ERVICIOS DE RED E I NTERNET T EMA 3: DNS Nombre: Adrián de la Torre López.
UNIVERSIDAD TECNOLOGÍCA DE PANAMÁ LICENCIATURA EN REDES INFORMÁTICAS
Sistema de Dominio DNS Por: Cesar Posada Octavio Sucerquia Yefferson Henao.
C1-Sistemas Distribuidos Concurrencia Varias componentes en una misma máquina-> Concurrencia Inteleaving (1 sola CPU, N procesos) Paralelo (N CPU, M procesos)
Arquitectura de una aplicación Arquitectur a: desarrolla un plan general del sistema, asegurando que las necesidades de los usuarios sean atendidas. Ingeniería.
1 Unidad I.2.- Objetivos de los Sistemas Distribuidos Ing. Luis Armando García Eliseo © Agosto 2011.
El Sistema Operativo es el software básico necesario para el funcionamiento de cualquier ordenador Los Sistemas Operativos están en continua evolución.
Sistemas Distribuidos Conceptos Básicos Propiedades MSI. Nancy A. Olivares Ruiz.
BASES DE DATOS DISTRIBUIDAS M.C.C. María Guadalupe Villanueva Carrasco INGENIERIA EN SISTEMAS COMPUTACIONALES.
UNIVERSIDAD LATINA SEGURIDAD INFORMATICA II E.I. L.E. Prof. Ramón Castro Liceaga XI. SEGURIDAD EN SERVIDORES DE NOMBRE (DNS).
Sistemas de archivos. Sistemas de archivos 2 Objetivo del SdA  Ocultar al usuario los detalles relativos al almacenamiento de información en dispositivos.
Transcripción de la presentación:

Sistemas Operativos Distribuidos 3 Sistemas de ficheros distribuidos 3-Sistemas de ficheros distribuidos

Contenidos del Tema Introducción Estructura de un SFD Servicio de directorio Servicio de ficheros Caching Servidor con estado o sin estado Estudio de ejemplos: NFS AFS Caching en Sprite Caching en DFS Sistemas Operativos Distribuidos 2

Conceptos básicos Sistema de ficheros distribuido (SFD) Sistema de ficheros para sistema distribuido Gestiona distintos dispositivos en diferentes nodos ofreciendo a usuarios la misma visión que un SF centralizado Permite que usuarios compartan información de forma transparente Misma visión desde cualquier máquina (espacio de nombres único) Numerosos aspectos similares a SF centralizados Algunos aspectos específicos como por ejemplo: Traducción de nombres afecta a varios nodos Caching afecta a múltiples nodos Aspectos de tolerancia a fallos Sistemas Operativos Distribuidos 3

Estructura del SFD Generalmente arquitectura cliente-servidor. Dos componentes: Servicio de directorio (SD) Traduce nombres de fichero a identificador interno Servicio de ficheros (SF) Proporciona acceso a ficheros a partir de su identificador Gestiona un “sistema de ficheros plano” Dos alternativas: Único módulo que ofrece ambos servicios (a lo UNIX) servidor de ficheros incluye ambas funciones directorio es sólo un fichero especial Módulos independientes (p. ej. Amoeba) Servidor de directorios y servidor de ficheros Sistemas Operativos Distribuidos 4

Estructura del SFD Client computer Server computer Application program Client module Flat file service Directory service Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000 Sistemas Operativos Distribuidos 5

Servicio de directorio Esquema de nombres generalmente con dos niveles: Nombres de usuario y Nombres internos Directorio: Relaciona nombres de usuario con nombres internos Dos niveles de traducción posibles: De nombre de usuario a interno  Servicio de directorio De nombre interno a localización del fichero SD puede estar integrado en servicio de nombres genérico No sólo ficheros sino todos los objetos del sistema Se corresponde con el siguiente tema de la asignatura Sistemas Operativos Distribuidos 6

Nombres de usuario Generalmente el espacio de nombres es jerárquico Nombres son pathnames Debe proporcionar transparencia de la posición Nombre de fichero no permite saber donde está almacenado Nombre no debe incluir identificación del nodo donde está Máquina:fichero Sistemas Operativos Distribuidos 7

Nombres internos Identificador único de fichero (UFID) utilizado por el sistema Conveniente independencia de la posición Nombre de fichero no cambia cuando éste migra Nombre interno sin información de máquina que lo almacena Requiere esquema de localización Generalmente nombres estructurados Facilita la generación y resolución de nombres internos Sistemas Operativos Distribuidos 8

Dominios de nombres Espacio de nombres dividido en dominios UFID = [ UID Dominio + UID dentro del dominio ] Cada dominio gestionado por un servidor de directorios Generación y resolución de nombres distribuida ¿Cómo generar IDs de dominio únicos? Ejemplo: UID de Dominio = [ Dir. IP nodo creador + fecha ] Dir. IP sólo para asegurar nombre único (el dominio puede migrar) Composición de dominios (“montaje”). Alternativas: Montar sistema de ficheros remoto sobre la jerarquía local (NFS) Espacio de nombres diferente en cada máquina “Montaje en el cliente” Único espacio de nombres en todas las máquinas (AFS) “Montaje en el servidor” Sistemas Operativos Distribuidos 9

Sistemas Operativos Distribuidos Resolución de nombres De nombre de usuario a interno (servicio de directorio) Traducción de un pathname Puede implicar a varios servidores de directorio Alternativas en la resolución: Resolución iterativa Cliente contacta con sucesivos SDs Resolución transitiva Cliente contacta con primer SD, éste con 2º, último SD responde Rompe el modelo cliente/servidor (no adecuado para RPC) Resolución recursiva Cliente contacta con primer SD, éste con 2º, etc. Primer SD responde al cliente Alternativas aplicables a servicio de nombres genérico El menos eficiente es el de resolución recursiva Sistemas Operativos Distribuidos 10 3-Sistemas de ficheros distribuidos

Resolución iterativa SD1 1/2 3/4 C SD2 5/6 SD3 Sistemas Operativos Distribuidos 11

Resolución transitiva SD1 1 2 C SD2 3 4 SD3 Sistemas Operativos Distribuidos 12

Resolución recursiva SD1 1/6 2 5 C SD2 3 4 SD3 Sistemas Operativos Distribuidos 13

Uso de cache en la resolución Sistemas Operativos Distribuidos Uso de cache en la resolución Mantiene últimas traducciones realizadas en el nodo Reduce la necesidad de contactar con SD Mejora eficiencia y capacidad de crecimiento del sistema La información en la cache se trata como una “pista” mecanismo para detectar que traducción en cache no es válida Resolución iterativa favorece el uso de la cache El menos eficiente es el de resolución recursiva Sistemas Operativos Distribuidos 14 3-Sistemas de ficheros distribuidos

Localización de ficheros Sistemas Operativos Distribuidos Localización de ficheros ¿Cómo localizar un fichero a partir de su UFID? De ID de dominio a nodo donde está almacenado Sólo necesario si ID de dominio no contiene dir. de nodo Posibles esquemas de localización: Tablas que mantengan la relación dominio-nodo Uso de broadcast para localizar nodo que contiene dominio Uso de “cache de localizaciones” en clientes: La información en la cache se trata como una “pista” mecanismo para detectar que información en cache no es válida El menos eficiente es el de resolución recursiva Sistemas Operativos Distribuidos 15 3-Sistemas de ficheros distribuidos

Servicio de ficheros Se encarga de la gestión de ficheros y del acceso a los datos Se analizan los siguientes aspectos: Uso de los ficheros Semántica de utilización concurrente Modelo de acceso Caching Servidor con o sin estado Sistemas Operativos Distribuidos 16

Uso de ficheros La forma de usar los ficheros influye en el diseño de los SFD Estadíticas de uso en entornos UNIX de propósito general: Mayoría de los ficheros pequeños (<10K) Mayor frecuencia de lecturas Generalmente acceso secuencial Bastantes ficheros tienen una “vida” corta Compartición poco frecuente Sistemas Operativos Distribuidos 17

Semánticas de uso concurrente (1/3) Sesión: serie de accesos que realiza cliente entre open y close La semántica especifica el efecto de varios procesos accediendo de forma simultánea al mismo fichero Semántica UNIX (Sprite y DFS) Una lectura ve los efectos de todas las escrituras previas El efecto de dos escrituras sucesivas es el de la última Difícil de implementar en sistemas distribuidos Sistemas Operativos Distribuidos 18

Semánticas de uso concurrente (2/3) Semántica de sesión (AFS) Cambios a un fichero abierto son visibles únicamente en el proceso (nodo) que modificó el fichero Una vez cerrado el fichero, los cambios son visibles sólo en sesiones posteriores Múltiples imágenes simultáneas del fichero Dos sesiones sobre mismo fichero que terminan concurrentemente: La última deja el resultado final No adecuada para procesos con acceso concurrente a un fichero Sistemas Operativos Distribuidos 19

Semánticas de uso concurrente (3/3) Semántica de ficheros inmutables (Amoeba) El contenido de un fichero no puede modificarse El nombre del fichero no puede reutilizarse Sólo se puede compartir un fichero para sólo lectura Semántica de transacciones Conjunto de operaciones sobre fichero se encapsulan en transacción Transacciones se estudian en capítulo posterior Sin una semántica definida (NFS) Sistemas Operativos Distribuidos 20

Modelo de acceso Modelo carga/descarga Modelo de servicio remoto Transferencias completas del fichero Localmente se almacena en memoria o discos locales Normalmente utiliza semántica de sesión Eficiencia en las transferencias Llamada open con mucha latencia Modelo de servicio remoto Servidor debe proporcionar todas las operaciones sobre el fichero Acceso por bloques Modelo cliente/servidor Sistemas Operativos Distribuidos 21

Caching El empleo de cache permite mejorar el rendimiento Explota el principio de proximidad de referencias Proximidad temporal Proximidad espacial Lecturas adelantadas Mejora el rendimiento de las operaciones de lectura, sobre todo si son secuenciales Escrituras diferidas Mejora el rendimiento de las escrituras Otros tipos de cache Cache de nombres Cache de metadatos del sistema de ficheros Sistemas Operativos Distribuidos 22

Posición de la cache en un SFD Cache en los servidores Reducen los accesos a disco Cache en los clientes Reduce el tráfico por la red Reduce la carga en los servidores Mejora la capacidad de crecimiento Introduce problemas de coherencia Dos posibilidades no excluyentes En discos locales (no permite nodos sin disco) Más capacidad pero más lento No volátil, facilita la recuperación En memoria principal Menor capacidad pero más rápido Memoria volátil Sistemas Operativos Distribuidos 23

Política de actualización Escritura inmediata (write-through) Buena fiabilidad En escrituras se obtiene el mismo rendimiento que en el modelo de accesos remotos Las escrituras son más lentas Escritura diferida (delayed-write) Escrituras más rápidas. Se reduce el tráfico en la red Los datos pueden borrarse antes de ser enviados al servidor Menor fiabilidad Alternativas sobre el volcado de los datos: Volcado periódico (a lo UNIX) Write-on-close Sistemas Operativos Distribuidos 24

Coherencia de cache El uso de cache en clientes produce problema de coherencia ¿es coherente una copia en cache con el dato en el servidor? Estrategia de validación iniciada por el cliente cliente contacta con servidor para determinar validez en cada acceso, al abrir el fichero o periódicamente Estrategia de validación iniciada por el servidor servidor avisa a cliente al detectar que su copia es inválida generalmente se usa write-invalidate (no write-update) servidor almacena por cada cliente qué ficheros guarda granularidad de la información: a nivel de fichero a nivel de bloque Sistemas Operativos Distribuidos 25

Servidores con estado y sin estado Alternativa de diseño Aplicable a cualquier servicio Influye en tolerancia a fallos Servidores con estado Se mantiene información sobre los clientes Cuando se abre un fichero, el servidor almacena información y da al cliente un identificador único a utilizar en las posteriores llamadas Servidores sin estado No se mantiene información sobre los clientes Cada petición es autocontenida (fichero y posición) Sistemas Operativos Distribuidos 26

Servicio con estado vs. sin estado Ventajas de los servidores con estado Mensajes de petición más cortos Mejor rendimiento (se mantiene información en memoria) Facilita la lectura adelantada. El servidor puede analizar el patrón de accesos que realiza cada cliente Es necesario en validación iniciada por el servidor Uso de leases para paliar el problema (DFS) Permisos con plazo de expiración Ventajas de los servidores sin estado Más tolerantes a fallos No son necesarios open y close. Se reduce el nº de mensajes No se gasta memoria en el servidor para almacenar el estado Sistemas Operativos Distribuidos 27

Network File System (NFS) de Sun Especificación de un protocolo para acceso a ficheros remotos Estándar de facto diseñado para trabajar en entornos heterogéneos Independencia gracias al uso de RPC/XDR Seguridad basada en RPC (autenticación basada en claves) Compartición: máquina monta directorio remoto en SF local Espacio de nombres es diferente en cada máquina Montado no transparente (nombre de máquina remota) Una vez montado, acceso transparente a ficheros No es un verdadero sistema de ficheros distribuido Comprende dos protocolos: Protocolo de montaje Protocolo de acceso a ficheros (protocolo NFS) Sistemas Operativos Distribuidos 28

Protocolo de montaje Establece una conexión lógica entre el servidor y el cliente Cada máquina incluye una “lista de exportación” qué “árboles” exporta y quién puede montarlos Petición de montaje incluye máquina y directorio remotos Se convierte en RPC al servidor de montaje remoto Si permiso en lista, devuelve un identificador “opaco” (handle) En UNIX identificador del SF y nodo-i del directorio montado La operación de montaje sólo afecta al cliente no al servidor se permiten montajes NFS anidados no se permiten montajes NFS “transitivos” Aspectos proporcionados por algunas implementaciones: montajes hard o soft, automontaje Sistemas Operativos Distribuidos 29

Ejemplo de montado en NFS La máquina A exporta /usr y /bin En la máquina B: mount máquinaA:/usr /usr Sistemas Operativos Distribuidos 30

Ejemplo de montado en NFS Imagen diferente del sistema de ficheros Sistemas Operativos Distribuidos 31

Protocolo NFS Ofrece RPCs para realizar operaciones sobre ficheros remotos Búsqueda de un fichero en un directorio (LOOKUP) Lectura de entradas de directorio Manipulación de enlaces y directorios Acceso a los atributos de un fichero Lectura y escritura de ficheros Servidores NFS no almacenan estado Operaciones autocontenidas OPEN/CLOSE reemplazados por LOOKUP traducción iterativa componente a componente LOOKUP(handle de directorio, fichero)  handle de fichero El protocolo no ofrece mecanismos de control de concurrencia Sistemas Operativos Distribuidos 32

Implementación Sun de NFS Arquitectura formada por tres niveles: Interfaz de llamadas al sistema de ficheros UNIX Sistema de ficheros virtual (VFS) almacena una entrada por cada archivo abierto (vnode) cada vnode apunta a un nodo-i local o a uno remoto (rnode) redirige petición a la capa inferior correspondiente Servicio NFS implementa el protocolo NFS cada rnode contiene handle del fichero remoto correspondiente Sistemas Operativos Distribuidos 33

Arquitectura de SUN/NFS Sistemas Operativos Distribuidos 34

Acceso a los ficheros Las transferencias se realizan en bloques de 8 KB Los bloques se almacenan en la cache de los clientes Los clientes realizan lecturas adelantadas de un bloque Las escrituras se realizan localmente. Los bloques se envían al servidor cuando se llena un bloque de 8 KB o se cierra el fichero 3 tipos de cache en el cliente: cache de nombres para acelerar las traducciones cache de atributos de ficheros y directorios información del nodo-i (fechas, dueño, ...) cache de bloques de ficheros y directorios Sistemas Operativos Distribuidos 35

Coherencia de cache No asegura ninguna semántica Validación dirigida por el cliente: Toda operación sobre un fichero devuelve sus atributos Si los atributos indican que el fichero se ha modificado se invalidan los datos del fichero en cache de bloques Entradas de cache de bloques y atributos tienen un tiempo de vida Si no se acceden es ese periodo se descartan Valores típicos: 3 segundos para ficheros 30 para directorios Sistemas Operativos Distribuidos 36

Andrew File System (AFS) SFD desarrollado en Carnegie-Mellon (desde 1983) El DFS de DCE se basa en AFS Sistemas distribuidos a gran escala (5000 - 10000 nodos) Distingue entre nodos cliente y servidores dedicados Los nodos cliente tienen que tener disco Ofrece a clientes dos espacios de nombres: local y compartido (directorio /afs) espacio local sólo para ficheros temporales o de arranque Servidores gestionan el espacio compartido Visión única en todos los clientes del espacio compartido Sistemas Operativos Distribuidos 37

Estructura de AFS AFS utiliza dos componentes que ejecutan como procesos de usuario comunicándose mediante el protocolo Virtue Por debajo UNIX ligeramente modificado Venus: ejecuta en los clientes SO le redirecciona peticiones sobre ficheros compartidos realiza las traducciones de nombres de fichero resolución dirigida por el cliente Vice: ejecuta en los servidores procesa solicitudes remotas de clientes Usan sistema de ficheros UNIX como almacenamiento de bajo nivel Sistemas Operativos Distribuidos 38

Estructura de AFS Sistemas Operativos Distribuidos 39

Espacio de nombres compartido Los ficheros se agrupan en volúmenes Cada fichero tiene identificador único (UFID: 96 bits) Número de volumen Número de vnodo (dentro del volumen) Número único: permite reutilizar números de vnodo Los UFID son transparentes de la posición un volumen pueden cambiar de un servidor a otro. Estrategia de localización dominio  servidor que lo gestiona tabla replicada en cada servidor cliente mantiene una cache de localización si falla repite proceso de localización Sistemas Operativos Distribuidos 40

Acceso a ficheros Modelo de carga/descarga En open servidor transfiere fichero completo al cliente Versión actual: fragmentos de 64Kbytes Venus almacena el fichero en la cache local de los clientes Se utiliza el disco local (la cache es no volátil) Lecturas/escrituras localmente en clientes sin intervenir Venus Cuando un proceso cierra un fichero (close) Si se ha modificado se envía al servidor (write-on-close) Se mantiene en cache local para futuras sesiones Modificaciones de directorios y atributos directamente al servidor Sistemas Operativos Distribuidos 41

Caching en AFS Venus gestiona dos caches independientes: Cache de atributos Cache de datos Se utiliza LRU para cada una de ellas. La cache de atributos se almacena en memoria almacena los atributos de los ficheros La cache de datos se almacena en el disco local contiene ficheros, directorios y enlaces simbólicos La cache de bloques del SF de UNIX también opera aunque de manera transparente a AFS Sistemas Operativos Distribuidos 42

Coherencia de cache (1/2) Semántica de sesión Sigue un esquema de validación iniciado por el servidor Usa un esquema basado en callbacks Cuando cliente abre un fichero del que no existe una copia local (o no es válida), contacta con el servidor que anota esta situación el fichero tiene un callback Siguientes aperturas del fichero no contactan con servidor Cuando cliente cierra un fichero que ha modificado: Lo notifica y lo vuelca al servidor El servidor avisa a todos los nodos con una copia local para que la invaliden (revoca el callback) Sistemas Operativos Distribuidos 43

Coherencia de cache (2/2) Cuando llega una revocación a un nodo: procesos con fichero abierto continúan accediendo a copia anterior nueva apertura cargará el nuevo contenido desde el servidor Los clientes de AFS asumen que los datos en su cache son válidos mientras no se notifique lo contrario El servidor almacena por cada fichero una lista de clientes que tienen copia del fichero en su cache: la lista incluye a todos los clientes que tienen copia y no sólo a los que tienen abierto el fichero Sistemas Operativos Distribuidos 44

Caching en Sprite Sprite: SOD experimental desarrollado en Berkeley en los 80 Arquitectura monolítica SFD con semántica UNIX siguiendo modelo de servicio remoto Caches en la memoria de clientes y servidores (bloques de 4KB) No usa lectura anticipada Usa delayed-write con volcado periódico (no write-on-close) Estrategia de validación iniciada por el servidor granularidad a nivel de fichero hay un número de versión asociado a cada fichero servidor guarda información de qué clientes tienen abierto un fichero y de qué cliente fue último escritor ya que datos más recientes pueden estar en su cache Sistemas Operativos Distribuidos 45

Coherencia de cache en Sprite (1/2) Si acceso concurrente conflictivo (1escritor + otro(s) cliente(s)) se anula cache y se usa acceso remoto en nodos implicados En open cliente siempre contacta con servidor especificando: modo de acceso número de versión de la copia en cache del fichero (si la hay) En close no se vuelca el fichero Tratamiento del open en el servidor Si copia del fichero en el servidor no está actualizada solicita al último cliente que vuelque datos del fichero Si no hay conflicto de acceso: Si versión del cliente es más antigua, se le indica en mensaje de respuesta que la invalide Sistemas Operativos Distribuidos 46

Coherencia de cache en Sprite (2/2) Tratamiento del open en el servidor (continuación) Si la petición produce un conflicto de acceso: Se le envía a los clientes con el fichero abierto una orden de invalidación y desactivación de la cache para ese fichero Si era un escritor se le pide un volcado previo Se le manda en la respuesta al cliente una petición de invalidar y desactivar la cache para ese fichero Si la petición se encuentra que ya hay conflicto Se le manda en la respuesta una petición de invalidar y desactivar la cache para ese fichero Sistemas Operativos Distribuidos 47

Sistemas Operativos Distribuidos DFS Sistema de ficheros distribuido de DCE (Open Group) Derivado de AFS pero con bastantes diferencias: Un nodo puede ser cliente y servidor No exige discos locales No usa semántica de sesión No hay transferencia completas de ficheros (bloques de 64K) Características: Semántica UNIX Independiente de la posición Ficheros pueden migrar transparentemente Permite replicación Modelo de copia primaria Actualización sólo en el primario Sistemas Operativos Distribuidos 48 3-Sistemas de ficheros distribuidos

Coherencia de cache en DFS (1/2) Sistemas Operativos Distribuidos Coherencia de cache en DFS (1/2) Uso de tokens con plazo de expiración (leases) Servidor con estado pero con buena recuperación Para realizar operación se requiere token correspondiente Token (de lectura o escritura) asociado a un rango de bytes Si cliente solicita operación y no está presente token requerido en su nodo, se solicita al servidor de ficheros Para una zona de un fichero, el servidor puede generar múltiples tokens de lectura pero sólo uno de escritura Sistemas Operativos Distribuidos 49 3-Sistemas de ficheros distribuidos

Coherencia de cache en DFS (2/2) Sistemas Operativos Distribuidos Coherencia de cache en DFS (2/2) Si existen múltiples tokens de lectura y llega solicitud de escritura, servidor reclama los tokens Cliente devuelve token e invalida bloques de cache afectados Cuando todos devueltos, servidor manda token de escritura Si hay un token de escritura y llega solicitud de lectura o escritura, servidor reclama el token: Cliente vuelca e invalida bloques de cache afectados Un token tiene un plazo de expiración (típico 2 minutos): Pasado el plazo cliente considera que token ya no es válido Permite tener servidor con estado pero fácil recuperación: Si tiempo de recuperación de servidor > plazo de expiración todos los tokens están caducados servidor puede atender inmediatamente solicitudes de tokens Sistemas Operativos Distribuidos 50 3-Sistemas de ficheros distribuidos