Está en la página 1de 32

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. (discos)
 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 una unidad de almacenamiento (normalmente un
disco duro ), 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).
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.
4
Interfaz del sistema de archivos

 Concepto de archivo/fichero
 Métodos de acceso
 Directorios
 Protección
5
Concepto de archivo
 Definiciones
 Un archivo es un almacén persistente (permanente) 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

 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)
6
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
7
Operaciones sobre archivos

 OPERACIONES TIPICAS:
 Creación / Destrucción
 Lectura / Escritura
 Situarse dentro del archivo (por posición o por clave)
 Cambiar atributos
8
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 ?
9
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
10
 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
11
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
12
Directorios
 Sistema de Archivos  Miles de archivos
 ¿Cómo los organizamos?
 Particiones/Minidiscos/Volúmenes
 Directorio de dispositivo, Tabla de Contenido del Volumen o
simplemente Directorio
13
Operaciones sobre directorios
 Buscar un archivo por nombre
 Crear archivos
 Borrar Archivos
 Renombrar archivos
 Listar el directorio
 Recorrer el sistema de ficheros
14
Organización de directorios
 Único nivel (espacio plano)
 Dos niveles
 Arbóreo
 Grafo acíclico (enlaces)
 Grafo general (enlaces sin restricciones)
15
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
16
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
17
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
18
Directorio con estructura de árbol
 Directorio de dos niveles  árbol de dos niveles
 Generalización  árbol de altura arbitraria
(subdirectorios)
19
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” (HOME)
 Política a seguir para la eliminación de directorios
 “Caminos de búsqueda ” (facilita el hecho de que
varios usuarios quieran compartir ficheros)
20
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
21
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 ?
22
Directorios en grafo cíclico
¿Cómo se puede evitar los
ciclos?
- Permitir solo enlaces a los
archivos no a los
directorios.
- Usar recolector de basura
- Cada vez que se adicione
un enlace probar detección
de ciclos para determinar
que todo esté bien.
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 el


Número Mágico o los valores que tiene el sistema como válido.
Tamaño de código Tamaño en bytes que mide el segmento de código
Encabezado (Header)

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 símbolos Tamaño en bytes que tiene la tabla de 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 son utilizados
Datos por este.

La tabla de símbolos es un elemento opcional que sirve al debug de un proceso. Contiene el listado
Tabla de Símbolos 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 ://

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 de: local/

share/
-Directorio Raíz: aquel que contiene al resto del sistema de archivos. En
linux es explicito (/), en windows está escondido detrás de las unidades home/
lógicas (\??\) jmakuc/

-Directorio de trabajo: directorio en el cual se esta ejecutando un cmolina/

proceso, como por ejemplo el interprete de comandos. Este se simboliza Las entradas X: se
denominan unidades y
con un punto (.). representan a
\??\ particiones de los
-Ruta absoluta: ubicación de un archivo o directorio indicando su discos
posición explicitando todos los directorios desde el directorio raíz al

Estilo Windows
elemento. Ej: /usr/local/nachos/code/build.linux/nachos.
C:\ D:\
-Ruta relativa: ubicación de un archivo o directorio indicando su
posición respecto al directorio de trabajo actual. Documents And Settings Videos

Ej: ../build.linux/nachos Temp mp3

Windows Películas
-Directorio Padre: aquel en el cual es contenido un directorio. Se
simboliza con punto doble (..).
Sistemas Operativos: Sistema de Archivos

Organización del Sist. Archivos - Implementación ://


En sistemas de archivos de discos, estos deben considerar la estructura básica:
particiones o volúmenes.
Disco entero

MBR Partición 1 Partición 2 Partición 3 Partición 4

Tabla de particiones

Partición: división lógica de una unidad de disco, también denominada volúmen en


sistemas Windows.

MBR: Master Boot Record o Registro Maestro de Arranque. Es leído y ejecutado por la
BIOS al encenderse el computador.

Tabla de Particiones: Contiene la información de donde comienza y termina cada


