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

El sistema operativo UNIX El sistema de archivos

Expositor: Jos Luis Oropeza Rodrguez

Mxico D. F., a 06 de agosto 2007

OBJETIVO
Presentar al alumno los elementos bsicos que comprende el sistema de archivos contenido dentro del sistema operativo UNIX.

BOSQUEJO DE LA PRESENTACIN
Introduccin Sistemas de archivos Medios de almacenamiento del sistema de archivos Lista de i-nodos Tipos de archivos del sistema

SISTEMA DE CMPUTO DE ESCRITORIO

SISTEMA DE ARCHIVOS
Mientras que un proceso se est ejecutando, puede almacenar una cantidad de informacin limitada dentro de su propio espacio de direcciones. Sin embargo, la capacidad de almacenamiento est restringida al tamao del espacio de direcciones virtual. En el caso de algunas aplicaciones, este tamao es adecuado, pero en el de otras, como las de reservaciones de lneas areas, las aplicaciones bancarias o las bases de datos corporativas, dicho tamao resulta excesivamente pequeo. Tales aplicaciones requieren que la informacin permanezca mucho tiempo.

LOS SISTEMAS DE ARCHIVOS SOLUCIONAN LOS PROBLEMAS DE:


1.Debe ser posible almacenar gran cantidad de informacin. 2.La informacin debe sobrevivir a la terminacin del procesa que la usa. 3.Mltiples procesos deben poder acceder a la informacin de forma concurrente. bin
NOMBRES DE ARCHIVOS
etc lib usr tmp
bin etc lib usr ast jim tmp

TIPOS DE ACCESOS A ARCHIVOS IMPLEMENTACIN DEL SISTEMA DE ARCHIVOS


ast jim

TIPOS DE ARCHIVOS
En la siguiente figura se ilustra un archivo binario ejecutable sencillo tomado de una de las primeras versiones de UNIX. Aunque tcnicamente el archivo no es sino una secuencia de bytes, el sistema operativo slo ejecuta un archivo si ste tiene el formato correcto. El ejemplo tiene cinco secciones: encabezado, texto, datos, bits de reubicacin y tabla de smbolos. El encabezado comienza con lo que se conoce como un nmero mgico, que identifica al archivo como ejecutable.

Luego vienen enteros de 16 bits que indican los tamaos de los distintos componentes del archivo, la direccin en la que se inicia la ejecucin y algunos bits de banderas. Despus del encabezado vienen el texto y los datos del programa mismo. stos se encargan en la memoria y se reubican empleando los bits de reubicacin. La tabla de smbolos sirve para la depuracin.

CARACTERSTICAS DE DIFERENTES SISTEMAS DE ARCHIVOS

EL SISTEMA DE ARCHIVOS DE UNIX


Un sistema de archivos es un mecanismo de abstraccin de los dispositivos fsicos de almacenamiento que nos permite manejarlos a un nivel lgico sin la necesidad de conocer su arquitectura hardware particular. El sistema de archivos de UNIX se caracteriza por: directorio raz Poseer una estructura jerrquica Realizar un tratamiento consistente de los datos de los archivos Poder crear y borrar archivos Permitir un crecimiento dinmico de los archivos Proteger los datos de los archivos Tratar los dispositivos y perifricos terminales, unidades de cinta, discos, etc.como si fuesen archivos. subdirectorios Archivos normales

ESTRUCTURA DEL SISTEMA DE ARCHIVOS

SISTEMA DE ARCHIVOS

RESIDE

DISCOS

DISPOSITIVOS DE ALMACENAMIENTO DE MODO BLOQUE

CINTAS

SISTEMA UNIX SISTEMA DE ARCHIVOS SISTEMA DE ARCHIVOS SISTEMA DE ARCHIVOS

particiones

ORGANIZACIN DEL SISTEMA DE ARCHIVOS


Los sistemas de archivos se almacenan en discos. Casi todos los discos pueden dividirse en una o ms particiones, con sistemas de archivos independientes en cada particin. El sector 0 del disco se llama registro maestro de arranque (MBR; Master Boot Record) y sirve para arrancar la computadora. Esta tabla contiene las direcciones inicial y final de cada particin. Una de las particiones de la tabla est marcada como activa. Cuando se enciende la computadora, el BIOS lee el MBR y lo ejecuta. Lo primero que hace el MBR es localizar la particin activa, leer su primer bloque, llamado bloque de arranque, y ejecutarlo. El programa del bloque de arranque carga el sistema operativo contenido en esa particin.

PARTES INTERNAS DE UN DISCO DURO


taza de transferencia.- es la razn en la cual se presenta el flujo de datos entre el controlador y la computadora. Tiempo de posicionamiento.- algunas veces llamado tiempo de acceso aleatorio, consiste del tiempo que se mueve el brazo del disco al cilindro deseado, llamado tiempo de bsqueda. Latencia rotacional.- es el tiempo en el que el sector deseado rota a la cabeza de disco.

CONCEPTOS BSICOS DE UN DISCO DURO


Plato: Cada uno de los discos que hay dentro del disco duro. Cara: Cada uno de los dos lados de un plato Cabeza Head: Nmero de cabezas de Lectura/Escritura Pista - Track: Una circunferencia dentro de una cara; la pista 0 est en el borde exterior. Cilindro: Conjunto de varias pistas; son todas las circunferencias que estn alineadas verticalmente (una de cada cara). Sector : Cada una de las divisiones de una pista. El tamao del sector no es fijo, siendo el estndar actual 512 bytes. Antiguamente el nmero de sectores por pista era fijo, lo cual desaprovechaba el espacio significativamente, ya que en las pistas exteriores pueden almacenarse ms sectores que en las interiores. As, apareci la tecnologa ZBR (grabacin de bits por zonas) que aumenta el nmero de sectores en las pistas exteriores, y usa ms eficientemente el disco duro (ver Nota Inferior). Los sectores son las unidades mnimas de informacin que puede leer o escribir un disco duro. Cluster: agrupacin de varios sectores.

EJEMPLO DE PARTICIN DE UN DISCO DURO

CARACTERSTICAS DE LOS DISCOS IDE


IDE significa "Integrated Device Electronic", su traduccin es componente electrnico integrado. ATA significa "Advanced Technology Attachment" tecnologa avanzada de contacto PATA: significa "Parallel Advanced Technology Attachment" tecnologa paralela avanzada de contacto. Es una nueva sigla acuada a partir de la insercin en el mercado de los discos SATA, ello para diferenciarlos entre s. Esta especificacin permite transferencia de datos de modo paralelo, con un cable de datos de 40 conectores, genera una transferencia de datos (Rate) de 66, 100 y hasta 133 MegaBytes/segundo (MB/s). Por sus caractersticas de circuito paralelo, permite conectar hasta 2 dispositivos por conector.
Caracterstica Traduccin Funcin Para discos duros significa la velocidad de transferencia de datos del disco duro, en funcin de los dems dispositivos. Se mide en MegaBytes/segundo (MB/s) y es denominado tambin "Rate". Este dato en discos duros IDE puede estar entre 66 MB/s, 100 MB/s y 133 MB/s. Ejemplo Disco duro IDE tiene dentro de sus caractersticas lo siguiente: Marca Maxtor, 80 GB, 7200 RPM, FSB 100/133*. * Este ltimo dato indica que el FSB soportado es 100 MB/s hasta 100 MB/s. Disco duro IDE tiene dentro de sus caractersticas lo siguiente: Marca Maxtor, 80 GB, FSB 100/133, 7200 RPM*. * Este ltimo dato indica que el su eje de giro permite hasta 7200 vueltas por minuto.

FSB

"Frontal Side Bus", transporte frontal interno

RPM

"Revolutions per Minute", vueltas por minuto

Este valor determina la velocidad a que los discos internos giran cada minuto. Su unidad de medida es: revoluciones por minuto (RPM). Este dato en discos duros IDE puede ser 4800 RPM, 5200 RPM y hasta 7200 RPM.

DISCOS IDE (Integrated Device Electronics)


El interfaz ATA (Advanced Technology Attachment) o PATA, originalmente conocido como IDE (Integrated device Electronics), es un estndar de interfaz para la conexin de los dispositivos de almacenamiento masivo de datos y las unidades pticas que utiliza el estndar derivado de ATA y el estndar ATAPI.
Historia de produccin Diseador Diseado en Western Digital 1986 Especificaciones Conectable en caliente Externo Ancho Ancho de banda no no 16 bits 16 MB/s originalmente Despus 33, 66, 100, 133 y 166 MB/s 2 (maestro/esclavo) Paralelo

Max n dispositivos
Protocolo Cable Pines

En el interfaz ATA se permite conectar dos dispositivos por BUS. Para ello, de los dos dispositivos, uno tiene que estar como esclavo y el otro como maestro para que la controladora sepa a qu dispositivo enviar los datos y de qu dispositivo recibirlos. El orden de los dispositivos ser maestro, esclavo. Es decir, el maestro ser el primer dispositivo y el esclavo, el segundo. La configuracin se realiza mediante jumpers.

