Sistema So Perati Vos

57
Capítulo 6 Sistemas de archivos L A computadora fue creada básicamente para el procesamiento de información, es mucho más útil cuando se tienen que procesar miles o millones de datos y como sabemos, la me- moria principal es limitada. Existen algunas aplicaciones para las cuales el almacenamiento en memoria es suficiente puesto que la información que entregan puede visualizarse directamente en pantalla y después de ello, ésta puede perderse, pero hay otras como los bases de datos, que deben manejar cantidades enormes de datos y además mantener también en algún lugar los re- sultados obtenidos. En cuyo caso, la memoria principal es muy poca y su volatilidad un gran problema, puesto que no puede permitirse la pérdida de información. La mayoría de los maneja- dores de bases de datos deben de mantener su información por meses, incluso años. Es posible también que deba tener registros históricos que no deben de perderse nunca. Otro problema importante es que este manejador de bases de datos tenga la oportunidad de proporcionar información a más de un usuario a la vez, permitiendo así que puedan acceder a diferentes datos al mismo tiempo o a un mismo dato de forma secuencial garantizando de esta forma la integridad de la bases de datos. La forma de resolver estos problemas es diseñando los procesos de modo tal que éstos sean completamente independientes de los datos y viceversa, haciendo que las llamadas del sistema permitan una homogeneidad total para el acceso a los datos. Así, definiremos los requisitos mínimos necesarios para almacenar la información a largo plazo: Almacenar grandes cantidades de información. Este punto es usualmente cubierto utilizan- do discos duros o cintas magnéticas de gran capacidad. Como se vio en la sección 2.1.1.2 existen actualmente discos duros que pueden llegar al Terabyte o más aún en discos que son usados para atender a miles de usuarios. En caso de que se necesite más espacio los discos físicos pueden agruparse en unidades lógicas de modo que el usuario los vean como uno solo. 251

description

bvcc

Transcript of Sistema So Perati Vos

Page 1: Sistema So Perati Vos

Capítulo 6

Sistemas de archivos

L A computadora fue creada básicamente para el procesamiento de información, es mucho

más útil cuando se tienen que procesar miles o millones de datos y como sabemos, la me-

moria principal es limitada. Existen algunas aplicacionespara las cuales el almacenamiento en

memoria es suficiente puesto que la información que entreganpuede visualizarse directamente

en pantalla y después de ello, ésta puede perderse, pero hay otras como los bases de datos, que

deben manejar cantidades enormes de datos y además mantenertambién en algún lugar los re-

sultados obtenidos. En cuyo caso, la memoria principal es muy poca y su volatilidad un gran

problema, puesto que no puede permitirse la pérdida de información. La mayoría de los maneja-

dores de bases de datos deben de mantener su información por meses, incluso años. Es posible

también que deba tener registros históricos que no deben de perderse nunca.

Otro problema importante es que este manejador de bases de datos tenga la oportunidad de

proporcionar información a más de un usuario a la vez, permitiendo así que puedan acceder a

diferentes datos al mismo tiempo o a un mismo dato de forma secuencial garantizando de esta

forma la integridad de la bases de datos.

La forma de resolver estos problemas es diseñando los procesos de modo tal que éstos sean

completamente independientes de los datos y viceversa, haciendo que las llamadas del sistema

permitan una homogeneidad total para el acceso a los datos. Así, definiremos los requisitos

mínimos necesarios para almacenar la información a largo plazo:

Almacenar grandes cantidades de información.Este punto es usualmente cubierto utilizan-

do discos duros o cintas magnéticas de gran capacidad. Como se vio en la sección 2.1.1.2

existen actualmente discos duros que pueden llegar al Terabyte o más aún en discos que

son usados para atender a miles de usuarios. En caso de que se necesite más espacio los

discos físicos pueden agruparse en unidades lógicas de modoque el usuario los vean como

uno solo.

251

Page 2: Sistema So Perati Vos

252 6.1. CONCEPTO

Los procesos deben poder guardar información para cuando larequieran. El sistema ope-

rativo debe proporcionar los mecanismos adecuados para queun proceso pueda guardar

su información a discos o cintas y también los medios para quepueda recuperar esa infor-

mación en otro momento.

Acceso concurrente a la información.El sistema operativo debe permitir que dos o más pro-

cesos accedan simultáneamente a la información contenida en disco. Por ejemplo, en caso

de accesos de sólo lectura y en accesos de escritura debe serializar los procesos para ga-

rantizar la integridad de la información.

6.1. Concepto

La estructura de datos que utiliza el sistema operativo paralograr sus objetivos se le llama

archivo. De este modo, cuando un proceso requiere guardar información, le solicita al sistema

operativo la creación de un archivo, hace las operaciones necesarias sobre él y al final, el proceso

solicita el cierre del archivo. Desde este momento, el archivo ha quedado guardado y el proceso

podrá acceder a éste en el momento en que lo desee, no importando si el proceso muere y luego

es corrido nuevamente.

El sistema operativo debe de ser capaz de manejar todos los archivos que le sean solicitados

por diferentes procesos. A la estructura de datos que usa el sistema operativo para este propósito,

se le denominasistema de archivos. Esta estructura permite mantener información importante

acerca de los archivos como por ejemplo:

nombre del archivo. Es el que le asigna el usuario para poder acceder a éste.

El propietario del archivo. Es la persona que ha creado el archivo y que puede indicar qué

operaciones pueden realizarse en él.

Los grupos u otras personas que pueden acceder al archivo.El propietario indica a qué per-

sonas o grupos de ellas puede dar acceso de lectura, escritura o ambas.

Ubicación en disco.Indica en qué lugar del disco se encuentra almacenada la información.

Tipo. En algunos sistemas operativos es importante el tipo, por que permite cargar la aplicación

asociada con el archivo de modo que pueda ser interpretado correctamente.

Fecha y hora. Indican cuando se creó el archivo y a qué hora, algunos sistemas de archivos

indican simplemente la fecha y la hora de la última modificación.

Page 3: Sistema So Perati Vos

CAPÍTULO 6. SISTEMAS DE ARCHIVOS 253

El sistema operativo maneja una abstracción de datos denominadaarchivo que permite ocul-

tar al usuario todos los detalles relativos al almacenamiento de la información. De esta forma,

lo único que tiene que saber el usuario es la manera de crear unarchivo, abrirlo si ya está crea-

do, leer o escribir en éste y cerrarlo para liberar las estructuras proporcionadas por el sistema

operativo.

Un archivo es una colección de datos relacionados, el usuario le asigna un nombre y el

archivo puede entonces crearse, escribir en él, leer bytes oregistros sobreescribir en algunas

posiciones y cerrar el archivo para asegurarse de que toda lainformación se ha vaciado de los

búferes intermedios al disco o cinta. Para un usuario normal, los archivos son la única forma que

tiene para guardar alguna información a disco, no importa que solamente necesite guardar uno

o dos registros o incluso sólo algunos caracteres. Será necesario hacerlo mediante un archivo.

La información de los archivos es almacenada en la estructura de directorios que el sistema

operativo guarda también en el almacenamiento secundario.Una entrada de directorio típica es-

tá compuesta del nombre del archivo y de un identificador de usuario que es único en todo el

sistema. El identificador a su vez, permite localizar los otros atributos del archivo. En muchos

sistemas de archivos es normal que cada entrada de archivo necesite al menos un kilobyte de

almacenamiento. En sistemas donde se tienen muchos archivos, podría ser un problema de ren-

dimiento el tener la estructura de directorios en disco, porlo que en sistemas de tipo servidor, es

común que el sistema operativo coloque buena parte de la estructura de directorios en memoria

para mejorar la eficiencia del sistema. Esto implica que si enalgún momento se tiene una caída

de la alimentación de la energía eléctrica, esta estructurade directorios en memoria se pierda

sin haberla podido reflejar en disco, lo que implica un daño severo a la estructura de directorios

de disco. Si estas caídas de alimentación eléctrica persisten, puede llegar el momento en que

el sistema de archivos quede inutilizado. De ahí la importancia de proporcionar un sistema de

respaldo de energía eléctrica a estos servidores de modo queel sistema operativo pueda apa-

garse correctamente, permitiendo una sincronización adecuada de la estructura de directorios

contenida en memoria con la contenida en disco.

6.1.1. Operaciones con los archivos

El sistema operativo se encarga de proporcionar un conjuntode llamadas al sistema que

constituyen todas las operaciones que pueden realizarse sobre un archivo. Las llamadas que

proporciona el sistema operativo son para crear, escribir,leer, reposicionar, borrar, y truncar

archivos. En seguida damos una descripción más detallada sobre estas operaciones.

Creación. Cuando se crea un archivo, el usuario proporciona el nombre,el sistema ope-

rativo creará una entrada de directorio y le asignará los permisos por defecto si es que el

Page 4: Sistema So Perati Vos

254 6.1. CONCEPTO

usuario no los proporcionó.

Escritura. Para escribir datos en un archivo, debe de abrirse en modo escritura proporcio-

nando el nombre del archivo en el que se desea escribir y elegir el tipo de transferencia

que se efectuará, seleccionando la llamada al sistema correspondiente, que puede ser mo-

do caracter o modo bloque. Con esta información, el sistema operativo busca el nombre

dentro de su estructura de directorios y lleva un apuntador en el lugar en que debe de rea-

lizarse la siguiente escritura. Si se añade más información, el apuntador se actualiza en el

lugar correspondiente.

Lectura. Para leer de un archivo, éste debe abrirse en modo lectura, especificando el nom-

bre del archivo que se desea leer. Después de hace una llamadaal sistema que puede ser

usando una llamada de lectura de bloque o de caracter, especificando la variable apun-

tador que proporcione la dirección en memoria en donde debe guardarse la información

leída. El sistema operativo lleva también un apuntador de archivo que indica la posición

siguiente que debe ser leída.

Reposicionamiento.Permite reubicar los apuntadores de lectura o escritura dentro de un

archivo. Esta operación se conoce también comoseeko búsqueda dentro del archivo.

Borrado. Para eliminar un archivo, el usuario proporciona el nombre yentonces el sistema

operativo recorre su estructura de directorios, si lo encuentra, entonces se libera todo el

espacio ocupado por el archivo y la entrada se elimina de la estructura de directorios.

Truncado. En ocasiones es necesario borrar el contenido de un archivo,pero sin cambiar

su nombre ni sus atributos, excepto por supuesto el tamaño del archivo, o en se defecto

sólo es necesario borrar parte de éste. En lugar de borrar y crear nuevamente el archivo

esta operación permite eliminar parte o toda la informaciónque contiene el archivo, es-

to dependerá de la posición del apuntador de archivo. Si éstese encuentra al principio,

borrará todo el contenido, si está en medio solo truncará a partir de esa posición.

Estas son las operaciones básicas. En un sistema operativo real, habrá muchas más llamadas

a función como por ejemplo, aquellas que se utilizan para obtener los atributos de un archivo, y

las llamadas al sistema para el manejo de errores de entrada salida del sistema, entre otras.

6.1.2. Jerarquía de datos

Básicamente todos los tipos de datos que encontramos en un lenguaje de programación son

susceptibles de ser almacenados en disco. Para ello, el sistema operativo solamente proporcio-

Page 5: Sistema So Perati Vos

CAPÍTULO 6. SISTEMAS DE ARCHIVOS 255

nará dos maneras de acceso a un archivo:

1. Acceso por caracter o byte por byte.

2. Acceso por bloque o lectura de muchos caracteres o bytes almismo tiempo.

Mediante estas dos formas de acceso, el usuario tendrá que traducir todos los datos que vaya

a manejar a bytes o bloques, de manera que pueda guardar su información a disco. El usuario,

por la tanto, es el responsable de interpretar correctamente el tipo de dato que está guardado en

el archivo. En general, los tipos de datos que puede manejar un lenguaje de programación son

los siguientes:

char. Representa un byte o un caracter. Un byte es un número que desde 0 hasta28 o que puede

representar un número entre±27.

int. Un número entero está representado por una palabra. Las palabras varían de acuerdo a la

arquitectura de la computadora que se esté usando y puede ir desde los 16, 32, hasta los

64 bits. De acuerdo a esto varía la cantidad que puede guardaruna palabra. Por ejemplo,

si tenemos una palabra de 16 bits entonces podremos guardar enteros positivos que van

desde 0 hasta216. Si queremos representar número negativos y positivos. El rango sería

de±215.

float. El tamaño que usa en bytes es 4 el valor máximo es1037 y el mínimo es10−37.

long. Usa también 4 bytes y sus valores van desde 2,147,483,647 consigno (4294967295 cuan-

do es unsigned) y el mínimo es -2,147,483,648 (0 cuando es unsigned).

long long. Su Tamaño en bytes es 8. El valor máximo es:

9,223,372,036,854,775,807 (18,446,744,073,709,551,616 cuando es unsigned).

Su valor mínimo es 9,223,372,036,854,775,808 (0 cuando es unsigned).

short. Tiene solamente 2 bytes y su valor máximo es 32767 (65,535 cuando es unsigned). Su

valor mínimo es -32768 (0 cuando es unsigned).

double. Ocupa 8 bytes, su exponente máximo es10308 y su exponente mínimo es10−308.

void. Es un tipo especial en donde se le exige al usuario conocer el número de bytes que ocupa

su datos y al momento de usarlo debe de indicar cómo quiere quese trate esa cantidad de

bytes.

Page 6: Sistema So Perati Vos

256 6.2. NOCIÓN DE ARCHIVO REAL Y VIRTUAL

Después de los tipos de datos básicos, el siguiente nivel sonlos arreglos y matrices de datos

simples. Estos pueden almacenarse como bloques de bytes a disco o pueden guardarse byte a

byte, debiendo entonces ser nuevamente interpretados de acuerdo a las necesidades del usuario.

El siguiente nivel en los lenguajes de programación son las estructuras. Una estructura es

un conjunto de variables de datos de distintos tipos pero agrupados bajo un sólo nombre y que

pueden entonces ser manejados como tal.

El último nivel son los objetos, que agrupan a un conjunto de variables de datos de distintos

tipos junto con las operaciones que pueden realizarse en ellas. En realidad, cuando se guarda

un objeto a disco, solamente se guardan los datos contenidosen éste el código es tomado del

programa objeto. A diferencia de una estructura, con un objeto es posible mandar a guardar a

otros objetos que estén dentro de éste y si estos subobjetos están definidos por otros objetos,

entonces es posible a su vez guardar también sus contenidos.De esta forma se pueden guardar

varios niveles de objetos con una sola llamada al objeto principal, permitiendo así recuperar

exactamente el estado del objeto en el momento en que fue guardado. Este comportamiento sería

muy difícil de conseguir con estructuras ordinarias. El único requisito para poder hacer esto es

permitir primeramente a los subobjetos que guarden su información correspondiente y luego el

objeto principal deberá guardar la suya. Al momento de leer la información, el objeto principal

deberá leer sus datos y enseguida indicar a sus subobjetos que hagan lo propio, siguiendo el

mismo orden.

Es común que todos los arreglos, las matrices, las estructuras y los objetos se guarden como

bloques, puesto que sería más ineficiente guardarlos byte a byte.

Algunos lenguajes de programación como Pascal imponen al usuario que en la creación del

archivo se indique el tipo de dato que va a ser guardado en el archivo. En otros como en C el

usuario es el responsable de interpretar los bytes que escribe y lee de disco.

Los archivos, a nivel programación se consideran también tipos de datos, y es claro para el

programador que debe primeramente declarar variables de tipo archivo para poder hacer uso de

ellas. Estas variables tendrán diferentes nombres dependiendo del lenguaje de programación.

Por ejemplo, en C tenemos solamente variables del tipo FILE.En C++ se cuenta también con

flujos o streams. Ambos enfoques están orientados a byte o bloque. Depende del programador

el significado que vaya a darles a la secuencia de bytes que leeo escribe.

6.2. Noción de archivo real y virtual