partición en el disco. Cada partición puede tener un sistema de archivos diferente.

Bloque de arranque: primer bloque de cada partición. Contiene la información de cómo


arrancar el Sistema Operativo contenido en ella. Al ejecutarse el MBR, este busca los
bloques de arranque para ejecutarlos. Si no existe S.O. en una partición, se deja el bloque
en blanco por provisión.
Sistemas Operativos: Sistema de Archivos

Organización del Sist. Archivos - Implementación ://

En sistemas de archivos de discos, estos deben considerar la estructura básica: particiones o volúmenes.
Disco entero

MBR Partición 1 Partición 2 Partición 3 Partición 4

Tabla de particiones

Cada partición debe contener la información de todos los archivos (y directorios si corresponde) que
alberga. Esta información es almacenada en sectores al inicio del volúmen, cuya estructura varía
considerablemente entre sistemas de archivos, aunque conceptualmente se puede graficar como
sigue.

Bloque de arranque Metadatos Archivos y Directorios

El sector de metadatos contiene la información respecto de donde y


Número Mágico que como están almacenados los archivos en la partición.
identifica sistema de
archivos que contiene la
partición
Sistemas Operativos: Sistema de Archivos

Organización del Sist. Archivos - Implementación ://


Físicamente se puede distinguir:

Caras: Un disco duro puede tener varios. Un diskette puede tener una o dos caras

Pistas: divisiones concéntricas del disco. Un disco removible de 3.5” tiene en formato simple 18 pistas.

Cilindro: Grupo de pistas de igual diámetro en los discos duros.

Sectores: unidad atómica en la que se divide un disco para acceder a él en múltiplos de esta. Ej: 512b

Bloques: agrupación de sectores que realiza el sistema operativo, denominado cluster en sistemas Windows. El acceso al disco
que realiza el S.O. se hace en esta unidad.
Sistemas de direccionamiento

 CHS (Cilindro-Head cabeza – Sector), con estos tres valores se


puede situar un dato en cualquier parte del disco. (Antiguo: hasta un
máximo de 8 Gb)

 LBA (Logical Block Addressing- direccionamiento lógico de


bloques), que consiste en dividir el disco entero en sectores y
asignar a cada uno un único número. Este es el que actualmente se
usa.
Numero de Sectores de un disco (CHS)
 El número total de sectores de un disco duro se puede calcular a través de esta
fórmula
nº sectores = nº caras * nº pistas/cara * nº sectores/pista

 Por ejemplo, un disco duro con las siguientes características: cilindros = 6.253,
cabezas = 16 y sectores = 63.
El número total de sectores será  6.253 * 16 * 63 = 6.303.024 sectores.
Si cada sector almacena 512 bytes de información, la capacidad máxima de
este disco duro será de 6.303.024 sectores * 512 bytes/sector = 3.227.148.228
bytes ~ 3 GB. 
Traducción de direcciones
 La dirección física de un sector está constituida por una terna (cilindro, cabeza, sector).
 El SO trata el disco como una tabla de bloques de disco unidimensional, donde cada
bloque es un sector.
 La traducción de un número de bloque en una dirección física depende de la numeración
del disco
 Empezar desde el cilindro exterior, superficie superior y un sector al azar marcándolo como (0, 0,
1)
 Completar los sectores de la pista actual hasta (0, 0, s)
 Pasar a la siguiente superficie (cabeza) con (0, 1, 0)
 Repetir para todas las pistas del cilindro hasta (0, p, s)
 Pasar al siguiente cilindro, superficie superior (1, 0, 1)
 Completar con los cilindros interiores (c, p, s)
Traducción de direcciones
 En un disco con P pistas (cabezas)/cilindro y S sectores/pista:
 Para calcular el número de bloque de una dirección física (i, j, k):

b = i*P*S + j*S + k
 Para obtener la dirección física de un bloque b:

i = int(b/PS) r = mod(b/PS)
j = int(r/S)
k = mod(r/S)

También podría gustarte