Cable de cinta plano de 40 hilos, posteriormente incrementado a 80 por seguridad. 40 (factor forma 3.5) o 44 (factor forma 2.5).Ver enlaces externos

FUNCIN DE CADA UNA DE LAS TERMINALES DEL IDE


Funcin de las terminales Pin 1 Pin 2 Pin 3 Reset Funcin de las terminales Pin 16 Pin 17 Pin 18 Pin 19 Pin 20 Pin 21 Pin 22 Pin 23 Pin 24 Data 14 Data 0

Ground
Data 7 Data 8 Data 6 Data 9 Data 5

Data 15
Ground Key o VCC_in DDRQ Ground I/O write Ground I/O read Ground

Pin 4
Pin 5 Pin 6 Pin 7 Pin 8 Pin 9 Pin 10 Pin 11 Pin 12 Pin 13 Pin 14 Pin 15

Data 10
Data 4 Data 11 Data 3 Data 12 Data 2 Data 13 Data 1

Pin 25
Pin 26 Pin 27 Pin 28 Pin 29 Pin 30 Pin 31

IOC HRDY
Cable select DDACK Ground IRQ

CARACTERSTICAS DE LOS DISCOS SATA


Serial ATA o SATA (acrnimo de Serial Advanced Technology Attachment) es una interfaz de transferencia de datos entre la placa base y algunos dispositivos de almacenamiento, como puede ser el disco duro, lectores y regrabadores de CD/DVD/BR, Unidades de Estado Slido u otros dispositivos de altas prestaciones que estn siendo todava desarrollados. Serial ATA sustituye a la tradicional Parallel ATA o P-ATA. SATA proporciona mayores velocidades, mejor aprovechamiento cuando hay varias unidades, mayor longitud del cable de transmisin de datos y capacidad para conectar unidades al instante, es decir, insertar el dispositivo sin tener que apagar el ordenador o que sufra un cortocircuito como con los viejos Molex.

Actualmente es una interfaz aceptada y estandarizada en las placas base de PC. La Organizacin Internacional Serial ATA (SATA-IO) es el grupo responsable de desarrollar, de manejar y de conducir la adopcin de especificaciones estandarizadas de Serial ATA. Los usuarios de la interfaz SATA se benefician de mejores velocidades, dispositivos de almacenamientos actualizables de manera ms simple y configuracin ms sencilla. El objetivo de SATA-IO es conducir a la industria a la adopcin de SATA definiendo, desarrollando y exponiendo las especificaciones estndar para la interfaz SATA.

CARACTERSTICAS DE LOS DISCOS SATA


Al referirse a velocidades de transmisin, conviene recordar que en ocasiones se confunden las unidades de medida, y que las especificaciones de la capa fsica se refieren a la tasa real de datos, mientras que otras especificaciones se refieren a capacidades lgicas. La primera generacin especifica en transferencias de 150 MB por segundo, tambin conocida por SATA 150 MB/s o Serial ATA-150. Actualmente se comercializan dispositivos SATA II, a 300 MB/s, tambin conocida como Serial ATA-300 y los SATA III con tasas de transferencias de hasta 600 MB/s. Las Unidades que soportan la velocidad de 3Gb/s son compatibles con un bus de 1,5 Gb/s. En la siguiente tabla se muestra el clculo de la velocidad real de SATAI 1.5 Gb/s, SATAII 3 Gb/s y SATAIII 6 Gb/s:
SATA I
Frecuencia Bits/clock Codificacin 8b10b bits/Byte Velocidad real 1500 MHz 1 80% 8 150 MB/s

SATA II
3000 MHz 1 80% 8 300 MB/s

SATA III
6000MHz 1 80% 8 600 MB/s

Fue estandarizado a mediados de 2004, con definiciones especficas de cables, conectores y requisitos de la seal para unidades eSATA externas. eSATA se caracteriza por:
Velocidad de SATA en los discos externos (se han medido 115 MB/s con RAID externos) Sin conversin de protocolos de PATA/SATA a USB/Firewire, todas las caractersticas del disco estn disponibles para el anfitrin. La longitud de cable se restringe a 2 metros; USB y Firewire permiten mayores distancias. Se aument la tensin de transmisin mnima y mxima a 500mV - 600mV (de 400 mV - 600 mV)

Actualmente, la mayora de las placas bases han empezado a incluir conectores eSATA, tambin es posible usar adaptadores de bus o tarjetas PC Card y CardBus para porttiles que an no integran el conector.

CARACTERSTICAS DE LAS TERMINALES DEL SATA


Tipo

masivo interno

Historia de produccin
Diseado en Sustituye a

2003 Parallel ATA Especificaciones

Conectable en caliente

S, con soporte de otros componentes del sistema.


S, con eSATA. Y por USB, con case o caja externa. Cable plano 7 Notacin de las terminales

Externo

Cable Pines

Pin 1

GND HT+/DR+ HT-/DRGND HR-/DTHR-/DT+ GND

Masa Transmisin diferencial + Transmisin diferencial Masa Recepcin diferencial Recepcin diferencial + Masa

Pin 2
Pin 3 Pin 4 Pin 5 Pin 6 Pin 7

LA TABLA DE PARTICIONES
La tabla de particiones est alojada en el MBR (del ingls Master Boot Record) a partir del byte 446 del MBR y ocupa 64 bytes, conteniendo 4 registros de 16 bytes, los cuales definen las particiones primarias. En ellos se almacena toda la informacin bsica sobre la particin: si es arrancable, si no lo es, el formato, el tamao y el sector de inicio.
Estructura de entradas de la Tabla de Particiones

Es una estructura de datos de 64 bytes que define la forma en que un disco duro est dividido en secciones lgicas, conocidas como particiones.
Offset +OOh +01h +02h +04h +05h +06h +08h +0Ch Naturaleza Status de particin 00h = no activa 80h = Particin de Boot Inicio de particin : Cabecera Inicio de particin : Cilindro - Sector Tipo de particin Fin de particin : Cabecera Inicio de particin : Cilindro - Sector Nmero de sectores entre el MBR y el 1er sector de la particin Nmero de sectores en la particin Size 1 byte 1 byte 1 palabra 1 byte 1 byte 1 palabra 4 bytes 4 bytes

LA TABLA DE PARTICIONES

Offse t +OOh +01h +02h +04h +05h +06h +08h +0Ch

Naturaleza Status de particin 00h = no activa 80h = Particin de Boot Inicio de particin : Cabecera Inicio de particin : Cilindro - Sector Tipo de particin Fin de particin : Cabecera Inicio de particin : Cilindro - Sector Nmero de sectores entre el MBR y el 1er sector de la particin Nmero de sectores en la particin

Size

1 byte 1 byte 1 palabra 1 byte 1 byte 1 palabra 4 bytes 4 bytes

PARTICIONES GUID
Dentro de los discos bsicos existe una nueva modalidad en lugar de estar basado en el clsico MBR, est basado en tablas de particiones GUID. Esta tabla de particiones es una nueva implementacin de Intel basada en itanium cuyas limitaciones son bastantes menos restrictivas que las actuales basadas en inicio MBR. Las tablas de particiones basadas en GUID admiten hasta 128 particiones primarias de 18 exabytes, y no existen las particiones extendidas. Mientras que en las tablas de particiones MBR el lmite como hemos visto est en cuatro primarias o bien tres primarias y una extendida, siendo el lmite mximo de cada particin de dos terabytes.

PARTICIONES GUID
Para trabajar con particiones GUID y discos GPT es necesario tener la versin de Windows XP de 64 bits, y naturalmente que el hardware que se compre tenga esas caractersticas. Tabla de particin Guid (GPT) es un estndar para la colocacin de la Tabla de Particiones en un disco duro fsico. Es parte del estndar Extensible Firmware Interface (EFI) propuesto por Intel para reemplazar la vieja Bios del PC, heredada del IBM PC original. La GPT sustituye al Master Boot Record (MBR) usado con la BIOS.

http://es.wikipedia.org/wiki/Tabla_d e_partici%C3%B3n_GUID