Cuando un proceso crea un archivo, le asigna un nombre, realiza un conjunto de operaciones

sobre éste y cuando el proceso termina, debe cerrar el archivo correspondiente. Después que ha

Page 7: Sistema So Perati Vos

CAPÍTULO 6. SISTEMAS DE ARCHIVOS 257

terminado el proceso, el archivo persiste almacenado en disco y otros procesos pueden hacer uso

del archivo usando su nombre como referencia. A los datos almacenados en el disco se le llama

archivo real y al nombre asignado al archivo se le conoce comoarchivo virtual .

Las reglas que se usan para nombrar archivos tiene que ver másen cómo facilitarles a los

usuarios la tarea de recordar los contenidos que en hacer un uso más eficiente del espacio de

almacenamiento de las entradas de directorios. Por lo tanto, la evolución de la manera en que se

nombran los archivos ha seguido esta línea.

En los primeros sistemas personales, era común nombrar a losarchivos hasta con ocho letras

para el nombre un punto y tres letras para la extensión. No permitían el uso de caracteres espe-

ciales. En la medida en que se hicieron evidentes las desventajas, se fue haciendo más versátil

la forma de nombrar archivos. Actualmente, la mayoría de lossistemas soportan sistemas de

archivos que pueden almacenar hasta 255 caracteres como nombre de un archivo y es posible

que el usuario haga uso de prácticamente cualquier caracterpara incluirlo dentro de un archivo,

ya sean caracteres alfanuméricos o caracteres especiales.

En los sistemas personales basados enMS-DOSera común que el sistema operativo no hicie-

ra distinción entre las letras mayúsculas y minúsculas. En los sistemas basados en UNIX/Linux

y en los sistemas de archivos NTFS de Windows 2000 en adelantetodos ellos hacen distinción

entre mayúsculas y minúsculas. Esta nueva forma permite másvariedad cuando se nombran

archivos y a su vez permiten crear contraseñas más fuertes, siendo más difícil decodificarlas.

Muchos sistemas de archivos manejan nombres de archivos en dos partes, separadas con

un punto. La parte que va después del punto se llama extensióny es usada para determinar

la aplicación que debe ser lanzada cuando se haga referenciaa ese archivo. En los sistemas

UNIX/Linux, los archivos pueden tener dos o más extensiones. Esto indica que el archivo ha

sido procesado por más de una aplicación. Por ejemplo un archivo que se llamerespaldo.tar.gz

indica que el archivo fue generado por el archivadortar y luego fue comprimido porgzip. Por

lo tanto, debe primerodescomprimirsey luegodesarchivarsepara poder hacer uso del archivo.

En los sistemas operativos orientados a usuario es común quelas extensiones estén asociadas

a ciertas aplicaciones. En la tabla 6.1 damos un listado de las asociaciones más comunes.

Como se comentó, en los sistemas tipos UNIX/Linux es responsabilidad del usuario y de

las aplicaciones asignar un significado a una extensión específica. el sistema operativo no tiene

cuidado de cómo usarlas. En realidad quien lleva a cabo estasasociaciones es elfront-endgráfico

o la interfaz gráfica. Por ejemplo,KDE, GNOMEo CDE.

En un sistema operativo basado en Windows, éste lleva un registro de las extensiones y el

programa correspondiente asociado con la misma. Si existe más de una aplicación que puede

manejar esa extensión, el sistema operativo podrá mostrar mediante una ventana secundaria

qué aplicaciones están disponibles para el archivo. Pero por omisión utilizará un sólo programa

Page 8: Sistema So Perati Vos

258 6.2. NOCIÓN DE ARCHIVO REAL Y VIRTUAL

archivo.bat Archivo de órdenes de comandos

archivo.c Programa fuente de un programa en C

archivo.html Archivo de internet de marcado de hipertexto

archivo.mp3 Archivo de música comprimido con MPEG capa 3

archivo.jpg Archivo de imagen fija codificada con JPEG

archivo.o Archivo objeto de salida aún no ligado

archivo.ps Archivo postcript

archivo.tex Archivo fuente para el programa TEX

archivo.zip Archivo comprimido

archivo.txt Archivo de texto

archivo.tar Archivo que contiene más archivos y/directorios

archivo.ogg Archivo de música comprimido en formato libre

Tabla 6.1: Extensiones más comunes

asociado.

6.2.1. Tipos de archivos

Varios sistemas operativos hacen la distinción entre los archivos de usuario y los archivos

del sistema. Es común que a los archivos de usuario de les denomine archivos normalesy a

ciertos archivos del sistema se les denominearchivos especiales. Por ejemplo En los sistemas

UNIX/Linux y Windows tenemos directorios y archivos normales. UNIX/Linux manejan ade-

más archivos especiales orientados a caracteres y archivosorientados a bloques. Un archivo

normal mantiene información específica de los usuarios, como imágenes, texto y música.

Los directorios son archivos de sistema especiales que mantienen listas de archivos o di-

rectorios de modo que pueda construirse la estructura de directorios y forma parte esencial del

sistema de archivos.

Los archivos especiales de caracteres se usan para modelar dispositivos serie como el teclado

y las impresoras. Los archivos de bloque se usan para representar a los discos duros formando

parte del manejo de dispositivos de entrada salida y serán tratados en su oportunidad en la

sección 6.6.

Los archivos normales se pueden dividir básicamente en dos tipos:

1. Archivos de texto.

2. Archivos binarios.

Page 9: Sistema So Perati Vos

CAPÍTULO 6. SISTEMAS DE ARCHIVOS 259

6.2.2. Archivos de texto

Los archivos de texto regularmente son archivos ASCII. Estos consisten en una o más líneas

de texto terminadas con un caracter de retorno de carro. En otros se usa el caracter de salto de

línea y los sistemas basados en MS-DOS usan ambos. Una ventaja de este tipo de archivo es

que puede verse e imprimirsetal como estáteniendo un tipo de letra determinado, del mismo

modo en que se ve puede imprimirse. Este tipo de archivos no soporta gráficos ni tampoco

formateos complejos. Es lo más cercano a lo que podríamos realizar con una máquina de escribir

mecánica. Otra ventaja importante es su velocidad de manejoy su tamaño. También es posible

usar una gran cantidad de editores de texto y además poder hacerlo en diferentes plataformas,

con algunos cambios mínimos, que la mayoría de las veces, lasaplicaciones de intercambio

de archivos como ftp hacen automáticamente. El manejo de archivos de texto facilita mucho la

comunicación entre aplicaciones siendo también posible enviar la salida de un programa hacia

la entrada de otro mediante el uso detuberías, que significa básicamente la redirección de las

salidas a otros programas o dispositivos, siendo una forma estándar de comunicación entre las

utilerías proporcionadas por los sistemas operativos y entre varios programas de aplicación.

Los lenguajes de programación usan comúnmente archivos de texto que se denominanpro-

gramas fuente. El compilador toma estos archivos y genera un archivo objeto que posterior-

mente se enlaza con un conjunto de librerías para finalmente obtener el código binario listo para

ejecutarse. Algunos editores comoLATEX (orientado a estructura) toman también un conjunto

de órdenes de formateo en texto plano y producen un documentoperfectamente legible de alta

calidad. Hay que notar que las órdenes van insertadas en el propio documento de texto al igual

que en otros editores de formateo como openoffice writer (conun enfoque denominado “Lo que

tú ves es lo que obtienes”) pero su salida real se verá solamente bajo el propio editor de texto o

cuando esté impreso el trabajo.

Al igual que sucede con un archivo de código fuente de un lenguaje de programación, el

resultado o código binario no se verá hasta que se haya pasadoel archivo fuente por la fase de

compilación.

Otro ejemplo de uso de archivos tipo texto son las páginas web. El lenguaje denominado

html (Hiper Text Meta Language) permite a los diseñadores Web colocar órdenes de tipo texto

para distribuir todo tipo de información dentro de una página WEB. El archivo no necesita pasar

por ningún proceso de compilación. El resultado se verá a través del navegador de internet el

cual interpretará adecuadamente las órdenes y mostrará el resultado al usuario final. Si vemos

estos archivos en un editor de texto normal, podremos ver lasórdenes que utilizó el diseñador.

Las imágenes estarán indicadas por un enlace a la ubicación de la misma y además seremos

capaces de ver la mayoría del texto plano de la página, tal como sucedería en un archivo de

Page 10: Sistema So Perati Vos

260 6.2. NOCIÓN DE ARCHIVO REAL Y VIRTUAL

LATEX.

Es común también que la mayoría de los sistemas operativos basados en UNIX/Linux usen

archivos de texto para mantener los archivos de configuración del sistema. De esta forma es

relativamente sencillo agregar o eliminar parámetros de configuración del sistema.

Los sistemas basados en Windows, también usan archivos de configuración basados en texto,

como en el archivo de configuración Windows.ini, pero también usa otro formato que debe ser

previamente procesado para poder ser legible tal como el registro de Windows.

6.2.3. Archivos binarios

Los archivos binarios, simplemente significa que no son archivos ASCII, por lo tanto, no

pueden verse directamente en pantalla o en una impresora y esnecesario alguna aplicación para

poder ver el contenido real. En caso de que llegaran a visualizarse o imprimirse con aplicaciones

que manejan archivos de texto solamente se verán caracteressin coherencia e incluso basura.

Esto es debido a que incluyen caracteres de control que no sonimprimibles. Dentro de este tipo

de archivos tenemos los de imágenes, los archivos portablestipo PDF y los archivos ejecutables

entre otros.

Los archivos ejecutables se caracterizan en windows por dosextensiones muy comunes: los

archivos con extensión .com y los archivos con extensión .exe. Aunque también se manejan otros

tipos como los .bat que son archivos de órdenes y los archivosde librerías dinámicas con .dll.

A diferencia de windows los sistemas basados en UNIX/Linux no necesitan extensión para

que el sistema operativo los identifique como ejecutables. Lo primero que hace el sistema ope-

rativo es analizar sus permisos y si éstos incluyen el permiso de ejecución entonces procederá

a ejecutarlo. Así, si se desea implementar un archivo de órdenes (equivalente a un .bat en win-

dows) solamente se escribe un comando por línea dentro del archivo, se guarda y se agrega el

permiso de ejecución al mismo.

En cuanto a los archivos de código binario, se hace todavía una verificación más: se deter-

mina si el archivo empieza con el denominadonúmero mágico. Todos los archivos binarios

ejecutables empiezan con esta marca. Esto se hace para evitar algún problema intentando ejecu-

tar instrucciones aleatorias que se podrían mal interpretar si se pretende ejecutar un archivo de

texto por ejemplo. Si el archivo no contiene este número entonces el sistema tratará de ejecu-

tarlo como un archivo por lotes e intentará obtener la primera línea del archivo. Por norma, en

UNIX/Linux los archivos por lotes deben identificar en la primera línea el intérprete que debe

ser utilizado para su ejecución. Aún así, si no encuentra esta línea, la tomará entonces como

una orden del shell por defecto y si no se encuentra dentro delrepertorio de instrucciones del

intérprete, éste indicará un error de orden inválida.

Page 11: Sistema So Perati Vos

CAPÍTULO 6. SISTEMAS DE ARCHIVOS 261

6.2.4. Interfase con el usuario

Cuando se habla de computación personal, lo que se busca es facilidad de manejo. Lo pri-

mero que aprende a manejar cualquier usuario es la creación de nuevas carpetas, creación de

archivos y ejecución de aplicaciones. Con estas bases, el usuario empezará entonces a introducir

datos dentro de los archivos organizarlos y enviar algunos archivos a impresión. ya sea mediante

órdenes del sistema operativo o indirectamente a través de aplicaciones.

El sistema de archivos puede, por tanto, dividirse en dos secciones bien diferenciadas:

1. Los archivos.

2. Las carpetas o directorios.

Los archivos son el elemento básico que guarda la información o el código ejecutable de las

aplicaciones.

La estructura de directorios organiza a los archivos de acuerdo a la solicitud de los usuarios

siendo común que cada aplicación cree sus propios directorios.

Es costumbre también que los sistemas operativos manejen una estructura de directorios

preestablecida para organizar todos los archivos pertenecientes al mismo y sugieran a su vez

otra estructura para el manejo de usuarios.

6.3. Componentes de un sistema de archivos

Un sistema de administración de archivos es un conjunto de librerías del sistema operativo

que proporciona a los usuarios y aplicaciones los serviciosrelativos al empleo de archivos. El

sistema operativo actúa como interface entre los usuarios yel hardware de almacenamiento

(discos, duros, memorias USB, cintas y otros más).

Los componentes de un sistema de archivos típico de acuerdo aStallings [96] son:

1. Controladores de dispositivos.Es el nivel más bajo. Se comunica directamente con los

periféricos. Es responsable de comenzar las operaciones deE/S en in dispositivo y proce-

sar la finalización de E/S.

2. Sistema de archivos básico.Se le conoce también comonivel de E/Sfísica constituye la

interfaz primaria con el entorno exterior. Este nivel tratacon bloques de datos queda son

intercambiados con los sistemas de almacenamiento. Se ocupa de ubicar dichos bloques en

el dispositivo de almacenamiento secundario e intermedio que se encuentra en la memoria

principal, también conocido comobuffer. Este nivel no toma en cuenta ni el contenido

Page 12: Sistema So Perati Vos

262 6.3. COMPONENTES DE UN SISTEMA DE ARCHIVOS

ni la estructura de los archivos implicados. El sistema de archivos básico forma parte del

sistema operativo.

3. Supervisor básico de E/S.Se encarga de comenzar y finalizar todo tipo de entrada/salida

relacionada con archivos. Este nivel mantiene estructurasde control que se encargan de

las entradas y salidas con los dispositivos, la planificación y el estado de las operacio-

nes realizadas sobre los archivos. Panifica los accesos a losmedios de almacenamiento

para optimizar su rendimiento. En este nivel se asignan los buffer de E/S y se reserva la

memoria secundaria.

4. La entrada/Salida lógica.Es la parte del sistema de archivos que permite a los usuariosy

aplicaciones acceder a los sistemas de archivos. Esto se explica más a detalle en la sección

6.3.1 de llamadas al sistema.

En la figura 6.1 se puede ver la interacción entre sus diversoscomponentes.

Figura 6.1: Componentes y funciones del Sistema de archivos

6.3.1. Llamadas al sistema (systemcalls)

Después de haber analizado la teoría general del sistema de archivos, vamos ahora a dar una

introducción sobre la forma en que están implementadas las instrucciones de manejo de archivos

del sistema.

Page 13: Sistema So Perati Vos

CAPÍTULO 6. SISTEMAS DE ARCHIVOS 263

6.3.2. Interfaz de la biblioteca estándar

Esta biblioteca contiene las funciones que se utilizan parael manejo de archivos. Tienen

un parámetro de tipo apuntador hacia una estructuraFILE. TantoFILE como las definiciones

prototipo se encuentran en el archivo de cabecera<stdio.h>. Las funciones que vamos a analizar

para el manejo de archivos sonfopen, fread, fwrite y fclose.

6.3.2.1. Fopen

Su declaración es:

#include <stdio.h>

FILE *fopen (const char *file_name, const char type);

Si todo funciona correctamentefopen abre el archivo cuyo nombre está apuntado porfi-

le_name y le asocia un flujo que no es más que una estructura de tipofile. Si la llamada falla

fopen devuelve un apuntadorNULL y errno tendrá el código de error producido.

Type es una cadena que le indica afopen el modo de acceso al archivo. Entre otros, puede

tomar los siguientes valores:

“r” Abrir para leer.

“w” Abrir para escribir.

“a” Abrir para escribir al final del archivo o crar un archivo,si no existe para escribir en

él.

“r+” Abrir para actualizar el archivo (leer y escribir).

“w+” Abrir el archivo para leer y escribir, pero truncando primero su tamaño a 0 bytes. Si

el archivo no existe, se crea para leer y escribir en él.

