Вы находитесь на странице: 1из 34

Sistemas Operativos

Sistema de Archivos

Sistemas Operativos - Terico 2010 - Sistema de Archivos

Agenda
Interfaz.
Archivos.
Directorios.
Seguridad en archivos.
Implementacin.
Definiciones.
Sistema de archivos virtual.
Estructura de los directorios.
Mtodos de asignacin.
Administracin del espacio libre.
Ejemplo UNIX.

Sistemas Operativos - Terico 2010 - Sistema de Archivos

Archivos
Los dispositivos masivos (discos duros, cintas,
etc.) permiten guardar informacin de forma no
voltil.
El sistema operativo se abstrae de las propiedades
fsicas de los dispositivos para definir una unidad
lgica de almacenamiento: el archivo.
Los archivos son mapeados por el sistema a los
distintos dispositivos.

Un archivo es una agrupacin de informacin que es


guardada en algn dispositivo no voltil.
Desde la perspectiva del usuario, es la unidad
mnima de almacenamiento que el sistema le provee.
Sistemas Operativos - Terico 2010 - Sistema de Archivos

Archivos
Los archivos poseen atributos:
Nombre:
un
nombre
simblico
que
permite
identificar el archivo a los usuarios. Pueden
existir ms de un archivo con el mismo nombre en
un sistema de archivos jerrquico (directorios).
Identificador: smbolo que lo identifica de
forma nica a nivel global del sistema de
archivos. Usualmente es un nmero.
Tipo: programa ejecutable, archivo de datos,
etc.
Ubicacin: Puntero al dispositivo y lugar donde
reside el archivo.
Tamao: El tamao actual del proceso (en bytes,
palabras o bloques).

Sistemas Operativos - Terico 2010 - Sistema de Archivos

Archivos
Los archivos poseen atributos:
Proteccin: informacin de control para el
acceso al archivo. Ej.: usuarios que pueden
acceder, en que forma, etc.
Informacin de conteo: fecha de creacin, ltimo
acceso, etc.

Sistemas Operativos - Terico 2010 - Sistema de Archivos

Operaciones sobre los archivos


El sistema operativo brinda
manipulacin de archivos:

servicios

para

la

Crear y abrir: provee la creacin de un archivo


en el sistema de archivos. Se debe proveer un
nombre del nuevo archivo. Adems, se provee la
apertura de una archivo ya existente para
acceder o modificar la informacin.
Escribir: poder escribir informacin en un
archivo previamente abierto.
Leer: poder leer informacin en un archivo
previamente abierto.
Reposicionar dentro de un archivo: lograr
acceder a cualquier parte del archivo.

Sistemas Operativos - Terico 2010 - Sistema de Archivos

Operaciones sobre los archivos

Eliminar: destruir el archivo a nivel del


sistema de archivo.
Truncar: eliminar la informacin que est dentro
del archivo, pero sin eliminar el archivo.

Por lo general, los sistemas tienen una tabla de


archivos abierto por proceso. Estos archivos se abren
a travs de un llamado al sistema y, de esa forma, se
puede operar con ellos (leer, escribir, etc.).
Finalmente, el archivo es cerrado antes que finalice
la ejecucin del proceso.
Tener un archivo abierto para el sistema implica
mantener una estructura que tenga por lo menos:
puntero de archivo (file pointer).
Sistemas Operativos - Terico 2010 - Sistema de Archivos

Operaciones sobre los archivos


Tener un archivo abierto para el sistema implica
mantener una estructura que tenga por lo menos:
puntero de archivo (file pointer) para operaciones de
lectura y escritura, contador de archivos abiertos,
ubicacin del archivo en el dispositivo, derechos de
acceso.
Algunos sistemas proveen sistema de acceso nico a
un archivo (lock) por parte de los procesos.
A su vez, varios sistemas implementan el mapeo de
archivos al espacio de usuario del proceso. De esta
forma, no es necesario realizar read y write para
operar sobre el archivo, sino accederlo directamente.
Esto trae el beneficio de no hacer el llamado a
sistema para operar sobre el archivo.