FORMATO A UN DISCO
Cuando un disco se fabrica por primera vez, ste se divide en sectores y pistas desde fbrica, que el controlador puede leer y escribir. Dicho proceso se conoce como formato a bajo nivel o formato fsico. Dicho formato llena el disco con una estructura de datos especial por cada sector. La estructura de datos para un sector tpico consiste de una cabecera, un rea de datos (por lo regular de 512 bytes), y una parte trasera. Tanto la cabecera como la parte trasera contienen informacin que el controlador de disco utiliza, tal como el nmero de sectores y un cdigo de correccin de errores (CCE). Cuando el controlador escribe un sector de datos durante una operacin de I/O normal, el CCE es actualizado con el valor calculado de todos los bytes en el rea de datos. Cuando el sector es ledo, el CCE se recalcula y se compara con el valor almacenado. Si ambos nmeros son diferentes, esta discrepancia indica que el rea de datos se ha corrompido y que el sector del disco puede estar mal. EL CCE puede encargarse de realizar la reparacin del error, tras lo cual se reporta un error suave. El controlador realiza la tares del CCE cada vez que un sector se escribe o se lee. ID Information: Dentro de cada sector se deja un pequeo espacio para identificar el nmero de sector y su lugar dentro del disco, el cual se utiliza para localizar a dicho sector dentro de dicho disco y poder otorgar el estado del mismo. Por ejemplo, un simple bit se utiliza para indicar si el sector ha sido marcado como defectuoso o bien reasignado. Synchronization Fields: Son utilizados internamente por el controlador de dispositivo para guiar el proceso de lectura. Data: El dato actual en el sector. ECC: Cdigo corrector de error utilizado para asegurar la integridad de los datos. Gaps: Por lo regular conocido como espaciadores los cuales se utilizan para separar reas de sectores y otorgar tiempo que el controlador procese lo que ha ledo antes del procesamiento de datos adicionales.

ESTRUCTURA DEL SISTEMA DE ARCHIVOS


Un sistema de archivos se compone de una secuencia de bloques lgicos, cada uno de los cuales tiene un tamao fijo. El tamao de cada bloque es el mismo para todo el sistema de archivos y suele ser mltiplo de 512 bytes. Aunque puede variar de un sistema a otro. Si el tamao del bloque es grande es bueno para la transferencia de informacin entre los dispositivos de bloque, pero repercute cuando se desea almacenar una cantidad determinada de informacin, por ejemplo unos cuantos caracteres de un archivo determinado. Valores tpicos son de 512, 1024, 2048, etc.

bloque de boot
Primer sector, puede contener el cdigo de arranque, el cual se encarga de carga al Sistema Operativo en memoria

superbloque
Describe el estado de un sistema de archivos. Contiene informacin de su tamao, numero total de archivos, el espacio disponible, etc.

lista de i-nodos
Tiene una entrada para cada archivo, que guarda la descripcin del mismo: ubicacin en el disco, propietario, permisos de acceso, fecha de actualizacin. El administrador especifica su tamao.

Bloque de datos
Ocupan el resto del sistema de archivos. Se encuentra el contenido de los archivos a los que hace referencia la lista de i-nodos. Cada bloque por cada archivo.

EL SUPERBLOQUE
En algunos sistemas en el archivo de cabecera <sys/filsys.h> se encuentra declarada una estructura en C que describe el significado del contenido del superbloque. El superbloque contiene entre otras cosas, la siguiente informacin: 1) Tamao del sistema de archivos 2) Lista de bloques libres disponibles 3) ndice del siguiente bloque libre en la lista de bloques libres 4) Tamao de la lista de i-nodos 5) Lista de i-nodos libres 6) ndice del siguiente i-nodo en la lista de i-nodos libres 7) Campos de bloqueo de elementos de las listas de bloques libres y de i-nodos libres. Campos que se utilizan cuando se realiza una peticin de bloques de i-nodo libre. 8) Indicador que informa si el superbloque ha sido modificado o no.

Cada vez que, desde un proceso, se accede a un archivo, es necesario consultar el superbloque y la lista de i-nodos. Por cuestiones de tiempo de acceso, el sistema mantiene en memoria una copia del superbloque y de la lista de i-nodos.

EL SUPERBLOQUE

NODOS NDICE (i-nodos)

En el archivo de cabecera <sys/ino.h> se declara la estructura en C struct dinode que describe la informacin de un i-nodo. Los campos que componen a un i-nodo son los siguientes: 1) Identificador del propietario del archivo. La posicin se divide entre un propietario individual y un grupo de propietarios y define el conjunto de usuarios que tienen derecho al acceso sobre el archivo. El super usuario tiene el derecho de acceso a todos los archivos del sistema.

NODOS NDICE (i-nodos)


2) Tipo de archivo. Los archivos pueden ser ordinarios de datos, directorios, especiales de dispositivo en modo carcter o en modo bloque- y tuberas o FIFO-. 3) Tipo de acceso al archivo. Se tienen tres niveles de permisos: de propietario, de grupo y del resto de los usuarios. Cada clase de usuarios puede tener habilitados o deshabilitados los derechos de lectura, escritura y ejecucin. Para los directorios, el derecho de ejecucin significa poder acceder o no a los archivos que contiene.

4) Tiempos de acceso al archivo. Da informacin sobre la fecha de la ltima modificacin al archivo, la ltima vez que se accedi a l y la ltima vez que se modificaron los datos de su i-nodo.
5) Nmero de enlaces del archivo. Representa el total de los nombres que el archivo tiene en la jerarqua de directorios. Un archivo puede tener asociados diferentes nombres que correspondan a diferentes rutas y a travs de los cuales se accede a un mismo i-nodo y por consiguiente a los mismos bloques de datos. 6) Tamao del archivo. Los bytes de un archivo se pueden direccionar indicando un desplazamiento a partir de la direccin de inicio del archivo. El tamao es igual al desplazamiento del byte ms alto, incrementando en una unidad.

NODOS NDICE (i-nodos)


El nombre de los archivos no queda especificado en su i-nodo, sino en los archivos de directorio en donde cada nombre de archivo se asocia con su inodo correspondiente. El contenido del i-nodo cambia cuando se modifican los datos del archivo o la situacin administrativa del mismo propietario, permisos, etc.- cambia. La tabla de i-nodos contiene la misma informacin que la lista de i-nodos a excepcin de: a) El nmero de dispositivos lgicos que contienen al archivo b) Punteros a otros i-nodos cargados en la memoria. c) El nmero de i-nodo. d) El estado del i-nodo, que indica: 1 si el i-nodo est bloquedo. 2 Si la copia del inodo que est en memoria difiere de la que existe en el disco. 3 Si existe algn proceso esperando a que el i-nodo quede desbloqueado.

ESTRUCTURA DE UN ARCHIVO ORDINARIO


el controlador debe de incrementar su velocidad de rotacin conforme la cabeza se mueve de las pistas externas a las internas. O bien, la velocidad puede ser constante, pero incrementando la densidad de bits de las pistas internas a las externasm este mtodo se conoce tambin como velocidad angular constante.

18 sectores 80 pistas 512 bytes/sector

LA VELOCIDAD LINEAL CONSTANTE. Un aspecto importante a considerar est en el * = 1474560 bytes hecho de que para conservar la misma taza de transferencia de informacin de la unidad de disco a la computadora, para ello

2 caras
FRAGMENTACIN INTERNA ocurre cuando un archivo no ocupa por completo un bloque. Por ejemplo, si tenemos un archivo de 10K y un tamao de bloque de 8K, el sistema de archivos asignar dos bloques para alojar el archivo, pero 6K del segundo bloque se desaprovecharn. Ntese que a mayor tamao de bloque mayor ser el espacio desperdiciado. FRAGMENTACIN EXTERNA ocurre cuando los bloques lgicos que forman un archivo se encuentran esparcidos por todo el disco (no estn contiguos). Este tipo de fragmentacin produce un bajo rendimiento.

MTODOS DE ADMINISTRACIN DEL ESPACIO EN DISCO


Bloque inicial
Direcciones en tamao de bloque Bloque final

archivo A

archivo B

archivo C

10

20

30

40

archivo A

libre

archivo C

archivo B

10

20

30

40

55

CAPACIDAD DE UN DISCO DURO

ASIGNACIN CONTIGUA

CARACTERSTICAS DE DIFERENTES TIPOS DE SISTEMAS DE ARCHIVOS

FORMAS DE ALMACENAMIENTO DE ARCHIVOS


ASIGNACIN POR LISTA ENLAZADA
Archivo A

ASIGNACIN POR LISTA ENLAZADA EMPLEANDO UN NDICE


Bloque fsico 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Bloque de archivo 0

Bloque de archivo 1

Bloque de archivo 2

Bloque de archivo 3

Bloque de archivo 4

10 11 7 3 2

El archivo A comienza aqu El archivo B comienza aqu

Bloque fsico

10

12

Archivo B

Bloque de archivo 1

Bloque de archivo 2

Bloque de archivo 3

Bloque de archivo 4

12 14 0 0
Bloque no utilizado

Bloque fsico

11

14

ASIGNACIN POR LISTA ENLAZADA

TAMAO DEL BLOQUE


Una vez que se ha decidido almacenar los archivos en bloques de tamao fijo, surge la pregunta de qu tamao deben de tener los bloques. Dada la forma en la que estn organizados los discos, el sector, la pista y el cilindro son candidatos obvios para utilizarse como unidad de asignacin. En un sistema con paginacin, el tamao de pgina es un importante contendiente. Tener una unidad de asignacin grande, como un cilindro, implica que cada archivo, incluso un archivo de 1 byte, ocupar todo un cilindro. Estudios realizados (Mullender y Tanenbaum, 1984) han demostrado que la mediana del tamao de los archivos en los entornos UNIX es de alrededor de 1K, as que asignar un cilindro de 32K a cada archivo implicara un desperdicio de 31/32=97% del espacio en disco total. Por otro lado, el empleo de una unidad de asignacin pequea implica que cada archivo consistir de muchos bloques. La lectura de cada bloque normalmente requiere una bsqueda y un retardo rotacional, as que la lectura de un archivo que consta de muchos bloques pequemos ser lenta. Por ejemplo, considrese un disco con 32,768 bytes por pista, tiempo de rotacin de 16.67 msegs y tiempo de bsqueda medio de 30 msegs. El tiempo en milisegundos requerido para leer un bloque de k bytes es la suma de los tiempos de bsqueda, retardo rotacional y transferencia:

