Está en la página 1de 28

V.

ADMINISTRACIÓN DE ARCHIVOS
Ing. Dr. Ángel Cárdenas García
Que son los archivos

Los archivos son colecciones de información relacionada,


definidas por sus creadores. Éstos almacenan programas (en
código fuente y objeto) y datos tales como imágenes, textos,
información de bases de datos, etc.

El SO es responsable de:

• Construir y eliminar archivos y directorios.


• Ofrecer funciones para manipular archivos y directorios.
•Establecer la correspondencia entre archivos y unidades de
almacenamiento.
• Realizar copias de seguridad de archivos.
Sistemas de Archivos
Son las diferentes formas de organizar la información que se almacena
en las memorias (normalmente discos) de las computadoras.

Por ejemplo, existen los sistemas de archivos FAT (Tabla de asignación


de archivos, comúnmente conocido como FAT (file allocation table de
Windows), FAT32, EXT3 (third extended filesystem o tercer sistema de
archivos extendido ) es un sistema de archivos de Linux , NTFS (New
Technology File System) es un sistema de archivos de Windows NT
incluido en las versiones de Windows 2000, Windows XP, Windows
Server 2003, Windows Server 2008, Windows Vista, Windows 7 y
Windows 8, XFS es un sistema de archivos de 64 bits con journaling
(registro de transacciones por diario) de alto rendimiento creado por
SGI (antiguamente Silicon Graphics Inc.) para su implementación de
UNIX llamada IRIX. En mayo de 2000, SGI liberó XFS bajo una licencia
de código abierto.
Sistemas de Archivos, diferencias

Desde el punto de vista del usuario estas diferencias pueden parecer


insignificantes a primera vista, sin embargo, existen diferencias muy
importantes.

Por ejemplo, los sistemas de ficheros FAT32 y NTFS, que se utilizan


fundamentalmente en sistemas operativos de Microsoft, tienen una
gran diferencia para un usuario que utilice una base de datos con
bastante información ya que el tamaño máximo de un archivo con un
sistema de archivos FAT32 está limitado a 4 gigabytes, sin embargo, en
un sistema NTFS el tamaño es considerablemente mayor.
Conceptos básicos de archivos.
Todos los sistemas proporcionan una unidad de almacenamiento lógico, que oculta los
detalles del sistema físico de almacenamiento denominada archivo.

Un archivo es una unidad de almacenamiento lógico no volátil o permanente que agrupa un


conjunto de información relacionada entre sí bajo el mismo nombre.

El sistema de administración de archivos es el software que crea, elimina, modifica y controla


el acceso a los archivos (además de administrar los recursos utilizados por los archivos).

El administrador de archivos está a cargo de los componentes físicos del sistema, sus recursos
de información y de las políticas que se usan para almacenar y distribuir los archivos. A fin de
desempeñar sus funciones, tiene que ejecutar estas cuatro tareas:

a) Llevar el control de donde se almacena cada archivo.


b) Utilizar una política que determine donde y como se almacenaran los archivos, asegurando
el uso eficiente del espacio de almacenamiento disponible y proporcionando un acceso
eficiente a los archivos.
c) Asignar cada archivo cuando se ha aceptado el acceso de un usuario al mismo y registrar su
uso.
d) Desasignar el archivo cuando éste es devuelto a almacenamiento y comunicar su
disponibilidad a otros interesados que pudieran estar esperándolo.
Conceptos básicos de archivos.
Algunas definiciones importantes:

Campo. Es un número de bytes relacionados que puede identificar el usuario mediante un


nombre, tipo y tamaño.

Registro. Un grupo de campos relacionados.

Archivo. Es un grupo de registros relacionados que contienen información utilizada por un


programa de aplicación específica para generar informes. Este tipo de archivo contiene datos
y a veces se conoce como archivo plano, ya que o contiene conexiones con otro archivo; a
diferencia de las base de datos, carece de dimensionalidad.

Base de datos. Para el administrador de archivos es un tipo de archivo, pero resultan más
complicadas porque son grupos de archivos relacionados interconectados en diversos niveles,
para dar a los usuarios flexibilidad de acceso a los datos almacenados. Si la base de datos del
usuario requiere una estructura específica, el administrador de archivos debe ser capaz de
aceptarla.