Sistemas Operativos - Terico 2010 - Sistema de Archivos

Mtodos de acceso
Existen varios mtodos de acceso a los archivos:
Secuencial: La informacin es accedida en orden,
registro a registro. El registro depende del
tipo de archivo (texto plano sera byte). Las
operaciones
de
lectura
accedern
a
la
informacin en forma secuencial e incrementando
el puntero de archivo file pointer. El acceso
secuencial es basado en el modelo de cinta
(tape), en donde los archivos son accedidos de a
uno a la vez y en forma secuencial.
Directo: La informacin es accedida en cualquier
orden. No existe restricciones sobre el orden de
escritura y lectura de un archivo. Es basado en
el modelo de disco de un archivo, que est
estructurado en bloques.

Sistemas Operativos - Terico 2010 - Sistema de Archivos

Mtodos de acceso
Mtodo secuencial

Sistemas Operativos - Terico 2010 - Sistema de Archivos

Directorios
El
sistema
de
archivos
es
por
lo
general
estructurado en directorios que contienen archivos.
Los directorios permiten a los usuarios del sistema
tener una organizacin lgica del sistema de archivo.

Sistemas Operativos - Terico 2010 - Sistema de Archivos

Operaciones sobre directorios


Bsqueda: es necesario poder buscar un archivo
en un directorio
Crear un archivo: archivos nuevos deben ser
creados e incorporados al directorio.
Eliminar: borrar un archivo del directorio.
Listar: visualizar los archivos que estn en un
directorio.
Renombrar un archivo: cambiar el nombre de un
archivo dentro del directorio.
Permitir la navegacin: lograr acceder a todos
los directorios del sistema de archivos.

Sistemas Operativos - Terico 2010 - Sistema de Archivos

Estructura de directorios Nivel nico


El esquema ms sencillo es tener un nico nivel de
directorios en el sistema de archivos.

A medida que el sistema crece trae limitaciones.


Por ejemplo, no permite archivos con el mismo nombre
en un mismo directorio.

Sistemas Operativos - Terico 2010 - Sistema de Archivos

Estructura de directorios - rbol


Es ideal permitir varios niveles de directorios.
Esto se logra permitiendo tener archivos de tipo
directorio dentro de los directorios.
Se
genera
una
estructura
jerrquica
de
directorios
en
forma de rbol.
Se denomina ruta
(path) absoluta de
un
archivo,
al
camino
desde
la
raz
hasta
el
archivo.
Sistemas Operativos - Terico 2010 - Sistema de Archivos

Estructura de directorios - Grafo


Para potenciar la estructura anterior de rbol
sera deseable tener caminos de acceso directo a
otros directorios.
Estos caminos se
logran a travs de
archivos de tipo
enlace simblicos
(soft links). A su
vez, se permite que
un archivo est en
Ms de un directorio
(hard link).

Sistemas Operativos - Terico 2010 - Sistema de Archivos

Montaje de directorios
Dada la estructura de grafo, los sistemas de
archivos se pueden solapar en un nico sistema de
archivos.

Sistemas Operativos - Terico 2010 - Sistema de Archivos

Seguridad en archivos
Debido a que el sistema es multiusuario es
necesario proteger la informacin de cada usuario.
En muchos casos los usuarios se agrupan segn el
uso que tienen sobre un sistema.

Se definen permisos sobre los


nivel de usuario como de grupo.

archivos

tanto

Los permisos ms comunes son de escritura, lectura,


ejecucin, eliminar, listar.

Sistemas Operativos - Terico 2010 - Sistema de Archivos

Implementacin
El diseo de un sistema de archivo enfrenta dos
problema:
Como se ver para el usuario. Implica definir
los atributos, las operaciones vlidas sobre los
archivos y la estructura de directorios para la
organizacin de los archivos.
La creacin de algoritmos y estructura de datos
para hacer corresponder el sistemas de archivos
lgico con los dispositivos fsicos de datos.

El sistema de archivos est compuesto de


varias capas. Cada una de las cuales utiliza
la funcionalidad de la capa inferior.

Sistemas Operativos - Terico 2010 - Sistema de Archivos