30 8.3 (k / 32768) x16.67

TAMAO DE BLOQUE
La curva continua (escala de la izquierda) da la taza de datos en un disco. La curva de guiones (escala de la derecha) da la eficiencia de espacio de disco. Todos los archivos son de 1K. Una buena utilizacin del espacio (tamao de bloque <2K) implica tasas de datos bajas y viceversa. La eficiencia del tiempo y la eficiencia de espacio estn inherentemente en conflicto.

CONTROL DE BLOQUES LIBRES


Una vez escogido un tamao de bloque, la siguiente cuestin es cmo llevar el control de los bloques libres. Se utilizan dos mtodos principalmente: lista enlazada de bloques de disco. Con bloques de 1KB y nmeros de bloque de 32 bits, cada bloque de la lista libre contendr los nmeros de 255 bloques libres. Un disco de 16 GB necesitar una lista de 16,794 bloques como mximo para contener los 224 nmeros de bloque.

CONTROL DE BLOQUES LIBRES


La otra tcnica de administracin del espacio libre es el mapa de bits. Un disco con n bloques requiere un mapa de bits de n bits. Los bloques libres se representan con unos en el mapa, y los blqoues asignados con ceros (o viceversa). Un disco de 16 GB tiene 224 bloques de 1KB y por tanto requiere 224 bits para el mapa, lo cual ocupa un total de 2048 bloques.

ESTRUCTURA DE UN ARCHIVO ORDINARIO


Para una mayor flexibilidad, el ncleo del sistema reserva los bloques para un archivo de uno en uno, y permite que los datos de una archivo estn esparcidos por todo el sistema de archivos. Las entradas de direcciones del i-nodo consisten en una lista de direcciones de los bloques que contiene los datos del archivo. i-nodo
Archivo de longitud de 10 Kbytes

Bloque 1 de 1 Kbyte

Bloque 2 de 1 Kbyte

Lista de direcciones de los bloques

Bloque 10 de 1 Kbyte

ESTRUCTURA DE UN ARCHIVO ORDINARIO


La administracin de archivos anteriormente planteada presenta problemas cuando la dimensin del archivo es grande i-nodo
Bloque 1 de 1 Kbyte Bloque 2 de 1 Kbyte

Archivo de longitud de 100 Kbytes

Lista de direcciones de los bloques con crecimiento variable

Bloque 100 de 1 Kbyte

ESTRUCTURA DE UN ARCHIVO ORDINARIO


Para conseguir tamaos del i-nodo pequeo y a la vez gestionar archivos grandes, las entradas de direcciones del i-nodo se ajustan al siguiente esquema:
Entradas directas.- Contienen direcciones de bloques en los que existen datos de archivos (10 en total). Entrada Indirecta simple.- Contiene la direccin a un bloque de datos que contiene una tabla de direcciones de bloques de datos.

Entrada Indirecta doble.- Contiene la direccin de un bloque cuyas entradas actan como entradas indirectas simples.
Entrada Indirecta triple.- Contiene la direccin de un bloque cuyas entradas actan como entradas indirectas dobles.

Suponga la siguiente situacin de un sistema de archivos, cada inodo tiene: capacidad para 10 direcciones directas 1 entrada indirecta simple 1 entrada indirecta doble 1 entrada indirecta tripe El tamao del bloque es 512 bytes y una direccin requiere 4 bytes(32 bits), por lo que un bloque de datos puede almacenar 512/4 = 128 direcciones. Cul es el tamao mximo que puede tener un archivo en este sistema ?

Resumen detallado

Tipo de Entrada 10 entradas directas 1 entrada indirecta simple 1 entrada indirecta doble

Total de bloques accesibles 10 bloques de datos 1 bloque indirecto simple = 128 bloques de datos 1 bloque indirecto doble = 128 bloques indirectos simples = 128*128=16384 bloques de datos 1 bloque indirecto triple = 128 bloques indirectos dobles = 128*128 bloques indirectos simples = 128*128*128 = 2097152 bloques de datos TAMAO MAXIMO

Total de bytes accesibles 10*512 = 5120 bytes 128*512 = 65536 bytes

16384*512 = 8388608 bytes

1 entrada indirecta triple

2097152*512 = 1073741824 bytes

1082201088 bytes ~ 1 GByte

TIPOS DE ARCHIVOS EN UNIX


ORDINARIOS Contienen bytes de datos organizados como un arreglo lineal

DIRECTORIOS TIPOS DE ARCHIVOS

Nos permiten darle una estructura jerrquica a los sistemas de archivos de UNIX. Su funcin consiste en establecer la relacin que existe entre el nombre del archivo y su i-nodo correspondiente.

DE DISPOSITIVOS

Se utilizan para que los procesos se comuniquen con los dispositivos perifricos: discos, cintas, impresoras, terminales, redes, etc.

TUBERAS

Archivo con una estructura similar a la de uno ordinario con la diferencia es que stos son transitorios. Lo que quiere decir, que los datos desaparecen de la tubera conforme son ledos.

ARCHIVOS ORDINARIOS
Operaciones que se realizan con los datos de un archivo: a)Leer o escribir cualquier byte del archivo. b)Aadir bytes al final del archivo, con lo que aumenta su tamao.

c)Truncar el tamao de un archivo a cero bytes. Esto es como si se borrara el contenido del archivo.
Las siguientes operaciones no son permitidas: a)Insertar bytes en un archivo, excepto al final. Pero si se pueden modificar los bytes existentes. b)Borrar bytes de un archivo. No confundir con la puesta a cero de los existentes.

c)Truncar el tamao de un archivo a un valor distinto de cero.

Los archivos ordinarios, como tales, no tienen nombre y el acceso a ellos se realiza a travs de los i-nodos.

DIRECTORIOS
Los directorios son los archivos que permiten darle una estructura jerrquica a los sistemas de archivos de UNIX. Su funcin consiste en establecer la relacin que existe entre el nombre de un archivo y su i-nodo correspondiente.

ESTRUCTURA TPICA
Un directorio es un archivo cuyos datos estn organizados como una secuencia de entradas, cada una de las cuales contiene un nmero de i-nodos y el nombre de un archivo que pertenece al directorio. Al par [i-nodo] <-> [nombre de archivo] se le conoce como enlace y pueden haber varios nombres de archivos distribuidos por la jerarqua de directorios que estn enlazados con un mismo i-nodo. El tamao de cada entrada es de 16 bytes; dos dedicados al i-nodo y 14 dedicados al nombre del archivo.

Tiene asociado el i-nodo del directorio actual

16
32 48 64

Tiene asociado el i-nodo del directorio padre del actual


i-nodo 6 es para /usr

1 1 4 7 14 9 6 8

. .. bin dev lib etc usr tmp

Modo tamao tiempos

6 1

i-nodo 132 es para el directorio /usr

.. dick erick jim ast bal

132

19 30 51 26 45

DIRECTORIOS

Los procesos pueden leer el contenido de un directorio como si se tratase de un archivo de datos, pero no pueden modificarlo. Los permisos de acceso a un directorio tienen los siguientes significados:

a) Lectura, permite que un proceso lea ese directorio. b) Escritura, permite a un proceso crear una nueva entrada en el directorio o borrar alguna ya existente. Esto deber hacerlo a travs de las llamadas: creat, mknod, link o unlink. c) Ejecucin, autoriza a un proceso para buscar el nombre de un archivo dentro del directorio.

IMPLEMENTACIN DE DIRECTORIOS
Antes de poder leer un archivo, hay que abrirlo. Cuando se abre un archivo, el sistema operativo usa el nombre de ruta proporcionado por el usuario para localizar la entrada de directorio. Esta entrada proporciona la informacin necesaria para encontrar los bloques de disco. DIRECTORIO DE MSDOS En el caso de los directorios de MS-DOS que es un ejemplo de sistemas con rboles de directorios jerrquicos. Se muestra a continuacin la entrada de directorio de MS-DOS, la cual contiene 32 bytes de longitud y contiene el nombre del archivo, los atributos y el nmero del primer bloque del disco. El primer nmero de bloque se emplea como ndice de una tabla del tipo de la figura a la derecha. Siguiendo la cadena, se pueden encontrar todos los bloques.
Bytes Bloque fsico 0 1 2 3 4 5 6 7 8 9 10

10 11 7 3 2

El archivo A comienza aqu El archivo B comienza aqu

