Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
pueda trabajar con eficiencia debe existir una forma homognea de tratar sus
contenidos. El SO hace una abstraccin de los elementos fsicos que se
relacionan con cada uno de los equipos de almacenamiento y trata a los datos
como una unidad lgica que recibe el nombre de archivo. El SO mapea los
archivos sobre equipos fsicos, lo cuales regularmente son medios de
almacenamiento de informacin en forma permanente (no voltil como es la
memoria).
Archivo
Un archivo es un conjunto de datos relacionados y almacenados sobre algn
soporte secundario de almacenamiento que responde a un nombre. El nombre
se usa para hacer operaciones sobre el archivo, las cuales pueden ser:
borrarlo, copiarlo, moverlo, renombrarlo, leerlo, etc.
El conjunto de datos que conforma el archivo puede tener un formato rgido o
no tener formato alguno y en general puede ser una secuencia de bits, bytes,
lneas o registros.
Tpicamente los archivos contienen programa (fuente, objeto o en algn cdigo
intermedio) y datos (numricos, alfabticos, alfanumricos, binarios).
La informacin contenida en un archivo la define su creador, por ejemplo: fotos,
imgenes, programas, etc.
Atributos y operaciones
Los nombres de los archivos deben tener un significado para el usuario que los
crea o usa (no es obligatorio, pero s recomendable), por ejemplo ya se conoce
que los archivos que contienen programas hechos con el lenguaje C deben
finalizar con .c (el compilador cc y gcc lo exige).
El nombre del archivo es una cadena de caracteres alfanumricos y su longitud
mxima difiere de un SO a otro, as como la distincin entre letras minsculas y
maysculas (por ejemplo, Unix las distingue y Windows no).
Asociado a todo archivo existe un conjunto de atributos que puede variar de un
SO a otro (aunque algunos son invariantes), entre esos atributos cabe
mencionar los siguientes: el nombre, el tipo, la localizacin, el tamao, etc.
Por otra parte, sobre los archivos se realizan operaciones, la mayora de ellas
son muy conocidas por cualquier persona hoy en da, cabe citar las siguientes:
copiar, leer, borrar, mover, etc.
Para hacer las operaciones sobre un archivo especfico es necesario acceder a
cierta informacin que est contenida dentro de una estructura de datos que
indexa los archivos para poder localizarlos y que recibe el nombre de
directorio. El SO mantiene una Tabla de Archivos Abiertos que permite
conocer, entre otras cosas, cul es la prxima entrada del archivo que se leer
en acceso secuencial, quin o quines pueden hacer esa operacin, etc. La
figura 11.1 muestra algunos de los atributos de los archivos que se obtuvieron
con la ejecucin del comando ls al (listar todos los archivos en formato largo)
en un sistema operativo de la familia UNIX, algunos de los atributos (como la
referencia al i-nodo) permanecen ocultos al usuario.
La capa entrada salida lgica habilita, para los usuarios y aplicaciones, una
forma de acceder a la informacin almacenada sobre los perifricos, a este
nivel se trabaja con archivos y no con bloques como lo hace la capa de entrada
salida fsica.
Estructura de directorio
Todo sistema de archivo posee, como parte de su organizacin, una estructura
de datos denominada tabla de directorio que sirve para localizar los archivos.
La tabla de directorio contiene los datos que permiten manipular y referenciar
los archivos. El acceso a esas tablas se hace siempre a travs de llamadas al
sistema.
La figura 11.3 presenta una tabla de directorio tpica de un SO hipottico, como
se puede apreciar en esta estructura de datos estn presentes diversos
campos para especificar datos acerca de los archivos referidos desde esa
tabla. Algunos sistemas de archivos no poseen mucha informacin en el
directorio, se pueden tener dos extremos, en uno el directorio solo contiene un
nombre y un puntero a otra estructura que complementa la informacin (como
en UNIX) y en el otro extremo el directorio contiene toda la informacin relativa
al archivo, incluso su localizacin completa (el ya obsoleto CP/M).
Nombre
Tipo
Direccin
de inicio
Fecha
Hora
Tamao
Propietario
Desde el punto de vista de los usuarios y las aplicaciones existen dos formas
de acceder a la informacin contenida en una estructura como la mostrada en
las figuras 11.4
Figura 11.6. Camino relativo hasta los directorios work y play a partir de carol
Bloque
Un bloque es la unidad mnima de asignacin de espacio en disco. Lo cual
quiere decir que siempre que se pida un cierto espacio en disco, el sistema de
archivo proporciona una cantidad que, por lo regular, es mayor que la pedida.
El problema de asignar el espacio por bloque viene dado por el hecho de que
sera muy poco prctico que cada byte del sistema de archivo fuera accedido
de forma individual ya que se gastara mas espacio para controlarlo que para
guardar informacin til.
Esta forma de asignar espacio hace que se pierdan algunos bytes, a veces
todos menos uno, en el ltimo bloque del archivo. Este fenmeno se conoce
como fragmentacin interna y no tiene solucin. Una forma de apreciar el
problema es usando el comando dir en el ambiente de comandos del SO
Windows, cuando se ejecuta ese comando sobre un directorio especfico se
puede notar que el espacio ocupado por los archivos y su tamao real difieren.
Asignacin de espacio
Existen diferentes mtodos y formas para asignar el espacio sobre un soporte
de almacenamiento externo, para considerar estas formas se deben tomar en
cuenta los criterios siguientes:
1. Cuando se cree un nuevo archivo, se le asignar todo el espacio que
necesita?
2. Qu tamao debe tener un bloque?
A la primera pregunta, se puede responder que s y hacer una estrategia de
preasignacin. Si se usa esa forma de trabajo se exige que se conozca el
tamao del archivo en el momento de su creacin, lo cual resulta difcil e
incluso imposible en muchos casos y tambin trae por consecuencia que los
usuarios sobreestimen las necesidades y pidan un espacio que en realidad no
se necesitar. Del anlisis anterior queda claro que lo mejor es hacer una
asignacin dinmica.
Para responder la segunda pregunta debe analizarse que un tamao de bloque
muy pequeo conduce a tener una tabla enorme para controlar los bloques y
uno muy grande gasta mucho espacio ya que el ltimo bloque del archivo
puede quedar prcticamente vaco. De lo anterior se infiere que hay que tomar
una posicin intermedia de compromiso.
Forma de asignar espacio
Asignacin contigua
Este tipo de estrategia, asigna un conjunto de bloques contiguos en el
momento de la creacin del archivo, tal y como se aprecia en la figura 11.7. Es
una estrategia de preasignacin con bloques de memoria de longitud variable.
Obsrvese que: el archivo file1 comienza en el bloque 1 mientras el archivo
file2 comienza en el bloque 4. En ambos casos solo se necesita conocer el
bloque de inicio y la cantidad de bloques que ocupa cada archivo.
Ventajas
Este tipo de asignacin tiene las siguientes ventajas:
1. Permite el acceso directo a los datos, para lo cual solo se necesita la
direccin de inicio del archivo (est contenida en la tabla de directorio) y
el desplazamiento a partir de esa direccin.
2. El acceso es ms rpido debido a que se efectan menos movimientos
mecnicos para acceder a los datos (estn unos a continuacin de
otros).
3. Existe ms seguridad de recuperacin de datos perdidos.
Desventajas
1. Un archivo solo puede crecer hasta el inicio de su vecino, ya que
cualquier otro hueco que est libre no estar contiguo a l. Este
Nombre
Bloque de
inicio
1
4
file1
File2
Longitud
3
2
10
11
12
13
14
Debe observarse que la estrategia del mejor acceso tiende a dejar la memoria
fragmentada en pequeos espacios que, muchas veces, no son tiles a
ninguna demanda, de forma que el mejor acceso puede resultar la peor
solucin.
Por otra parte, la estrategia el peor acceso deja huecos mayores que, en
general, tendrn mayor probabilidad de ser tiles.
Con relacin al primer acceso es totalmente impredecible el resultado ya que
depender del orden en que estn los espacios libres.
Asignacin enlazada.
La asignacin enlazada, trata de resolver los problemas del mtodo anterior.
En este esquema cada bloque contiene un puntero al prximo bloque y los
bloques pueden estar en cualquier parte del equipo de almacenamiento,
observe la figura 11.8.
Nombre
Bloque de
inicio
2
Archivo1
Longitud
5
10
11
12
13
14
Nombre
Archivo1
Bloque de
inicio
4
Longitud
6
10
11
12
13
14
1
5
0
9
10
14
10
11
12
13
15
MFT
En el sistema de archivo NTFS cada componente es un archivo, lo que incluye
hasta la informacin del sistema. El archivo ms importante es el MFT (Master
File Table) que est situado en el rea MFT y es un directorio centralizado que
contiene informacin de todos los archivos del disco incluyndolo a l mismo.
MFT se divide en registros de longitud fija (usualmente un 1 KByte) y cada
registro corresponde a algn archivo.
Los primeros 16 archivos son de contabilidad y son inaccesibles para el SO, se
denominan metafiles y el primer metafile es el MTF en s. Estos primeros 16
elementos de MFT constituyen la nica parte del disco que tiene una posicin
fija. Resulta interesante notar que existe una segunda copia de los tres
primeros registros que estn almacenados exactamente en la mitad del disco,
el resto de los MFT-file se pueden almacenar en cualquier otro archivo que
resida en cualquier parte del disco.
Metafiles
Los primeros 16 archivos de NTFS (metafiles) son archivos del sistema y cada
uno de ellos es responsable de algn aspecto del SO. La ventaja de esta
implementacin modular es su increble flexibilidad, por ejemplo en el sistema
FAT una falla fsica en el rea FAT es catastrfica en la operacin de todo el
disco.
16
$MFT
El propio MFT
$MFTmirr
$LogFile
$Volume
$AttrDef
$.
Directorio raz
$Bitmap
$Boot
$Quota
$Upcase
17
18