1. Introducción
Todas las aplicaciones necesitan almacenar y obtener
información
En su espacio de direcciones virtuales
Sistemas Operativos Profesor:
Your picture here
– Tamaño escaso para muchas aplicaciones
Ciclo 2012-1 Diaz Muñante Jorge – Cuando el proceso termina, la información se pierde
– No es posible hacer la información accesible a varios
procesos simultáneamente
– Solución: hacer la información independiente de los
procesos que la manipulan
Administración de Archivos
Introducción ….. Introduccion …..
Almacenaremos la información en dispositivos de almacenamiento Los archivos son administrados por el sistema operativo.
masivo en unidades denominadas Archivos.
Consideraciones en el diseño
Varias definiciones de “archivo”:
– Estructura
Agrupación de datos que el usuario ve como una entidad.
– Nombre
Colección nombrada de datos relacionados que está
grabado en almacenamiento secundario. – acceso
Colección de elementos de datos agrupados con – Uso
propósitos de control de acceso, recuperación y – Proteccion
modificación. – Implementación.
Vista de Archivo desde Usuario y Sistema Nombres de archivos
Vista de Usuario: Los archivos son abstractos.
– Colección de bytes (UNIX) – El usuario no debe ocuparse de detalles de cómo
– Colección de records (IBM) - Lee bloques de bytes y donde se almacena la información, ni como
a la vez. funciona el disco.
Lo abstracto esta en el nombre.
Las reglas varían de un sistema a otro
Vista del Sistema (dentro del SO):
Muchos SO reconocen nombres de 02 partes. (Extensión del archivo, en
– Colección de bloques. algunos casos son convenciones).
– Tamaño del bloque >= tamaño del sector; en
UNIX.
– El tamaño del bloque
1
2. Nombres de archivos ... Funciones de un Sistema de archivos
Archivo.bak Archivo respaldo Permitir crear, modificar y eliminar archivos
Los usuarios pueden compartir archivos:
Archivo.c programa fuente C 1. Acceso para lectura
Archivo.gif Grafico 2. Acceso para escritura
3. Acceso para ejecución
Archivo.hlp De ayuda
4. Posibles combinaciones
archivo.o Archivo objeto Permitir dar la estructura que uno desee a sus archivos
archivo.ps archivo postscript Facilitar la transferencia de información entre archivos
Ofrecer recursos de respaldo y recuperación
archivo.zip archivo comprimido Referenciar a los archivos mediante nombres simbólicos en vez de
nombres de dispositivos físicos
Ofrecer funciones de encriptación y des-encriptación
Ofrecer una buena interfaz del usuario
Tipos de archivos Implementación de archivos
Archivos regulares bloque
descriptor
– Aquellos que contiene información del usuario partición
de archivo
archivo
• Archivos en ASCII: constan de líneas de texto
0
• Binarios: ejecutables, imágenes, etc, 1
Directorios .
.
– Archivos del sistema para el mantenimiento de una .
estructura del sistema de archivos
Archivos especiales de caracteres bloques
de datos
– relacionados con entrada salida y se utilizan para
modelar dispositivos seriales de E/S tales como
terminales, impresoras y redes
Descriptor de archivos Operaciones con los Archivos
Nombre: la única información en formato legible por una persona. Crear
Identificación única del archivo y del usuario: descriptor interno del
archivo, dueño y grupo del archivo – Se crea sin datos. Establece algunos atributos.
Tipo de archivo: necesario en sistemas que proporciona distintos Borrar
formatos de archivos.
Tamaño del archivo: número de bytes en el archivo, máximo tamaño – Cuando ya no se necesita. Se recupera el espacio
posible, etc.
Protección: control de accesos y de las operaciones sobre archivos
en disco.
Información temporal: de creación, de acceso, de modificación, etc. Abrir
Información de control: archivo oculto, de sistema, normal o directorio,
etc. – Antes de usar un archivo, un proceso debe abrirlo.
2
3. Operaciones con los Archivos .. Operaciones con los Archivos ..
Cerrar Renombrar
– Concluido los accesos, es necesario liberar – Permite cambiar el nombre de un archivo
espacio de las tablas internas. existente.
– Algunos SO limitan el # de archivos abiertos. Establecer atributos.
– Las actualizaciones se hacen en bloques, el cierre – Modificar despues que se creó el archivo.
obliga a escribir el ultimo bloque del archivo
Operaciones con los registros Asignación continua
Leer Los archivos se asignan a zonas contiguas de almacenamiento
secundario
– El invocador debe especificar cuantos datos se
Los usuarios especifican por adelantado el tamaño del área requerida
necesitan y un buffer. para guardar el archivo que se creará
Escribir Dos registros lógicos sucesivos casi siempre están adyacentes
físicamente
– Actualiza datos.
Eliminar
Archivo A
– Borra registro (s). Es logico.
Insertar Archivo B
– Adiciona un registro al interior de un archivo
Asignación contigua Asignación continua
File Allocation Table FAT
Fichero A Bloque de ☺ Implementación sencilla: registrar dirección de inicio del archivo y la
0 1 2 3 4 nombre inicio Longitud longitud del archivo
Fichero A 2 3 ☺ Rendimiento excelente en operaciones de acceso
B 9 5
5 6 7 8 9 No factible si el tamaño no es conocido al crear el fichero
C 18 8
B D 30 2 Fragmentación externa
10 11 12 13 14 E 26 3
Difícil cuando los archivos pueden crecer y encogerse con el tiempo
15 16 17 18 19
C
20 21 22 23 24
E
25 26 27 28 29
D
30 31 32 33 34
3
4. Asignación por lista enlazada Asignación por lista enlazada
File Allocation Table
Una parte del bloque de datos contiene la dirección del archivo A
Bloque de
siguiente 0 1 2 3 4 Nombre Longitud
inicio
... ... ...
5 6 7 8 9 Archivo A 4 5
φ ... ... ...
Nombre … 1er bloque sig
sig sig 10 11 12 13 14
… … …
Num. sig
fich.dat …
bloq.
sig 15 16 17 18 19
… … …
20 21 22 23 24
25 26 27 28 29
30 31 32 33 34
Asignación por lista enlazada Asignación por lista enlazada utilizando índice
☺ No hay fragmentación externa Sacamos los punteros de los bloques y los colocamos en una tabla, única
☺ El bloque descriptor de fichero sólo almacena la dirección del primer para todos los ficheros
bloque de datos
Acceso secuencial sencillo, pero el aleatorio, complejo
Tamaño de datos de un bloque no es potencia de 2
Nombre bloques
… …
fich.d
at b1 b2 b3 b4 b5 b6…
… …
Asignación por lista enlazada utilizando índice Asignación por lista enlazada utilizando índice
Tabla de asignación de archivos (FAT) 0 -
1 - ☺ Todo el bloque para los datos
Ejemplo:
2 5
F1: Bloques 3, 10 y 12 ☺ Acceso aleatorio más sencillo
3 10
F2: Bloques 8, 9, 2 y 5 4 FREE ☺ El bloque descriptor de fichero sólo almacena la dirección del primer
F3: Bloque 6 5 EOF bloque de datos
Bloque 15 defectuoso 6 EOF Para buena eficiencia, la tabla debe estar en memoria
7 FREE
Referencia a primer bloque: en directorio 8 9
9 2
Nombre … 1er bloque 10 12
11 FREE
F1 … 3
12 EOF
F2 … 8 13 FREE
F3 …
14 FREE
6
15 BAD
…
…
… … …
4
5. Asignación por tablas de implantación Tabla Única
Tiempo de acceso independiente del bloque si el nº de bloque no es
Una tabla por archivo, con las direcciones de sus grande
bloques Nº máximo de bloques limitado por la tabla
Tabla única
Utiliza un array de direcciones
N
bloque 0
descriptor
0
1 bloque 1
2
3 .............
4
bloque N-1
Tabla enlazada Tabla enlazada
Si la tabla no se mantiene en memoria, hay que hacer varias lecturas
N para leer un bloque
bloque 0
descriptor
0 En ficheros grandes, tiempo de acceso no constante
1 bloque 1
.... .............
n1-1
bloque n1-1
bloque n1
0
1 bloque n1+1
.... .............
n2-1
bloque N-1 = n1 + n2 - 1
Tabla de varios niveles Unix - Tablas de nodes-i
bloque 0
Desde UNIX 4.1 BSD
Se asocia a cada archivo una pequeña tabla llamada nodo-i
La tabla contiene los atributos y direcciones en disco de los bloques del archivo
N
bloque 1 Primeras direcciones en disco se almacenan en el propio nodo-i.
descriptor
Archivos chicos toda la información esta contenida en el nodo-i, la cual se
0 traslada del disco a memoria principal al abrir el archivo
1 ............. Archivos más grandes, una direcciones del nodo-i es la dirección de un bloque en
el disco llamado bloque simplemente indirecto, (contiene direcciones en discos
2 adicionales)
3 Si el anterior no es suficiente otra dirección del nodo-i, el bloque doblemente
indirecto, contiene la dirección de un bloque que presenta una lista de los bloques
4
simplemente directo
............. Si esto no es todavía no es suficiente, se puede utilizar un bloque triplemente
indirecto
bloque N-1
5
6. Directorios
Sistemas Multinivel (UNIX) Objeto que relaciona de forma unívoca un nombre de
…
usuario de archivo con su descriptor interno
B0
Organizan y proporcionan información sobre la
…
B1
10 Bloques estructuración de los sistemas de archivos
…
N Bloques Una colección de nodos que contienen información
B9
acerca de los archivos
Indirec
to
…
Simple
Indirec
to
N2 Bloques
Doble
Indirec
…
…
to
Triple
…
…
…
…
N3 Bloques
Directorio de nivel jerárquico Directorio de nivel jerárquico
Dentro de cada directorio habrá archivos y/o directorios
Cada entrada en el directorio contiene un nombre de archivo o directorio spell bin programa
y:
• Atributos y direcciones de sus datos en disco, o stat mail dist find cout hex ord p mail
• Un puntero a una estructura de datos que contiene los
atributos y direcciones de los datos
Directorio de trabajo/actual
prog copy prt exp rdr list fnd
• Asignado al usuario cuando inicia una sesión
• Modificable a través de una llamada al sistema
lib obj spell
Directorio de nivel jerárquico Compartir archivos
manejador de archivos remotos
El uso de la redes permite accesar archivos entre varios sistemas,
usualmente el NFS (Network File System)
Nombres de camino: relativo y absoluto – Manualmente, via programas como FTP
Nombres de directorio especiales: ‘.’ y ‘..’ – Automaticamente, usando manejador de archivos distribuidos
– ☺ Usuario puede definir su estructura de – Semi automatico via el WEB
Modelo Cliente-servidor permite montar manejador de archivos remotos
directorios
– Servidor puede atender a multiples clientes
– ☺ Nombres de camino facilitan compartición de – NFS es el protocola estandar en UNIX
archivos – CIFS es el protocolo estandar en Windows
– Nombres de camino, en general, más largos – Llamadas a los archivos son traducidas a llamadas remotas
Distributed Information Systems (distributed naming services) tales como
LDAP, DNS, NIS, Active Directory son implementadas para unificar los
accesos remotos
6
7. Control acceso por Clase de Usuarios Windows XP Access-control List Management
Técnica que requiere menos espacio para controlar el
acceso de varios clases de usuario
Esquema de clasificación muy usado:
Propietario: usuario que creo el archivo
Usuario Especificado: el dueño especifica quien puede
usar el archivo
Grupo o proyecto: usuarios son miembros de un grupo que
trabaja sobre un proyecto dado. En este caso se da
permiso a distintos miembros del grupo para que accedan
ciertos archivos
Público: cualquier miembro de la comunidad de usuarios
del sistema pueda tener acceso a él
Respaldo y recuperación
- Medidas físicas para evitar el acceso no autorizado al cuarto de
Respaldos
computo periódicos
- Técnica más usada para garantizar disponibilidad es la de realizar
respaldos periódicos
- Crear un archivo de historia o bitácora de todas las transacciones
copiándolas en otro disco L M M J V S
- Redundancia costosa C1 C2 C3 C4 C5 C6 Cintas
- No hay forma de garantizar la seguridad absoluta de los archivos Históricas
- Respaldos periódicos: se puede reorganizar el sistema de archivos para C1 C2 C3 C4 C5 C7 Semanal
grabar en sitios contiguos los diversos bloques de archivos repartidos en
todos los discos C1 C2 C3 C4 C5 C8
C1 C2 C3 C4 C5 C9 Cinta
Histórica
Mensual
Respaldos incrementales Gestión del espacio en disco
Tamaño del bloque de datos
Lunes… Duracion: 45m. Martes… Duracion: 1m. – Tamaño medio de un fichero ≈ 2K
4 arch. – Bloque grande (32K): fragmentación interna
125 MB grande
– Bloque pequeño (128b)
− Archivo formado por muchos bloques
− Varios accesos al disco para leer/escribir un archivo
Jueves… Duracion: 51m. − Incremento del tamaño de las estructuras de datos
– Tamaño usual en torno a 2K.
6 arch.
142 MB
7