11
12 13 14 15

12 14 0 0
Bloque no utilizado

8 Nombre de archivo

10

4
Tamao

Extensin

Atributos

Reservado

Hora Fecha

Primer nmero de bloque

NOMBRE Y USO DE LOS PRINCIPALES DIRECTORIOS DE LINUX

ARCHIVOS ESPECIALES
Estos archivos se utilizan para que los procesos se comuniquen con los dispositivos perifricos: archivos modo bloque (discos, cintas) y archivos modo carcter (terminales serie y las lneas de la impresora). Cada dispositivo debe de tener su propio manejador.

ARCHIVOS COMUNES

ARCHIVOS DE DISPOSITIVO
i-nodo

major number Tipo de dispositivo: disco, cinta, terminal

minor number Nmero de unidad dentro del dispositivo

Estos nmeros los utiliza el ncleo para buscar dentro de unas tablas BDST (Block Device Switch Table) y CDSW (Character Device Switch Table) una coleccin de rutinas que permiten manejar el dispositivo.

TUBERAS CON NOMBRE


Una tubera es un archivo con una estructura similar a la de un archivo ordinario, con la diferencia es que los archivos tipo tubera son transitorios; esto es, que desaparecen conforme son ledos. Abre para escribir

PROCESO A

Tubera

Abre para leer

PROCESO B

La tuberas se utilizan para comunicar procesos. Los datos siguen se escriben y leen bajo el formato FIFO. La sincronizacin es tarea del ncleo del sistema. El almacenamiento slo se realiza de forma directa del bloque del i-nodo.

TUBERAS SIN NOMBRE


No tienen asociado un nombre de archivo y slo existen mientras un proceso est unido a ellas. Tambin actan como un canal de comunicacin entre dos procesos y tienen asociado un i-nodo mientras existen. Ejemplo: $ ls | sort r

La ejecucin de la lnea anterior implica la ejecucin de dos procesos, el resultado de uno de ellos se complementa con el otro.
Cul es el resultado que se obtendr?

PROCESO A

ls enva
Tubera

sort r lee

PROCESO B

PROCESO DE INICIO DE UN ORDENADOR


El POST es el acrnimo ingls de Power On Self Test (Auto diagnstico al encender). Es un proceso de verificacin e inicializacin de los componentes de entrada y salida en un sistema de cmputo que se encarga de configurar y diagnosticar el estado del hardware.
Cdigo o cantidad de pitidos 1 tono corto Ningn tono Significado El chequeo ha terminado satisfactoriamente. No hay electricidad, las bocinas estn desconectadas o BIOS corrupta

Tono ininterrumpido
Tonos cortos y seguidos 1 tono largo 1 tono largo y 1 corto 1 tono largo y 2 cortos 1 tono largo y 3 cortos 2 tonos largos y 1 corto 2 tonos cortos 3 tonos cortos 4 tonos cortos 5 tonos cortos 6 tonos cortos 7 tonos cortos 8 tonos cortos 9 tonos cortos 10 tonos cortos

Fallo en el suministro elctrico


Placa base estropeada La memoria RAM no funciona o no hay instalada Fallo en la placa base o en ROM Fallo en la tarjeta de vdeo o no hay instalada Fallo en la tarjeta EGA Fallo en la sincronizacin de imagen. Error en la paridad de la memoria Fallo en los primeros 64 Kb de la memoria RAM Temporizador o contador defectuoso El procesador o la tarjeta de vdeo no pasan el test Fallo en el controlador del teclado Modo virtual de procesador AT activo, Error de excepcin/identificador del procesador. Fallo en la escritura de la RAM de video. Error de checksum de la ROM en la BIOS Error de CMOS.

PROCESO DE INICIO DE UN ORDENADOR


Las funciones principales de la BIOS durante la POST principales son las siguientes: verificar la integridad del cdigo del BIOS. encontrar, dimensionar y verificar la memoria principal del sistema. descubrir, inicializar y catalogar todos los buses del sistema y dispositivos. pasar el control a otras BIOS especializadas (siempre y cuando sea necesario). proporcionar una interfaz de usuario para la configuracin del sistema. identificar, organizar y seleccionar los dispositivos que estn disponibles para el arranque. construccin de cualquier entorno de sistema que es requerido por el sistema operativo destino.

PROCESO DE INICIO DE UN ORDENADOR


Code 100199 200299 System boards Memory Meaning

300399
400499 500599 600699 700799 900999 10001099 11001299 13001399

Keyboard
Monochrome display Color/graphics display Floppy-disk drive or adapter Math coprocessor Parallel printer port Alternate printer adapter Asynchronous communication device, adapter, or port Game port

14001499
15001599

Color/graphics printer
Synchronous communication device, adapter, or port

PROCESO DE INICIO DE UN ORDENADOR


Code 17001799 18001899 20002199 24002599 30003199 48004999 70007099 73007399 89008999 1120011299 2100021099 2150021599 Hard drive and/or adapter Expansion unit (XT) Bisynchronous communication adapter EGA system-board video (MCA) LAN adapter Internal modem Phoenix BIOS chips 3.5-inch disk drive MIDI adapter SCSI adapter SCSI fixed disk and controller SCSI CD-ROM system Meaning

PROCESO DE INICIO DE UN ORDENADOR


Una vez que el PC arranca, comienza a ejecutarse el cdigo que se encuentra en la dir. F000:FFF0 el cual pertenece al ROM-BIOS y es el encargado de realizar una serie de tests e inicializaciones. Esta rutina se llama POST (Power On Self-Test). Una vez que la BIOS termina con sus tests e inicializaciones carga el primer sector (cilindro 0, cabeza 0, sector 1) en la dir. 0000:7C00 (7C00 lineal), comprueba que contenga cdigo vlido (comprueba que est firmado con 55H, AAH en los bytes 511 y 512) y salta a esa direccin (CS:IP apuntan a esa direccin). El bootstrapping tambin puede referirse al proceso mediante el cual se han desarrollado entornos de programacin cada vez ms complejos a partir de otros ms simples. El entorno ms simple sera, quizs, un editor de textos muy sencillo (p. e. ed) y un programa ensamblador. Utilizando estas herramientas, se puede escribir un editor de texto ms complejo y un compilador simple para un lenguaje de ms alto nivel y as sucesivamente, hasta obtener un entorno de desarrollo integrado y un lenguaje de programacin de muy alto nivel.

El programa inicial bootstrap inicializa todos los aspectos del sistema, desde los registros del procesador hasta los controladores de dispositivos y el contenido de la memoria principal, tras lo cual inicia el sistema operativo. Para ello encuentra al kernel del sistema operativo en el disco, lo carga en memoria, y salta a la direccin inicial para comenzar la ejecucin del sistema operativo. Dicho bootstrap se almacena en la memoria ROM. Una alternativa a lo anterior es que una parte pequea del bootstrap se almacena en la ROM, la cual tiene como trabajo saltar al programa bootstrap completo que se encuentra en el disco. Dicho cdigo se almacena en los bloques de inicio del sistema operativo, y por lo tanto puede ser modificado ms fcilmente que el almacenado de manera completa en la ROM.

PROCESO DE ARRANQUE DE UNA MQUINA CON WINDOWS 2000


CDIGO DE ARRANQUE

MBR
TABLA DE PARTICIN

PARTICIN 1

d) Se carga luego entonces la particin de arranque del sistema y dems controladores de dispositivos.

a) El cdigo en la ROM instruye al controlador de disco a leer los bloques de arranque a memoria y ejecuta el cdigo

PARTICIN 2 PARTICIN DE ARRANQUE PARTICIN 3

PARTICIN 4

e) Se inicializa sistema

el

b) Windows 2000 coloca su cdigo de arranque en el MBR, considerando adems que el disco puede estar dividido en varias particiones

c) Se lee y ejecuta el pequeo cdigo almacenado en el MBR (contenido en los primeros 440 bytes)

nota
En las versiones anteriores del sistema operativo Windows que se ejecutan en un equipo basado en el sistema bsico de entrada/salida (BIOS, Basic Input/Output System), como Windows XP, el proceso de arranque se inicia con el BIOS del sistema. El BIOS determina el dispositivo de arranque y, despus, carga el primer sector fsico. Este sector fsico se conoce como el registro de arranque maestro (MBR, Master Boot Record). El MBR contiene la tabla de particiones y el cdigo de ejecucin de arranque necesario. Este cdigo busca en la tabla de particiones las particiones activas y pasa el control al sector de arranque en la particin activa. Despus, el sector de arranque de la particin activa carga el programa Ntldr.exe. El programa Ntldr.exe analiza el archivo Boot.ini. Este archivo se usa para enumerar los sistemas operativos que estn instalados.

LA FAT 32 DE MS-DOS

http://en.wikipedia.org/wiki/File_Allocation_Table

BOOT SECTOR

TABLAS DE CONTROL DE ACCESO A LOS ARCHIVOS