6.3.2.2. Fread

Permite leer datos de un archivo a través de su flujo asociado.Su declaración es:

#include <stdio.h>

size_t fread (char *ptr, size_t size, size_t nitems, FILE *stream);

Fread copia en el arreglo apuntado porptr nitems bloques de datos procedentes del archivo

apuntado porstream. Cada bloque, o ítem, de datos leído tiene un tamaño desize bytes.

Fread termina su lectura cuando encuentra el final del archivo, se da una condición de error

o ha leído el total de bloques que se le pide. Si la lectura se realiza correctamente,fread devuelve

Page 14: Sistema So Perati Vos

264 6.3. COMPONENTES DE UN SISTEMA DE ARCHIVOS

el total de bloques leídos. Si el valor devuelto es 0 significaque se ha encontrado el final del

archivo.

6.3.2.3. Fwrite

Fwrite permite escribir datos en un archivo a través de su flujo asociado. Su declaración es:

#include <stdio.h>

size_t fwrite (const char *ptr, size_t size, size_t nitems, FILE *stream); Fwrite copia

en el archivo apuntado porstream nitems bloques, cada uno de tamaño desize bytes. Los

bloques a escribir se encuentran en la zona de memoria apuntada porptr.

Si la llamada se ejecuta correctamente, devuelve el total debloques escritos. Si se da una

condición de error, el número devuelto porfwrite será distinto del número de bloques que se le

pasó como parámetro.

6.3.2.4. Fclose

Fclose cierra un archivo que ha sido abierto confopen. Su declaración es la siguiente:

#include <stdio.h>

int fclose (FILE *stream);

Fclose hace que toda la memoria intermedia de datos asociada astream sea escrita en el

disco, que el espacio de memoria reservado para las memoriasintermedias sea liberado y que el

flujo sea cerrado.

La operación de cerrado se realiza de forma automática sobretodos los archivos abiertos

cuando llamamos a la funciónexit. Fclose devuelve 0 si la llamada se ha ejecutado correcta-

mente yEOF (Final de archivo) en caso de que se produzca un error.

6.3.2.5. Entrada/salida de caracteres con la biblioteca estándar

En la biblioteca estándar existen dos funciones para leer y escribir caracteres (bytes) sobre

un archivo asociado a un flujo. Estas funciones sonfgetc y fputc que se declaran así:

#include <stdio.h>

int fgetc (FILE *stream); /* Lectura de caracteres */

int fputc (int c, FILE *stream) /*Escritura de caracteres*/

Fgetc devuelve el caracter siguiente al último leído del archivo asociado alstream. Aunque

fgetc va a leer los datos del archivo, devuelve un entero, con lo quese consiguen dos objetivos:

el primero es que el byte leído se devuelve como un caracter sin signo, y el segundo, que cuando

Page 15: Sistema So Perati Vos

CAPÍTULO 6. SISTEMAS DE ARCHIVOS 265

se detecta el final del archivo se puede devolverEOF(-1) sin que haya lugar a confundirlo con

un dato válido.

En fputc, c es el byte que se va a escribir en el archivo. Cuando se produceun error,fputc

devuelveEOF. Si la escritura se produce correctamente,fputc devuelve el valor escrito.

Estas dos funciones tienen dos macros equivalentes:getc y putc, que se sirven de la memoria

intermedia asociada al flujo y de las funciones__fillbuf y __flsbuf para agilizar el proceso de

lectura/escritura.

Las funcionesgetchar y putchar, que actúan sobre la entrada estándar y la salida estándar,

pueden codificarse como macros a partir degetc y putc de la siguiente forma:

#define getchar() getc (stdin)

#define putchar(c) putc ((c), stdout)

6.3.3. Tipos de interfaz

En la sección anterior se detallaron solamente algunas de las llamadas al sistema referentes

al manejo de archivos a nivel programación. La mayoría de lossistemas operativos cuenta con

al menos los siguientes tipos de interfaz:

1. Interfaz de usuario modo consola.

2. Interfaz de usuario modo gráfico.

3. Interfaz para el programador.

6.3.4. Interfaz de usuario modo consola

La interfaz de usuario se asocia comúnmente al manejo de archivos vía consola o vía interfaz

gráfica.

En muchos sistemas basados en UNIX/Linux, es normal hacer solamente una traducción de

las llamadas gráficas a las llamadas de consola. De esta forma, el programador dedicado a los

comandos de consola puede mejorar las capacidades de éstos sin preocuparse por la interfaz

gráfica. Los programadores defront-ends o interfaces gráficas en cambio, se dedican a propor-

cionar una interfaz gráfica agradable sin preocuparse por los detalles internos de las órdenes de

líneas de comandos y solamente interactúan con ellos vía parámetros.

Órdenes de consola o terminal. Se tienen muchas órdenes para interactuar con la computado-

ra a nivel consola. Esta interfaz permite tener un mayor control tanto sobre el sistema operativo

Page 16: Sistema So Perati Vos

266 6.3. COMPONENTES DE UN SISTEMA DE ARCHIVOS

como sobre el hardware. El problema es que la línea de aprendizaje es larga y la complejidad ma-

yor. En general, para que un usuario haga uso de la consola o terminal de realizar los siguientes

pasos:

1. Entrar al sistema o inicio de sesión.Existen muchos programas que permiten conectarse

con la computadora y que dependen directamente de sistema operativo que se utilice. En

general, si estamos frente a una computadora local, ésta debe de arrancarse. Cuando el

sistema operativo termine de cargar, se presentará una pantalla de bienvenida y a su vez

indicará que introduzcamos un nombre de usuario y una contraseña. Si es administrador

del sistema dio de alta nuestro usuario entonces entraremosal sistema y podemos hacer

uso de el.

Si deseamos entrar a una computadora remota vía terminal, elproceso, no varía mucho,

se arranca la terminal, ésta contactará con el servidor remoto y nuevamente solocitará el

nombre de usuario y contraseña. Si es válida entonces iniciaremos unasesióny podremos

trabajar.

El último caso, es cuando necesitamos conectarnos desde unacomputadora a un servidor.

Es necesario contar con un programa que permita hacer la conexión. Tenemos el más co-

mún llamadotelnet que permite iniciar una sesión bajo una terminal virtual. Elproblema

de esta orden es que envía el nombre de usuario sin incriptar,y es muy sencillo que otros

usuarios puedan ver la contraseña vía unsniffer que se usa para analizar los paquetes de

red y ver su contenido. Existe otro protocolo llamadossh o shell seguropermite enviar

toda la información incriptada al servidor y recibirla de lamisma forma.

Existen otros programas que permiten hacer estas funcionesde diferente forma. Por ejem-

plo, si deseamos solamente enviar archivos y no abrir una sesión de trabajo, se puede

hacer uso de la ordenftp. Otra vez, con este protocolo la información viaja sin incriptar.

Su contraparte incriptada es la ordensftp o protocolo de transferencia de archivos segura.

2. Trabajar en la sesión. Incluye la ejecución de programas, edición de textos, cálculos

matemáticos impresión de documentos, tareas de administración y todas las relacionadas

con el uso de la computadora.

En la actualidad existen demasiadas órdenes que pueden usarse vía consola. A continua-

ción tenemos un listado de las más comunes y la función que realizan.

cd <directorio>. Cambia directorio, sirve para ir a un directorio concreto del sis-

tema. Por ejemplo cd /home hace que vayamos al directorio donde se guardan los

directorios personales de cada usuario del sistema. La orden cd sin parámetros hace

que vayamos a nuestro directorio personal.

Page 17: Sistema So Perati Vos

CAPÍTULO 6. SISTEMAS DE ARCHIVOS 267

mkdir <nombre directorio>. Crear un directorio vacío, su uso es muy simple, so-

lamente hay que añadir el nombre del nuevo directorio detrásdel comando. Por

ejemplo mkdir prueba.

rm <dir>. Permite borrar el directorio llamado <dir>. Si el directorio no está vacío

no se borra. Si se desea borrarlo con todo y su contenido se usaentoncesrm -R

<dir> .

ls o dir. lista el contenido de un directorio.

df -h. Se usa para ver la cantidad de espacio libre en el disco.

fuser -m <dispositivo>.Muestra todos los usuarios o procesos que están usando

el <dispositivo>. Si se usa la opción -mk permite “matar” losprocesos que están

usándolo de mod que pueda desmontarse.

sudo <comando>.Permite ejecutar una orden con permisos de administrador. Cuan-

do necesitamos algún comando con más privilegios que los quetenemos como usua-

rio usamos entonces la orden sudo.

history. Muestra el historial de órdenes que se han ejecutado últimamente. Podemos

volver a ejecutar una orden del historial escribiendo !<numero de la historia>.

top. Muestra los procesos que se están ejecutando, carga del procesador, memoria

libre y ocupada. Esta información se actualiza constantemente.

ps -aux.La orden ps muestra los procesos activos en nuestra máquina,con la opción

-aux muestra información detallada de cada uno de ellos, como el propietario y el

uso de cpu por parte del proceso.

kill <pid>. Permite eliminar (matar) un proceso del sistema, es necesario conocer el

número del proceso que se desea terminar. Podemos obtener este pid de otras órdenes

como ps por ejemplo.

xkill. Igual que el comando kill pero de forma gráfica, si tienes una ventana que se ha

quedado colgada, ejecuta xkill y selecciona la ventana con el cursor que te aparecerá.

La ventana y el proceso que la creó morirán.

man <orden>. Quizás uno de las más importantes comandos del sistema, muestra

la ayuda detallada de la orden dada en <orden>.

3. Salir de la sesión.Después de trabajar en la computadora es conveniente terminar la

sesión de modo que no pueda hacer uso de ella otra persona. Al hacer esto nos aseguramos

que otros usuarios tengan que entrar con su nombre y contraseña. Se debe evitar en la

Page 18: Sistema So Perati Vos

268 6.3. COMPONENTES DE UN SISTEMA DE ARCHIVOS

medida de lo posible prestar estos nombres y contraseñas a otros, debido a que pueden

hacer tareas a nuestro nombre que sean dañinas u ofensivas a terceros y por lo tanto,

podemos tener problemas al ser los representantes directosde la cuenta.

6.3.5. Interfaz de usuario modo gráfico

Actualmente la mayoría de los sistemas operativos comerciales hacen uso de una interfaz

gráfica intuitiva de modo que sea relativamente de usar para los usuarios nuevos. Muchas de las

tareas que pueden hacer a nivel consola también se pueden hacer en modo gráfico. El costo del

ambiente gráfico es mucho mayor, tanto en el consumo de energía eléctrica como en ciclos de

CPU, pero dado el aumento de capacidades de los sistemas actuales y la reducción de precios,

es común contar con estas interfaces en nuestras computadoras.

Al igual que con una sesión de consola, es necesario primeramente autenticarse. El siste-

ma operativo solicitará el nombre de usuario y contraseña y si éstas coinciden entonces éste

empezará a cargar nuestra sesión gráfica.

En los sistemas basados en Windows, el medio ambiente gráficoestá integrado al sistema

operativo, lo que permite una respuesta más rápida. En los sistemas basados en UNIX/Linux, es

un programa separado del sistema operativo, lo que permite mayor versatilidad a cambio de un

desempeño un poco menor.

En la figura 6.2 se puede ver cómo el uso de íconos favorece un rápido aprendizaje a nivel

intuitivo acerca de las tareas que puede llevar a cabo una aplicación.

Esta facilidad de uso también tiene un costo: el entorno gráfico en muchas ocasiones no

puede cubrir todas las facilidades que proporciona la consola. Por tanto, para aquellas personas

que pretendan ser administradores de centros de cómputo, esmuy importante que tengan un

dominio completo de la interfaz gráfica y también conocimientos profundos sobre el uso de las

órdenes de consola.

Para los usuarios normales no es estrictamente necesario tener un conocimiento completo

sobre el uso de las órdenes de consola, pero se recomienda queal menos tengan el conocimien-

to básico necesario como para que puedan crear/eliminar directorios y copiar archivos desde la

consola para casos de emergencia en donde el entorno gráfico por alguna situación falló y es ne-

cesario recuperar cierta información. Se recomienda en segundo término, familiarizarse también

con el manejo de particiones, formateo de discos y respaldo de datos.

6.3.5.1. Interfaz para el programador

El sistema operativo proporciona diferentes librerías quepueden ser usadas por los compi-

ladores y éstas a su vez por los programadores, de manera que éstos puedan llevar a cabo sus

Page 19: Sistema So Perati Vos

CAPÍTULO 6. SISTEMAS DE ARCHIVOS 269

Figura 6.2: Sesión gráfica de KDE

tareas de programación de sistemas o de aplicaciones.

Muchas librerías se usan para la escritura de programas que trabajan a nivel de líneas de

órdenes, interfaces de texto o librerías para que hagan uso de interfaces gráficas. Estas libre-

rías existen a niveles muy bajos de programación. Algunos fabricantes o grupos de personas

se encargan de establecer diferentes niveles de complejidad o subrutinas que agrupan muchas

instrucciones de bajo nivel proporcionadas por el sistema operativo de modo que se facilita la

escritura de programas de aplicación complejos.

Como ejemplo, en todos los sistemas UNIX/Linux tenemos un directorio llamado /usr. En

este directorio tenemos los directorios /include y /lib.

En el directorio /include existen todos los archivos de cabecera que proporciona los nombres

de las funciones correspondientes a las llamadas del sistema y algunas más como rutinas de

manejo de estructuras de datos básicas como pilas, colas, arreglos dinámicos entro otras. Aunque

cada día se agregan nuevas funcionalidades y rutinas de más alto nivel que se incorporan a estas

librerías.

En el directorio /lib tenemos el código objeto correspondiente a las cabeceras definidas en el

directorio /include. Con estos dos directorios es suficiente para programar aplicaciones a nivel

Page 20: Sistema So Perati Vos

270 6.4. ORGANIZACIÓN LÓGICA Y FÍSICA

consola.

Existen otros directorios que contienen las cabeceras y laslibrerías para el desarrollo de

aplicaciones gráficas que se encuentran también en /includey en /lib. Hay que recordar, sin

embargo, que muchas de éstas deben ser instaladas vía terceras partes y que en sí no forman

parte del sistema operativo.

6.3.6. Lenguaje de comunicación y pipelines o conductos

En la sección 6.3.4 vimos una lista de órdenes pertenecientes al modo consola.

En un sistema basado en Windows a la consola se le conoce comosímbolo del sistema. En

todas las versiones ha sido el mismo y en general ha decaído suuso a tal grado que en vez de

aumentar funcionalidades las nuevas versiones de Windows disminuyen este tipo de órdenes

a las mínimas necesarias. Aunque aún con esas limitaciones algunas aplicaciones de líneas de

órdenes tienen también un muy buen control sobre hardware específico, por ejemplo las órdenes

para el manejo de la tarjeta de red y las conexiones de redes.

En los sistemas UNIX/Linux existen muchos intérpretes de órdenes llamadosshellsque

discutiremos en la siguiente sección.

6.4. Organización lógica y física

6.4.1. Organización lógica

La organización lógica de un sistema de archivos desde un punto de vista de implementación

son las siguientes como está descrita por Stallings [96]: Enla figura 6.3 se pueden observar los

componentes se un sistema de archivos típico.

1. Pilas.Los datos se recogen en el orden en que llegan. Cada registro consta de una ráfaga

de datos. Su finalidad es acumular una masa de datos y guardarla.

2. Archivos secuenciales.En esta estructua se emplea un formato fijo para los registros, son

de la misma longitud y constan del mismo número de campos de tamaño fijo con un orden

determinado. Se necesita almacenar los valores de cada campo; el nombre del campo y

la longitud de cada uno son atributos de la estructura del archivo. Cada registro tiene un

campo clave que lo identifica (generalmente es el primero de cada registro). Los registros

se almacenan en secuencia por la clave. Se utilizan normalmente en aplicaciones de pro-