Archivos programa. Contienen instrucciones.

Archivos de datos. Contienen datos.


Conceptos básicos de archivos.
Directorios. Son listados de nombres de archivos y sus atributos y el administrador de archivos los maneja
como archivos.

Directorios y nombres de archivos. Los directorios son agrupaciones lógicas de archivo que siguen criterios
definidos por sus creadores o manipuladores, a la vez es un mecanismo que permite al usuario estructurar
el acceso a los archivos.

El directorio tiene información sobre los archivos, incluyendo atributos, ubicación y propietario. Gran
parte de esta información, especialmente la relativa al almacenamiento, la gestiona el sistema operativo.
El directorio es propiamente un archivo, poseído por el sistema operativo y accesible a través de diversas
rutinas de gestión de archivos.

Las operaciones que se pueden hacer con un directorio son:

a) Buscar. Cuando un usuario o aplicación referencia un archivo, debe buscarse en el directorio la entrada
correspondiente.
b) Crear archivo. Al crear un nuevo archivo, debe añadirse una entrada al directorio.
c) Borrar archivo. Al borrar un archivo, debe eliminarse una entrada del directorio.
d) Listar directorio. Puede solicitarse todo el directorio o una parte. Por lo general esta petición la hace un
usuario y el resultado es una lista de todos los archivos poseídos por dicho usuario, junto a algunos de los
atributos de cada archivo.
Almacenamiento de archivos

Modo Texto: en este caso los datos son almacenados usando Ascii
y por tanto son plenamente visibles usando cualquier editor.

Modo Binario: en este caso los datos son almacenados en


notación hexadecimal y por tanto se ocupa un editor binario para
reconocerlos, sin embargo un archivo binario es mas compacto
que un archivo texto.
Operaciones básicas con archivos

1.- Creación de Archivo.- En este proceso se pretende solamente crear un archivo nuevo en disco
con su nombre tipo y especialidad de almacenamiento de datos apropiado.

2.- Apertura de Archivos.- En este caso se pretende abrir un archivo ya existente en disco para
procesarlo ya sea para cargar o grabar estructuras en sus registros o leer algun registro en especial
para mandarlo a una variable de cualquier tipo.

3.-Cierre de archivos: Es la operación mas importante en cualquier programa que maneje archivos, o
se cierra el archivo como ultima instrucción del pograma o se vera el anuncio ABORT,RETRY,FAIL.

4.-Altas en archivo.- En este proceso se captura una estructura en memoria con sus datos
pertinentes y despues se graba la estructura al archivo en disco.

5.-Lectura de archivo.- En este proceso se abre el archivo, se manda el registro de disco a una
estructura en memoria para su procesamiento.
Operaciones básicas con los archivos

6.- Consulta de archivos: En este proceso se pretende desplegar todos los registros del archivo en
disco a la pantalla ya sea consola o mejor aún, a una pagina html

7.-Busqueda en archivos: Una de las operaciones mas comunes consiste en que el usuario pide toda
la información de algun renglon en disco porporcionando la información de algun campo
generalmente el campo clave de la estructura.

8.- Filtros.- En este proceso el usuario esta interesado en algun conjunto de renglones con
caracteristicas comunes (condición), por ejemplo todos los alumnos de “sistemas” o todos los
empleados que ganen mas de $500.00 pesos, o todos los clientes que sean de “tijuana”, etc

9.-Modificaciones de registros o archivos: Problema muy comun, donde los datos originales ya
grabados se tienen que cambiar o actualizar, por ejemplo el nombre no era “juan” es “juana”, o la
calificación no es 100 es 20, etc.

10.- Bajas de registros: tambien muy comun este proceso,por ejemplo el alumno ya egreso, el
cliente huyo, etc. (baja fisica o baja logica)
Abrir y cerrar un archivo en C o C++.

Abrir y cerrar

FILE *fopen(char *nombre, char *modo);


Devuelve NULL en caso de error
modo="r" Lectura
modo="r+" Lectura (y escritura)
modo="w" Escritura
modo="w+" Escritura (y lectura)
modo="a" Añadir al final
modo="a+" Añadir al final (y lectura)
modos=rb, rb+, wb, wb+, ab, ab+ binario
int fclose(FILE *puntero al archivo);
Devuelve 0 si no hay error
Ejemplos de creación, altas y consultas de un archivo en C.
FILE//Prog17.cpp
// Objetivo : Crear la estructura del archivo, sin datos