Adems de la tabla de i-nodos, el ncleo mantiene en memoria otras dos tablas que contienen informacin necesaria para poder manipular un archivo: la tabla de archivos y la tabla de descriptores de archivo. Cada entrada de la tabla de archivos contiene tambin un apuntador a una estructura de datos que contiene informacin del estado actual del archivo.

TABLA DE ARCHIVOS
La tabla de archivos es una estructura global del ncleo y en ella existe una entrada por cada archivo distinto que los procesos del ncleo o los procesos del usuario tienen abiertos. Cada vez que un proceso abre o crea un archivo nuevo, se reserva una nueva entrada en la tabla. Las operaciones que se deben implementar por cada tipo ce archivo son: Funciones para leer y escribir en un archivo. Una funcin para realizar la multiplexacin sncrona de la E/S,. Una funcin para controlar los modos de E/S, ioctl. Una funcin para cerrar el archivo. close.

TABLA DE DESCRIPTORES DE ARCHIVO


La tabla de descriptores de archivo es una estructura local a cada proceso. Esta tabla identifica todos los archivos abiertos por un proceso. Cuando se utilizan las llamadas al sistema open, creat, dup, o link, el ncleo devuelve un descriptor de archivo, que es un ndice para poder acceder a las entradas de la tabla anterior. En cada una de las entradas de la tabla exite un apuntador a una entrada de la tabla de archivos del sistema. El ncleo manipula las tablas anteriores a travs del descriptor de archivo dado por el proceso. Cuando un proceso utiliza una llamada para realizar una operacin sobre un archivo, le pasa al ncleo el descriptor de ese archivo. El ncleo utiliza este nmero para acceder a la tabla de descriptores de archivo del proceso y buscar en ella cul es la entrada de la tabla de archivos que le da acceso a su inodo. El tamao de la tabla de descriptores est limitado (20). En informtica los trminos descriptor de archivo o descriptor de fichero son usados generalmente en sistemas operativos POSIX. En la terminologa de Microsoft Windows y en el contexto de la biblioteca stdio, se prefiere el trmino "manipulador de archivos" o "manipulador de ficheros", ya que es tcnicamente un objeto diferente. En POSIX, un descriptor de archivo es un entero, especficamente del tipo int de C. Hay 3 descriptores de archivo estndar de POSIX que presumiblemente tiene cada proceso, salvo quiz los demonios:

Generalmente, un descriptor de archivo es una clave a una estructura de datos residente en el ncleo, que contiene detalles de todos los archivos abiertos. En POSIX, esta estructura de datos se llama "tabla de descriptores de archivos", y cada proceso tiene la suya. La aplicacin que lanza un usuario pasa al ncleo la clave abstracta mediante una llamada al sistema, y el ncleo tendr acceso al archivo a nombre de la aplicacin, que se basar en la clave. Esa misma aplicacin no puede acceder a la tabla de descriptores de archivo directamente, ni para leer ni para escribir. En los sistemas Unix, los descriptores de archivo se pueden referir a archivos, directorios, dispositivos de bloques o dispositivos de caracteres (tambin llamados "archivos especiales"), sockets, FIFOs (tambin llamados "tuberas con nombre") o tuberas sin nombre.

Suponga que un segundo proceso ejecuta el siguiente cdigo: fd1= open("/etc/passwd", O_RDONLY); fd2 =open("private", O_RDONLY);

Como se ve en la figura cada open crea una entrada en la tabla de descriptores y en la tabla de archivos abiertos. Pero en la tabla de inodos slo se incrementa el contador de archivos abiertos.

CARACTERSTICAS DE EFICIENCIA DEL SISTEMA DE ARCHIVOS Ext2


Cuando se crea un sistema de archivo Ext2, el administrador del mismo puede seleccionar el tamao de bloque ptimo (de 1,024 a 4,096 bytes), dependiendo de la longitud de los archivos promedio que se podran esperar. Por ejemplo, un tamao de bloque de 1,024-block es deseable cuando la longitud del archivo promedio es ms pequea que unos cientos de de bytes dado que esto implicara una menor fragmentacin interna esto es, menos semejanza entre la longitud del archivo y la porcion del disco que la contiene. Por otro lado, tamaos de bloques ms grandes son regularmente preferibles para archivos ms grandes que unos cuantos de bytes dado que esto permitir menores transferencias de disco, reduciendo. Cuando se crea el sistema de archivos Ext2, el administrador del sistema debe de seleccionar cuantos i-nodos son permisibles para una particin de una tamao determinado, dependiendo del nmero esperado de archivos que sern almacenados. Esto maximiza el espacio de disco efectivamente til. El sistema de archivos particiona los bloques de disco en grupos. Cada grupo incluye bloques de datos e i-nodos almacenados en pistas adjuntas. Debido a esta estructura, los archivos almacenados en un grupo de bloques sencillo puede ser accedido tiempo de bsqueda en disco en promedio ms pequeo. El sistema de archivos prealmacena bloques de datos del disco para archivos ordinarios antes de que sean utilizados. As, cuando un archivo incrementa su tamao, muchos bloques son reservados en posiciones fsicas adyacentes, reduciendo con ello la fragmentacin de disco. Enlaces simblicos rpidos son soportados. Si el nombre de trayectoria de un enlace simblico tiene 60 bytes o menos, se almacena en un inodo y puede as ser traducido sin leer un bloque de datos.

CARACTERSTICAS DE ROBUSTEZ Y FLEXIBILIDAD


Una implementacin cuidadosa de la estrategia de actualizacin de archivos que minimiza el impacto de las cadas del sistema. Por ejemplo, cuando se crea un nuevo enlace duro de un archivo, el contador de enlaces duros en un i-nodo del disco se ve incrementado, y el nuevo nombre se agrega en un directorio prximo. De esta forma, si ocurre una falla en el hardware despus de que el i-nodo se actualiza pero antes de que el directorio sea cambiado, el directorio es consistente, incluso si el contador de enlace duro del i-nodo es incorrecto. La eliminacin de archivos no conduce a resultados catastrficos, sin embargo los bloques de datos del archivo no pueden ser reclamados. Errores grandes se produjeran si se cambia primero el directorio antes de la actualizacin del i-nodo. Soporta para la verificacin de consistencia automtica sobre el estado del sistema de archivos al tiempo en que arranca el sistema. Las verificaciones son realizadas por el programa externo e2fsck, el cual puede ser activado no slo por despus del crash del sistema, sino tambin despus de un nmero de veces que un sistema de archivos se monta. Soporte para archivos inmutables (no pueden ser modificados, borrados o renombrados) y para archivos de slo lectura (los datos pueden ser agregados slo al final de ellos). La compatibilidad con el Sistema Unix versin 4 y la semntica BSD del proceso que lo crea; en BSD, el nuevo archivo hereda el ID del Grupo del directorio que lo contiene. Ext2 incluye una opcin de montado que especfica qu semntica se est utilizando.

EL SISTEMA DE ARCHIVOS ext2

$fdisk l $dd if=/dev/sda count=1 | hexdump C | more $df $dumpe2fs /dev/sda -h

La estructura fsica de Ext2fs est fuertemente influenciada por la distribucin (layout) del sistema de ficheros BSD [McKusic et al. 1984]. Un sistema de archivos se compone de grupos de bloques. Los grupos de bloques son anlogos a los grupos de cilindros. Sin embargo los grupos de bloques no se encuentran atados a la disposicin fsica de los bloques en el disco.
Ext2fs divide el disco en pequeas unidades lgicas llamadas bloques. El ext2 divide las particiones lgicas que ocupa en Grupo de Bloques (BG), conjuntos de bloques secuenciales. Dichos grupos reducen la fragmentacin de disco

Todos los grupos de bloques en el sistema de archivos tienen el mismo tamao y son almacenados de forma secuencial.

Como resultado, la mayor parte de la gestin del sistema de ficheros se reduce a la gestin de un slo grupo de bloques.

EL SISTEMA DE ARCHIVOS ext2


Cada grupo contiene una copia redundante de informacin de control crucial del FS (el superbloque y los descriptores del FS) adems de parte del propio FS (block bitmap, inode bitmap, una porcin de la tabla de inodos, y bloques de datos). La estructura de un grupo de bloques es como sigue:
Este esquema reduce la fragmentacin, debido a que el kernel conserva los bloques de datos de un archivo dentro de un mismo grupo de bloques, si es posible.

Cada Grupo de Bloques BG contiene:


Una copia del superbloque. Tabla con los descriptores del grupo. Un mapa de bits de bloques de datos. Un mapa de bits de inodos. Un grupo de inodos. Bloques de datos.

Slo esta parte es usada por el kernel

Usar grupos de bloques es un gran avance en trminos de fiabilidad: el hecho de guardar una copia de las estructuras de control superbloque y tabla de descriptores en cada grupo facilita la recuperacin del FS ante una corrupcin del superbloque, si ocurre una corrupcin de datos y el super bloque principal o los descriptores de bloque principal en el grupo de bloque 0 son invlidos, el administrador del sistema puede indicar a la aplicacin e2fsck que se refiera a dopias del superbloque de otro grupos de bloque. Tambin ayuda a alcanzar un buen rendimiento: reduciendo la distancia entre la tabla de inodos y los bloques de datos es posible reducir las bsquedas de las cabezas de los discos.