cesos por lotes, ya que es la única organización de archivos que se puede guardar tanto en

Page 21: Sistema So Perati Vos

CAPÍTULO 6. SISTEMAS DE ARCHIVOS 271

Figura 6.3: Componentes típicos de un sistema de archivos

cintas como en discos. Para las aplicaciones interactivas que incluyen peticiones o actua-

lizaciones de registros individuales, los archivos secuenciales no son óptimos. El acceso

requiere una búsqueda secuencial de correspondencias con la clave. Si el archivo entero

o gran parte de él pueden traerse a la memoria principal de unasola vez, se podrán apli-

car técnicas de búsquedas más eficientes. Al acceder un registro de un archivo secuencial

grande, se produce un procesamiento extra y un retardo considerable.

3. Archivos secuenciales indexados.Los registros se organizan en una secuencia basada en

un campo clave presentando dos características, un índice del archivo para soportar los

accesos aleatorios y un archivo de desbordamiento. El índice proporciona una capacidad

de búsqueda para llagar rápidamente al registro deseado y elarchivo de desbordamiento

es similar al archivo de registros usado en un archivo secuencial, pero está integrado de

forma que los archivos de desbordamiento se ubiquen siguiendo un puntero desde su regis-

tro predecesor. La estructura más simple tiene como índice un archivo secuencial simple,

cada registro del archivo índice tiene dos campos, un campo clave igual al del archivo

principal y un puntero al archivo principal. Para encontrarun campo especifico se busca

en el índice hasta encontrar el valor mayor de la clave que es iguale o precede al valor

deseado de la clave, la búsqueda continua en el archivo principal a partir de la posición

que indique el puntero. Cada registro del archivo principaltiene un campo adicional que

es un puntero al archivo de desbordamiento. Cuando se inserta un nuevo registro al archi-

vo, también se añade al archivo de desbordamiento. El registro del archivo principal que

Page 22: Sistema So Perati Vos

272 6.4. ORGANIZACIÓN LÓGICA Y FÍSICA

precede inmediatamente al nuevo registro según la secuencia lógica se actualiza con un

puntero del registro nuevo en el archivo de desbordamiento,si el registro inmediatamente

anterior está también en el archivo de desbordamiento se actualizará el puntero en el regis-

tro. Para procesar secuencialmente un archivo completo losregistros del archivo principal

se procesarán en secuencia hasta encontrar un puntero al archivo de desbordamiento, el

acceso continua en el archivo de desbordamiento hasta que encuentra un puntero nulo,

entonces renueva el acceso donde se abandonó en el archivo principal.

4. Archivos indexados.A los registros se accede solo a través de sus índices. No hay res-

ticción en la ubicación de los registros, al menos un índice contiene un puntero a cada

registro y pueden emplearse registros de longitud variable. Se suelen utilizar dos tipos de

índices, uno exhaustivo que contiene una entrada para cada registro del archivo principal

y se organiza como un archivo secuencial para facilitar la búsqueda, el otro índice es par-

cial que contiene entrada a los registros donde esté el campode interés. Con registro de

longitud variable, algunos registros no contendrán todos los campos y cuando se añade un

registro al archivo principal, todos los archivos de índices deben actualizarse.

5. Archivos directos o de dispersión.Explotan la capacidad de los discos para acceder

directamente a cualquier bloque de dirección conocida. Se requiere un campo clave en

cada registro. Los archivos directos son muy usados donde senecesita un acceso muy

rápido, donde se usan registros de longitud fija y donde siempre se accede a los registros

de una vez.

Desde el punto de vista del usuario la organización lógica dela mayoría de los sistemas

de archivos actual es a través de jerarquías y se les denominan carpetas, directorios o catálogos.

Cada directorio puede contener a su vez, más carpetas o archivos. Estas carpetas pueden contener

todavía más archivos y carpetas, y así sucesivamente. La cantidad de carpetas y archivos que

puede contener el sistema está limitado a la capacidad del medio de almacenamiento y a la

capacidad de direccionamiento del sistema operativo La estructura jerárquica permite mantener

organizados lógicamente los archivos y las carpetas.

6.4.2. Organización física

Los sistemas de archivos se guardan comúnmente en discos, aunque también ahora es posible

en una memoria flash portátil. En la sección 5.4.2 hicimos un resumen acerca de la organización

lógica de un disco y de cómo prepararlo para poder almacenar un sistema de archivos en él.

Ahora pasaremos a las técnicas que existen para lograr este objetivo. Recordando un poco, un

disco se puede dividir en los siguientes bloques básicos:

Page 23: Sistema So Perati Vos

CAPÍTULO 6. SISTEMAS DE ARCHIVOS 273

Figura 6.4: Vista de usuario del sistema de archivos

El registro Maestro de Arranque (MBR). Master Boot Recordsirve para arrancar la compu-

tadora.

Tabla de particiones. Viene al final del MBR y contiene la dirección inicial y final decada

partición. Una de las particiones de la tabla está marcada como activa.

Varias particiones primarias y lógicas. Pueden contener diferentes sistemas operativos o da-

tos.

Cuando el usuario enciende la computadora, después de realizar la verificación del hardware

buscará los dispositivos de arranque de acuerdo a la prioridad establecida en el BIOS. Una vez

que ha detectado que existe una unidad de arranque válida, leerá el MBR de esta unidad y lo

ejecutará. El programa alamacenado en el MBR, localiza la partición activa y lee entonces el pri-

mer bloque llamadobloque de arranquepara enseguida, ejecutarlo. El programa del bloque de

arranque carga el sistema operativo contenido en esa partición. Por cuestiones de uniformidad,

cada partición comienza con un bloque de arranque aunque no tenga un sistema operativo.

bloque de arranque Superbloque Admon. de espacio libre Nodos-i Dir. raíz Archivos y directorios

Figura 6.5: Organización del sistema de archivos en UNIX/Linux

Estas son las convenciones que la mayoría de sistemas operativos siguen. Después de ello, la

organización del sistema de archivos difiere. Por ejemplo, en los sistemas UNIX/Linux, existen

los elementos mostrados en la figura 6.5. Observe la presencia del superbloque. Aquí se guarda

Page 24: Sistema So Perati Vos

274 6.5. MECANISMOS DE ACCESO A LOS ARCHIVOS

información referente al tipo de archivos que existe en la partición, el número de bloques que

hay en el sistema de archivos y otros datos. Como esta información es muy importante varios

sistemas mantienen una copia de seguridad en diferentes bloques de la partición.

También hay un área reservada para administrar el espacio libre, el conjunto de nodos-i

almacenados en una estructura que permite conocer todo lo relativo al archivo. Existe una de

ellas por cada archivo, el directorio raíz que viene a ser la estructura más alta dentro de esa

partición y después los archivos y directorios que puede contener la partición.

6.5. Mecanismos de acceso a los archivos

Actualmente la mayoría de los sistemas operativos proporcionan una visión jerárquica de

directorios que contienen archivos y se sugiere que el usuario haga también un análisis ade-

cuado acerca de cómo almacenar sus archivos en carpetas de modo que éstos se encuentren

relacionados por medio de una o más características.

El sistema operativo mapeará los archivos lógicos vistos por el usuario a archivos físicos

almacenados en un disco duro, un CD-ROM o una memoria USB, haciendo transparente al

usuario el almacenamiento de sus archivos en cualquiera de estos y otros dispositivos, incluso,

en la mayoría de los sistemas actuales se permite el acceso remoto a directorios o archivos como

si estuvieran guardando información localmente. Desde el momento en que el usuario se conecta

con un servidor, éste le proporciona una interfaz idéntica acomo si estuviera trabajando local-

mente en el equipo remoto. Así, el usuario o las aplicacionesno se enteran, ni tienen por qué, de

cómo es que el sistema operativo hace las operaciones de entrada salida correspondientes, esto

es, si son realizadas en los dispositivos de entrada salida locales o en los remotos.

6.5.1. Métodos de Acceso

Los métodos de acceso dependen mucho del dispositivo de almacenamiento que se esté

usando. En general se cuentan con dos tipos de tecnologías dealmacenamiento:

Cintas Magnéticas. Éstas sólo permiten al acceso secuencial de los datos, pudiendo rebobi-

narse las veces que sea necesario para poder releer otro dato. La ventaja que tienen estos

dispositivos es su gran capacidad de almacenamiento en comparación con los discos y

su relación muy atractiva de costo/byte. Aunque esto está cambiando muy rápidamente a

favor de los discos.

Discos. Permiten el acceso directo a los discos con cierto tiempo de latencia en la recuperación

de la información, pero mucho más rápidos que el acceso a una cinta. También se incluyen

Page 25: Sistema So Perati Vos

CAPÍTULO 6. SISTEMAS DE ARCHIVOS 275

en esta categoría a las unidades de CD/DVD y a las memorias USBo pendrive.

Del funcionamiento de estos dispositivos se desprenden también los dos enfoques de acceso

a los archivos. El acceso secuencial y el acceso directo que analizaremos en las dos secciones

siguientes.

6.5.2. Acceso secuencial

Como se comentó, una cinta solamente puede entregar registros uno después de otro, sin po-

der regresar rápidamente a los registros leídos anteriormente, por ende el acceso secuencial solo

permite procesar registro por registro. El sistema operativo mantiene un apuntador de archivo

hacia el siguiente registro a leer. Si se hace una operación de escritura sucede algo similar: el

sistema operativo realiza la operación de escritura y mueveel apuntador de archivo hacia el si-

guiente registro. Si se encuentra al final del archivo, entonces apunta hacia el nuevo espacio que

puede ser ocupado por otro registro. En la figura 6.6 vemos cual es a estructura de un archivo en

cinta.

Figura 6.6: Archivo de acceso secuencial

6.5.3. Acceso directo o aleatorio.

El archivo se compone de registros de tamaño fijo lo que permite a las aplicaciones leer o

escribir información de ese mismo tamaño en cualquier lugarconcreto del archivo. Este método

Page 26: Sistema So Perati Vos

276 6.5. MECANISMOS DE ACCESO A LOS ARCHIVOS

aprovecha las ventajas de los discos que pueden escribir rápidamente información en un cilindro

dado, permitiendo así el acceso inmediato a cualquier bloque del archivo tanto para lectura como

para escritura.

En general un archivo se considera compuesto de varios bloques de tamaño fijo, por lo tanto,

las aplicaciones o el sistema operativo pueden acceder a cualquier registro en casi el mismo

tiempo, en comparación con los dispositivos de acceso secuencial. También es posible simular

en un dispostivo de acceso aleatorio el acceso secuencial, puesto que también es posible acceder

a los registros en el orden dado.

En la mayoría de los sistemas actuales están orientados a caracteres o bytes y a bloques. Por

lo tanto, el usuario debe de proporcionar el byte o el bloque al que desea acceder. Un disco o un

CD-ROM es común que guarde muchos archivos. El usuario entonces debe de proporcionar el

nombre al que desea acceder y el byte o número de bloque, refiriéndose a partir del byte cero

o al bloque cero del archivo en mención. El sistema operativotraducirá entonces el nombre del

archivo y el número de bloque a una dirección de número de pista y número de sector o de

cilindro para determinar su ubicación exacta dentro del disco. Al número de byte o bloque y

nombre del archivo se le denominanúmero de bloque relativo.

Un número de bloque relativo es un índice referido al comienzo del archivo. Entonces el

primer bloque relativo del archivo será 0, el siguiente 1 y así sucesivamente. El nombre del

archivo se busca en las entradas de directorio, en donde se encuentra almacenado el comienzo

verdadero en disco de ese archivo. Después de haber encontrado el comienzo real en el disco, el

sistema operativo añade el número de bloque solicitado por el usuario para formar su dirección

correcta. Algunos sistemas utilizan el cero como número de bloque inicial dentro del archivo,

mientras que otros utilizan el 1 como inicio del archivo.

Ahora supóngase que un usuario desea acceder al registroN de un archivo. Suponga también

que los registros tienen una longitud lógica deL. El sistema operativo traducirá esta petición en

una solicitud de entrada salida sonde se piden entoncesL bytes a partir de la ubicaciónL ∗ (N)

dentro del archivo. Como los registros lógicos son del mismotamaño, resulta sencillo realizar

operaciones de lectura escritura o borrar registros en cualquier parte del archivo.

El sistema operativo verifica también que el resultado anterior no exceda el tamaño espe-

cificado en la entrada de directorio. Si se excede, entonces generará un error de fin de archivo

alcanzadoEnd Of File (EOF). De esta forma se asegura que un usuario no acceda a otros

archivos para los cuales no tenga autorización.

Page 27: Sistema So Perati Vos

CAPÍTULO 6. SISTEMAS DE ARCHIVOS 277

6.5.4. Acceso a archivos por índice

Los manejadores de bases de datos utilizan algunos archivosespeciales llamados archivos de

índice los cuales relacionan un dato con una posición específica dentro del archivo, permitiendo

así un acceso extremadamente rápido cuando un usuario realiza búsquedas de datos. De esta

forma el manejador de bases de datos solamente realizará la búsqueda en el archivo índice el

cual es mucho más pequeño que la base de datos original, después que ha encontrado el dato

solicitado, leerá la posición del registro en disco y procederá a leerlo completo de disco para

ponerlo a disposición del usuario.

Figura 6.7: Ejemplo de archivo índice y archivo relativo

Como puede verse en la figura 6.7, el archivo índice tiene almacenados los apellidos de

algunas personas y en otro campo guarda la dirección del registro en donde se localiza toda la

información concerniente a esa persona. Con este método no es forzoso que el archivo relativo

se encuentre ordenado, puesto que es más fácil ordenar el archivo índice.

Un archivo relativo puede tener varios archivos índice asociados, lo que permite una gran

versatilidad al momento de hacer búsquedas. Es común en bases de datos utilizarcampos llave

para generar los archivos de índice. Es lógico que para poderusar un archivo de índice es ne-

cesario primero establecer el campo llave que va a utilizarse y entonces generarlo. Este proceso

de generación de archivos índice puede tardar mucho tiempo de acuerdo al tamaño del archi-

vo relativo. Una vez generado, los accesos serán mucho más rápidos por medio del archivo de

índice. Otro problema que debe tenerse en cuenta es que a medida que se agregue información

al archivo relativo, ésta no se refleja en el archivo índice, por lo que es necesario generarlo de

nuevo o implementar mecanismos que permitan la actualización simultánea de ambos archivos.

Page 28: Sistema So Perati Vos

278 6.6. MANEJO DE ESPACIO EN MEMORIA SECUNDARIA

6.6. Manejo de espacio en memoria secundaria

Después de que hemos visto la perspectiva del usuario, es momento de pasar a la perspectiva

del implementador. A los usuarios les interesa qué nombres tienen los archivos y qué operacio-

nes pueden realizar sobre ellos, les interesa también sabersi la estructura de directorios es de

tipo árbol y otros aspectos de interfaz. A los implementadores les interesa más qué técnicas y

estructuras de datos deben de usar para implementar lo más eficientemente posible el almacena-

miento de archivos en disco y la implementación de directorios, cómo administrar el espacio de

disco y como hacer que todo funcione de la forma más eficiente yconfiable posible.

6.6.1. Implementación de archivos

La tarea más importante que debe de controlar el sistema de archivos es conocer qué bloques

pertenecen a cada uno y proporcionar los mecanismos de lectura y escritura de los mismos. Para

proporcionar estas funcionalidades existen diferentes técnicas. A continuación daremos las más

comunes.

Asignación contigua. Es el esquema más sencillo. Se define el tamaño de bloque, que puede

ser ya sea por sector, o cluster que es lo más común. Ya definidoel tamaño de bloque, se divide el

tamaño total del archivo entre el tamaño de bloque y se asignaesa cantidad de bloques contiguos

para almacenar el archivo en disco. El sistema operativo registra los bloques asignados como

marcados e indica en la estructura de datos a qué archivo le pertenecen.