#include <stdio.h>
#include <conio.h>
#include <string.h>

struct {
int matricula;
char nombre[30];
int edad;}alumno;

main() {

//creando y cerrando el archivo en disco

FILE *archdisco;
// El archivo se llama alumnos.dat el el directorio raiz de C
archdisco = fopen("C:\\alumnos.txt","w");

fclose(archdisco);

printf("** ARCHIVO CREADO..: Verifiquelo en su ruta, Gracias ..\n");


printf(">Presione ENTER para continuar ..");

getchar();
}
Comentarios:

La funcion fopen() cuando realiza el trabajo de abrir un archivo, regresa la direccion fisica donde
crea o graba el archivo en disco.

El primer parametro o argumento en esta función es la UNIDAD de disco y el nombre del archivo.
El segundo parametro o argumento es llamado modo y es una de los varios modos que podemos
usar.

“r” → Lectura.
“w” → Escritura.
“a” → Append, si el archivo ya existe append empieza a añadir los nuevos datos
al final del archivo ya existente.
“r+” → Lectura y escritura, ya debe existir el archivo.
“w+” → Crea para lectura y escritura y si ya existe, sobreescribe.
“a+” → Crea o abre para lectura y append, sino existe el archivo sera creado.

En adicion a los valores listados tambien es permitido agregar uno de los siguientes caracteres,
pero insertandolo antes del signo +
modo significado.

t lo abre en modo texto.


b lo abre en modo binario.
// prog26.cpp. Objetivo: Captura datos en alumnos.txt

#include <stdio.h>
#include <conio.h>
#include <string.h>

struct {
int matricula;
char nombre[30];
int edad;} alumno;

main() {

// captura de campos
printf("No. de Cuenta :");scanf("%d",&alumno.matricula);getchar();
printf("Nombre :");gets(alumno.nombre);
printf("Edad :");scanf("%d",&alumno.edad);

// grabando a disco

FILE *archdisco;

archdisco = fopen("C:\\alumnos.txt","ab+");

fwrite(&alumno,sizeof(alumno),1,archdisco);

fclose(archdisco);

//avisando usuario

printf("** ALUMNO INSERTADO...\n");


printf(">Presione ENTER para continuar ..");

getchar();getchar();

}
// prog27.cpp. Despliega los datos a partir del archivo alumnos.txt
#include <stdio.h>
#include <conio.h>
#include <string.h>

struct {
int matricula;
char nombre[30];
int edad;}alumno;

main() {

// leyendo disco
FILE *archdisco;

archdisco = fopen("C:\\alumnos.txt","rb+");

// aqui siempre debe empezar el ciclo de lectura


// y fread() regresa siempre cuantas estructuras leyo

while(fread(&alumno,sizeof(alumno),1,archdisco)==1)
{
// desplegando estructuras
printf("%d ",alumno.matricula);
printf("%s ",alumno.nombre);
printf("%d ",alumno.edad);
printf("\n");

}; // aqui termina while

// no olvidar cerrar archivo y siempre fuera de while


fclose(archdisco);

printf("**>\n");
printf("Presione ENTER para continuar ..");
getchar();
}
Dirección y nombre de archivo.

Todo objeto archivo debe tener un nombre a través del que se pueda acceder. Por
ello, todos los sistemas operativos proporcionan mecanismos de nombrado que
permiten asignar un nombre a un archivo en el momento de su creación. Este
nombre acompañara al objeto mientras exista y le identificará de forma única.

Cada sistema operativo tiene sus propias características para nombrar a los archivos.
Por ejemplo en el sistema UNIX los nombres de los archivo pueden ser de hasta
4,096 caracteres y distinguen entre mayúsculas y minúsculas, mientras en el MSDOS
el máximo tamaño de un nombre de archivo es de ocho caracteres y no distingue
entre mayúsculas y minúsculas.

Una parte del nombre de archivo es la extensión del nombre.

La dirección es una ruta o la forma de referenciar un archivo informático o directorio