TOTAL DE GRUPOS DE BLOQUE


El nmero total de grupos de bloque depende del tamao de la particin y el tamao del bloque. La condicin principal es que el bloque de mapas de bits, que se utiliza para identificar los bloques que son utilizados y libres dentro del grupo, deben de ser almacenados en un bloque simple. Por lo tanto, en cada grupo de bloque, deben de existir al menos 8xb bloques, donde b es el tamao del bloque en bytes. As, el nmero total de bloques de grupo es exactamente s/(8xb), siendo s el tamao de la particin en bloques. Por ejemplo: Particin: 8GB Tamao de bloque: 4 kB Cada mapa de bits de 4kB describe a 32k bloques de datos, esto es 128 MB.

Nmero total de grupos de bloque: 64

DESCRIPTORES DE GRUPO Y MAPAS DE BITS


Cada grupo de bloques tiene su propio descriptor de grupo, la estructura ext2_group_desc mantiene campos referenciados a este tipo de estructura. Los campos bg_free_blocks_count, bg_free_inodes_count y bg_used_dirs_count se utilizan cuando se almacenan nuevos i-nodos y bloques de datos. Estos campos determinan el bloque adecuado en el cual almacenar cada estructura de datos. Los mapas de bits son secuencias de bits, en donde el valor 0 especifica que el i-nodo correspondiente o bloque de datos se encuentra libre y un 1 es indicativo de que se encuentra ocupado. Debido a que cada mapa de bits debe de almacenarse dentro de un bloque sencillo y dado que cada tamao de bloque puede ser de 1, 2 0 4k, un mapa de bits simple describe el estado de 8, 16 y 32k bloques.

TABLA DE i-nodos

Consiste de una serie de bloques consecutivos, cada uno de los cuales contiene un nmero predefinido de i-nodos. El nmero de bloque del primer bloque de la tabla de i-nodo es almacenado en el campo bg_inode_table del grupo descriptor. Todos los i-nodos tienen el tamao de 128 bytes. Un bloque de 1024 bytes contiene 8 inodos, mientras que un bloque de 4k contiene 32 i-nodos, varios campos controlan esta informacin.

TIPOS DE ARCHIVOS