La asignación de espacio contiguo en disco tiene dos ventajas importantes:

1. Su implementación es sencilla por que para llevar el control solamente necesita registrar

dos datos: la dirección en disco del primer bloque y el númerode bloques con que cuenta el

archivo. Así es posible localizar cualquier bloque del archivo mediante una simple suma.

2. El desempeño de lectura es excelente porque puede leerse todo el archivo del disco en una

sola operación. Sólo se necesita posicionar el brazo en el primer bloque y los datos podrá

transferirse al máximo ancho de banda. (Lógicamente si el archivo es más grande que un

cilindro entonces necesitará reposicionarse el brazo en elsiguiente al siguiente).

El problema principal de esta técnica es que con el tiempo tiende a fragmentarse. La frag-

mentación significa que, a medida que se van añadiendo y eliminando archivos, puede llegarse

el caso en el que el número de bloques contiguos disponibles no sea suficiente para almacenar

archivos mayores que un bloque.

Page 29: Sistema So Perati Vos

CAPÍTULO 6. SISTEMAS DE ARCHIVOS 279

Vamos a poner un ejemplo de cómo es que se fragmenta un disco. Supóngase que el arreglo

de la figura 6.8 es el disco. Se define un tamaño de bloque de 10Kby que se necesitan hacer las

siguientes operaciones:

1. Escribir el archivoa de 20Kb.

2. Escribir el archivob de 15Kb.

3. Escribir el archivoc de 10Kb.

4. Borrar el archivob de 15Kb.

5. Escribir el archivod de 30 Kb.

6. Borrar el archivoc de 10Kb

7. Escribir el archivoede 40Kb.

a a b b c

a a c d d d

a a d d d e e e e

Figura 6.8: Fragmentación del disco con el almacenamiento secuencial

De acuerdo a las operaciones realizadas, cuando el disco está limpio se escribe sin ningún

problema los archivosa, b y el archivoc. Todos van en secuencia. Cuando se borra el archivob

queda un hueco de dos bloques. La siguiente petición, exige tres bloques libres para el archivod,

de modo que tiene que colocarse al final de los archivos en el espacio libre del disco. Enseguida

viene una petición de eliminación del archivoc de 10Kb. Como está junto con el archivo que se

borró elb tenemos ahora tres bloques libres. La última petición es la escritura del archivoe, pero

éste solicita cuatro bloques de modo que debe de escribirse de nuevo al final de los archivos en

el espacio libre.

Aunque en el ejemplo se observó que cuando se eliminan archivos que están juntos se crean

bloques más grandes, si las nuevas peticiones requieren aúnmás espacio, éstas deben de hacerse

al final de los archivos.

Page 30: Sistema So Perati Vos

280 6.6. MANEJO DE ESPACIO EN MEMORIA SECUNDARIA

A medida que trascurre el tiempo, se irán acumulando los huecos pequeños, evitando así

escribir archivos grandes aún cuando la suma de todos los huecos sea mayor al tamaño del

archivo que se desea escribir.

Por el problema de fragmentación es que esta técnica ya no se utiliza para la implementación

de sistemas de archivos aunque para el acceso a ellos es muy rápida, por que siempre podemos

acceder a ellos en una sola operación de lectura.

Asignación por lista ligada. Este método consiste en guardar el archivo como una lista ligada

de bloques de modo que cada palabra contenida al principio del bloque indique la posición del

siguiente. El resto del bloque es para datos.

Con este esquema, las entradas de directorio almacena solamente la dirección del primer blo-

que del archivo, siendo entonces más pequeñas. Otra ventajacon respecto a la técnica anterior

es que aquí se utilizan todos los bloques, por tanto no existefragmentación del del disco o frag-

mentación externa. Solamente existe fragmentación interna en el último bloque. La desventaja

es que el acceso a cada bloque implica la lectura del anterior, lo que hace a esta técnica dema-

siado lenta en operaciones de lectura/escritura debido al acceso aleatorio y al reposicionado de

las cabezas de lectura/escritura en busca de cada bloque delarchivo.

2

Bloque 0

8

−→ 13

Bloque 1

2

−→ 15

Bloque 2

13

−→ EOF

Bloque 3

15

Figura 6.9: Uso de listas ligadas de bloques de disco

Como puede verse, otro problema es que el acceso ya no puede hacerse directo. Esto es,

para que el sistema operativo pueda, por ejemplo, alcanzar el último bloque de un archivo es

necesario leern−1 bloques, para poder acceder al número de bloque final, por lo que se pierden

todas las ventajas que puede proporcionar el disco con acceso aleatorio. Otro problema con

este enfoque es que la cantidad de bytes almacenados en un bloque ya no es potencia de 2. La

mayoría de los programadores está acostumbrado a utilizar potencias de dos como tamaño de

bloque, de modo que el sistema operativo necesita concatenar dos bloques para dar la cantidad

de bytes solicitada, lo que disminuye el rendimiento del sistema debido a las operaciones de

copiado.

Estas desventajas pueden eliminarse sacando el apuntador de cada bloque de disco y colo-

cándolo en una tabla en memoria. En la figura 6.10 podemos ver cómo quedaría esta tabla para

el ejemplo de la figura 6.9.

Page 31: Sistema So Perati Vos

CAPÍTULO 6. SISTEMAS DE ARCHIVOS 281

Bloque Físico

0

1

2 13

3 8

4

5

6

7

8 2

9

10

11

12

13 15

14

15 EOF

←− Aquí empieza el archivo

Figura 6.10: Tabla de Asignación de Archivos

Con este enfoque los programadores pueden hacer uso de los bloques completos. El sistema

operativo tiene la opción de cargar la tabla de asignación dearchivos o FAT (File Allocation

Table) a memoria una sola vez, de modo que el acceso a ésta es muy rápido.

No obstante el problema de fragmentación sigue existiendo aunque a otro nivel. Cuando

el sistema operativo crea por primera vez un archivo, le asigna todos los bloques que necesita

y éstos será muy probable que estén juntos. A medida que se añaden y se eliminan archivos

pequeños y grandes, el sistema operativo empezará a asignarbloques, en donde quiera que

éstos se encuentren. Esto hace que con el tiempo sea más difícil acceder a cada bloque del

archivo, debido a que se tendrá que hacer nuevamente muchos reposicionamientos de las cabezas

lectoras/escritoras. Aunque el sistema puede acceder a todos los bloques, el tiempo de acceso a

los mismos se incrementará en la medida en que éstos se encuentren dispersos por todo el disco.

Los sistemas operativos de microsoft han venido arrastrando el problema de fragmentación

desde el sistema de discos MS-DOS. Aunque era difícil notarlo por la pequeña capacidad de

los discos. A medida que éstos fueron creciendo en capacidad, el problema se hizo mucho más

notorio.

El problema se agrava cuando el sistema operativo tiene que implementar el servicio de

memoria virtual, si éste no define una partición especial en disco. Para poner un ejemplo, los

sistemas operativos de Microsoft siguieron este enfoque. Los diseñadores, no creyeron necesario

tener una partición especial para intercambio a modo de no reducir el espacio útil en disco

duro del usuario. De esta forma, el sistema operativo sigue indicando al usuario que cuenta con

todo su espacio en disco duro, pero el sistema mantiene oculto un archivo de intercambio que

aumenta y disminuye de acuerdo al uso del sistema. Esto ocasiona que muchos bloques queden

reservados por el sistema de intercambio así, los archivos de usuario tienden a fragmentarse

más rápido de lo normal, siendo entonces obligatorio corrercada cierto tiempo una aplicación

Page 32: Sistema So Perati Vos

282 6.6. MANEJO DE ESPACIO EN MEMORIA SECUNDARIA

para defragmentar el disco duro que viene incluida en el propio sistema operativo o mediante

aplicaciones de terceros.

Otra desventaja de este método es que, para ganar la mayor velocidad posible, toda la tabla

debe de estar en memoria. Para discos pequeños, esto no es problema, pero para un disco de 80

GB con un bloques de 1 KB, la tabla necesitaría 80 millones de entradas. Si cada entrada necesita

tener un mínimo de cuatro bytes, entonces la tabla tendría 320 MB, lo que sería demasiado,

incluso para las computadoras actuales de 1 GB de memoria RAM.

Nodos-i. En este método se asocia a cada archivo una estructura de datos llamadanodos-io

nodos-índiceque contiene los atributos y direcciones en disco de los bloques de archivo. Dado

el nodo-i, es posible encontrar todos los bloques del archivo. La gran ventaja de este esquema

respecto a los métodos anteriores es que el nodo-i sólo tieneque estar en la memoria cuando

el archivo correspondiente está abierto. Si cada nodo-i ocupan bytes y no puede haber más de

k archivos abiertos al mismo tiempo, la memoria total ocupadapor el arreglo que contiene los

nodos-i de los archivos abiertos es de sólokn bytes.

Este arreglo, es mucho más pequeño que el que se utilizaría para mantener la tabla de asigna-

ción de archivos. La razón es simple. La tabla debe tener forzosamente un tamaño proporcional

al tamaño del disco. Si el disco tienen bloques, la tabla necesitan entradas. A medida que

aumenta el tamaño de los discos aumentará también la tabla enla misma proporción. En con-

traste„ el esquema de nodos-i requiere un arreglo en la memoria cuyo tamaño es proporcional al

número máximo de archivos que pueden estar abiertos a la vez.No tiene que ver el tamaño del

disco.

La estructura de un nodo-i la podemos ver en la figura 6.11. Como puede verse, en la es-

tructura se designa la primera parte del bloque para mantener los atributos del archivo, luego

se designan las primeras diez entradas para almacenar direcciones directas simples. Esto es,

almacenan direcciones de bloques de datos directamente.

La dirección de bloque de apuntadores se usa para extender lacapacidad de los apuntadores

directos simples. Estas entradas pueden ser:

Indirecto simple. Es aquella que reserva un bloque de disco para guardar direcciones de tipo

directo simple.

Indirecto doble. Señala un bloque que contiene direcciones de bloques de tipoindirecto simple.

Indirecto triple. Señala un bloque que contiene direcciones de tipo indirectodoble.

Este mecanismo puede extenderse hasta donde sea necesario de modo que puedan guardarse

archivos de tamaño arbitrario. Para hacerlo, simplemente hay que agregar a la tabla de la figura

Page 33: Sistema So Perati Vos

CAPÍTULO 6. SISTEMAS DE ARCHIVOS 283

Atributos del archivo

Dirección del bloque 0 −→

Dirección del bloque 1 −→

Dirección del bloque 2 −→

Dirección del bloque 3 −→

Dirección del bloque 4 −→

Dirección del bloque 5 −→

Dirección del bloque 6 −→

Dirección del bloque 7 −→

Dirección del bloque 8 −→

Dirección del bloque 9 −→

Dirección de bloque de apuntadores−→ Bloque con más direcciones

Figura 6.11: Estructura de un nodo-i

6.11 más entradas al final especificando el tipo de direccionamiento que manejará, pudiendo ser

incluso, indirecto cuádruple, quíntuple, ... hasta donde sea necesario.

Implementación de directorios. Hasta ahora hemos visto la forma en la que es posible ma-

nejar los archivos en disco. A partir de este momento pasaremos a ver cómo se implementan los

directorios.

Un archivo, debe tener un nombre y atributos que permitan indicar las operaciones que pue-

den llevarse a cabo sobre éste y los usuarios que están autorizados a efectuarlas. Para que un

archivo pueda ser utilizado, es necesario primeramente abrir el archivo. Para ello el usuario debe

proporcionar un nombre, ya sea por medio de una ruta absolutao una relativa. Con esta infor-

mación, el sistema operativo localizará la entrada de directorio correspondiente y comenzará a

efectuar las operaciones solicitadas.

De acuerdo a la técnica de manejo de archivos utilizada la información obtenida de la entrada

de directorio puede variar. Por ejemplo, puede proporcionar el bloque inicial y final si es que se

usa asignación contigua o el primer bloque si el esquema es detipo FAT o nodo-i. En todos los

casos la principal función del sistema de directorios es estableces una correspondencia entre el

nombre de archivo ASCII y la información necesaria para localizar los datos.

Un aspecto muy importante es la manera en la que se relacionanlos atributos con los archivos

y las entradas de directorio, su dueño, la fecha y hora de creación. Muchos sistemas lo hacen en

las entradas de directorios.

La primera opción es usar una estructura de datos con entradas de tamaño fijo, una por cada

Page 34: Sistema So Perati Vos

284 6.6. MANEJO DE ESPACIO EN MEMORIA SECUNDARIA

archivo, que contiene un nombre de archivo de longitud fija, una estructura con los atributos del

archivo y una o más direcciones de bloques que indica en qué posición en disco se encuentra el

archivo.

En la figura 6.12 vemos cómo pueden distribuirse estos datos en la estructura de datos de

entradas de tamaño fijo.

nombres.txt atributos Bloque inicial

cuentas.dat atributos Bloque inicial

muebles atributos bloque inicial

Figura 6.12: Implementación de directorio con entradas de archivo fijas

El manejo de la estructura presentada en la figura 6.12 es muy fácil de implementar pero tiene

muchos inconvenientes. El primero de ellos es que por ser losnombres demasiado cortos llegan

a ser poco descriptivos, lo que dificulta la búsqueda de éstospor el usuario. Otro problema es el

manejo de subdirectorios que deben de implementarse de otraforma para mantener la estructura

coherente.

En los sistemas que usan nodos-i, se utiliza la misma lista, pero la diferencia es que ahora

usan uno o más nodos-i para guardar la información referentea los atributos en lugar de hacerlo

en las entradas de directorio. De esta forma, la entrada de directorio puede ser más corta: se

incluye solamente el m¿nombre de archivo y un número de nodo-i. En la figura 6.13 vemos

cómo se organiza esta estructura.

nombres.txt

cuentas.dat

muebles

−→

−→

−→

տ

Estructura de

datos con

atributos.

Figura 6.13: Implementación de directorios con nodos-i

Page 35: Sistema So Perati Vos

CAPÍTULO 6. SISTEMAS DE ARCHIVOS 285

Este enfoque permite organizar lógicamente directorios, subdirectorios y archivos en una

misma estructura diferenciando a un directorio de un archivo con un bit en especial, de manera

que ahora un nodo-i puede contener ya sea datos de un archivo oun nuevo directorio con una

estructura similar.

En la actualidad la mayoría de los sistemas operativos manejan nombres largos, con un

máximo de 255 caracteres para el nombre de un archivo. Para implementar esta facilidad, se

pueden utilizar también entradas de directorio fijas, pero esto implicaría un gran desperdicio de

almacenamiento puesto que no todos los archivos tendrían esa cantidad de caracteres.

Otra opción es utilizar un enfoque en el cual cada entrada de directorio tenga una parte

fija correspondiente a los atributos, fecha de creación y propietario. Otra parte variable que

corresponde al nombre del archivo que puede tener cualquierlongitud de caracteres. El nombre

de archivo termina con el caracternulo o NULL que está indicado por el valor 0 en la tabla de

caracteres ASCII. El problema con este enfoque es que cuandose borra una entrada de directorio

quedará entonces un hueco en donde posiblemente no haya espacio para la siguiente entrada de

directorio, pero existe la posibilidad de compactarlo, porestar la estructura de directorios en

memoria.

El último esquema de manejo de las entradas de directorio, esmediante el uso delheap.

Cada entrada de directorio cuenta entonces con un apuntadorque indica el principio del nombre

del archivo en un lugar denominadomontón o heap. El heap es un lugar en memoria en donde

se encuentran almacenados todos los nombres del archivo separados solamente por un caracter

especial. Comúnmente el caracternulo o NULL que está indicado por el valor 0. De esta forma,

cuando se elimina un archivo, en la lista de directorios queda un hueco de tamaño variable en

donde tal vez no quepa la entrada del siguiente archivo, peroahora sí es factible compactar

puesto que la lista de directorios se encuentra en memoria o en su defecto puede hacerse cuando

