Download archivos01

Document related concepts
no text concepts found
Transcript
Interfaz Sistema de Archivos
Interfaz Sistema Archivos
 Concepto de archivo
 Métodos de acceso
 Estructura de Directorio
 Montando Sistemas de Archivos
 Compartir Archivos
 Protección
Objetivos
 Explicar la función de los sistemas de archivos
 Describir las interfaces de los sistemas de
archivos
 Discutir los detalles de diseño, incluyendo
métodos de acceso, compartido de archivos,
bloqueo de archivos, y estructura de directorios
 Explorar la protección del sistema de archivos
Concepto Archivo
 Espacio de direcciones lógico contiguo
 Tipos:
 Datos



numérico
carácter
binario
 Programa/código
Estructura de un archivo
 Ninguna - secuencia de palabras, bytes
 Estructura de registro sencilla
Líneas
 Longitud fija
 Longitud variable
 Estructuras complejas
 Documento con formato
 Archivo para cargar relocalizable
 Se pueden simular los últimos dos con el primer método
utilizando caracteres de control
 ¿Quién decide?:
 Sistema operativo
 Programa

Atributos de archivos
 Nombre – la única info en forma legible por humanos
 Identificador – etiqueta única (número) identifica el archivo






en el sistema de archivos
Tipo – requerida para sistemas que soportan distintos tipos
Localización – apuntador a la posición del archivo en el
dispositivo
Tamaño – tamaño actual del archivo
Protección – controla quien puede leer, escribir y ejecutar
Tiempo, fecha e identificación de usuario – datos para
protección, seguridad y monitores de uso
La información de archivos se almacena en la estructura del
directorio, que se mantiene en el disco
Operaciones en archivos
 Archivo es un tipo abstracto de datos
 Crear
 Escribir
 Leer
 Reposicionar dentro del archivo
 Borrar
 Truncar
 Open(Fi) – buscar la entrada Fi en la estructura del
directorio en el disco y mueve el contenido de
dicha entrada a memoria
 Close (Fi) – mueve el contenido de la entrada Fi en
memoria a la estructura de directorio en disco
Archivos abiertos
 Se requieren muchos datos para manejar
archivos abiertos:
 Apuntador de archivo: apuntador a la última
posición read/write. Uno por cada proceso que
tiene abierto el archivo
 Cuenta archivo-abierto: contador del número de
veces que está abierto el archivo - para poder
borrar datos de la tabla de archivos abiertos,
cuando el último proceso lo cierra
 Posición en el disco del archivo: cache de
información de acceso a datos
 Permisos de acceso: información de modo de
acceso por proceso
Bloqueo de archivo abierto
 Provisto por algunos sistemas operativos y
sistemas de archivos
 Intermediario para el acceso a un archivo
 Forzoso o recomendado:
 Forzoso – se niega el acceso basado en los
candados puestos y los solicitados
 Recomendado – procesos pueden obtener el
estado de los candados y decidir qué hacer
Ejemplo Bloqueo de Archivos –
Java API
 import java.io.*;
 import java.nio.channels.*;
 public class LockingExample {

public static final boolean EXCLUSIVE = false;

public static final boolean SHARED = true;

public static void main(String arsg[]) throws IOException {

FileLock sharedLock = null;

FileLock exclusiveLock = null;

try {

RandomAccessFile raf = new RandomAccessFile("file.txt", "rw");

// get the channel for the file

FileChannel ch = raf.getChannel();

// this locks the first half of the file - exclusive

exclusiveLock = ch.lock(0, raf.length()/2,
EXCLUSIVE);

/** Now modify the data . . . */

// release the lock

exclusiveLock.release();
Ejemplo Bloqueo de Archivos –
Java API















// this locks the second half of the file - shared
sharedLock = ch.lock(raf.length()/2+1, raf.length(),
SHARED);
/** Now read the data . . . */
// release the lock
exclusiveLock.release();
} catch (java.io.IOException ioe) {
System.err.println(ioe);
}finally {
if (exclusiveLock != null)
exclusiveLock.release();
if (sharedLock != null)
sharedLock.release();
}
}
}
Tipos de archivos – Nombre,
Extensión
Métodos de Acceso
 Acceso Secuencial





 Acceso Directo







read next
write next
reset
no read after last write
(rewrite)
read n
write n
position to n
read next
write next
rewrite n
n = relative block number
Archivo de Acceso Secuencial
Simulación Acceso Secuencial en Archivo de Acceso
Directo
Ejemplo de Índice y Archivos
Relativos
Estructura
de
Directorios
Una colección de nodos con información acerca de archivos

Directorio
Archivos
F1
F2
F3
F4
Fn
Tanto la estructura de directorios como los archivos viven en
el disco.
Respaldos de estas estructuras en cinta.
Organizacion de Sistema de Archivos típico
Operaciones realizadas en
Directorios
 Buscar un archivo
 Crear un archivo
 Borrar un archivo
 Lista de directorios
 Renombrar un archivo
 Recorrer el sistema de archivos
Organizar el Directorio para Obtener
 Eficiencia – localizar un archivo rápidamente
 Nombrado – conveniencia para usuarios
 Dos usuarios pueden usar el mismo nombre para
distintos archivos
 El mismo archivo puede tener varios nombres
 Agrupamientos – agrupar lógicamente archivos por