DIRECTORIOS
El superbloque es un bloque que contiene la informacin ms relevante y describe al sistema de ficheros. Se encuentra en el offset fijo 1024 del disco y ocupa 1024 bytes.
370/* 371 * Structure of the super block 372 */ 373struct ext2_super_block { 374 __le32 s_inodes_count; /* Inodes count */ 375 __le32 s_blocks_count; /* Blocks count */ 376 __le32 s_r_blocks_count; /* Reserved blocks count */ 377 __le32 s_free_blocks_count; /* Free blocks count */ 378 __le32 s_free_inodes_count; /* Free inodes count */ 379 __le32 s_first_data_block; /* First Data Block */ 380 __le32 s_log_block_size; /* Block size */ 381 __le32 s_log_frag_size; /* Fragment size */ 382 __le32 s_blocks_per_group; /* # Blocks per group */ 383 __le32 s_frags_per_group; /* # Fragments per group */ 390 __le16 s_state; /* File system state */ 391 __le16 s_errors; /* Behaviour when detecting errors */ 392 __le16 s_minor_rev_level; /* minor revision level */ 393 __le32 s_lastcheck; /* time of last check */ 394 __le32 s_checkinterval; /* max. time between checks */ 395 __le32 s_creator_os; /* OS */ 396 __le32 s_rev_level; /* Revision level */ 397 __le16 s_def_resuid; /* Default uid for reserved blocks */ 398 __le16 s_def_resgid; /* Default gid for reserved blocks */ 384 __le32 s_inodes_per_group; /* # Inodes per group */ 385 __le32 s_mtime; /* Mount time */ 386 __le32 s_wtime; /* Write time */ 387 __le16 s_mnt_count; /* Mount count */ 388 __le16 s_max_mnt_count; /* Maximal mount count */ 389 __le16 s_magic; /* Magic signature */

Los directorios en Ext2fs son listas enlazadas con entradas de longitud variable. Cada entrada contiene el nmero de inodo, la longitud de la entrada, el nombre de archivo y su longitud. La estructura de un directorio se muestra a continuacin:

Por lo regular, si el nombre de la trayectoria de un enlace simblico tiene hasta 60 caracteres, stos son almacenados en el campo i_block del i-nodo, el cual consiste de un arreglo de 15 enteros de 4 bytes; por lo que no se requieren bloques de datos, si el nombre de la trayectoria es mayor a 60 si se requiere 1 bloque. Los archivos de dispositivo, tubera y sockets no requieren bloques. Toda la informacin se almacena en el i-nodo.

ESTRUCTURAS DE DATOS DE ext2 EN LA MEMORIA


Por aspectos de eficiencia, la mayor parte de la informacin de la estrcutura de datos del disco de una particin de ext2 es copiada a la RAM cuando el sistema de archivos es montado, as se le permite al kernel evitar muchas operaciones de lectura de disco subsecuentes. Debido a que las estructuras de datos de disco Ext2 se almacenan en bloques de la particin Ext2, el kernel utiliza el buffer cache y la pgina cache para conservarlos actualizados.

La siguiente tabla muestra cada tipo de datos relacionado al sistema de archivos Ext2 y los archivos, la estructura de datos utilizada sobre el disco para representar sus datos, la estructura de datos utilizada por el kernel en memoria, y la regla de utilizada para determinar cuantos almacenamiento en cach es utilizado.

ESTRUCTURAS DE DATOS DE ext2 EN LA MEMORIA


Cuando el ncleo monta el sistema de ficheros ext2, se asigna un bfer para el superbloque de Ext2 y lee su contenido desde el disco. El buffer se libera slo cuando el sistema de archivos Ext2 es desmontado. Cuando el kernel debe modificar un campo en el superbloque Ext2, simplemente escribe el nuevo valor en la posicin correcta del buffer correspondiente y luego marca el buffer como sucio.
Por desgracia, este enfoque no puede ser adoptado por todas las estructuras de Ext2. El aumento en la capacidad de los discos alcanzado en los ltimos aos ha provocado un aumento en el tamao del i-nodo y de los mapas de bits de los bloques de datos, por lo que hemos llegado al punto en que ya no es conveniente guardar todos los mapas de bits en la memoria RAM, al mismo tiempo. Por ejemplo, considere un disco de 4 GB con un tamao de bloque de 1 KB. Ya que cada uno de los mapas de bits llena todos los bits de un bloque sencillo, cada uno de ellos describe el estado de 8,192 bloques -es decir, de 8 MB de almacenamiento en disco-. El nmero de grupos de bloques es de 4.096 MB / 8MB = 512. Debido a que cada grupo de bloques requiere un mapa de bits de i-nodos y un mapa de bits de bloques de datos, 1 MB de RAM sera necesario para almacenar todos los 1024 mapas de bits en memoria.

EL SISTEMA DE ARCHIVOS ext3


La principal diferencia con ext2 es el registro por diario. Un sistema de archivos ext3 puede ser montado y usado como un sistema de archivos ext2. Otra diferencia importante es que ext3 utiliza un rbol binario balanceado (rbol AVL) e incorpora el asignador de bloques de disco Orlov, adems de tener un crecimiento en lnea. El journaling es un mecanismo por el cual un sistema informtico puede implementar transacciones. Tambin se le conoce como registro por diario. Se basa en llevar un journal o registro de diario en el que se almacena la informacin necesaria para restablecer los datos afectados por la transaccin en caso de que sta falle. El procedimiento es bsicamente el siguiente: Se bloquean las estructuras de datos afectadas por la transaccin para que ningn otro proceso pueda modificarlas mientras sta dura. Se reserva un recurso para almacenar el journal. Por lo general suelen ser unos bloques de disco, de modo que si el sistema se para de forma abrupta (corte elctrico, avera, fallo del sistema operativo...) el journal siga disponible una vez reiniciado el sistema. Se efectan una a una las modificaciones en la estructura de datos. Para cada una: Se apunta en el journal como deshacer la modificacin y se asegura de que esta informacin se escribe fsicamente en el disco. Se realiza la modificacin. Si en cualquier momento se quiere cancelar la transaccin se deshacen los cambios uno a uno leyndolos y borrndolos del journal. Si todo ha ido bien, se borra el journal y se desbloquean las estructuras de datos afectadas.

EL SISTEMA DE ARCHIVOS ext3


Las aplicaciones ms frecuentes de los sistemas de journaling se usan para implementar transacciones de sistemas de bases de datos y, ms recientemente, para evitar la corrupcin de las estructuras de datos en las que se basan los sistemas de archivos modernos. En el caso concreto de los sistemas de archivos, el journaling se suele limitar a las operaciones que afectan a las estructuras que mantienen informacin sobre:

Estructuras de directorio. Bloques libres de disco. Descriptores de archivo (tamao, fecha de modificacin...)
El hecho de que no se suela implementar el journaling de los datos concretos de un archivo suele carecer de importancia, puesto que lo que persigue el journaling de sistemas de archivos es evitar los engorrosos y largos chequeos de disco que efectan los sistemas al apagarse bruscamente, ya que el sistema al arrancar solo deber deshacer el journal para tener un sistema coherente de nuevo.

POSIBLES NIVELES DEL REGISTRO POR DIARIO


DIARIO (bajo riesgo)
Los metadatos y los archivos de contenido son copiados al diario antes de ser llevados al sistema de archivos principal. Como el diario est en el disco continuamente puede mejorar el rendimiento en ciertas ocasiones. En otras ocasiones el rendimiento es peor porque los datos deben ser escritos dos veces, una al diario y otra a la parte principal del sistema de archivos.

PEDIDO (riesgo medio)

Solo los metadatos son registrados en el diario, los contenidos no, pero est asegurado que el contenido del archivo es escrito en el disco antes de que el metadato asociado se marque como transcrito en el diario. Es el sistema por defecto en la mayora de las distribuciones de Linux. Si hay un error de tensin o kernel Panic cuando el archivo se est escribiendo o est empezando, el diario indicar que el nuevo archivo o el intento no ha sido pasado, por lo que ser purgado por el proceso de limpiado.

REESTRUCTURA (riesgo alto)

Solo los metadatos son registrados en el diario, el contenido de los archivos no. Los contenidos pueden estar escritos antes o despus de que el diario se actualice. Como resultado, los archivos modificados correctamente antes de una ruptura pueden volverse corruptos. Por ejemplo, un archivo pendiente de ser marcado en el diario como mayor de lo que actualmente es, convirtiendo en basura al final de la comprobacin. Las versiones antiguas de los archivos pueden aparecer inesperadamente despus de una recuperacin de diario. La carencia de sincronizacin entre los datos y el diario es rpidamente subsanada en muchos casos. JFS usa este nivel de journaling, pero se asegura de que cualquier basura es borrada al reiniciar.

DESVENTAJAS DEL SISTEMA DE ARCHIVOS ext3


Funcionalidad Como ext3 est hecho para ser compatible con ext2, la mayora de las estructuras del almacenamiento son similares a las de ext2. Por ello, ext3 carece de muchas caractersticas de los diseos ms recientes como las extensiones, la localizacin dinmica de los i-nodos, y la sub-localizacin de los bloques. Hay un lmite de 31998 subdirectorios por cada directorio, que se derivan de su lmite de 32 links por i-nodo. Ext3, como la mayora de los sistemas de archivos actuales de Linux, no puede ser verificado por el fsck mientras el sistema de archivos est montado para la escritura. Si se intenta verificar un sistema de archivos que est montado puede detectar falsos errores donde los datos no han sido volcados al disco todava, y corromper el sistema de archivos al intentar arreglar esos errores. Fragmentacin

No hay herramienta de desgragmentacin online para ext3 que funcione en nivel del sistema de archivos. Existe un desfragmentador offline para ext2, e2defrag, pero requiere que el sistema de archivos ext3 sea reconvertido a ext2 antes de iniciarse. Pero dependiendo de los bits encendidos en el sistema, e2defrag puede destruir datos. No sabe como tratar la mayora de las nuevas caractersticas de ext3. Hay herramientas de usuario para desfragmentar como Shake y Defrag. Shake trabaja localizando para todo el archivo como una operacin, lo que generalmente causa que el localizador encuentre espacio continuo en el disco. Tambin intenta escribir archivos usados al mismo tiempo que otros. Defrag trabaja copiando cada archivo sobre s mismo. De todas formas solo funcionan si el sistema de archivos esta razonablemente vaco. No existe una verdadera herramienta de desfragmentacin para ext3.

CARACTERSTICAS DEL SISTEMA DE ARCHIVOS ext4


Caractersticas
Sistema de archivos ms grande

Ventajas
El sistema de archivos Ext3 alcanza un mximo de 32 TB (TIB), y una longitud de los archivos de 2 TB, pero los lmites, en la realidad, pueden ser inferiores a stos y estn en funcin de la arquitectura y configuracin de un sistema determinado, tal vez un mnimo de 2TB en el sistemas de archivos y 16 GB en la longitud de loa archivos. Ext4, por el contrario, permite que los sistemas de archivos lleguen hasta 1024 (PetaBytes), o 1 (ExaByte), y archivos de hasta 16 TB. Esto puede no ser importante (por ahora) para la computadora de escritorio o un servidor de medios, pero es importante para los usuarios con los arrays de disco de gran tamao. Un extents es una forma de mejorar la eficiencia de los descriptores de archivo en el disco, reduciendo los tiempos de acceso a archivos de gran tamao, entre otras cosas. Si una aplicacin requiere asignar espacio en disco antes de utilizarla, la mayora de los sistemas de archivos lo hacen pero escribiendo 0s en el espacio de disco que an no es utilizado. Ext4 permite la preasignacin sin hacer esto, lo que puede mejorar el rendimiento de algunas herramientas de multimedia y en base de datos. Ext4 puede retrasar la asignacin de espacio en disco hasta el ltimo momento, lo que puede mejorar el rendimiento. Ext3 slo puede contener 32.000 subdirectorios dentro de un directorio, en ext4 este lmite ha sido eliminado. Ext4 aade una suma de comprobacin de los datos de diario, lo que mejora la fiabilidad y el rendimiento. Ext4 adds a checksum to the journal data, which improves reliability and performance.

Extents Pre-almacenamiento persistente Asignacin retardada

Mas subdirectorios
Verificacin tipo checksum De-fragmentacin lnea en

Aunque ext3 no es propenso a la fragmentacin excesiva, los archivos almacenados en ella pueden llegar a ser al menos un poco fragmentado. Ext4 aade soporte para la desfragmentacin en lnea, lo que debe mejorar el rendimiento general.

CARACTERSTICAS DEL SISTEMA DE ARCHIVOS ext4


Recuperacin
Verificacin del sistema de archivos ms rpida
Aunque no ha sido implementado, ext4 puede recuperar la recuperacin (despus de una eliminacin), lo cual, por supuesto, es muy til cuando alguien accidentalmente borra un archivo. Ext4 aade estructuras de datos que permiten a fsck no analizar partes no utilizadas del disco en sus verificaciones, lo que permite acelerar los controles del sistema de archivos

Nanosecond timestamps

La mayora de los sistemas de archivos, incluyendo ext3, incluyen los datos de fecha y hora que son precisas en un segundo. Ext4 extiende la exactitud de estos datos a un nanosegundo. Algunas fuentes tambin indican que el ext4 brinda apoyo a fechas del 25 de abril 2514, contra el 18 de enero 2038, para ext3.

EL SISTEMA DE ARCHIVOS VIRTUAL


Los distintos SO suelen usar su propio Sistema de Ficheros, esto complica la comparticin de datos en un disco duro entre distintos SO. Linux ofrece soporte para distintos Sistemas de Ficheros como EXT2, Minix, FAT Los procesos necesitan de un acceso uniforme a los datos, sin preocuparse de qu Sistema de Ficheros se trata, el VFS es la interfaz entre las llamadas al sistema y la gestin de archivos. Las llamadas se dirigen al VFS, que redirige la peticin al mdulo que gestiona el archivo.

INVESTIGACIN

Cmo se realiza la administracin del sistema de archivos? Qu son las particiones del disco? Qu implica dar formato a un disco? Cmo se construye un sistema de archivos? Cmo se comprueba el estado de un sistema de archivos? Cmo se monta y desmonta un sistema de archivos?

CONCLUSIONES

Un sistema de archivos es un mecanismo de abstraccin de los dispositivos fsicos de almacenamiento que nos permite manejarlos a un nivel lgico sin la necesidad de conocer su arquitectura hardware particular. Existen CUATRO partes importantes que componen a un sistema de archivos dentro de la unidad de almacenamiento correspondiente: .bloques de boot, superbloque, lista de i-nodos y bloques de datos. Para conseguir tamaos del i-nodo pequeo y a la vez gestionar archivos grandes, las entradas de direcciones del i-nodo se ajustan a un esquema de entradas directas, indirectas simples, indirectas dobles e indirectas triples.

El subsistema de archivos controla los recursos del sistema de archivos y tiene funciones como reservar espacio para los archivos, administrar el espacio libre, controlar el acceso a los archivos, permitir el intercambio de datos entre los archivos y el usuario, etc.
Los directorios son los archivos que permiten darle una estructura jerrquica a los sistemas de archivos de UNIX. Su funcin consiste en establecer la relacin que existe entre el nombre de un archivo y su i-nodo correspondiente.

IMPLEMENTACIN DEL SISTEMA DE ARCHIVOS

http://www.clubdelphi.com/trucos/index.php?id=356