SlideShare ist ein Scribd-Unternehmen logo
1 von 7
Downloaden Sie, um offline zu lesen
La interfaz del servidor de directorios

La otra parte del servicio de archivos es el servicio de directorios, el cual
proporciona las operaciones para crear y eliminar directorios, nombrar o cambiar
el nombre de archivos y mover éstos de un directorio a otro. La naturaleza del
servicio de directorios no depende del hecho deque los archivos individuales se
transfieran en su totalidad oque se tenga un acceso remoto a ellos.

El servicio de directorios define un alfabeto y una sintaxis para formar los nombres
de archivos (y directorios). Lo usual es que los nombres de archivos tengan de 1
hasta un cierto número máximo de letras, números y ciertos caracteres especiales.
Algunos sistemas dividen los nombres de archivo en dos partes, a menudo
separadas mediante un punto, corno prog.c para un programa en C o man. txtpara
un archivo de texto. La segunda parte del nombre, llamada la extensión de
archivo, identifica el tipo de éste. Otros sistemas utilizan un atributo explicito para
este fin, en vez de util¡zar una extensión dentro del nombre.

Todos los sistemas distribuidos permiten que los directorios contengan
subdirectorios, para que los usuarios puedan agrupar los archivos relacionados
entre sí. De acuerdo con esto, se dispone de operaciones para la creación y
eliminación de directorios, así como para introducir, eliminar y buscar archivos en
ellos. Por lo general, cada subdirectorio contiene todos los archivos de un
proyecto, como un programa o documento de gran tamano (por ejemplo, un libro).
Cuando se despliega el (sub)directorio, sólo se muestran los archivos relevantes;
los archivos no relacionados están en otros (sub)directorios y no agrandan la lista.
Los subdirectorios pueden contener sus propios subdirectorios y así en lo
sucesivo, lo que conduce a un árbol de directorios, el cual se conoce como
sistema jerárquico dearchivos. La figura siguiente (a) muestra un árbol con cinco
directorios.

En ciertos sistemas, es posible crear enlaces o apuntadores a un directorio
arbitrario. Éstos se pueden colocar en cualquier directorio, lo que permite construir
no sólo árboles, sino gráficas arbitrarias de directorios, que son más poderosas.
La distinción entre árboles y gráficas es de particular importancia en un sistema
distribuido.

La naturaleza de la dificultad se puede ver en la gráfica de directorios de la figura
(b). En ésta, el directorio D tiene un enlace con el directorio R El problema aparece
cuando se elimina el enlace deA a B. En unajerarquia con estructura de árbol, sólo
se puede eliminar un enlace con un directorio si el directorio al cual se apunta es
vacio. En una gráfica, se permite la eliminación de un enlace mientras exista al
menos otro enlace. Mediante un contador de referencias, el cual se muestra en la
esquina superior derecha de cada directorio de la figura 5-2(b), se puede
determinar si el enlace por eliminar es el último.

Después de eliminar el enlace de A a B el contador de referencias de B se reduce
de 2 a 1, lo cual está bien en el papel. Sin embargo, ahora no es posible llegaran
desde la raiz del sistema de archivos (A). Los tres directorios B, D y Ey todos sus
archivos se convierten en huérfanos.

Este problema también existe en los sistemas centralizados, pero es más serio en
los distnbuidos. Si todo está en una máquina, es posible, aunque costoso,
descubrir los directorios huérfanos, puesto que toda la información está en un
lugar. Se puede detener toda la actividad de los archivos y recorrer la gráfica
desde la raíz, para señalar todos los directorios

les. Al final de este proceso. se sabe que todos los directorios no marcados son
la~alcnazazlrables. En un sistema distribuido existen varias máquinas y no se
puede detener toda la actividad, por lo que es dificil, sino es que imposible, tomar
una foto "instantánea".

Un aspecto fundamental en el diseño de cualquier sistema distribuido de archivos
es si todas las máquinas (y procesos) deben tener con exactitud la misma visión
de la jerarquía de los directorios. Como ejemplo de lo que queremos decir en esta
observación, consideremos la figura En la figura 5-3(a) mostramos dos servidores
de archivos, cada uno de los cuales tiene tres director¡os y algunos archivos. En la
figura 5-3(b) tenemos un sistema donde todos los clientes otras máquinas) tienen
la misma visión de! sistema distribuido de archivos. Si la trayectoria /D/E/x es
válida en una máquina, entonces es válida en todas ellas.

Por el contrario, en la figura 5-3, las diferentes máquinas pueden tener visiones
diferentes del sistema de archivos. Para repetir el ejemplo anterior, la
trayectoria /DIE/x podría ser válida en el cliente 1 pero no en el cliente 2. En los
sistemas que administran varios servidores de archivos mediante el montaje
remoto, la norma es la figura 5-3. Es flexible y tiene implantación directa, pero
tiene la desventaja deque el sistema no se compota como un sistema de tiempo
compartido tradicional. En un sistema de tiempo compartido, el sistema de
archivos se ve igual para todos los procesos [es decir, el modelo de la figura 5-
3(b)]. Esta propiedad hace que un sistema sea fácil de programar y comprender.

Una cuestión muy relacionada con esto es si existe un directorio raíz global, al que
todas las máquinas reconozcan como la raíz. Una vía para tener un directorio raíz
global es que dicha raíz sólo contenga una entrada por cada servidor. En estas
circunstancias, ¡88 trayectorias toman la forma /servidor/ruta, que tiene sus
propias desventajas, pero al menos es la misma en todas las partes del sistema.


      Transparencia de los nombres

El principal problema de esta forma de los nombres es que no es por completo
transparente. En este contexto, son relevantes dos formas de transparencia y es
importante distinguirlas. La primera, la transparencia con respecto a la posición,
significa que el nombre de la ruta de acceso no sugiere la posición del archivo (o
de algún otro objeto). Una ruta como /servidor/dir2/dir2/x indica que x está
localizado en el servidor 1, pero no indica la posición del servidor Éste es libre de
moverse dentro de la red, sin que el nombre de la ruta de acceso deba ser
modificada. Así, este sistema es transparente con respecto a la posición.

Sin embargo, supongamos que el archivo x es muy grande y que hay poco
espacio en el servidor l Además, supongamos que hay mucho espacio en el
servidor 2. El sistema podría desplazar de forma automática servidor2. Por
desgracia, si el primer componente de todas las rutas de acceso es el servidor, el
sistema no puede desplazar el archivo al otro servidor en forma automática,
aunque din y clin existieran en ambos servidores. El problema es que el
desplazamiento automático del archivo cambia el nombre de su ruta de acceso,
de/servidor/dirI/dir2/x a /servidor/dir/dir2/x.