propiedades (v.gr. todos los programas java, todos
los juegos, ...)
Directorio de único nivel
 Un solo directorio para todos los usuarios
Problemas de nombrado
Problemas de grupos
Directorio
de
dos
niveles
 Directorio separado para cada usuario
Nombre de ruta
Podemos usar mismo nombre de archivo para varios usuarios
Búsqueda eficiente
No tiene capacidad para grupos
Directorios en Estructura de Árbol
Directorios en Estructura de Árbol
(cont)
 Búsqueda eficiente
 Capacidad de grupos
 Directorio actual (de trabajo)
 cd /spell/mail/prog
 type list
Directorios en Estructura de Árbol
(cont)
 Rutas absolutas o relativas
 Nuevos archivos son creados en el directorio actual
 Borrar un archivo
rm <file-name>
 Nuevos sub-direcrtorios se crean en el directorio actual
mkdir <dir-name>
Ejemplo: si el directorio actual es /mail
mkdir count
mail
prog
copy prt exp count
Borrar “mail” borrar el sub-árbol completo con raíz “mail”
Directorios en Gráficas aciclicas
 Con subdirectorios y archivos compartidos
Directorios en Gráficas aciclicas
(cont)
 Dos nombres distintos (aliasing)
 If dict deletes list apuntador colgante
Soluciones:
 Backpointers, para poder borrar todas las referencias.
Registros de tamaño variable son un problema
 Backpointers utilizando un organización tipo daisy chain
 Solución con contador de entrada
 Tipos de nuevos directorios
 Liga – otro nombre (apuntador) a un archivo existente
 Seguir la liga – seguir apuntador para encontrar un
archivo
Directorio como Gráfica General
Directorio como Gráfica General
(cont)
 ¿Cómo garantizamos que no hay ciclos?
 Permitir ligas sólo a archivos y no a
subdirectorios
 Recolección de basura
 Cada vez que se añade, ejecutamos un algoritmo
de detección de ciclos, para determinar si está
bien.
Montando el Sistema de Archivos
 Un sistema de archivos debe montarse
antes de ser accedido
 Un sistema de archivos no montado se
monta en un punto de montaje
(a) Existente (b) Partición nomontada
Punto de Montaje
Compartir Archivos
 Es deseable compartir archivos en sistemas
multi-usuario
 Se puede compartir a través de un esquema de
protección
 En sistemas distribuídos, se pueden compartir
archivos a través de la red
 Network File System (NFS) es un método típico
de distribución de archivos
Compartir archivos – Usuarios
múltiples
 User IDs identifican usuarios, permiten asociar
permisos y protección por usuario
 Group IDs permitir usuarios que pertenezcan a
grupos y permisos de acceso por grupo
Archivos compartidos – Sistemas de Archivo Remotos
 Utiliza la red para permitir acceso a archivos entre sistemas
 Manualmente con programas tipo FTP
 Automáticamente, utilizando sistemas de archivos
distribuídos
 Semi-automático a través del world wide web
 Modelo cliente-servidor permite a los clientes montar sistemas de
archivos remotos desde el servidor
 Servidor puede atender múltiples clientes
 Identificación de clientes o usuarios-en-cliente es insegura y
complicada
NFS es el protocolo estándar en UNIX para compartir archivos
 CIFS es el protocolo estándar en Windows
 Llamadas al sistema para archivos se traducen en llamadas
remotas
 Sistemas de información distribuida (distributed naming services)
tales como LDAP, DNS, NIS, Active Directory implementan acceso
unificado a información necesaria para cómputo remoto

Compartir archivos – Modos de
fallos
 Sistemas de archivos remotos añaden nuevos modos de
fallos, debido a fallas de red, fallas de servidores
 Recuperarse de fallas involucran información acerca del
estado de cada solicitud remota
 Protocolos sin estado tales como NFS incluyen toda la
información en cada solicitud, permitiendo
recuperación fácil, pero con menos seguridad
Compartir archivos – Semántica de Consistencia
 Semántica de Consistencia especifica como múltiples usuarios
deben acceder a un sistema de archivos remoto simultáneamente
 Similares a los algoritmos de sincronización de procesos del
capítulo 7
 Usualmente menos complejos debido a la latencia de E/S de
disco y red
 Andrew File System (AFS) implementa un sistema de archivos
remoto muy complicado
 Unix file system (UFS) implementa:
 Escribe a un archivo abierto y visible inmediatamente a otros
usuarios del mismo archivo
 Apuntador de archivo para compartir permite a varios
usuarios leer y escribir concurrentemente
 AFS tiene semántica de sesiones
 La escritura es visible a sesiones que inician después que se
cierra el archivo
Protección
 Dueño/creador del archivo debe poder controlar:
 qué puede hacerse
 por quién
 Tipos de acceso
 Read
 Write
 Execute
 Append
 Delete
 List
Listas de acceso y grupos
 Modo de acceso: read, write, execute
 Tres clases de usuarios
clase
octal
RWX
dueño
7
111
grupo
6
110
público
1
001

 Solicitar administrador que cree un grupo (nombre único), y añadir
otros usuarios al grupo.
 Para un archivo o directorio particular, definir el tipo de acceso
apropiado.
owner
chmod
group
761
public
game
Asociar un grupo con un archivo
chgrp G
game
Windows XP Manejo Listas de Control de Acceso
Listado directorio ejemplo en UNIX
Fin