se apaga, se inicia el sistema o en momentos en donde la carga del sistema sea muy baja, por

ejemplo, en la noche.

Observe en el ejemplo de la figura 6.15 que el apuntador al nombre del archivo1 contiene el

valor 0 lo que indica que el nombre empieza en la posición cero delmontón. Observe también

que el el apuntador al nombre del archivo 2 contiene el valor de 30, lo que indica que ese

nombre empezará a partir de la posición treinta delmontón. Recuerde también que los nombres

de archivo terminan con un caracter especial, en este caso sigue siendo el caracter cero, nulo o

NULL. representado por el símbolo de⊠.

En todos los esquemas de manejo de directorios vistos hasta ahora, la búsqueda de nombres

se hace recorriendo toda la lista linealmente hasta encontrarlos. Un método más eficiente podría

ser el uso de tablashashpara acelerar la búsqueda. En una tabla hash se asigna un valor llamado

claveo llave que se calcula a partir del nombre del archivo. El cálculo puede realizarse convir-

Page 36: Sistema So Perati Vos

286 6.6. MANEJO DE ESPACIO EN MEMORIA SECUNDARIA

Entrada

para un

archivo

Longitud de entrada

del archivo1

Atributos del archivo1

c o n t a b

i l i d a d

- - f i n a

n c i e r a

- r e a l ⊠

Longitud de entrada

del archivo2

Atributos del archivo2

v e n t a s

- d e l - m

e s ⊠

Longitud de entrada

del archivo3

Atributos del archivo3

v e n t a ⊠

.

.

.

Figura 6.14: Estructura de directorios incorporados

tiendo los caracteres a sus valores ASCII y, por ejemplo, sumarlos y luego hacer una división

entre un número impar. La tabla consistirá entonces enn-1 entradas donde cada una contendrá

un nombre. Bajo este esquema es necesario manejar lascolisiones. Una colisión sucede cuando

al calcular el valor llave de algún nombre éste ya ha sido ocupado por otro, por lo tanto, esa

posición no puede ser asignada al nuevo nombre. Una forma de solucionar este problema es me-

diante el uso de listas simplemente ligadas, de modo que si esa posición de la tabla está ocupada,

entonces se crea un nuevo nodo de lista y éste se liga a la posición ya ocupada. Esto permite que

siempre haya lugar en la lista no importando cuántas veces haya sido ocupada esa llave. Este

esquema combina la fortaleza de la búsqueda por llaves y una ligera búsqueda lineal dentro de

la lista simplemente ligada.

El problema de este enfoque es que si está mal diseñado el cálculo de las llaves entonces la

tabla hash puede degenerar en una sola o muy pocas listas simplemente ligadas perdiéndose las

Page 37: Sistema So Perati Vos

CAPÍTULO 6. SISTEMAS DE ARCHIVOS 287

Entrada

para un

archivo

00

06

12

18

24

30

36

42

48

Apuntador al

nombre de archivo1 (00)

Atributos del archivo1

Apuntador al

nombre de archivo2 (30)

Atributos del archivo2

c o n t a b

i l i d a d

- - f i n a

n c i e r a

- r e a l ⊠

v e n t a s

- d e l - m

e s ⊠ v e n

t a ⊠

.

.

.

Figura 6.15: Uso de heap de entradas de directorio

ventajas de la tabla hash.

6.6.2. Servidor de archivos

Dentro de los servicios que proporciona un sistema operativo está el de proporcionar al

usuario los medios adecuados para poder hacer uso de sus archivos. Hasta ahora hemos tratado

solamente la forma de implementar el sistema de archivos analizando los enfoques más comu-

nes. En esta sección nos dedicaremos a otro aspecto muy importante sobre las distintas formas

de presentar al usuario los archivos con los que puede trabajar.

También ahora es común que no sólo los usuarios tengan accesoa un servidor de archivos,

si no que lo hagan directamente algunos programas de computadora como los navegadores que

necesitan acceder a información concerniente a la dirección en la que se encuentra almacenada

alguna página de internet.

Ahora pasaremos a una rápida explicación de un servidor de archivos.

Page 38: Sistema So Perati Vos

288 6.6. MANEJO DE ESPACIO EN MEMORIA SECUNDARIA

Sobre las implementaciones de los sistemas de archivos a nivel de usuario, el sistema ope-

rativo debe de ser capaz de proporcionar diferentes formas de acceder a los archivos que han

sido guardados en el disco duro. Desde los comienzo de la computación ha sido necesario per-

mitir a un usuario acceder a sus archivos de forma remota vía terminal o por medio de otras

computadoras.

Un servidor de archivos entonces será aquella computadora que sea capaz de proporcionar

acceso a los archivos guardados en algún medio de almacenamiento masivo como un disco duro,

una cinta, un DVD o algún otro a uno o varios usuarios. Entonces en general podemos decir que

cualquier computadora es un servidor de archivos. Cuando las redes de computadoras personales

hicieron su aparición se modificó un poco esta definición. Se excluyen aquellas computadoras

que solamente dan servicio a un solo usuario y se reemplaza por aquellas que pueden propor-

cionar el servicio de archivos a más de un usuario a la vez. Aunque una computadora personal

puede proporcionar archivos a muchos usuarios, debe hacerlo de forma secuencial, éstos so-

lamente pueden usarla un usuario a la vez. Una computadora que es capaz de proporcionar el

servicio de archivos a más de un usuario al mismo tiempo se le denominaservidor de archivos

Actualmente se ha afinado aún más la clasificación de servidores de acuerdo al tipo de servicios

que manejan y podemos encontrar las siguientes:

1. Servidor de archivos.Proporciona servicios de archivos a usuarios de la red.

2. Servidor de Aplicaciones.Proporciona ejecución de aplicaciones locales o remotas a

usuarios de la red.

3. Servidor de bases de datos.Proporciona servicio de bases de datos.

4. Servidor de nombres de dominio.Llamado también DNS (Domain Names Server) Es

aquel que proporciona la traducción de un nombre de dominio,por ejemplo:

www.itapizaco.edu.mx

por su correspondiente dirección IP. Para el caso anterior correspondería a: 148.208.224.1.

5. Servidor de correo.Proporciona servicio de correo electrónico a sus usuarios ya sea local

o de red internet.

6. Servidor FTP. (File Transfer Protocol) Servidor de archivos en red.

7. Servidor de impresión.Proporciona servicios de impresión vía red local o remota.

8. Servidor de juegos.Permite que varios usuario se conecten vía red y compartan los mis-

mos escenarios de un juego, es posible hacer alianzas, comerciar, pagar tributos o inter-

cambiar recursos.

Page 39: Sistema So Perati Vos

CAPÍTULO 6. SISTEMAS DE ARCHIVOS 289

9. Servidor de noticias.Proporciona automáticamente las noticias actualizadas a sus usuario

suscritos.

10. Servidor proxy. Permite compartir la red internet a varios usuarios con una sola salida

a internet. Restringiendo o privilegiando a distintos usuarios de acuerdo a las pautas del

administrador.

11. Servidor telnet. Servicio de conexión de terminal en el servidor para la ejecución de

aplicaciones, tiene el problema de que envía las contraseñas sin cifrar de modo que pueden

ser “vistas” por terceros.

12. Servidor WEB. El servidor de páginas WEB proporciona los archivos en formato html

para que sean interpretados por el navegador WEB del usuario.

A continuación detallaremos un poco más aquellos que consideramos más importantes.

6.6.2.1. Servidor de archivos

Es aquella computadora que permite la conexión de varios usuarios permitiéndoles las ope-

raciones comunes de archivos. Es posible también que aplicaciones remotas hagan uso de los

archivos locales con los que cuenta el servidor. La mayoría de las veces no permite la ejecución

de aplicaciones en el servidor.

Una definición sencilla puede ser: un servidor de archivos esuna computadora que almacena

diferentes tipos de archivos y los pone a disposición de varios clientes de la red simultáneamente.

Básicamente cualquier servidor puede funcionar como servidor de archivos.

Algunos protocolos que suelen utilizarse en servidores de archivos son:

1. NETBEUI. Protocolo usado por MS-DOS y Windows para compartir archivos vía red.

2. NetWare IPX/PSX. Protocolo usado por Novell para compartir archivos en la red.

3. SMB/CIFS. Protocolo de sistemas de archivos de red para Windows.

4. Samba.Usado por Unix/Linux para compartir información con Windows.

5. NFS.network File System.

6. TCP/IP. (Transfer Control Protocol/Internet Protocol). Es el protocolo de la red por exce-

lencia y va ganando terreno frente a los otros convirtiéndose poco a poco en el estandard

de redes de computadoras. Bajo este protocolo pueden encapsularse varios de los mencio-

nados en los puntos anteriores, haciéndoles fácilmente compatibles. Esto se hace mediante

Page 40: Sistema So Perati Vos

290 6.6. MANEJO DE ESPACIO EN MEMORIA SECUNDARIA

una técnica conocida comotúnelque permite empaquetar esos protocolos en datagramas

de tipo TCP/IP.

Existen varios protocolos más de comunicación que pueden encontrarse en la literatura de

redes de computadoras.

6.6.2.2. Servidor de aplicaciones

Es una especialización de los servidores de archivos. La diferencia radica en que el sistema

operativo proporciona archivos ejecutables para que el usuario pueda hacer sus tareas. La ejecu-

ción puede ser ya sea local o remota. La mayoría de las veces elservicio se complementa con el

servidor de archivos de modo que el usuario puede ejecutar laaplicación en el servidor mismo

haciendo uso de los archivos que están también en éste. (Application server). Tipo de servidor

que permite el procesamiento de datos de una aplicación de cliente.

Las principales ventajas de la tecnología de los servidoresde aplicaciones es la centralización

y la disminución de la complejidad del desarrollo de aplicaciones, dado que las aplicaciones no

necesitan ser programadas; en su lugar, estas son ensambladas desde utilerías que se encuentran

en el servidor de aplicaciones.

Aunque es aplicable a todas las plataformas, actualmente eltérmino es prácticamente un

sinónimo de la plataforma J2EE de Sun Microsystems. De todasmaneras, abarca servidores

de aplicaciones basadas en web, como plataformas para el comercio electrónico, sistemas de

administración de contenido o creadores de sitios web.

Ventajas de los servidores de aplicaciones.

1. Integridad de la información y código de programas.Al haber administración centra-

lizada en una o pocas computadoras, las actualizaciones se efectúan de manera rápida y

estarán disponibles automáticamente para todos los usuarios del sistema. No hay riesgos

de mezcla de versiones antiguas con nuevas. El código no puede ser alterado por terceros.

Los datos al estar centralizados se actualizan en un solo lugar proporcionando información

actualizada a todos los usuarios.

2. Administración centralizada. Los cambios realizados en los archivos de configuración

de las aplicaciones se reflejarán inmediatamente a todos losusuarios, de manera que no se

necesita recorrer toda el área de una empresa para realizar los cambios.

3. Seguridad. Para poder acceder al servidor el usuario debe de autenticarse. Además las

aplicaciones las proporciona el propio servidor haciendo uso de certificados para poder

Page 41: Sistema So Perati Vos

CAPÍTULO 6. SISTEMAS DE ARCHIVOS 291

autorizar su ejecución o uso de los archivos de datos del sistema, por lo tanto se consideran

más seguras.

4. Desempeño.Al limitar el tráfico de la red solamente a la visualización deresultados,

bajo el modelo cliente/servidor el usuario solamente enviará sus consultas y recibirá sus

resultados siendo éstos calculados por el servidor logrando así un excelente desempeño

de grandes aplicaciones.

6.6.2.3. Servidor de bases de datos

Un servidor de base de datos es un caso particular de un servidor de archivos. Es un programa

que provee servicios de base de datos a otros programas u otras computadoras, basándose en el

modelo cliente-servidor. Puede hacer referencia a aquellas computadoras dedicadas a ejecutar

los programas llamados manejadores de bases de datos. Esto es, proporciona los mecanismos de

acceso es un manejador de bases de datos que se ejecuta sobre las funciones básicas del servidor

de archivos. El acceso puede ser local o remoto.

Los sistemas de administración de base de datos (SGBD) generalmente proveen funcionali-

dades para servidores de base de datos, en cambio otros (comopor ejemplo, MySQL) solamente

proveen construcción y acceso a la base de datos.

6.6.2.4. Servidor de páginas WEB

Es un servidor que proporciona servicios concernientes a laWWW. Existen dos tipos:

1. Sitios de Intranets.Son aquellos sitios WEB diseñados exclusivamente para el flujo de

información corporativa dentro de una empresa.

2. Sitios de Internet.Son aquellos que se encuentran disponibles para todo el mundo, siendo

necesario contar con al menos un servidor de nombres de dominio, un servidor de páginas

WEB y un servidor de correo electrónico opcional.

Se deben tener al menos una computadora con conexión a internet, y se debe contar con un

conjunto de programas básicos para dar servicio WEB. Existen básicamente dos tipos de páginas

WEB que se manejan actualmente:

Páginas estáticas.Las páginas estáticas son aquellas que se diseñan una sola vez y que

son actualizadas manualmente.

Páginas dinámicas.Son aquellas generadas vía algún lenguaje de programación WEB

como PHP o java en combinación con manejadores de bases de datos, lo que permite la

actualización dinámica o en tiempo real de las mismas.

Page 42: Sistema So Perati Vos

292 6.6. MANEJO DE ESPACIO EN MEMORIA SECUNDARIA

6.6.3. Seguridad en los archivos

La seguridad de los archivos se refiere tanto al hecho de impedir que personas no autorizadas

accedan a su información como a posibles desastres que inutilicen al sistema de archivos. La

destrucción de un archivo, es problemático. La destrucciónde todo el sistema de archivos es

un desastre. Incluso si se daña la computadora, ésta puede reemplazarse sin muchos problemas.

Pero cuando se daña el sistema de archivos, hay muy poco por hacer. Es posible también intentar

recuperar la tarjeta de interfaz del disco duro siempre y cuando los platos magnéticos no tengan

problema.

Si se pierde en forma definitiva el sistema de archivos, independientemente de fallo del

hardware o por algún problema de software, la recuperación de la información será un proceso

muy largo, difícil y muchas de las veces será imposible. La pérdida de información es algo que

debe de enfrentar todo profesionista que use una computadora.

Aunque el sistema de archivos no podrá nunca prever desastres naturales o daños imprevistos

del hardware, sí puede ayudar a proteger la información de diversas maneras.

Los discos flexibles pasan el control de calidad sin mucho problema, pero a través del uso

y debido a que las cabezas de lectura escritura tienen contacto físico con la superficie, si éstas

bajan un poco más de lo debido pueden causar rayaduras en su superficie. Incluso, si el propio

empaque del disco baja por causa de un golpe o por haber soportado un peso excesivo, puede

causar también rayaduras que dañen a uno o más sectores.

Es posible también que bajo la presencia de un campo relativamente débil, durante mucho

tiempo podría ocasionar la pérdida de algunos sectores o de todo el sistema de archivos conte-

nido en éste.

Se sabe que ha habido discos que han soportado mucho peso y campos magnéticos intensos,

pero cuando se trata de información importante, no está demás considerar un cuidado adecuado

con sentido común de los discos.

Los discos duros, tienen un promedio de vida que va de los cuatro a los cinco años sin pre-

sentar algún problema. Algunos durarán mucho más. No obstante, aunque nuestro disco duro no

reciba golpes, puede, por el uso continuo empezar a presentar problemas de lectura o escritura.

Aunque el controlador de disco puede manejar los sectores defectuosos o marcarlos para

que no se usen, existen otras técnicas que se pueden emplear para mantener segura nuestra

información. En la siguiente sección mencionaremos algunos mecanismos de protección que

todo profesionista de la información debe de conocer.

Page 43: Sistema So Perati Vos

CAPÍTULO 6. SISTEMAS DE ARCHIVOS 293