Los programas que tienen integrada la primera cadena no podrán funcionar si la
ruta de acceso se modifica. Un sistema donde los archivos se pueden desplazar
sin que cambien sus nombres tiene independencia con respecto a la posición. Un
sistema distribuido que incluya los nombres de la máquina o el servidor en los
nombres de las rutas de acceso no es independiente con respecto a la posición.
Tampoco lo es uno basado en el montaje remoto, puesto que no es posible
desplazar un archivo de un grupo de archivos (la unidad de montaje) a otro y
conservar el antiguo nombre de la ruta de acceso. La independencia con respecto
a la posición no es fácil de lograr, pero es una propiedad deseable en un sistema
distribuido.

Para resumir lo anterior, existen tres métodos usuales para nombrar los archivos y
directorios en un sistema distribuido:

      Nombre máquina + ruta de acceso, como /máq2/ruta o /máq2:ruta.
      Montaje de sistemas de archivos remotos en la jerarquía local de archivos.
      Un espacio de nombres que tenga la misma apariencia en todas las
       máquinas.

Los primeros dos son fáciles de implantar, en particular como una forma de
conectar sistemas ya existentes que no estaban diseflados para su uso distribuido.
El tercer método es difícil y requiere de un diseño cuidadoso, pero es necesario si
se quiere lograr el objetivo deque el sistema distribuido actúe como una
computadora.

       Nombres de dos niveles

La mayoría de tos sistemas distribuidos utilizan cierta forma de nombres con dos
niveles Los archivos (y otros objetos) tienen nombres simbólicos,
como prog.c, para USO de las personas, pero también pueden tener nombres
binarios internos, para uso del propio sistema. Lo que los directorios hacen en
realidad es proporcionar una asociación entre estos dos nombres. Paratas
personas y los programas, es conveniente utilizar nombres simbólicos (ASCII),
pero para el uso dentro del propio sistema, estos nombres son muy grandes y
difíciles. Así, cuando un usuario abre un archivo o hace referencia a un nombre
simbólico, el sistema busca de inmediato el nombre simbólico en el directorio
apropiado para obtener el nombre binario, el cual utilizará para localizar en
realidad al archivo. A veces, los nombres binarios son visibles a los usuarios y
aveces no.

La naturaleza de los nombres binarios varía mucho dc un sistema a otro. En un
sistema con varios servidores de archivos, cada uno de los cuales esté
autocontenido (es decir, no tenga referencias a directorios o archivos en otros
servidores), el nombre binario puede ser sólo un número de un nodo-i local, como
en UNIX

Un esquema más general paralos nombres es que el nombre binario indique el
servidor y un archivo específico en ese servidor. Este método permite que un
directorio en un servidor contenga un archivo en un servidor distinto. Otra
alternativa, que a veces es preferible, es utilizar un enlace simbólico. Un enlace
simbólico es una entrada de directorio asociada a una cadena (servidor, nombre
de archivo), la cual se puede buscar en el servidor correspondiente para encontrar
el nombre binario. El propio enlace simbólico es sólo el nombre de una ruta de
acceso.

Otra idea más es utilizar las posibilidades como los nombres binarios. En este
método, la búsqueda de un nombre en ASCII produce una posibilidad, la cual
puede tomar una de varias formas. Por ejemplo, puede contener un número físico
o lógico de una máquina ola dirección en la red del servidor apropiado, así como
un número que indique el archivo específico necesario. Se puede utilizar una
dirección física para enviar un mensaje al servidor sin mayor interpretación. Una
dirección lógica se puede localizar mediante unatransmisión o mediante una
búsqueda en un servidor de nombres.

Ván último giro que a veces está presente en un sistema distribuido, pero casi
nunca en uno centralizado, es la posibilidad de buscar un nombre en ASCII y
obtener no uno, sino varios nombres binarios (nodos-i, posibilidades, o alguna otra
cosa). Por lo general, éstos representan al archivo original y todos sus respaldos.
Con varios nombres binarios, es posible entonces intentar la localización de uno
de los archivos correspondientes; si éste no está disponible por alguna razón, se
intenta con los otros. Este método proporciona cierto grado de tolerancia de fallas
por medio de la redundancia.

             Semántica de los archivos compartidos

Si dos o más usuarios comparten el mismo archivo, es necesario definir con
precisión la semántica de la lectura y escritura para evitar problemas. En los
sistemas con un procesador que permiten a los procesos compartir archivos, como
UNIX, la semántica estáblece por lo general que si una operación READ sigue
después de una operación WRITE, READ regresa el valor recién escrito, como se
muestra en la figura 5-4(a). De manera análoga, cuando dos WRITE se realizan
enserie y después se ejecuta un READ, el valor que se lee es el almacenado en la
última escritura. De hecho, el sistema impone en todas las operaciones un orden
absoluto con respecto del tiempo y siempre regresa el valor más reciente. Nos
refériremos a este modelo como la semántica de UNIX. Este modelo es fácil de
comprender y tiene una implantación directa.

En un sistema distribuido, la semántica de UNIX se puede lograr fácilmente,
mientras sólo exista un servidor de archivos y los clientes no oculten los archivos.
Todas las instrucclones READyWRITE pasan en forma directa al servidor de
archivos, que los procesa en forma secuencial. Este método proporciona la
semántica de UNIX (excepto por un problema menor: los retrasos en la red
pueden hacer que un READ ocurrido un microsegundo despues de un WRITE
llegue primero al servidor y que obtenga el valor anterior).

Sin embargo, en la práctica, el desempeno de un sistema distribuido donde todas
las solicitudes de archivos deban pasar a un servidor con frecuencia es pobre.
Este problema se puede resolver si se permite a los clientes que mantengan
copias locales de los archivos de uso frecuente en sus cachés particulares.
Aunque analizaremos más adelante los detalles del ocultamiento de archivos, por
el momento basta señalar que si un cliente modifica en forma local un archivo en
caché y poco después otro cliente lee el archivo del servidor, e segundo cliente
obtendrá un archivo obsoleto, como se muestra en la figura 5-4(b).