en un sistema de archivos de un sistema operativo determinado. Una ruta señala la
localización exacta de un archivo o directorio mediante una cadena de caracteres
concreta.
Permisos de los archivos..
Son los derechos o permisos de acceso a los archivos.
El sistema operativo debe ofrecer una herramienta flexible para permitir la
compartición general de archivos entre los usuarios, así como un conjunto de
opciones de forma que se pueda controlar la manera en que se accede cada archivo
en particular. Normalmente a cada usuario i grupo de usuarios le son concedidos
ciertos derechos o permisos de acceso a cada archivo. La lista siguiente es
representativa de los permisos de acceso que pueden asignarse a un usuario
particular para un archivo específico:

a) Ninguno. El usuario no puede ni siquiera conocer la existencia del archivo, ni


mucho menos acceder al mismo. Para aplicar esta restricción, no se permite al
usuario leer el directorio de usuario que incluya el archivo.
b) Conocimiento. El usuario puede determinar que el archivo existe y quien es su
propietario. El usuario es capaz de solicitar derechos de acceso adicionales al
propietario.
c) Ejecución. El usuario puede cargar y ejecutar un programa, pero no puede
copiarlo. Los programas comerciales se hacen a menudo accesibles con esta
restricción.
Permisos de los archivos..
d) Lectura. El usuario puede leer el archivo para cualquier propósito, incluyendo copia y
ejecución. Algunos sistemas son capaces de hacer valer la distinción entre visualizar y copiar.
En el primer caso, el contenido del archivo puede mostrarse al usuario, pero este no tiene
medios para hacer una copia.
e) Adición. El usuario puede añadir datos al archivo, generalmente al final, pero no puede
modificar ni borrar el contenido del mismo. Este derecho es útil en la recopilación de datos a
partir de un conjunto de fuentes.
f) Actualización. El usuario puede modificar, borrar y añadir datos al archivo. La actualización
incluye generalmente la escritura del archivo al principio, la reescritura por completo o en
parte y la eliminación de todos los datos o parte de ellos. Algunos sistemas tiene varios grados
de actualización.
g) Cambio de protección. El usuario puede cambiar los derechos de acceso otorgados a otros
usuarios. Normalmente este derecho es detentado solo por el propietario. En algunos
sistemas, el propietario puede otorgar este derecho a otros usuarios. Para evitar el abuso de
este mecanismo, el propietario del archivo es normalmente capaz de especificar qué derechos
pueden ser cambiados por el poseedor de este derecho.
i) Borrado. El usuario puede borrar el archivo del sistema de archivos.
Puede considerarse que estos derechos constituyen una jerarquía, con cada uno incluyendo a
todos los que le preceden.
Permisos de los archivos.. en Linux
En Linux, todo archivo y directorio tiene tres niveles de permisos de acceso: los que
se aplican al propietario del archivo, los que se aplican al grupo que tiene el archivo
y los que se aplican a todos los usuarios del sistema. Podemos ver los permisos
cuando listamos un directorio con ls -l:

Explicación:

En Linux, La primera columna (-rwxrwxr--) es el tipo de archivo y sus permisos, la


siguiente columna (1) es el número de enlaces al archivo, la tercera columna (sergio)
representa al propietario del archivo, la cuarta columna (ventas) representa al grupo
al que pertence al archivo y las siguientes son el tamaño, la fecha y hora de última
modificación y por último el nombre del archivo o directorio.
Permisos de los archivos.. en Linux

El primer caracter al extremo izquierdo, representa el tipo de archivo, los posibles


valores para esta posición son los siguientes:
- un guión representa un archivo comun (de texto, html, mp3, jpg, etc.)
d representa un directorio
l link, es decir un enlace o acceso directo
b binario, un archivo generalmente ejecutable
Los siguientes 9 restantes, representan los permisos del archivo y deben verse en
grupos de 3.
Permisos de los archivos.. en Linux

Los tres primeros representan los permisos para el propietario del archivo. Los tres
siguientes son los permisos para el grupo del archivo y los tres últimos son los
permisos para el resto del mundo o otros.
rwx rwx rwx
usuario grupo otros
En cuanto a las letras, su significado son los siguientes:
r read - lectura
w write - escritura (en archivos: permiso de modificar, en directorios: permiso de
crear archivos en el dir.)
x execution - ejecución
Permisos de los archivos.. en Linux

