interfaz sistema de archivos. interfaz sistema archivos concepto de archivo métodos de acceso...

Post on 23-Jan-2016

253 Views

Category:

Documents

5 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Interfaz Sistema de Archivos

Interfaz Sistema ArchivosConcepto de archivoMétodos de accesoEstructura de DirectorioMontando Sistemas de

ArchivosCompartir ArchivosProtección

ObjetivosExplicar la función de los sistemas de

archivosDescribir las interfaces de los sistemas

de archivosDiscutir 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 ArchivoEspacio de direcciones lógico

contiguoTipos:

Datos numérico carácter binario

Programa/código

Estructura de un archivoNinguna - secuencia de palabras, bytesEstructura 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 archivosNombre – la única info en forma legible por humanosIdentificador – etiqueta única (número) identifica el

archivo en el sistema de archivosTipo – requerida para sistemas que soportan distintos

tiposLocalización – apuntador a la posición del archivo en

el dispositivoTamaño – tamaño actual del archivoProtección – controla quien puede leer, escribir y

ejecutarTiempo, fecha e identificación de usuario – datos

para protección, seguridad y monitores de usoLa información de archivos se almacena en la

estructura del directorio, que se mantiene en el disco

Operaciones en archivosArchivo es un tipo abstracto de datosCrearEscribirLeerReposicionar dentro del archivoBorrarTruncarOpen(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 abiertosSe 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 abiertoProvisto por algunos sistemas operativos

y sistemas de archivosIntermediario para el acceso a un

archivoForzoso 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 AccesoAcceso 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

Archivo de Acceso Secuencial

Simulación Acceso Secuencial en Archivo de Acceso Directo

Ejemplo de Índice y Archivos Relativos

Estructura de DirectoriosUna colección de nodos con información acerca de

archivos

F 1 F 2F 3

F 4

F n

Directorio

Archivos

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 archivoCrear un archivoBorrar un archivoLista de directoriosRenombrar un archivoRecorrer 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

nombresAgrupamientos – agrupar lógicamente

archivos por propiedades (v.gr. todos los programas java, todos los juegos, ...)

Directorio de único nivelUn solo directorio para todos los

usuarios

Problemas de nombrado

Problemas de grupos

Directorio de dos nivelesDirectorio 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 relativasNuevos archivos son creados en el directorio actualBorrar 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 entradaTipos 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 no-montada

Punto de Montaje

Compartir ArchivosEs 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 ConsistenciaSemá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ónDueñ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

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 group public

chmod 761 game

Asociar un grupo con un archivo chgrp G game

clase octal R W X

dueño 7 1 1 1

grupo 6 1 1 0

público 1 0 0 1

Windows XP Manejo Listas de Control de Acceso

Listado directorio ejemplo en UNIX

Fin

top related