Implementacin
Los dispositivos fsicos
siguiente estructura:

(discos)

contienen

la

Bloque de control para el boot (boot control


block): es necesario para lograr iniciar el
sistema operativo.
Bloque de control de particin (partition
control block): contiene la informacin de las
particiones que existen
el disco, bloques
utilizados y libres, cantidad de archivos, etc.
Estructura de directorios: para la organizacin
de los archivos.
Bloque de control del archivo (File Control
Block): los bloques de control de los archivos
que estn en el sistema de archivos.

Sistemas Operativos - Terico 2010 - Sistema de Archivos

Implementacin
El sistema operativo
siguientes estructuras:

en

memoria

mantiene

las

La tabla de particin con los sistema de


archivos cargados.
La estructura de directorio de los accedidos
ltimamente.
Tabla de descriptores de archivos abiertos a
nivel global del sistema.
Tabla de descriptores de archivos abiertos por
proceso del sistema.

Sistemas Operativos - Terico 2010 - Sistema de Archivos

Implementacin
Por cada archivo en el sistema se tendr un bloque
de control (File Control Block).
El bloque de control contiene varios atributos de
conteo, permisos y donde estn los datos del mismo:

Permisos del archivo.


Fechas (creacin, acceso, modificacin).
Propietario, grupo propietario, lista de acceso.
Tamao del archivo.
Bloques de datos del archivo.

Sistemas Operativos - Terico 2010 - Sistema de Archivos

Sistema de archivos virtual


Es comn que un sistema operativo se acceda a ms
de una implementacin de sistema de archivos (ufs,
ext2, ext3, jfs, jfs2, ntfs, etc.).
Se utilizan tcnicas de orientacin a objetos para
lograr mantener una estructura independiente del
sistema de archivos que se utilice.
Se genera una estructura en tres capas:
Interfaz del sistema de archivo (open, read,
etc.).
Sistema de archivos
virtual (Virtual
File
Server).
Implementacin
especifica
del
sistema
de
archivo.
Sistemas Operativos - Terico 2010 - Sistema de Archivos

Sistema de archivos virtual

Sistemas Operativos - Terico 2010 - Sistema de Archivos

Sistema de archivos virtual


El sistema de archivos virtual
funcionalidades importantes:

provee

de

dos

Propone una interfaz genrica de sistema de


archivo que es independiente del tipo de sistema
de archivo. De esta forma, se logra un acceso
transparente al sistema de archivos.
Propone un bloque de control de archivo virtual
que puede representar tanto archivos locales
como remotos.

Sistemas Operativos - Terico 2010 - Sistema de Archivos

Estructura de los directorios


Los directorios contienen la informacin de los
archivos que pertenecen a l. Para organizar la
informacin existen varias alternativas:
Lista encadenada: los nombres de los
un puntero al bloque de control son
en una lista encadenada. En la
insercin, borrado es necesario
lineal. Es usual el uso de caches
principal para acelerar el acceso.

archivos y
dispuestos
bsqueda,
un acceso
en memoria

Tabla de hash abierto: con el nombre del archivo


se genera la clave utilizada.

Sistemas Operativos - Terico 2010 - Sistema de Archivos

Mtodos de asignacin
Para la disposicin de los datos de los archivos en
disco se tienen, en general, tres mtodos:
Asignacin contigua (Contiguous Allocation): Los
datos son dispuestos en forma contigua. Para
mantener la informacin es necesario saber en
que bloque comienza y la cantidad de bloques que
tiene el archivo.
Asignacin
en
forma
de
lista
(Linked
Allocation): Los bloques de datos forman una
lista encadenada. Es necesario una referencia al
primer y ltimo bloque de datos en el bloque de
control de archivo.
Asignacin indexada (Indexed Allocation): Se
mantiene una tabla en donde cada entrada
referencia a un bloque de datos.

Sistemas Operativos - Terico 2010 - Sistema de Archivos

Asignacin contigua
(Contiguous Allocation)
Sufre de
fragmentacin externa.

