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