Una forma de salir de esta dificultad es propagar de manera inmediata todas las
modificaciones de los archivos en caché de regreso al servidor. Aunque esto es
sencillo desde el punto de vista conceptual, el método es ineficiente. Otra solución
consiste en relajar la semántica de los archivos compartidos. En vez de pedir que
un READ vea los efectos de todos los WRITE anteriores, uno puede tener una
nueva regla que diga: "los cambios aun archivo abierto sólo pueden ser vistos en
un principio por el proceso (O tal vez la máquina) que modificó el archivo. Los
cambios serán visibles a los demás procesos (O máquinas) sólo cuando se cierre
el archivo".

La adopción de esta regla no modifica lo que ocurre en la figura 5-4(b), pero
redefine el comportamiento (B obtiene el valor original del archivo) como el
correcto. Cuando A cierra el archivo, envía una copia al servidor, de modo que los
siguientes READ obtienen el nuevo valor, como se pide. Esta regla es de uso
común y se conoce como semántica de seslon.

El uso de la semántica de sesión hace surgir la pregunta de lo que ocurre si dos o
más clientes ocultan y modifican el mismo archivo en forma simultánea. Una
solución consiste en decir que, al cerrarse cada archivo, su valor se envía de
regreso al servidor, de modo que el resultado final depende de quién lo cierre más
rápido. Una alternativa menos agradable, pero más fácil de implantar, es decir,
que el resultado final es uno de los candidatos, pero no se especifica la elección
de uno de ellos.
La dificultad final con el uso de cachés y la semántica de sesión es que viola otro
aspecto de la semántica de UNIX además del hecho deque no todos los READ
regresen el valor de escritura más reciente. En UNIX, a cada archivo abierto se le
asocia un apuntador que indica la posición actual en el archivo. Una instrucción
READ toma los datos a partirde esa posición y WR[TEdeposita los datos ahí. Este
apuntador es compartido por los procesos que abrieron el archivo y todos sus
hijos. Con la semántica de sesión, cuando los hijos se ejecutan en máquinas
distintas, no se puede lograr compartir el archivo.

Para ver las consecuericias del hecho de abandonar los apuntadores de archivo
com partidos,

consideremos un comando como

run out

en donde run es un guión del shell que ejecutados programas, A y B uno después
del otro. Si ambos programas producen una salida, se espera quela salida
producida por b continúe directamente después de la salida de a dentro de out. La
forma de lograr esto es que al anidar b, éste herede el apuntador de archivo de a,
el cual es compartido por el shell y ambos procesos. De esta forma, el primer byte
donde escriba b será el inmediato posterior al último byte escrito por a. Con la
semántica de sesión y sin apuntadores compartidos, se necesita un mecanismo
por completo diferente para que funcionen los guiones del shell y otras
construcciones similares que utilizan los apuntadores a archivos compartidos.
Puesto que no se conoce una solución de propósito general para este problema.
cada sistema lo debe enfrentar de una manera ad hoc.

Un método por completo distinto a la semántica de los archivos compartidos en un
s¡stema distribuido es que todos los archivos sean inmutables. Así, no existe
forma de abrir un archivo para escribir en éÉ. En efecto, las únicas operaciones en
los archivos son CREATE y READ.

Lo que es posible es crear un archivo por completo nuevo e introducirlo en el
sistema de directorios, con el nombre de un archivo ya existente, el cual se vuelve
inaccesible (al menos con ese nombre). Así, aunque se vuelve imposible modificar
el archivox, es posible remplazarlo (en forma atómica) por un archivo nuevo. En
otras palabras, aunque los archiros no se pueden actualizar, 105 directoriossí. Una
vez que hemos dec¡dido que los archivos no se pueden mod¡flcar, desaparece el
problema de enfrentarse a dos procesos. uno de los cuales escribe en un archivo
y el otro lo lee.

Sigue presente el problema de qué hacer si dos procesos intentan remplazar el
mismo archivo a la vez. Como en el caso de la semántica de sesión, parece que la
mejor solución es permitir que uno de los nuevos archivos remplace al anterior, ya
sea el último u otro dado de manera no determinista.
Un problema más molesto consiste en qué hacer si un archivo se remplaza
mientras otro proceso está ocupado leyéndolo. Una solución es arreglárselas de
tal forma que el lector utilice el archivo anterior, aunque éste ya no exista en
directorio alguno, en forma análoga al hecho de que UNIX permite que un proceso
con un archivo abierto continúe utilizándolo, aun cuando éste haya sido eliminado
de todos los directorios. Otra solución consiste en detectar la modificación del
archivo y hacer que fallen los intentos posteriores por leerlo.

Una cuarta vía para enfrentar el uso de los archivos compartidos en un sistema
distribuido es usar las transacciones atómicas, analizadas con detalle en el
capítulo 3. pero que aqui resumiremos. Para tener acceso a un archivo o grupo de
archivos, un proceso ejecuta en primer lugar cierto tipo de primitiva
BEGINTRANSACTION para señalar que lo que sigue debe ejecutarse de manera
indivisible. Después vienen las llamadas al sistema para leer o escribir en uno o
más archivos. Al terminar el trabajo, se ejecuta una primitiva ENO
TRANSACTION. La propiedad fundamental de este método es que el sistema
garantiza que todas las llamadas contenidas dentro de la transacción se llevarán a
cabo en orden, sin interferencias de otras transacciones concurrentes. Si dos o
más transacciones se realizan al mismo tiempo, el sistema garantizaque el
resultado final esel mismo que si se ejecutasen en cierto orden secuencial
(indeterminado).

El ejemplo etásico donde las transacciones facilitan la programación es un sistema
baneario. Imaginemos que cierta cuenta bancaria contiene lOO dólares y que dos
procesos intentan añadirle 50 dólares. En un sistema sin restricciones, cada
proceso puede leer de manera simultánea el archivo que contiene el balance
actual (100), calcular en forma mdividual el nuevo balance (150) y escribir en el
archivo el nuevo valor. El resultado final podría ser 1500200, según la
sincronización de la lectura y la escritura. Al agrupar todas las operaciones en una
transacción, los procesos no se pueden intercalar y el resultado final siempre será
200.

Weitere ähnliche Inhalte

Was ist angesagt?

Sistemas operativos - Sistemas De Archivos - reporte unidad 5
Sistemas operativos - Sistemas De Archivos - reporte unidad 5Sistemas operativos - Sistemas De Archivos - reporte unidad 5
Sistemas operativos - Sistemas De Archivos - reporte unidad 5Dj Mada - Tres Valles, Veracruz
 
A D M I N I S T R A D O R D E A R C H I V O S
A D M I N I S T R A D O R  D E  A R C H I V O SA D M I N I S T R A D O R  D E  A R C H I V O S
A D M I N I S T R A D O R D E A R C H I V O Smartin
 
Ensayo (Gestion de Archivos)
Ensayo (Gestion de Archivos)Ensayo (Gestion de Archivos)
Ensayo (Gestion de Archivos)Angel D Garcia P
 
Diapositivas 6
Diapositivas 6Diapositivas 6
Diapositivas 6alica
 
Administracion De Archivos Vi
Administracion De Archivos ViAdministracion De Archivos Vi
Administracion De Archivos ViSistemOper
 
Administracion de archivos
Administracion de archivosAdministracion de archivos
Administracion de archivoscgviviana
 
Tema 10 entrada y salida por gio
Tema 10   entrada y salida por gioTema 10   entrada y salida por gio
Tema 10 entrada y salida por gioRobert Wolf
 
Quasi - Sistema de archivos
Quasi - Sistema de archivosQuasi - Sistema de archivos
Quasi - Sistema de archivosdegarden
 
Llamadas al sistema de archivos y de ficheros
Llamadas al sistema de archivos y de ficherosLlamadas al sistema de archivos y de ficheros
Llamadas al sistema de archivos y de ficherosCamilo Pacheco
 
Articulo programación ii
Articulo programación iiArticulo programación ii
Articulo programación iiCarolina Pinto
 
Administracion de archivos
Administracion de archivosAdministracion de archivos
Administracion de archivosAehp666
 
Software para administrar archivos
Software para administrar archivosSoftware para administrar archivos
Software para administrar archivosRaúl Llasag
 
Operación de sistema operativo monousuario, sobre msdos
Operación de sistema operativo monousuario, sobre msdosOperación de sistema operativo monousuario, sobre msdos
Operación de sistema operativo monousuario, sobre msdosEduardo Hernandez Sosa
 
Operación de sistema operativo monousuario, sobre msdos
Operación de sistema operativo monousuario, sobre msdosOperación de sistema operativo monousuario, sobre msdos
Operación de sistema operativo monousuario, sobre msdosEduardo Hernandez Sosa
 

Was ist angesagt? (20)

Sistemas operativos - Sistemas De Archivos - reporte unidad 5
Sistemas operativos - Sistemas De Archivos - reporte unidad 5Sistemas operativos - Sistemas De Archivos - reporte unidad 5
Sistemas operativos - Sistemas De Archivos - reporte unidad 5
 
A D M I N I S T R A D O R D E A R C H I V O S
A D M I N I S T R A D O R  D E  A R C H I V O SA D M I N I S T R A D O R  D E  A R C H I V O S
A D M I N I S T R A D O R D E A R C H I V O S
 
Archivos Distribuidos
Archivos DistribuidosArchivos Distribuidos
Archivos Distribuidos
 
Ensayo (Gestion de Archivos)
Ensayo (Gestion de Archivos)Ensayo (Gestion de Archivos)
Ensayo (Gestion de Archivos)
 
Sistemas operativos windows
Sistemas operativos windowsSistemas operativos windows
Sistemas operativos windows
 
Diapositivas 6
Diapositivas 6Diapositivas 6
Diapositivas 6
 
Administracion De Archivos Vi
Administracion De Archivos ViAdministracion De Archivos Vi
Administracion De Archivos Vi
 
Administracion de archivos
Administracion de archivosAdministracion de archivos
Administracion de archivos
 
Archivo
ArchivoArchivo
Archivo
 
Sistema de archivos
Sistema de archivosSistema de archivos
Sistema de archivos
 
Tema 10 entrada y salida por gio
Tema 10   entrada y salida por gioTema 10   entrada y salida por gio
Tema 10 entrada y salida por gio
 
Sr8 cm3 eq2-sistema de archivos v7.unix
Sr8 cm3 eq2-sistema de archivos v7.unixSr8 cm3 eq2-sistema de archivos v7.unix
Sr8 cm3 eq2-sistema de archivos v7.unix
 
Quasi - Sistema de archivos
Quasi - Sistema de archivosQuasi - Sistema de archivos
Quasi - Sistema de archivos
 
Llamadas al sistema de archivos y de ficheros
Llamadas al sistema de archivos y de ficherosLlamadas al sistema de archivos y de ficheros
Llamadas al sistema de archivos y de ficheros
 
Articulo programación ii
Articulo programación iiArticulo programación ii
Articulo programación ii
 
Administracion de archivos
Administracion de archivosAdministracion de archivos
Administracion de archivos
 
Software para administrar archivos
Software para administrar archivosSoftware para administrar archivos
Software para administrar archivos
 
Presentación1
Presentación1Presentación1
Presentación1
 
Operación de sistema operativo monousuario, sobre msdos
Operación de sistema operativo monousuario, sobre msdosOperación de sistema operativo monousuario, sobre msdos
Operación de sistema operativo monousuario, sobre msdos
 
Operación de sistema operativo monousuario, sobre msdos
Operación de sistema operativo monousuario, sobre msdosOperación de sistema operativo monousuario, sobre msdos
Operación de sistema operativo monousuario, sobre msdos
 

Andere mochten auch

Sequencing, Alignment and Assembly
Sequencing, Alignment and AssemblySequencing, Alignment and Assembly
Sequencing, Alignment and AssemblyShaun Jackman
 
Agentes inteligentes
Agentes inteligentesAgentes inteligentes
Agentes inteligentesmenamigue
 
Hacer un programa que calcule la suma de dos números y su producto
Hacer un programa que calcule la suma de dos números y su productoHacer un programa que calcule la suma de dos números y su producto
Hacer un programa que calcule la suma de dos números y su productoLeobardo Montalvo
 
Tutorial for using SQL in Microsoft Access
Tutorial for using SQL in Microsoft AccessTutorial for using SQL in Microsoft Access
Tutorial for using SQL in Microsoft Accessmcclellm
 
Apuntes 1 parcial
Apuntes 1 parcialApuntes 1 parcial
Apuntes 1 parcialeleazar dj
 
Maquinas de turing
Maquinas de turingMaquinas de turing
Maquinas de turingJesus David
 
Planificacion De Procesos y Procesadores
Planificacion De Procesos y ProcesadoresPlanificacion De Procesos y Procesadores
Planificacion De Procesos y ProcesadoresPkacho
 
pasos para hacer una mini agenda en visual basic 6.0
pasos para hacer una mini agenda en visual basic 6.0pasos para hacer una mini agenda en visual basic 6.0
pasos para hacer una mini agenda en visual basic 6.0yeimimorel
 
Planificacion del procesador
Planificacion del procesadorPlanificacion del procesador
Planificacion del procesadorManuel Ceron
 
Unidad No. 5 - Agentes Inteligentes
Unidad No. 5 - Agentes InteligentesUnidad No. 5 - Agentes Inteligentes
Unidad No. 5 - Agentes InteligentesMilton Klapp
 
Preguntas seguridad informática
Preguntas seguridad informáticaPreguntas seguridad informática
Preguntas seguridad informáticamorfouz
 
Estructuras de datos y tipos de datos abstractos
Estructuras de datos y tipos de datos abstractosEstructuras de datos y tipos de datos abstractos
Estructuras de datos y tipos de datos abstractosLuis Lastra Cid
 
Tipos abstractos de datos
Tipos abstractos de datosTipos abstractos de datos
Tipos abstractos de datosJose Armando
 
Entorno de desarrollo integrado de Visual Basic .NET
Entorno de desarrollo integrado de Visual Basic .NETEntorno de desarrollo integrado de Visual Basic .NET
Entorno de desarrollo integrado de Visual Basic .NETNilian Cabral
 
Taller modelo entidad relacion
Taller modelo entidad relacionTaller modelo entidad relacion
Taller modelo entidad relacionBrayan Vega Diaz
 
Redes De Fibra Optica
Redes De Fibra OpticaRedes De Fibra Optica
Redes De Fibra OpticaInma Olías
 
Online real estate management system
Online real estate management systemOnline real estate management system
Online real estate management systemYasmeen Od
 
Knowledge based systems
Knowledge based systemsKnowledge based systems
Knowledge based systemsYowan Rdotexe
 

Andere mochten auch (20)

Sequencing, Alignment and Assembly
Sequencing, Alignment and AssemblySequencing, Alignment and Assembly
Sequencing, Alignment and Assembly
 
Agentes inteligentes
Agentes inteligentesAgentes inteligentes
Agentes inteligentes
 
Lenguajes
LenguajesLenguajes
Lenguajes
 
Hacer un programa que calcule la suma de dos números y su producto
Hacer un programa que calcule la suma de dos números y su productoHacer un programa que calcule la suma de dos números y su producto
Hacer un programa que calcule la suma de dos números y su producto
 
Tutorial for using SQL in Microsoft Access
Tutorial for using SQL in Microsoft AccessTutorial for using SQL in Microsoft Access
Tutorial for using SQL in Microsoft Access
 
Apuntes 1 parcial
Apuntes 1 parcialApuntes 1 parcial
Apuntes 1 parcial
 
Maquinas de turing
Maquinas de turingMaquinas de turing
Maquinas de turing
 
Planificacion De Procesos y Procesadores
Planificacion De Procesos y ProcesadoresPlanificacion De Procesos y Procesadores
Planificacion De Procesos y Procesadores
 
pasos para hacer una mini agenda en visual basic 6.0
pasos para hacer una mini agenda en visual basic 6.0pasos para hacer una mini agenda en visual basic 6.0
pasos para hacer una mini agenda en visual basic 6.0
 
Planificacion del procesador
Planificacion del procesadorPlanificacion del procesador
Planificacion del procesador
 
Unidad No. 5 - Agentes Inteligentes
Unidad No. 5 - Agentes InteligentesUnidad No. 5 - Agentes Inteligentes
Unidad No. 5 - Agentes Inteligentes
 
Preguntas seguridad informática
Preguntas seguridad informáticaPreguntas seguridad informática
Preguntas seguridad informática
 
Tipos de Datos Abstractos.
Tipos de Datos Abstractos.Tipos de Datos Abstractos.
Tipos de Datos Abstractos.
 
Estructuras de datos y tipos de datos abstractos
Estructuras de datos y tipos de datos abstractosEstructuras de datos y tipos de datos abstractos
Estructuras de datos y tipos de datos abstractos
 
Tipos abstractos de datos
Tipos abstractos de datosTipos abstractos de datos
Tipos abstractos de datos
 
Entorno de desarrollo integrado de Visual Basic .NET
Entorno de desarrollo integrado de Visual Basic .NETEntorno de desarrollo integrado de Visual Basic .NET
Entorno de desarrollo integrado de Visual Basic .NET
 
Taller modelo entidad relacion
Taller modelo entidad relacionTaller modelo entidad relacion
Taller modelo entidad relacion
 
Redes De Fibra Optica
Redes De Fibra OpticaRedes De Fibra Optica
Redes De Fibra Optica
 
Online real estate management system
Online real estate management systemOnline real estate management system
Online real estate management system
 
Knowledge based systems
Knowledge based systemsKnowledge based systems
Knowledge based systems
 

Ähnlich wie La interfaz del servidor de directorios

Ähnlich wie La interfaz del servidor de directorios (20)

Taller de diapositivas de gestion yadministracion de archivos y directorio1
Taller de diapositivas de gestion yadministracion de archivos y directorio1Taller de diapositivas de gestion yadministracion de archivos y directorio1
Taller de diapositivas de gestion yadministracion de archivos y directorio1
 
Marco teórico practica 11
Marco teórico practica 11Marco teórico practica 11
Marco teórico practica 11
 
Guia comandos-rapidos-linux-4781
Guia comandos-rapidos-linux-4781Guia comandos-rapidos-linux-4781
Guia comandos-rapidos-linux-4781
 
Estructura del sistema de archivos de linux
Estructura del sistema de archivos de linuxEstructura del sistema de archivos de linux
Estructura del sistema de archivos de linux
 
11.sistema de archivos
11.sistema de archivos11.sistema de archivos
11.sistema de archivos
 
Bryan
Bryan Bryan
Bryan
 
Unidad6
Unidad6Unidad6
Unidad6
 
Marco Teorico
Marco TeoricoMarco Teorico
Marco Teorico
 
Sistema de archivos
Sistema de archivosSistema de archivos
Sistema de archivos
 
Practica 1 unidad 5
Practica 1 unidad 5Practica 1 unidad 5
Practica 1 unidad 5
 
Active directory
Active directoryActive directory
Active directory
 
Active directory
Active directoryActive directory
Active directory
 
Introducción a LDAP y los Servicios de Directorio
Introducción a LDAP y los Servicios de DirectorioIntroducción a LDAP y los Servicios de Directorio
Introducción a LDAP y los Servicios de Directorio
 
Actividad 4 base de datos antonia
Actividad 4 base de datos antoniaActividad 4 base de datos antonia
Actividad 4 base de datos antonia
 
Definiciones Basicas
Definiciones BasicasDefiniciones Basicas
Definiciones Basicas
 
Gestion de archivos Iuta
Gestion de archivos IutaGestion de archivos Iuta
Gestion de archivos Iuta
 
Bbd ddistribuidas
Bbd ddistribuidasBbd ddistribuidas
Bbd ddistribuidas
 
Active directory
Active directoryActive directory
Active directory
 
Active directory
Active directoryActive directory
Active directory
 
YENIFER OLIVO.
YENIFER OLIVO.YENIFER OLIVO.
YENIFER OLIVO.
 

La interfaz del servidor de directorios

  • 1. La interfaz del servidor de directorios La otra parte del servicio de archivos es el servicio de directorios, el cual proporciona las operaciones para crear y eliminar directorios, nombrar o cambiar el nombre de archivos y mover éstos de un directorio a otro. La naturaleza del servicio de directorios no depende del hecho deque los archivos individuales se transfieran en su totalidad oque se tenga un acceso remoto a ellos. El servicio de directorios define un alfabeto y una sintaxis para formar los nombres de archivos (y directorios). Lo usual es que los nombres de archivos tengan de 1 hasta un cierto número máximo de letras, números y ciertos caracteres especiales. Algunos sistemas dividen los nombres de archivo en dos partes, a menudo separadas mediante un punto, corno prog.c para un programa en C o man. txtpara un archivo de texto. La segunda parte del nombre, llamada la extensión de archivo, identifica el tipo de éste. Otros sistemas utilizan un atributo explicito para este fin, en vez de util¡zar una extensión dentro del nombre. Todos los sistemas distribuidos permiten que los directorios contengan subdirectorios, para que los usuarios puedan agrupar los archivos relacionados entre sí. De acuerdo con esto, se dispone de operaciones para la creación y eliminación de directorios, así como para introducir, eliminar y buscar archivos en ellos. Por lo general, cada subdirectorio contiene todos los archivos de un proyecto, como un programa o documento de gran tamano (por ejemplo, un libro). Cuando se despliega el (sub)directorio, sólo se muestran los archivos relevantes; los archivos no relacionados están en otros (sub)directorios y no agrandan la lista. Los subdirectorios pueden contener sus propios subdirectorios y así en lo sucesivo, lo que conduce a un árbol de directorios, el cual se conoce como sistema jerárquico dearchivos. La figura siguiente (a) muestra un árbol con cinco directorios. En ciertos sistemas, es posible crear enlaces o apuntadores a un directorio arbitrario. Éstos se pueden colocar en cualquier directorio, lo que permite construir no sólo árboles, sino gráficas arbitrarias de directorios, que son más poderosas. La distinción entre árboles y gráficas es de particular importancia en un sistema distribuido. La naturaleza de la dificultad se puede ver en la gráfica de directorios de la figura (b). En ésta, el directorio D tiene un enlace con el directorio R El problema aparece cuando se elimina el enlace deA a B. En unajerarquia con estructura de árbol, sólo se puede eliminar un enlace con un directorio si el directorio al cual se apunta es vacio. En una gráfica, se permite la eliminación de un enlace mientras exista al menos otro enlace. Mediante un contador de referencias, el cual se muestra en la esquina superior derecha de cada directorio de la figura 5-2(b), se puede determinar si el enlace por eliminar es el último. Después de eliminar el enlace de A a B el contador de referencias de B se reduce de 2 a 1, lo cual está bien en el papel. Sin embargo, ahora no es posible llegaran
  • 2. desde la raiz del sistema de archivos (A). Los tres directorios B, D y Ey todos sus archivos se convierten en huérfanos. Este problema también existe en los sistemas centralizados, pero es más serio en los distnbuidos. Si todo está en una máquina, es posible, aunque costoso, descubrir los directorios huérfanos, puesto que toda la información está en un lugar. Se puede detener toda la actividad de los archivos y recorrer la gráfica desde la raíz, para señalar todos los directorios les. Al final de este proceso. se sabe que todos los directorios no marcados son la~alcnazazlrables. En un sistema distribuido existen varias máquinas y no se puede detener toda la actividad, por lo que es dificil, sino es que imposible, tomar una foto "instantánea". Un aspecto fundamental en el diseño de cualquier sistema distribuido de archivos es si todas las máquinas (y procesos) deben tener con exactitud la misma visión de la jerarquía de los directorios. Como ejemplo de lo que queremos decir en esta observación, consideremos la figura En la figura 5-3(a) mostramos dos servidores de archivos, cada uno de los cuales tiene tres director¡os y algunos archivos. En la figura 5-3(b) tenemos un sistema donde todos los clientes otras máquinas) tienen la misma visión de! sistema distribuido de archivos. Si la trayectoria /D/E/x es válida en una máquina, entonces es válida en todas ellas. Por el contrario, en la figura 5-3, las diferentes máquinas pueden tener visiones diferentes del sistema de archivos. Para repetir el ejemplo anterior, la trayectoria /DIE/x podría ser válida en el cliente 1 pero no en el cliente 2. En los sistemas que administran varios servidores de archivos mediante el montaje remoto, la norma es la figura 5-3. Es flexible y tiene implantación directa, pero tiene la desventaja deque el sistema no se compota como un sistema de tiempo compartido tradicional. En un sistema de tiempo compartido, el sistema de archivos se ve igual para todos los procesos [es decir, el modelo de la figura 5- 3(b)]. Esta propiedad hace que un sistema sea fácil de programar y comprender. Una cuestión muy relacionada con esto es si existe un directorio raíz global, al que todas las máquinas reconozcan como la raíz. Una vía para tener un directorio raíz global es que dicha raíz sólo contenga una entrada por cada servidor. En estas circunstancias, ¡88 trayectorias toman la forma /servidor/ruta, que tiene sus propias desventajas, pero al menos es la misma en todas las partes del sistema. Transparencia de los nombres El principal problema de esta forma de los nombres es que no es por completo transparente. En este contexto, son relevantes dos formas de transparencia y es importante distinguirlas. La primera, la transparencia con respecto a la posición, significa que el nombre de la ruta de acceso no sugiere la posición del archivo (o de algún otro objeto). Una ruta como /servidor/dir2/dir2/x indica que x está
  • 3. localizado en el servidor 1, pero no indica la posición del servidor Éste es libre de moverse dentro de la red, sin que el nombre de la ruta de acceso deba ser modificada. Así, este sistema es transparente con respecto a la posición. Sin embargo, supongamos que el archivo x es muy grande y que hay poco espacio en el servidor l Además, supongamos que hay mucho espacio en el servidor 2. El sistema podría desplazar de forma automática servidor2. Por desgracia, si el primer componente de todas las rutas de acceso es el servidor, el sistema no puede desplazar el archivo al otro servidor en forma automática, aunque din y clin existieran en ambos servidores. El problema es que el desplazamiento automático del archivo cambia el nombre de su ruta de acceso, de/servidor/dirI/dir2/x a /servidor/dir/dir2/x. Los programas que tienen integrada la primera cadena no podrán funcionar si la ruta de acceso se modifica. Un sistema donde los archivos se pueden desplazar sin que cambien sus nombres tiene independencia con respecto a la posición. Un sistema distribuido que incluya los nombres de la máquina o el servidor en los nombres de las rutas de acceso no es independiente con respecto a la posición. Tampoco lo es uno basado en el montaje remoto, puesto que no es posible desplazar un archivo de un grupo de archivos (la unidad de montaje) a otro y conservar el antiguo nombre de la ruta de acceso. La independencia con respecto a la posición no es fácil de lograr, pero es una propiedad deseable en un sistema distribuido. Para resumir lo anterior, existen tres métodos usuales para nombrar los archivos y directorios en un sistema distribuido:  Nombre máquina + ruta de acceso, como /máq2/ruta o /máq2:ruta.  Montaje de sistemas de archivos remotos en la jerarquía local de archivos.  Un espacio de nombres que tenga la misma apariencia en todas las máquinas. Los primeros dos son fáciles de implantar, en particular como una forma de conectar sistemas ya existentes que no estaban diseflados para su uso distribuido. El tercer método es difícil y requiere de un diseño cuidadoso, pero es necesario si se quiere lograr el objetivo deque el sistema distribuido actúe como una computadora. Nombres de dos niveles La mayoría de tos sistemas distribuidos utilizan cierta forma de nombres con dos niveles Los archivos (y otros objetos) tienen nombres simbólicos, como prog.c, para USO de las personas, pero también pueden tener nombres binarios internos, para uso del propio sistema. Lo que los directorios hacen en realidad es proporcionar una asociación entre estos dos nombres. Paratas personas y los programas, es conveniente utilizar nombres simbólicos (ASCII), pero para el uso dentro del propio sistema, estos nombres son muy grandes y
  • 4. difíciles. Así, cuando un usuario abre un archivo o hace referencia a un nombre simbólico, el sistema busca de inmediato el nombre simbólico en el directorio apropiado para obtener el nombre binario, el cual utilizará para localizar en realidad al archivo. A veces, los nombres binarios son visibles a los usuarios y aveces no. La naturaleza de los nombres binarios varía mucho dc un sistema a otro. En un sistema con varios servidores de archivos, cada uno de los cuales esté autocontenido (es decir, no tenga referencias a directorios o archivos en otros servidores), el nombre binario puede ser sólo un número de un nodo-i local, como en UNIX Un esquema más general paralos nombres es que el nombre binario indique el servidor y un archivo específico en ese servidor. Este método permite que un directorio en un servidor contenga un archivo en un servidor distinto. Otra alternativa, que a veces es preferible, es utilizar un enlace simbólico. Un enlace simbólico es una entrada de directorio asociada a una cadena (servidor, nombre de archivo), la cual se puede buscar en el servidor correspondiente para encontrar el nombre binario. El propio enlace simbólico es sólo el nombre de una ruta de acceso. Otra idea más es utilizar las posibilidades como los nombres binarios. En este método, la búsqueda de un nombre en ASCII produce una posibilidad, la cual puede tomar una de varias formas. Por ejemplo, puede contener un número físico o lógico de una máquina ola dirección en la red del servidor apropiado, así como un número que indique el archivo específico necesario. Se puede utilizar una dirección física para enviar un mensaje al servidor sin mayor interpretación. Una dirección lógica se puede localizar mediante unatransmisión o mediante una búsqueda en un servidor de nombres. Ván último giro que a veces está presente en un sistema distribuido, pero casi nunca en uno centralizado, es la posibilidad de buscar un nombre en ASCII y obtener no uno, sino varios nombres binarios (nodos-i, posibilidades, o alguna otra cosa). Por lo general, éstos representan al archivo original y todos sus respaldos. Con varios nombres binarios, es posible entonces intentar la localización de uno de los archivos correspondientes; si éste no está disponible por alguna razón, se intenta con los otros. Este método proporciona cierto grado de tolerancia de fallas por medio de la redundancia. Semántica de los archivos compartidos Si dos o más usuarios comparten el mismo archivo, es necesario definir con precisión la semántica de la lectura y escritura para evitar problemas. En los sistemas con un procesador que permiten a los procesos compartir archivos, como UNIX, la semántica estáblece por lo general que si una operación READ sigue después de una operación WRITE, READ regresa el valor recién escrito, como se muestra en la figura 5-4(a). De manera análoga, cuando dos WRITE se realizan
  • 5. enserie y después se ejecuta un READ, el valor que se lee es el almacenado en la última escritura. De hecho, el sistema impone en todas las operaciones un orden absoluto con respecto del tiempo y siempre regresa el valor más reciente. Nos refériremos a este modelo como la semántica de UNIX. Este modelo es fácil de comprender y tiene una implantación directa. En un sistema distribuido, la semántica de UNIX se puede lograr fácilmente, mientras sólo exista un servidor de archivos y los clientes no oculten los archivos. Todas las instrucclones READyWRITE pasan en forma directa al servidor de archivos, que los procesa en forma secuencial. Este método proporciona la semántica de UNIX (excepto por un problema menor: los retrasos en la red pueden hacer que un READ ocurrido un microsegundo despues de un WRITE llegue primero al servidor y que obtenga el valor anterior). Sin embargo, en la práctica, el desempeno de un sistema distribuido donde todas las solicitudes de archivos deban pasar a un servidor con frecuencia es pobre. Este problema se puede resolver si se permite a los clientes que mantengan copias locales de los archivos de uso frecuente en sus cachés particulares. Aunque analizaremos más adelante los detalles del ocultamiento de archivos, por el momento basta señalar que si un cliente modifica en forma local un archivo en caché y poco después otro cliente lee el archivo del servidor, e segundo cliente obtendrá un archivo obsoleto, como se muestra en la figura 5-4(b). Una forma de salir de esta dificultad es propagar de manera inmediata todas las modificaciones de los archivos en caché de regreso al servidor. Aunque esto es sencillo desde el punto de vista conceptual, el método es ineficiente. Otra solución consiste en relajar la semántica de los archivos compartidos. En vez de pedir que un READ vea los efectos de todos los WRITE anteriores, uno puede tener una nueva regla que diga: "los cambios aun archivo abierto sólo pueden ser vistos en un principio por el proceso (O tal vez la máquina) que modificó el archivo. Los cambios serán visibles a los demás procesos (O máquinas) sólo cuando se cierre el archivo". La adopción de esta regla no modifica lo que ocurre en la figura 5-4(b), pero redefine el comportamiento (B obtiene el valor original del archivo) como el correcto. Cuando A cierra el archivo, envía una copia al servidor, de modo que los siguientes READ obtienen el nuevo valor, como se pide. Esta regla es de uso común y se conoce como semántica de seslon. El uso de la semántica de sesión hace surgir la pregunta de lo que ocurre si dos o más clientes ocultan y modifican el mismo archivo en forma simultánea. Una solución consiste en decir que, al cerrarse cada archivo, su valor se envía de regreso al servidor, de modo que el resultado final depende de quién lo cierre más rápido. Una alternativa menos agradable, pero más fácil de implantar, es decir, que el resultado final es uno de los candidatos, pero no se especifica la elección de uno de ellos.
  • 6. La dificultad final con el uso de cachés y la semántica de sesión es que viola otro aspecto de la semántica de UNIX además del hecho deque no todos los READ regresen el valor de escritura más reciente. En UNIX, a cada archivo abierto se le asocia un apuntador que indica la posición actual en el archivo. Una instrucción READ toma los datos a partirde esa posición y WR[TEdeposita los datos ahí. Este apuntador es compartido por los procesos que abrieron el archivo y todos sus hijos. Con la semántica de sesión, cuando los hijos se ejecutan en máquinas distintas, no se puede lograr compartir el archivo. Para ver las consecuericias del hecho de abandonar los apuntadores de archivo com partidos, consideremos un comando como run out en donde run es un guión del shell que ejecutados programas, A y B uno después del otro. Si ambos programas producen una salida, se espera quela salida producida por b continúe directamente después de la salida de a dentro de out. La forma de lograr esto es que al anidar b, éste herede el apuntador de archivo de a, el cual es compartido por el shell y ambos procesos. De esta forma, el primer byte donde escriba b será el inmediato posterior al último byte escrito por a. Con la semántica de sesión y sin apuntadores compartidos, se necesita un mecanismo por completo diferente para que funcionen los guiones del shell y otras construcciones similares que utilizan los apuntadores a archivos compartidos. Puesto que no se conoce una solución de propósito general para este problema. cada sistema lo debe enfrentar de una manera ad hoc. Un método por completo distinto a la semántica de los archivos compartidos en un s¡stema distribuido es que todos los archivos sean inmutables. Así, no existe forma de abrir un archivo para escribir en éÉ. En efecto, las únicas operaciones en los archivos son CREATE y READ. Lo que es posible es crear un archivo por completo nuevo e introducirlo en el sistema de directorios, con el nombre de un archivo ya existente, el cual se vuelve inaccesible (al menos con ese nombre). Así, aunque se vuelve imposible modificar el archivox, es posible remplazarlo (en forma atómica) por un archivo nuevo. En otras palabras, aunque los archiros no se pueden actualizar, 105 directoriossí. Una vez que hemos dec¡dido que los archivos no se pueden mod¡flcar, desaparece el problema de enfrentarse a dos procesos. uno de los cuales escribe en un archivo y el otro lo lee. Sigue presente el problema de qué hacer si dos procesos intentan remplazar el mismo archivo a la vez. Como en el caso de la semántica de sesión, parece que la mejor solución es permitir que uno de los nuevos archivos remplace al anterior, ya sea el último u otro dado de manera no determinista.
  • 7. Un problema más molesto consiste en qué hacer si un archivo se remplaza mientras otro proceso está ocupado leyéndolo. Una solución es arreglárselas de tal forma que el lector utilice el archivo anterior, aunque éste ya no exista en directorio alguno, en forma análoga al hecho de que UNIX permite que un proceso con un archivo abierto continúe utilizándolo, aun cuando éste haya sido eliminado de todos los directorios. Otra solución consiste en detectar la modificación del archivo y hacer que fallen los intentos posteriores por leerlo. Una cuarta vía para enfrentar el uso de los archivos compartidos en un sistema distribuido es usar las transacciones atómicas, analizadas con detalle en el capítulo 3. pero que aqui resumiremos. Para tener acceso a un archivo o grupo de archivos, un proceso ejecuta en primer lugar cierto tipo de primitiva BEGINTRANSACTION para señalar que lo que sigue debe ejecutarse de manera indivisible. Después vienen las llamadas al sistema para leer o escribir en uno o más archivos. Al terminar el trabajo, se ejecuta una primitiva ENO TRANSACTION. La propiedad fundamental de este método es que el sistema garantiza que todas las llamadas contenidas dentro de la transacción se llevarán a cabo en orden, sin interferencias de otras transacciones concurrentes. Si dos o más transacciones se realizan al mismo tiempo, el sistema garantizaque el resultado final esel mismo que si se ejecutasen en cierto orden secuencial (indeterminado). El ejemplo etásico donde las transacciones facilitan la programación es un sistema baneario. Imaginemos que cierta cuenta bancaria contiene lOO dólares y que dos procesos intentan añadirle 50 dólares. En un sistema sin restricciones, cada proceso puede leer de manera simultánea el archivo que contiene el balance actual (100), calcular en forma mdividual el nuevo balance (150) y escribir en el archivo el nuevo valor. El resultado final podría ser 1500200, según la sincronización de la lectura y la escritura. Al agrupar todas las operaciones en una transacción, los procesos no se pueden intercalar y el resultado final siempre será 200.