6.6.3.1. Seguridad en el acceso a los archivos y directorios

Actualmente es una necesidad la protección de la información para impedir que personas no

autorizadas accedan a información privilegiada.

El sistema operativo debe proporcionar los mecanismos básicos que permitan asegurarse que

los archivos deben ser leídos solamente por aquella personaque lo creó y por los que hayan sido

autorizados expresamente por el propietario.

En los sistemas basados en UNIX y en GNU/linux, la seguridad en el acceso a los archivos

está implementada mediante el uso de tres campos en la entrada de directorio bajo la siguiente

estructura:

1. El primer campo define los permisos de acceso del propietario del archivo o directorio.

Por omisión tiene los permisos de lectura, escritura y ejecución o acceso al directorio.

2. El segundo campo define los permisos de grupo. Estos los puede definir, ya sea el propie-

tario del archivo o en su defecto el administrador del sistema.

3. El tercer campo define los permisos de todo el mundo. Esto es, cualquier persona que tenga

contacto con el archivo o directorio puedeejercer los permisos que tenga esta sección.

En la tabla 6.2 vemos cómo están definidos.

drwxr-xr-x 2 nalonzo nalonzo 4.0K 2008-01-18 06:47 figuras

-rwxr-xr-x 1 nalonzo nalonzo 154K 2008-01-21 06:22 introduccionSO.tex

-rwxr-xr-x 1 nalonzo nalonzo 17K 2008-01-21 18:01 introduccion.tex

-rw-r–r– 1 nalonzo nalonzo 80K 2001-05-20 16:12 LETRACD.GIF

-rw-r–r– 1 nalonzo nalonzo 16K 2001-05-20 15:52 PART1.GIF

-rw-r–r– 1 nalonzo nalonzo 821 2008-01-15 09:12 portada.tex

Tabla 6.2: Una entrada de directorio tradicional de UNIX, GNU/Linux

La primera columna establece los permisos y está dividida encuatro partes. La primera

indica el tipo de entrada. por ejemplo, para la primera líneatenemos que es una entrada de

directorio. Luego vienen tres grupos escritos de la forma rwx. El guión significa que no se tiene

asignado ese permiso. La siguiente columna indica el númerode enlaces que tiene, luego el

nombre del propietario, el del grupo al que pertenece, el tamaño (en bytes), una marca de tiempo,

y el nombre del archivo. La marca de tiempo que se visualiza esla de la última modificación.

Para archivos especiales de dispositivo el campo de tamaño se reemplaza normalmente por los

números de dispositivo mayor y menor.

Page 44: Sistema So Perati Vos

294 6.6. MANEJO DE ESPACIO EN MEMORIA SECUNDARIA

El significado de las rwx es el siguiente:

1. r. Se tiene permiso de lectura sobre el archivo o directorio.

2. w. Se tiene permiso de escritura sobre el archivo directorio.

3. x. Tiene dos significados:

Si es un archivo, indica que éste se puede ejecutar.

Si es un directorio, indica que se tiene permiso para entrar aél y mostrar sus conte-

nidos.

En un sistema basado en Windows o en un entorno gráfico de UNIX,GNU/Linux, los permi-

sos se pueden modificar abriendo el menú secundario de un archivo o directorio (normalmente,

se selecciona y se da click derecho), entrar en la opción de propiedades y de ahí a la pestaña o

al botón de permisos.

En ambos sistemas se tiene una opción para ocultar los archivos. En los sistemas basados

en UNIX, los nombres de archivos empiezan con un punto. En losbasados en Windows existe

como un atributo. A nivel consola, en UNÍX, GNU/Linx tenemoslas órdeneschmod y chown

que permiten cambiar atributos y propietario. En Windows tenemos la ordenattrib .

La otra opción para el control de accesos es mediante las ACL(Access Control List) o listas

de control de acceso. Con el esquema anterior es difícil y a veces imposible lograr todas las

exigencias de permisos requeridos por varios usuarios sobre un mismo directorio o archivo. Las

listas de control de acceso permiten un control extremadamente flexible, permitiendo asignar

todos los permisos mencionados anteriormente, incluso, sepueden determinar fechas y horas de

acceso específicas a las que puede acceder al archivo o directorio un usuario dado.

Tanto los sistemas basados en UNIX como los basados en windows a partir de windows NT

con NTFS implementan esta facilidad.

Las ACL no pueden ser usadas en los sistemas windows que haganuso del sistema de archi-

vos FAT16 o FAT32, por que no están diseñadas para este propósito. Esto significa que cualquier

usuario que tenga acceso a la computadora podrá leer sin ningún problema cualquier tipo de in-

formación que se encuentre en esa computadora. Por lo tanto,si se cuenta con información que

debe ser exclusiva de algún usuario, lo mejor es hacer uso de un sistema de archivos que las

soporte, de otra forma debe de utilizarse algún mecanismo deincriptación de ello hablaremos

en la sección 7.7 en la página 345.

Page 45: Sistema So Perati Vos

CAPÍTULO 6. SISTEMAS DE ARCHIVOS 295

6.7. Modelo jerárquico

Hasta ahora nos hemos dedicado a analizar los tipos de archivos. A partir de este momento

trataremos lo concerniente a los directorios. Un directorio es un archivo especial que permite

mantener una agrupación lógica de archivos o directorios que están relacionados o que tienen

algo en común. por ejemplo, un usuario puede crear un directorio con su nombre y ubicar ahí los

archivos de uso personal. A su vez dentro de este directorio puede crear otros para clasificar sus

vídeos, sus fotos, los archivos de texto y sus archivos de música, de manera que sea más fácil

encontrar aquella información que requiere de una forma másrápida.

Los directorios pueden implementarse de varias formas. Dentro de éstas tenemos las siguien-

tes.

Directorios de un solo nivel. Es la forma más sencilla de guardar los archivos. También se

le conoce comodirectorio raíz , pero como es el único, el nombre no importa. Cuando

empezaron a surgir las primeras computadoras personales era común este tipo de organi-

zación, debido a que los discos eran de poca capacidad y por que la mayoría de las veces

solamente podía trabajar olamente un usuario. Si la computadora se compartía entonces

cada usuario portaba su información en un disco flexible e incluso transportaba también

su propio sistema operativo de disco. También existieron computadoras multiusuario que

utilizaron este tipo de estructura de directorio. por ejemplo, la primer supercomputadora la

CDC 6600, tenía solamente un directorio que compartían todos los usuarios. El problema

de usar un solo directorio es que es posible que varios usuarios intenten usar un mismo

nombre para archivos diferentes causando incluso pérdida de información al sobreescribir

un archivo existente de forma accidental. También otro problema inherente es la poca or-

ganización del sistema de archivos. Con el tiempo se vuelve difícil y complicado navegar

a través de muchos archivos que no tienen que ver con los que realmente usa algún usuario

determinado. Por estas y otras razones actualmente ya no se usan.

Directorios de dos niveles.Mediante el uso de esta organización de directorios, no importa que

varios usuarios escojan el mismo nombre para diferentes archivos. Estos son identidades

diferentes por el simple hecho de estar almacenados en directorios distintos. De esta for-

ma proporcionando a los usuarios directorios privados, el usuario es libre de asignar los

nombres que desee sin preocuparse por los demás usuarios. Bajo Este esquema, tendremos

entonces el directorio raíz, después tendremos los directorios privados de los usuarios y

dentro de ellos los archivos de cada uno.

Sistemas de directorios jerárquicos.Es la organización que usan la mayoría de los sistemas

operativos actuales. En esta tenemos a nuestro directorio raíz, después tenemos los direc-

Page 46: Sistema So Perati Vos

296 6.7. MODELO JERÁRQUICO

torios privados de los usuarios y éstos también tienen el permiso de crear a su vez tantos

subdirectorios como crean necesario para organizar sus archivos. De esta manera se crea

un árbol de directorios y el sistema operativo proporciona un conjunto de órdenes para

poder navegar a través de ellos, basándose también en los permisos adecuados de acceso.

Figura 6.16: Ejemplo de directorio tipo árbol

Cuando el sistema de archivos está organizado como árbol de directorios, es posible acceder

a diferentes archivos, ya sea entrando primeramente a cada uno de ellos, o haciendo uso de la

ruta completa para referenciar el archivo. A esta ruta se le denominanombre de ruta. El nombre

de ruta especifica a qué directorios se deben de acceder primeramente para poder hacer uso de

un archivo. El nombre del archivo va al final del nombre de ruta. Los sistemas UNIX/Linux

utilizan la “/” como separador de directorios y de archivo. Los sistemas basados en Windows

usan la barra invertida\ para esa función. Laruta absoluta se especifica a partir del directorio

raíz. En la tabla 6.3 tenemos algunos ejemplos de rutas absolutas.

Windows \sistemas\vídeo

UNIX/Linux /home/nalonzo/sistemas

MULTICS >usr>datos

Tabla 6.3: Rutas absolutas en UNIX/Linux, Windows y MULTICS

Observe cómo éstas se especifican desde el directorio raíz, esto significa que deberán empe-

zar, por ejemplo en windows con un\ y en UNIX/Linux con una /.

Las rutas relativas son aquellas que no llevan al principio el \ o la /. Esto hará que el sistema

operativo empiece a buscar en el directorio actual el nombredel directorio o el archivo que se

desea. En la tabla 6.4 tenemos algunos ejemplos de rutas relativas.

La ruta relativa también está relacionado con el concepto dedirectorio de trabajo o direc-

torio actual. El usuario puede especificar tanto para el sistema operativo como para la mayoría

Page 47: Sistema So Perati Vos

CAPÍTULO 6. SISTEMAS DE ARCHIVOS 297

Windows documentos\datos

UNIX/Linux documentos/dato

Tabla 6.4: Ejemplos de rutas relativas

de las aplicaciones en qué directorio desea que se ubique después de que éstas empiezan a eje-

cutarse.

Vamos a suponer que tenemos un archivo llamado datos en el directorio /home/documentos,

De acuerdo a lo visto anteriormente tenemos dos maneras de hacer referencia a éste:

Mediante ruta absoluta: less /documentos/datos

Mediante ruta relativa:

• cd /documentos

• less datos

Observe que cuando usamos la ruta relativa ha sido necesarioubicarse primeramente en el

directoriodocumentosel directorio actual o directorio de trabajo. Después de esto se puede

acceder al archivo sin la ruta.

La mayoría de los sistemas operativos actuales permiten establecer rutas por omisión, de ma-

nera que si se hace referencia relativa a un programa o a un archivo, el sistema empieza a buscar

en el directorio de trabajo o directorio actual. Si no lo encuentra empezará entonces a buscar en

las rutas establecidas por defecto. Es común que estas rutaspor defecto estén almacenadas en las

variables de entorno. Muchas aplicaciones establecen variables de entorno de manera que pue-

dan localizar los archivos necesarios para su ejecución. Una variable de entorno es aquella que

se inicializa desde un archivo de configuración momentos después de que se inicia el sistema

operativo o que puede ser definida por el usuario en tiempo de ejecución.

Existen dos nombres de directorios especiales que son muy útiles para hacer referencia a

otros directorios. Estos son el nombre de directorio “.” y elnombre de directorio “..”, llamados

directorio “punto” y directorio “punto punto”. El directorio “.” hace referencia al directorio de

trabajo actual. y el directorio “..” hace referencia al nombre del directorio padre. De esta forma

si estamos haciendo uso de la orden “cd”Change Directoryy deseamos subir al directorio padre

tenemos que ejecutar la instrucción.

cd ..

si se ejecuta la instrucción

cd . el sistema operativo no hará nada(estamos en el directorio actual).

Page 48: Sistema So Perati Vos

298 6.7. MODELO JERÁRQUICO

En los sistemas UNIX/Linux para regresar inmediatamente aldirectorio de trabajo por de-

fecto se usa la orden cd sin ningún parámetro.

Operaciones con directorios Las operaciones más comunes que podemos realizar sobre los

directorios son las siguientes:

1. Crear. Se crea un directorio vacío. Automáticamente se crean dentro de él los nombre de

directorio especiales de “.” y “punto punto” Un directorio que solamente contiene estos

directorios se considera vacío.

2. Borrar. Permite eliminar un directorio. El directorio debe de estarvacío o en su defecto

algunos sistemas solicitan un parámetro adicional para asegurarse de que eso es lo que

quiere en realidad el usuario.

3. Abrir directorio. Se comentó que un directorio es un caso especial de archivo, por lo

tanto, también es posible abrir un directorio y leerlo el resultado será todos los nombres

de archivo y directorios que contenga.

4. Cerrar directorio. Una vez que se ha leído un directorio, éste debe cerrarse, puesto que

es un caso especial de archivo . Esto permite guardar los cambios hechos en la estructura

de directorios a disco y lleguen a ser permanentes.

5. Leer directorio. Una llamada de este tipo devuelve la siguiente entrada de un directorio

abierto.

6. Renombrar directorio. Esta operación permite cambiar el nombre al directorio, como a

cualquier otro archivo normal.

7. Enlace de directorio.Esta operación permite a un archivo o a un directorio aparecer en

más de un directorio, sin duplicar la información, esto se hace comúnmente incrementando

el nodo-i correspondiente al archivo o directorio para indicar al sistema operativo que éste

se encuentra en otro lado además de su ubicación normal. Hay que observar nuevamente

que en “el otro lado” solamente se encuentra el nombre del archivo. El enlace permite

acceder a él como si realmente fuera un archivo local.

8. Desligar. Esta operación permite eliminar la entrada del archivo del directorio donde se

encuentra. En general esta operación solamente eliminará la entrada de directorio corres-

pondiente. Si existe más de una instancia o enlaces al archivo, se decrementará el contador

de nodo-i (específico de UNIX) y se eliminará la entrada de directorio correspondiente, las

Page 49: Sistema So Perati Vos

CAPÍTULO 6. SISTEMAS DE ARCHIVOS 299

demás entradas permanecerán hasta el contador de nodo-i llegue a cero. En ese momento

el archivo o directorio quedará eliminado de disco.

Existen otras operaciones relacionadas con los permisos asociados a cada directorio, inclu-

yendo las listas de acceso y los permisos de lectura escritura a los mismos.

6.8. Mecanismos de recuperación en caso de falla

Regresando a los mecanismos de protección el primero que mencionaremos se refiere a

las copias de protección. La mayoría de las personas piensa que a ellos no les va a pasar y

confían en su buena suerte. Además también consideran que respaldar no vale tanto la pena

debido al tiempo que se debe dedicar para hacer la tarea, muchas veces debido también a que los

archivos se van actualizando continuamente, lo que implicauna gran pérdida de tiempo si este

respaldo se hace manualmente. Tampoco consideran necesario usar una herramienta automática

por que manejan relativamente poca información. Cuando el disco duro falla de repente, es

donde empiezan una búsqueda desesperada de profesionales que ayuden a la recuperación de su

información. En esos momentos se dan cuenta que el “rescate”de la información salió mucho

más caro que si hubieran tenido un disco duro de respaldo, si es que lograron recuperarla. De otra

forma, también los costos son elevados desde el punto de vista productivo: rehacer un proyecto,

la contabilidad de todo el año o el pago de multas por no haber entregado a tiempo el trabajo.

Las compañías dan un mayor valor a sus datos y es común que tengan toda una política de

respaldo de información. en general pueden manejar respaldos, diarios, semanales, mensuales e

incluso anuales o más Hacen también uso de aplicaciones que permiten realizar los respaldos en

cinta de forma automática, usando una técnica llamada respaldo incremental. Con esta técnica

se reduce el tiempo de respaldo debido a que solamente se respaldan aquellos archivos que han

modificados. El problema con esta técnica es que la fecha debeestar siempre bien establecida.

aunque la mayoría de las veces el usuario será advertido sobre el hecho de sobreescribir un

archivo más antiguo sobre uno más actualizado. Además de acuerdo a la política de respaldo