Es necesario reubicar
continuamente los
archivos si crecen en
tamao.
Se utilizan tcnicas
de asignacin de tamaos
ms grandes para prever
el crecimiento futuro de
los archivos.

Sistemas Operativos - Terico 2010 - Sistema de Archivos

Asignacin en forma de lista


(Linked Allocation)
Soluciona el problema de
la fragmentacin.

El acceso a los bloques


es lineal.
Los
punteros
ocupan
espacio en los bloques.
La
perdida
de
una
referencia
genera
la
perdida de gran parte de
informacin del archivo.

Sistemas Operativos - Terico 2010 - Sistema de Archivos

Asignacin en forma de lista


(Linked Allocation)
Ej.: FAT
Al comienzo de cada
particin
existe
una
tabla de asignacin de
archivos
(File
Allocation Table), que
contiene la lista de
bloques.
La tabla tiene una
entrada por cada bloque
de disco, y es indexada
por
el
nmero
de
bloque.

Sistemas Operativos - Terico 2010 - Sistema de Archivos

Asignacin indexada
(Indexed Allocation)
Los
bloques
son
accedidos directamente a
travs
del
bloque
de
indexacin (index block).
El bloque de indexacin
ocupa lugar. Se trata de
que sea lo ms pequeo
posible, pero limita la
cantidad de bloques.
Una posible alternativa
es indexacin en varios
niveles. Algunos ndices
hacen
referencia
a
bloques directos y otros
a bloques de indexacin.

Sistemas Operativos - Terico 2010 - Sistema de Archivos

Asignacin indexada
(Indexed Allocation)
En UNIX los bloques de
control
de
archivos
tienen
bloques
de
indexacin directa, de
uno, dos y hasta de tres
niveles de indexacin.
Esto
permite
representar archivos muy
grandes.

Sistemas Operativos - Terico 2010 - Sistema de Archivos

Administracin del espacio libre


En el sistema de archivos es necesario mantener que
bloques estn ocupados y cuales estn libres.
Alternativas posibles para la administracin de los
bloques:
Vector de bits (Bit Vector, Bit Map): se dispone
de un bit para cada bloque de datos del sistema,
que representa si est ocupado o libre.
Lista de bloques libres (Linked list): Se
mantiene una lista encadenada con los bloques
libres a travs de los bloques. Es necesario una
referencia al primer bloque.
Agrupacin (Grouping): es una variacin de la
lista encadenada. En cada bloque de la lista se
contiene un grupo de bloques libres.
Conteo (Counting): se mantiene una lista en
donde cada bloque contiene informacin
de
cuantos bloques contiguos, a partir de l, estn
libres.
Sistemas Operativos - Terico 2010 - Sistema de Archivos

Ejemplo UNIX
Cada particin contiene un bloque descriptor del
sistema de archivo llamado super-block.
El super-block contiene:
Nombre del volmen.
Cantidad mxima de archivos (inodos). Cantidad
de archivos utilizados y libres.
Cantidad de bloques de datos, cantidad de
bloques utilizados y libres.
Referencia a comienzo de bloques de datos, de
indexacin y de vector de bits.
Informacin de conteo.
Etc.

Sistemas Operativos - Terico 2010 - Sistema de Archivos

Ejemplo UNIX
La administracin del espacio libre se realiza a
travs de mapa de bits (bit vector).
Se disponen
varios bloques al comienzo de la particin.
El bloque de control de archivo es a la estructura
inode. Los inodos son identificados por un nmero, que
es nico a nivel del sistema de archivos. Los inodos
poseen un tipo: archivo comn, directorio, enlace
simblico,
pipes,
socket.
Utiliza
un
mtodo
de
asignacin por indexacin.
Los directorios son representados como un archivo
(inodo), en donde los datos son entradas que tienen los
nombres
de
los
archivos
y
el
nmero
de
inodo
correspondiente.

Si es un soft link, se tiene la ruta (path) del


archivo al cual referencian. Los hard links son
tratados en forma natural, ya que la pertenencia de un
archivo a un directorio est en los datos del
directorio y se referencia al nmero de inodo.
Sistemas Operativos - Terico 2010 - Sistema de Archivos

Вам также может понравиться