Title: Interfaz Sistema de Archivos
1Interfaz Sistema de Archivos
2Interfaz Sistema Archivos
- Concepto de archivo
- Métodos de acceso
- Estructura de Directorio
- Montando Sistemas de Archivos
- Compartir Archivos
- Protección
3Objetivos
- 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
4Concepto Archivo
- Espacio de direcciones lógico contiguo
- Tipos
- Datos
- numérico
- carácter
- binario
- Programa/código
5Estructura 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
6Atributos 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
7Operaciones 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
8Archivos 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
9Bloqueo 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
10Ejemplo 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("fil
e.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()
11Ejemplo Bloqueo de Archivos Java API
- // this locks the second half of the file -
shared - sharedLock ch.lock(raf.length()/21,
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()
-
-
-
12Tipos de archivos Nombre, Extensión
13Métodos de Acceso
- Acceso Secuencial
- read next
- write next
- reset
- no read after last write
- (rewrite)
- Acceso Directo
- read n
- write n
- position to n
- read next
- write next
- rewrite n
- n relative block number
14Archivo de Acceso Secuencial
15Simulación Acceso Secuencial en Archivo de Acceso
Directo
16Ejemplo de Índice y Archivos Relativos
17Estructura de Directorios
- Una colección de nodos con información acerca de
archivos
Tanto la estructura de directorios como los
archivos viven en el disco. Respaldos de estas
estructuras en cinta.
18Organizacion de Sistema de Archivos típico
19Operaciones realizadas en Directorios
- Buscar un archivo
- Crear un archivo
- Borrar un archivo
- Lista de directorios
- Renombrar un archivo
- Recorrer el sistema de archivos
20Organizar 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, ...)
21Directorio de único nivel
- Un solo directorio para todos los usuarios
Problemas de nombrado Problemas de grupos
22Directorio 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
23Directorios en Estructura de Árbol
24Directorios en Estructura de Árbol (cont)
- Búsqueda eficiente
- Capacidad de grupos
- Directorio actual (de trabajo)
- cd /spell/mail/prog
- type list
25Directorios en Estructura de Árbol (cont)
- Rutas absolutas o relativas
- Nuevos archivos son creados en el directorio
actual - Borrar un archivo rm ltfile-namegt
- Nuevos sub-direcrtorios se crean en el directorio
actual mkdir ltdir-namegt
Ejemplo si el directorio actual es /mail
mkdir count
26Directorios en Gráficas aciclicas
- Con subdirectorios y archivos compartidos
27Directorios en Gráficas aciclicas (cont)
- Dos nombres distintos (aliasing)
- If dict deletes list ? apuntador
colganteSoluciones - 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
28Directorio como Gráfica General
29Directorio 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.
30Montando 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
31(a) Existente (b) Partición no-montada
32Punto de Montaje
33Compartir 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
34Compartir 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
35Archivos 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
36Compartir 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
37Compartir 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
38Protección
- Dueño/creador del archivo debe poder controlar
- qué puede hacerse
- por quién
- Tipos de acceso
- Read
- Write
- Execute
- Append
- Delete
- List
39Listas de acceso y grupos
- Modo de acceso read, write, execute
- Tres clases de usuarios
-
- 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.
Asociar un grupo con un archivo chgrp
G game
40Windows XP Manejo Listas de Control de Acceso
41Listado directorio ejemplo en UNIX
42Fin