Archivos
Ing. Luyi Rodas B.
UNIVERSIDAD AUTONOMA GABRIEL RENE MORENO
FACULTAD INTEGRAL DEL CHACO
INGENIERIA INFORMATICA
Introduccion
Todas las aplicaciones necesitan almacenar y recuperar
información.
Problemas
Espacio pequeno en Memoria Principal
Memoria Volatil
Compartir informacion con otros procesos.
Requisitos para la solucion
Debe ser posible almacenar una gran cantidad de
información.
La información debe de persistir tras la terminación
de los procesos que la usan.
Varios procesos deben de ser capaces de acceder a la
información de forma concurrente.
Solucion
• Almacenar la información en discos
magnéticos u otros dispositivos en unas
unidades llamadas archivos
• La información almacenada en ficheros debe
de ser persistente,
• La gestión de ficheros es tarea del sistema
operativo, y la parte del mismo que realiza
dicha gestión se conoce como sistema de
Archivos.
Definicion
El SO. Administra los archivos.
La forma en que se estructuran, se nombran, se
tiene acceso a ellos, se usan, se protegen y se
implemnetan son temas importantes del diseno
de sistemas operativos.
La parte del SO que se ocupa de los archivos se
denomina “Sistema de Archivos”
1. Nombres de Archivo
Los archivos tienen asignados un nombre a
través del cual los usuarios se refieren a ellos
Cuando un proceso crea un Archivo, le asigna
unnombre. Cuando termina el archivo sigue
existiendo.
Las reglas exactas para nombrar varian de un
sistema a otro.
Longitud: 8 , 255
Distinguen Mayusculas
Simbolos
Nombres de Archivo
(Convenciones de Nombres)
MS-DOS: el nombre de un fichero se compone de un
máximo de 8 caracteres, seguidos, opcionalmente,
por un punto y una extensión de tres caracteres como
máximo. No distinguen mayúsculas de minúsculas.
UNIX: el nombre de un fichero se compone de un
máximo de 256 caracteres. Se distinguen las
mayúsculas de las minúsculas. Un fichero puede
tener más de una extensión (por ejemplo,
[Link].Z)
Windows NT: el nombre de un fichero se compone
de un máximo de 256 caracteres. Las mayúsculas y
minúsculas no son distinguibles y los ficheros pueden
tener más de una extensión.
2. Estructura de Archivos
Sin estructura Registro
Estructura
Suceción de bytes longitud Fija
Variable
3. Tipos de Archivos
En UNIX por ejemplo:
Los Archivos regulares o Normales son
generalmente ficheros ASCII o ficheros binarios
Los directorios son archivos del sistema que
mantienen la estructura del sistema de Archivos
Los Archivos especiales de caracteres están
relacionados con las operaciones de entrada/salida
de dispositivos basados en caracteres
Los Archivos especiales de bloques se usan
básicamente para acceder a discos.
[Link] Normales
Por lo regular son archivos ASCII o binarios.
Los ASCII son lineas de texto que terminan con un
retorno de carro, saldo de linea o ambos.
Pueden mostrarse e imprimirse tal cual son y
pueden editarse con cualquier editor.
Los binarios (no son archivos ASCII).
Si se muestran no son comprensibles (como
basura).
Por lo gral tienen alguna estructura interna que
solo es conocida por el programa que lo usa.
Pueden ser Archivos ejecutables, dll, bmp, etc.
4. Acceso a Archivos
Al comienzo solo Acceso Secuencial. (cinta magnetica)
Cuando se usaron Discos se hizo posible leer bytes o registros
sin orden, o por clave no por posicion. (Archivos de acceso
Aleatorio).
Necesario para muchas aplicaciones (BD)
Existen 2 metodos para especificar donde comenzar la lectura.
1. Cada Operacion READ da la pos en el archivo donde debe
comenzarse a leer.
2. Se cuenta con una operacion especial SEEK para establecer
la posicion actual. A partir de ahi se podra leer en forma
secuancial.
En SO de Mainframe al momento de crear se definian el tipo
de Acceso.
En SO Modernos no se hace esa distincion (todos son
aleatorios)
5. Atributos de Archivos
Todo archivo tiene nombre y datos.
Ademas fecha y hora que se creo, su tamano.
(Atributos del archivo).
Varian de un SO a otro.
Ningun SO actual maneja todos estos atributos.
Atributo Significado
Proteccion quien puede tener acceso al archivo y como
Contrasena clave necesaria para tener acceso al archivo
Creador ID de la persona que creo el archivo
Dueno Propietario actual
Indi. De solo lectura 0 para leer/escribir; 1 para solo lectura
Indi. De oculto 0 para normal;1 para no mostrar en listados
Indi. De sistema 0 para archivos normales; 1 para archivo de sistma
Indi. De archivado 0 para ya respaldado; 1 para debe respaldarse
Indi. De ASCII/Binario 0 para archivo ASCII; 1 para archivo binario
Indi. De acceso aleatorio 0 para solo acceso secuencia; 1 para acceso aleatorio
Indi. De temporal 0 para normal; 1 para borrarlo al termiar el proceso
Indi. De bloqueo 0 para sin bloqueo; distinto de cero si esta bloqueado
Longitud de registro Numero de bytes en un registro
Posicion de clave Distnacia a la clave, dentro de cada registro
Longitud de clave Numero de bytes en el campo clave
Hora de creacion Fecha y Hora en que se creo el archivo
Hora de ultimo acceso Fecha y Hora en que se tuvo acceso por ultima vez al archivo
Hora de ultimo cambio Fecha y hora en que se modifico por ultima vez el archivo
tamano actual Numero de bytes en el archivo
tamano maximo Numero de bytes que puee alcanzar ese archivo
6. Operaciones con Archivos
Create. Se crea el archivo sin datos.
Delete. Borrarlo para desocupar el espacio en disco.
Open. Antes de usar un archivo, un proceso debe
abrirlo. (El SO obtiene los atributos y la lista de
direcciones de disco y los coloca en Mem Princ. Para
tener acceso a ellos rapidamente en llamadas
posteriores).
Close. Cerrar el Archivo para desocupar espacio en
tablas en Mem. Prin.
Read. Leer datos de un archivo. Bytes de la posicion
actual. Quien efectua la llamada debe especificar
cuantos bytes necesita leer y en que buffer guardarse.
Write. Escribir datos en un archivo. En la
posicion actual. (Aumenta tamano el archivo o
sobreescribe datos)
Append. Es una forma restringida de write; solo
agrega al final del archivo.
Seek. En archivos aleatorios se requiere el punto
donde se posicionar el apuntador de archivo.
Get attributes. Muchos procesos necesitan
conocer los atributos para hacer su trabajo.
(Make)
Set attributes. El usuario puede establecer
algunos atributos, modificarlos.
Rename. Cambiar nombre al archivo.
II. Directorios
Los sistemas de Archivos pueden contener
grandes volúmenes de información, por lo
que los SO proporcionan mecanismos para
estructurarlos.
II.1 Sistemas de Directorios de un solo nivel
Un directorio contiene todos los archivos. (raiz)
Solo funcionaba para sistemas monousuarios.
Solo la CDC 6600 tenia esta estructura pero era
multiusuario.
Ventajas: Sencillez, capacidad para busquedas.
Directorio Raiz
A A B C
⚫ Desventajas: Diferentes Usuarios podrian usar el
mismo nombre para sus archivos.
II.2 Sistemas de Directorios de dos niveles
Para evitar el problema anterior se decide aumentar un
nivel para los usuarios.
No existiria problemas con nombres de archivos.
El sistema necesita saber que usuario quiere abrir un
archivo para saber en que directorio buscar. Necesitaria un
sistema de Login.
Directorio Raiz
Open (“x”) A B C Open(“lrodas/x”)
A A B C C C
II.3 Sistema de directorios jerarquicos
El sistema anterior resuelve el problema de conflictos de
nombres pero no satisface a los usuarios cuanto tienen un
gran numero de archivos.
Es comun que los usuarios quieran agrupar sus archivos de
forma logica.
Se necesita una jerarquia general (arbol de directorios).
Directorio Raiz
A B C Directorio Usuarios
A B B B C C
B B C C
C C C C
II.4 Nombres de Ruta
Para el sistema anterior se necesita un mecanismo
ara especificar los nombres de archivo.
Existen 2 metodos:
Cada Arch. Recibe un Nombre de ruta
absoluta (Camino del directorio raiz hasta el
archivo). Ej. /usr/ast/correo (/ Unix y \
Windows)
Nombre de ruta relativa. Se usa el concepto
de Directorio de trabajo (directorio actual). Si el
directorio actual es /usr/ast/ podria hacerse
referencia al archivo en vez de usar la ruta
/usr/ast/correo con simplemente correo
Cada proceso tiene su directorio de trabajo. (no
afecta a otros procesos)
Los procedimientos de biblioteca casi nunca
cambian el directorio de trabajo, y si lo hacen
siempre lo restauran al terminar.
La mayora de los SO que implementan el
sistema jerarquico, tienen 2 entradas especiales
en cada directorio, “.” (directorio actual) y “..”
(directorio Padre).
Sistema de Archivos
Para mejorar la eficiencia, la transferencia de información
entre memoria y los discos se realiza en unidades
denominadas bloques.
Cada bloque está formado por uno o varios sectores de
disco.
El tamaño de sector de un disco suele ser de 512 bytes
El diseño de un sistema de ficheros plantea dos
problemas diferentes:
definir cómo el sistema de ficheros aparece al usuario, y
diseñar los algoritmos y estructuras de datos necesarias
para implementar este sistema de ficheros lógico en los
dispositivos físicos de almacenamiento secundario.
Sistema de Archivos
El nivel de control de
entrada/salida se compone
de los manejadores de
dispositivo (device drivers) y
los manejadores de
interrupciones (interrupt
handlers)