Gestion de Archivos
Tema V – Parte 1
Sistemas Operativos I
Sistema de archivos
El sistema de archivos o sistema de ficheros (en inglés: "filesystem") es el
componente del sistema operativo encargado de administrar y facilitar el
uso de las memorias periféricas, ya sean secundarias o terciarias.
Sus principales funciones son la asignación de espacio a los archivos, la
administración del espacio libre y del acceso a los datos resguardados.
Estructuran la información guardada en un dispositivo de
almacenamiento de datos o unidad de almacenamiento (normalmente
un disco duro de una computadora), que luego será representada ya sea
textual o gráficamente utilizando un gestor de archivos.
La mayoría de los sistemas operativos manejan su propio sistema de
archivos.
Los sistemas de archivos tradicionales proveen métodos para crear, mover,
renombrar y eliminar tanto archivos como directorios, pero carecen de
métodos para crear, por ejemplo, enlaces adicionales a un directorio o
archivo (enlace duro en Unix) o renombrar enlaces padres (".." en Unix).
El acceso seguro a sistemas de archivos básicos puede estar basado en
los esquemas de lista de control de acceso (access control list, ACL) o
capacidades.
Las ACL hace décadas que demostraron ser inseguras, por lo que los
sistemas operativos experimentales utilizan el acceso por capacidades.
Los sistemas operativos comerciales todavía funcionan con listas de
control de acceso.
Visión del
usuario
Visión lógica:
Archivos
Directorios
Sistemas de archivos y particiones
Visión física:
Bloques o bytes ubicados en dispositivos
Sistemas
operativos: una
visión aplicada
4
© J. Carretero, F.
García, P. de
Miguel, F. Pérez
Función
principal
El SF establece una correspondencia entre los archivos y los dispositivos
lógicos.
Sistemas
operativos: una
visión aplicada
5
© J. Carretero, F.
García, P. de
Miguel, F. Pérez
Características para el
usuario
Almacenamiento permanente de información. No desaparecen aunque
se apague el computador.
Conjunto de información estructurada de forma lógica según criterios de
aplicación.
Nombres lógicos y estructurados.
No están ligados al ciclo de vida de una aplicación particular.
Abstraen los dispositivos de almacenamiento físico.
Se acceden a través de llamadas al sistema operativo o de bibliotecas de
utilidades.
Sistemas
operativos: una
visión aplicada
6
© J. Carretero, F.
García, P. de
Miguel, F. Pérez
7
Interfaz del sistema de archivos
Concepto de archivo/fichero
Métodos de acceso
Directorios
Protección
8
Necesidad de gestionar el
almacenamiento no volátil
Característica fundamental del medio de
almacenamiento: NO VOLATILIDAD
Variedad de medios donde almacenar
información: discos magnéticos, cintas
magnéticas, discos ópticos, etc...
Ventaja
Permite elegir el medio más adecuado en función de las
necesidades particulares: cantidad de información a
almacenar, velocidad de acceso, fiabilidad, etc...
Desventaja
Requiere conocer las particularidades de cada medio
9
Concepto de archivo
Definiciones
Un almacén persistente de información accesible
mediante un nombre
Es una abstracción cómoda del almacenamiento
secundario (tipo abstracto de datos):
Oculta la realidad física del almacenamiento (cintas,
discos, etc...)
Sirve para organizar la información como lo hacemos las
personas
10
Concepto de archivo
En general un archivo es una secuencia de bits cuyo significado el
creador y usuario define
SISTEMA DE ARCHIVOS: conjunto de módulos del SO que se encargan de
la gestión de la información (archivos)
11
Atributos de archivo
Aparte de su contenido, todo archivo tiene atributos
que lo describen:
Nombre (cadena de caracteres)
Tipo de archivo (necesario en sistemas que reconocen distintos
tipos)
Ubicación en el dispositivo
Tamaño
Información de protección
Fechas, horas e identificación del usuario
12
Directorios
Los atributos de los archivos deben guardarse en
alguna estructura: DIRECTORIO O TABLA DE
CONTENIDOS
Los directorios al igual que los archivos deben ser no
volátiles se almacenan en disco
Deben traerse a memoria cuando se necesitan
13
Operaciones sobre archivos
ARCHIVO: TAD = ATRIBUTOS + OPERACIONES
OPERACIONES TIPICAS:
Creación / Destrucción
Lectura / Escritura
Situarse dentro del archivo (por posición o por clave)
Cambiar atributos
14
Operaciones sobre archivos
La mayor parte de las operaciones implican buscar la
entrada en el directorio asociada al archivo
Mejora: operaciones para abrir y cerrar archivos
Tabla de archivos abiertos
Indice, puntero o descriptor de fichero
Operación apertura de un fichero
Entorno multiusuario ?
15
Tipos y estructuras de archivos
La información guardada puede ser de
muchos tipos
Técnica común para implementar los tipos de
archivos es incluir el tipo como parte del
nombre del archivo (extensión)
Según el tipo de archivo estructura
interna
Todos los S.O. deben reconocer al menos
una estructura : la de un ARCHIVO
EJECUTABLE
Métodos de acceso
16
Algunos SO ofrecen un solo método de acceso mientras que
otros ofrecen diferentes métodos de acceso
ACCESO SECUENCIAL
Se basa en un modelo de archivo de cinta
ACCESO DIRECTO o RELATIVO
Se basa en el modelo de archivo de disco
ACCESO INDEXADO
Requiere de estructuras adicionales: tablas de indices
17
Directorios
■ Sistema de Archivos Miles de archivos
■ ¿Cómo los organizamos?
■ Particiones/Minidiscos/Volúmenes
■ Directorio de dispositivo ,Tabla de Contenido del Volumen o
simplementeDirectorio
18
Operaciones sobre directorios
■ Buscar un archivo por nombre
■ Crear archivos
■ Borrar Archivos
■ Renombrar archivos
■ Listar el directorio
■ Recorrer el sistema de ficheros
19
Organización de directorios
■ Único nivel (espacio plano)
■ Dos niveles
■ Arbóreo
■ Grafo acíclico (enlaces)
■ Grafo general (enlaces sin restricciones)
20
Directorio de nivel único
■ Estructura de directorio más sencilla: todos los archivos
se guardan en el mismo directorio
■ Problemas:
■ Conflictos de nombres (al aumentar el numero de ficheros)
■ Mala organización en sistemas multiusuario
■ El tiempo de búsqueda tiende a aumentar
21
Directorio de dos niveles
■ Desventaja principal de la estructura de nivel único
confusión de nombres entre diferentes usuarios
■ Solución natural un directorio por usuario
22
Directorio de dos niveles
■ Se resuelve el problema de conflictos de nombres
(entre diferentes usuarios)
■ Problema: compartir información (algunos sistemas
impiden el acceso a los directorios de otros usuarios)
■ Aparece el concepto de ruta (path )
■ Archivos de sistema usuario especial
23
Directorio con estructura de árbol
■ Directorio de dos niveles árbol de dos niveles
■ Generalización árbol de altura arbitraria
(subdirectorios)
24
Directorio con estructura de árbol
■ Se reducen al mínimo los conflictos de nombres
■ Directorio archivo que se trata de manera especial
■ Los nombres de los archivos son rutas sobre el árbol
de directorios:rutas absolutas o relativas
■ Aparece el concepto de “directorio de trabajo ”
■ Política a seguir para la eliminación de directorios
■ C
“ aminos de búsqueda ” (facilita el hecho de que
varios usuarios quieran compartir ficheros)
25
Directorios en grafo acíclico
■ La estructura de árbol dificulta compartir archivos o
directorios
■ Se puede generalizar el esquema de directorio con
estructura de árbol permitiendo a los directorios tener
subdirectorios y archivos compartidos, sin ciclos
26
Directorios en grafo acíclico
■ ¿Cómo se puede implementar?
■ Duplicar la información (complica la consistencia)
■ Nueva entrada de directorio: ENLACE o LINK (es un puntero a
otro archivo o directorio)
■ Estructura de directorios de grafo acíclico es más
flexible que un árbol sencillo pero más compleja
■ Un mismo archivo podría tener diferentes nombres de camino
absoluto -> Copias de seguridad dobles???
■ Eliminación ¿ Cuándo puede liberarse o reutilizarse el
espacio asignado a un archivo compartido ?
27
Directorios en grafo acíclico
28
Organización de directorios: resumen
Directorio doble nivel ■ Caso particular
Usuarios pueden crear ■ Directorio grafo acíclico
subdirectorios
■ Requieren el uso de
Directorio estructura árbol algoritmos que detecten
Links ciclos en grafos (problema:
costoso en tiempo)
Directorio estructura grafo general
■ Problemas
■ Evitar búsquedas repetidas
■ Liberación de espacio al eliminar
un archivo
■ Recolector de basuras (“Garbage
Colection”)
■ Consume mucho tiempo y por
ello pocas veces se intenta
Sistemas Operativos: Sistema de Archivos
Ejecutables - Archivos ://
La estructura de los archivos ejecutables varia dependiendo del sistema en el que sea
compilado y linkeado el programa.
Una estructura ejemplo de un archivo ejecutable puede ser:
El número mágico permite al S.O determinar si el ejecutable es válido, comparándolo con
Número Mágico el o los valores que tiene el sistema como válido. En NachOS por ejemplo es el binario
0xbadfad.
Encabezado (Header)
Tamaño de código Tamaño en bytes que mide el segmento de código
Tamaño de datos Tamaño en bytes que mide el segmento de datos embedidos en el ejecutable
Tamaño de BSS Tamaño en bytes que mide el segmento de variables no inicializadas (Ej: int a[1000] )
Tamaño de tabla de Tamaño en bytes que tiene la tabla de símbolos
símbolos
Punto de ingreso Posición del Program Counter al inicio (punto de inicio del programa)
Segmento de código. Contiene las instrucciones que son ejecutadas por la CPU.
Código
Segmento de datos. Contiene datos que están embedidos en el archivo ejecutable que
Datos son utilizados por este.
La tabla de símbolos es un elemento opcional que sirve al debug de un proceso.
Tabla de Símbolos Contiene el listado de identificadores del programa (variables, procesos), los cuales
permiten depurar un programa en ejecución.
Sistemas Operativos: Sistema de Archivos
Atributos - Archivos ://
Los sistemas de archivos guardan, además del nombre del archivo y sus datos,
información como fecha, hora, usuario, permisos, etc; los cuales se denominan
atributos.
Algunos de los atributos que puede guardar un sistema de archivos son:
Protección Permisos que el dueño del archivo establece sobre el archivo.
En linux los permisos básicos se establecen en la terna XXX para el usuario,
grupo y otros respectivamente con los valores {0: nada, 1: ejecución,
2: escritura, 4: lectura} que se suman para combinar permisos.
Password Clave de protección del archivo
Dueño Usuario del sistema dueño del archivo
Oculto Bit que indica si el archivo figura en la lista normal de archivos.
Temporal Bit que indica si eliminar el archivo al terminar el proceso que lo creo.
Indicadores de Bloqueo Permiten establecer protecciones sobre parte o todo el archivo para que
modificaciones concurrentes de varios procesos se hagan de forma
adecuada.
Longitud del registro En archivos con registros, indica el largo de cada registro
Tamaño actual Tamaño actual del archivo en bytes.
Sistemas Operativos: Sistema de Archivos
Directorios ://
De manera de poder organizar los archivos,
muchos sistemas de archivos tienen /
directorios o carpetas; los cuales también
pueden ser archivos. usr
/
Estilo Unix
De su utilización se derivan los conceptos local/
de: share/
home/
- Directorio Raíz: aquel que contiene al resto del sistema
de archivos. En linux es explicito (/), en windows está jmakuc/
escondido detrás de las unidades lógicas (\??\)
cmolina/
- Directorio de trabajo: directorio en el cual se esta Las entradas X: se
ejecutando un proceso, como por ejemplo el interprete denominan
de comandos. Este se simboliza con un punto (.). unidades y
\??\ representan a
- Ruta absoluta: ubicación de un archivo o directorio particiones de los
discos
indicando su posición explicitando todos los directorios
Estilo Windows
desde el directorio raíz al elemento. Ej: /usr/local/
nachos/code/build.linux/nachos. C:\ D:\
- Ruta relativa: ubicación de un archivo o directorio Documents And Settings Videos
indicando su posición respecto al directorio de trabajo
actual. Temp mp3
Ej: ../build.linux/nachos
Windows Películas
- Directorio Padre: aquel en el cual es contenido un
directorio. Se simboliza con punto doble (..).