incremental, esta situación no actualizaría la información en el respaldo. Para evitar un caso de

este tipo, el servidor se conecta con otras computadoras o servidores de reloj y verifican que la

fecha sea acorde al mismo.

Los medios más comunes de respaldo son las cintas, cuya relación precio/megabyte ronda

alrededor de unos cuantos pesos. Como se puede ver, el hacer respaldos no es tan trivial como

parece.

Page 50: Sistema So Perati Vos

300 6.8. MECANISMOS DE RECUPERACIÓN EN CASO DE FALLA

6.8.1. Implementación

La implementación de los mecanismos de protección van orientados hacia la prevención de

la pérdida de información y también hacia la pérdida o borrado involuntario o accidental de

archivos. Los mecanismos de protección son los siguientes:

1. Copia de seguridad de las aplicaciones.La mayoría de las aplicaciones llevan dos ar-

chivos paralelamente y con unos cuantos minutos de variación que son elegidos por el

usuario. De esta forma, si se pierde el archivo principal, elusuario tendrá que recuperar

solamente la información capturada durante ese lapso de tiempo.

2. Copias por el sistema operativo.Este mecanismo es muy usual en muchos sistemas

operativos. Cuando un usuario borra un archivo, éste no se borra en realidad, si no que

pasa a un directorio conocido comopapelera de reciclajede esta forma, si el usuario

borró accidentalmente ese archivo podrá recuperarlo inmediatamente restaurándolo de la

papelera. Cabe hacer mención que los archivos que se encuentran en la papelera no podrá

ser usados como archivos normales hasta que no se restauren.

3. Copias de respaldoEl problema de hacer respaldos de información no es trivial.Anali-

cemos primero aquellos archivos que es necesario respaldar. Empecemos por los archivos

binarios o ejecutables. No es necesario respaldarlos debido a que pueden volver a ins-

talarse a partir del CD-ROM original. La mayoría de las veces, ni siquiera es necesario

respaldar el sistema operativo, puesto que también es susceptible de ser instalado desde el

medio original. Puede deducirse entonces que solamente deben respaldarse algunos direc-

torios específicos junto con todo su contenido y no respaldartodo el sistema de archivos.

También dentro de estos directorios a respaldar existen directorios o archivos que jamás

sufren modificaciones como por ejemplo algunos archivos de ayuda o ciertas bases de da-

tos de consulta que se actualizan solamente en periodos relativamente largos de tiempo y

que es muy probable que al momento de hacer el respaldo no hayan sufrido modificación

alguna. A partir de esto llegamos a la idea derespaldos incrementales. El método más

común de respaldo incremental es hacer un respaldo completoen forma periódica, por

ejemplo cada mes y entonces hacer un respaldo cada semana de solamente aquellos archi-

vos que se han modificado y sobre éste, hacer un respaldo diario que se hace solamente de

aquellos archivos que sufren modificaciones diarias. Lo mejor sería hacer un respaldo de

solamente aquellos archivos que han sido modificados desde la última vez que se hizo el

respaldo. Esto reduce drásticamente el tiempo de respaldo.No obstante, el precio a pagar

es que dificulta la recuperación de la información: primero es necesario restaurar el últi-

mo respaldo completo, luego todos los respaldos semanales en orden inverso y por último

Page 51: Sistema So Perati Vos

CAPÍTULO 6. SISTEMAS DE ARCHIVOS 301

también los respaldos diarios, de nuevo en orden inverso. Esnormal que se usen esquemas

de respaldo incremental más elaborados para facilitar la recuperación.

4. Respaldos comprimidos.Debido a que casi siempre se respaldan grandes cantidades de

información, es buena idea comprimirlos antes de escribirlos en cinta. Sin embargo, se

corre el riesgo de que una vez comprimidos, un pequeño error dentro del archivo en cinta

interfiera en el algoritmo de descomprensión e impedir la lectura de todo el archivo o

incluso de toda la cinta. Por ello, si se va a respaldar los datos en forma comprimida, debe

de analizarse cuidadosamente si es absolutamente necesario. Es común también hacer dos

respaldos para asegurarse de que no vaya a suceder esta situación, habiendo comprobado

previamente que el archivo es perfectamente descomprimible.

La mayoría de los sistemas de archivos no permiten respaldararchivos que estén siendo

usados actualmente. También si se llegara a permitir esta situación bajo las circunstancia de

que el archivo esté siendo usado en modo de solo lectura, puede ser posible que un minuto o

segundos después cambie su modo a escritura, lo que hace que el respaldo realizado no será

consistente con respecto al archivo original. Esto obliga entonces a dedicar completamente el

sistema de archivos a la operación de respaldo, lo que implica dejar de usar el sistema. Pero un

respaldo de mucha información puede tardar más de una hora, dependiendo de la cantidad de

información, lo que lo hace complicado, puesto que tendría que dejar el sistema fuera de línea

durante parte de la noche.

La creación de respaldos, como se ve, presenta muchos problemas no técnicos en una orga-

nización. El mejor sistema de manejos de respaldos en línea del mundo podría ser inútil si el

administrador de sistemas guarda todas las cintas de respaldo en el sótano, junto con materiales

inflamables o que puede ser susceptible a inundaciones, incluso a ser destruidas por roedores.

Además el hacer un respaldo diario, no sirve de mucho si las cintas se encuentran en el mismo

edificio u oficina y el incendio, además de acabar con las computadoras, termina también con

las cintas de respaldo. Lo recomendable es tener también otro paquete de cintas de respaldo en

otro edificio, aunque esto también sea un problema potencialde seguridad frente al espionaje o

robo de información.

Existen dos formas de realizar los respaldos de un disco en cinta.

1. Respaldo físico.Permite hace una copia exacta bloque por bloque del disco. Elprograma

lo que hace es copiar a nivel de bloque todo el disco, uno a uno registrando también la

posición a la que corresponde cada uno de ellos. La principalventaja que ofrece es que es

posible eliminar casi por completo los posibles errores de copiado, incluso si un bloque

está dañado, la aplicación avisará y además solamente afectará al archivo o directorio

Page 52: Sistema So Perati Vos

302 6.9. PROBLEMAS

involucrado, siendo posible también que el administrador resuelva el problema antes de

seguir con el respaldo. El problema principal es que tambiénalmacenará bloques vacíos

lo que implica gran pérdida de espacio en cinta. No tiene casoalmacenar bloques vacíos.

Esta técnica se usa solamente para sistemas de archivos pequeños.

2. Respaldo lógico.Comienza en uno o más directorios específicos y respalda en forma

recursiva todos los archivos y directorios que se encuentren en ellos y que hayan sido

modificados a partir de una fecha dada. Este tipo de respaldo es el más común. Bajo

este enfoque se guarda también la estructura de directoriosque está arriba de un archivo

modificado para permitir su restauración en el lugar correcto.

6.8.2. Consistencia del sistema de archivos

Hasta ahora hemos tratado de forma general los métodos de respaldo para recuperar algunos

archivos o directorios completos del sistema de archivos. Cuando el sistema de archivos lee un

bloque de disco y lo coloca en memoria, realiza modificaciones y entonces tiene que regresarlo

a disco. Si ocurre una falla antes de que se escriban los bloques modificados a disco, se dice

entonces que el sistema de archivos presenta inconsistencias.

En muchas ocasiones, el sistema operativo verificará al momento de iniciar que por ejemplo,

el tamaño registrado en la entrada de directorio coincida con el número de nodos-i asignados. Si

esto no sucede entonces obligará al administrador a hacer una verificación completa del sistema

de archivos para eliminar inconsistencias. Todos los sistemas operativos tiene un paquete de

utilerías para asegurarse de que el sistema de archivos estálibre de inconsistencias y la mayoría

de las veces intentará resolverlas por sí mismo. En UNIX/Linux, esta utilería se llamafscky en

Windows tenemos ascandisk.

Los sistemas operativos ejecutan estas utilerías comúnmente después de una caída del siste-

ma para verificar el estado del sistema de archivos.

6.9. Problemas

6.1. ¿Por qué es necesario el uso de archivos?

6.2. ¿Qué ventajas proporciona hacer uso de dispositivos de almacenamiento masivo?

6.3. ¿Cuál es la estructura de datos utilizada para guardar información en disco?

6.4. ¿Qué información mantiene la estructura de datos de tipoarchivo?

Page 53: Sistema So Perati Vos

CAPÍTULO 6. SISTEMAS DE ARCHIVOS 303

6.5. Explique las operaciones que pueden hacerse sobre un archivo.

6.6. ¿Cuáles son las dos principales formas de acceso a archivos que proporciona un sistema

operativo?

6.7. Enumere los tipos de datos presentes en un lenguaje de programación.

6.8. Dibuje un diagrama que represente la jerarquía de los tipos de datos.

6.9. ¿Qué es una estructura?

6.10. ¿Qué es un objeto?

6.11. ¿Cuál es la principal diferencia entre una estructura y un objeto?

6.12. ¿Cómo se forma un nombre de archivo en MS-DOS?

6.13. ¿Cómo se forma un nombre de archivo en UNIX/Linuxen Windows 2000?

6.14. Describa ocho extensiones comunes de archivos.

6.15. ¿Cuáles son los tipos de archivos manejados por UNIX/Linux?

6.16. ¿Cuáles son los archivos normales?

6.17. ¿Qué es un archivo de texto?

6.18. ¿Qué es un archivo binario?

6.19. ¿Un archivo binario es necesariamente ejecutable? Explique su respuesta.

6.20. ¿Cómo se presenta el sistema de archivos al usuario?

6.21. ¿Cuáles son los métodos de acceso a los dispositivos de almacenamiento masivo? Ex-

plíquelos.

6.22. ¿Qué es un archivo de índice?

6.23. ¿Qué es un directorio o carpeta?

6.24. ¿Cuál es el directorio raíz?

6.25. Explique la estructura de directorios jerárquicos.

6.26. ¿A qué nos referimos con una ruta relativa?, ¿Y con una absoluta?

Page 54: Sistema So Perati Vos

304 6.9. PROBLEMAS

6.27. ¿Qué es una ruta por omisión o por defecto?

6.28. ¿Cuál es el concepto de una variable de entorno?

6.29. ¿Cuál es el significado de los directorios “.” y “..”?

6.30. ¿Cuáles son las operaciones con directorios?

6.31. ¿En qué partes puede dividirse un disco?

6.32. Explique la estrategia de asignación contigua de bloques para un archivo.

6.33. Explique la estrategia de asignación por lista ligada de bloques para un archivo.

6.34. Explique la estrategia de almacenamiento por medio de la tabla de asignación de archi-

vos.

6.35. Explique la estrategia de almacenamiento por medio de nodos-i para el almacenamiento

de archivos.

6.36. ¿Cómo se almacenan los nombres largos?, ¿Qué estructuras dedatos se utilizan?

6.37. ¿Cómo se manejan lascolisionesen una tabla hash?

6.38. ¿Qué es un servidor de archivos?

6.39. ¿Cuáles son las diferentes servicios que se derivan de un servidor de archivos? Explique

cada uno de ellos.

6.40. ¿Cuáles son los protocolos de red más comunes? Explique cadauno de ellos.

6.41. ¿Qué es un servidor de aplicaciones?

6.42. ¿Qué ventajas proporciona un servidor de aplicaciones?

6.43. Proporcione una definición de un servidor de bases de datos.

6.44. ¿Cuál es la tarea de un servidor de páginas WEB?

6.45. ¿A qué se refiere la seguridad de archivos?

6.46. ¿Cual es el tiempo de vida útil de un disco duro?

6.47. ¿Qué deben proporcionar los mecanismos básicos de seguridad de un sistema operati-

vo?

Page 55: Sistema So Perati Vos

CAPÍTULO 6. SISTEMAS DE ARCHIVOS 305

6.48. ¿Como implementa UNIX/Linux el mecanismo de seguridad básico para el acceso a

directorios y archivos?

6.49. ¿Cuál es el significado de las abreviaturas rwx en una entradade archivo?, ¿Y en una

entrada de directorio?

6.50. ¿Qué órdenes se ocupan para la manipulación de permisos y propietarios?

6.51. ¿Qué significa ACL?, ¿Para que sirven?

6.52. ¿Para qué se implementan los mecanismos de protección?

6.53. ¿Cuál es el mecanismo de protección más básico e importante en un sistema de archi-

vos?

6.54. ¿Cómo se lleva a cabo un respaldo incremental?

6.55. ¿Cuál es la estrategia más común que usan las aplicaciones para prevenir pérdidas

accidentales de algún archivo?

6.56. Explique para qué sirve la papelera de reciclaje.

6.57. Haga un análisis sobre aquella información que debe ser respaldada en un sistema de

computadora y cuál no.

6.58. ¿Qué es un respaldo comprimido?

6.59. Explique cómo se lleva a cabo un respaldo físico.

6.60. Explique cómo se lleva a cabo un respaldo lógico.

6.61. Explique a qué se refiere el concepto de consistencia del sistema de archivos.

6.62. ¿Para que se usan las llamadas al sistema?

6.63. ¿Qué funciones contiene la interfaz de la biblioteca estándar?

6.64. Describa de forma general la declaración de las funciones demanejo de archivos.

6.65. ¿Qué significa EOF?

6.66. ¿Qué funciones de la biblioteca estándar se usan para la entrada/salida de caracteres?

6.67. Explique los tres tipos de interfaz que proporciona el sistema operativo a sus usuarios.

Page 56: Sistema So Perati Vos

306 6.10. LECTURAS ADICIONALES

6.68. Explique los tres pasos para poder trabajar en un sistema operativo en modo consola.

6.69. ¿Cuáles son las órdenes más comunes que se utilizan en una sesión de usuario en modo

consola?

6.70. Explique cómo se inicia sesión en una interfaz gráfica.

6.71. ¿Bajo qué forma entrega el sistema operativo la interfaz correspondiente a los progra-

madores?

6.72. ¿Qué es un intérprete de órdenes?

6.73. En un sistema UNIX/Linux, ¿Cuál es el símbolo que se utiliza para usuarios normales?,

¿Y para el administrador?

6.74. ¿Qué tareas realiza el intérprete de órdenes?

6.75. ¿Por qué hay que saber utilizar el intérprete de órdenes?

6.76. Describa el proceso para ejecutar un intérprete de órdenes.

6.77. ¿En cuál archivo se guarda la contraseña cifrada?

6.78. Describa los tipos de shells que ofrece UNIX/Linux.

6.79. ¿Qué es una tubería?

6.80. ¿Cuál es la función de una tubería?

6.81. Defina el redireccionamiento de entrada/salida.

6.82. ¿Qué diferencia existe entre una tubería y el redireccionamiento de entrada/salida?

6.10. Lecturas adicionales

En el libro de Francisco Manuel Márquez[73] se explica detalladamente el sistema de archi-

vos en UNIX.

McKusick[68] y su equipo explican cómo implementar unsistema de archivos rápido para

UNIX. Sandberg[91] a su vez detalla el diseño e implementación del sistema de archivos de red

de Sun y relata su experiencia en [90]. Rosenblum y Ousterhout[86] diseñan e implementan un

sistema de archivos denominadosistema de archivos estructurado por registros.

Tweedie[104] entra con cierto detalle en el sistema de archivos ext2fs de Linux.

Page 57: Sistema So Perati Vos

CAPÍTULO 6. SISTEMAS DE ARCHIVOS 307

Los sistemas RAID permiten unir dos o más discos para verlos como uno solo. Existen dife-

rentes niveles (denominados niveles RAID) que indican la forma de implementar la distribución

de los datos en los discos. Holland[49] describe una herramienta para sistemas RAID, mientras

que Chen y Petterson[27] describen una técnica para maximizar el desempeño en arreglos de

discos divididos.

Diane Tang[102] realiza una evaluación de desempeño de algunos sistemas de archivos.

También S. Chen y Towsley[28] realizan otras medidas de desempeño sobre una arquitectura

RAID.