Las nueve posiciones de permisos son en realidad un bit que o esta encendido
(mostrado con su letra correspondiente) o esta apagado (mostrado con un guión -),
asi que, por ejemplo, permisos como rwxrw-r--, indicaría que los permisos del
propietario (rwx) puede leer, escribir y ejecutar el archivo, el grupo (o sea los
usuarios que esten en mismo grupo del archivo) (rw-) podrá leer y escribir pero no
ejecutar el archivo, y cualquier otro usuario del sistema (r--), solo podrá leer el
archivo, ya que los otros dos bits de lectura y ejecucción no se encuentran
encendidos o activados.
Permisos de los archivos..
d) Lectura. El usuario puede leer el archivo para cualquier propósito, incluyendo copia y
ejecución. Algunos sistemas son capaces de hacer valer la distinción entre visualizar y copiar.
En el primer caso, el contenido del archivo puede mostrarse al usuario, pero este no tiene
medios para hacer una copia.
e) Adición. El usuario puede añadir datos al archivo, generalmente al final, pero no puede
modificar ni borrar el contenido del mismo. Este derecho es útil en la recopilación de datos a
partir de un conjunto de fuentes.
f) Actualización. El usuario puede modificar, borrar y añadir datos al archivo. La actualización
incluye generalmente la escritura del archivo al principio, la reescritura por completo o en
parte y la eliminación de todos los datos o parte de ellos. Algunos sistemas tiene varios grados
de actualización.
g) Cambio de protección. El usuario puede cambiar los derechos de acceso otorgados a otros
usuarios. Normalmente este derecho es detentado solo por el propietario. En algunos
sistemas, el propietario puede otorgar este derecho a otros usuarios. Para evitar el abuso de
este mecanismo, el propietario del archivo es normalmente capaz de especificar qué derechos
pueden ser cambiados por el poseedor de este derecho.
i) Borrado. El usuario puede borrar el archivo del sistema de archivos.
Puede considerarse que estos derechos constituyen una jerarquía, con cada uno incluyendo a
todos los que le preceden.
Los nodos-i de UNIX.

Contiene información acerca del propietario del archivo, de su grupo, el modo de


protección aplicable al archivo, del número de enlaces al archivo, de valores de
fechas de creación y actualización, el tamaño del archivo y el tipo del mismo.
Además incluye un mapa del archivo mediante apuntadores a bloques de
dispositivo que contienen datos del archivo.
A través del mapa de bloques del nodo-i se puede acceder a cualquiera de sus
bloques con un número muy pequeño de accesos a disco.
Jerarquía de directorios.
Existe un directorio maestro que contiene un número determinado de directorios de usuario.
Cada uno de estos directorios puede tener a su vez subdirectorios y archivos como entradas.
Esto se cumple en cualquier nivel, es decir, en cualquier nivel un directorio puede constar de
entradas para subdirectorios y/o entradas para archivos.
Administración de Dispositivos de Entrada y Salida.

Consiste en un sistema de almacenamiento o archivo


temporal (caché), una interfaz de manejadores de
dispositivos y otra para dispositivos concretos. El
sistema operativo debe gestionar el
almacenamiento temporal de E/S y servir las
interrupciones de los dispositivos de E/S.
Copias de respaldo y compresión de archivos. .

Consiste en asegurar que los datos no se pierdan en caso de una falla.


Para esto podemos emplear programas de sistema para respaldar
datos del disco a otro dispositivo de almacenamiento, como un disco
flexible, una cinta magnética o un disco óptico.

La recuperación de la pérdida de un archivo individual, o de todo un


disco, puede implicar simplemente restablecer los datos a partir del
respaldo.
Mantenimiento al sistema de archivos.

Gestión del Espacio Libre .- Es la Administración del espacio que no


queda asignado. Las técnicas más usadas son:

· Tablas de Bits: Utiliza un vector que contiene un bit por cada bloque
del disco.
· Secciones libres encadenadas: Se encadenan juntas mediante un
puntero y un valor de longitud en cada sección libre.
· Indexación Trata el espacio libre como si fuera un archivo y utiliza
una tabla índice trabajando con secciones de tamaño variable mejor
que con bloques, obteniendo una entrada en la tabla para cada
sección libre del disco.

También podría gustarte