Está en la página 1de 31

Gestion de Archivos

Tema V – Parte 2
Sistemas Operativos I
Sistemas Operativos: Sistema de Archivos

Ejecutables - Archivos ://


La estructura de los archivos ejecutables varia dependiendo del sistema en el que sea compilado y
linkeado el programa.
Una estructura ejemplo de un archivo ejecutable puede ser:

El número mágico permite al S.O determinar si el ejecutable es válido, comparándolo con el o los valores que
Número Mágico tiene el sistema como válido. En NachOS por ejemplo es el binario 0xbadfad.

Tamaño de código Tamaño en bytes que mide el segmento de código


Encabezado (Header)

Tamaño de datos Tamaño en bytes que mide el segmento de datos embedidos en el ejecutable

Tamaño de BSS Tamaño en bytes que mide el segmento de variables no inicializadas (Ej: int a[1000] )

Tamaño de tabla de símbolos Tamaño en bytes que tiene la tabla de símbolos

Punto de ingreso Posición del Program Counter al inicio (punto de inicio del programa)

Segmento de código. Contiene las instrucciones que son ejecutadas por la CPU.
Código

Segmento de datos. Contiene datos que están embedidos en el archivo ejecutable que son utilizados por este.
Datos

La tabla de símbolos es un elemento opcional que sirve al debug de un proceso. Contiene el listado de
Tabla de Símbolos identificadores del programa (variables, procesos), los cuales permiten depurar un programa en ejecución.
Sistemas Operativos: Sistema de Archivos

Atributos - Archivos ://

Los sistemas de archivos guardan, además del nombre del archivo y sus datos, información como fecha,
hora, usuario, permisos, etc; los cuales se denominan atributos.

Algunos de los atributos que puede guardar un sistema de archivos son:

Protección Permisos que el dueño del archivo establece sobre el archivo.


En linux los permisos básicos se establecen en la terna XXX para el usuario,
grupo y otros respectivamente con los valores {0: nada, 1: ejecución,
2: escritura, 4: lectura} que se suman para combinar permisos.

Password Clave de protección del archivo

Dueño Usuario del sistema dueño del archivo

Oculto Bit que indica si el archivo figura en la lista normal de archivos.

Temporal Bit que indica si eliminar el archivo al terminar el proceso que lo creo.

Indicadores de Bloqueo Permiten establecer protecciones sobre parte o todo el archivo para que
modificaciones concurrentes de varios procesos se hagan de forma
adecuada.

Longitud del registro En archivos con registros, indica el largo de cada registro

Tamaño actual Tamaño actual del archivo en bytes.


Sistemas Operativos: Sistema de Archivos

Directorios ://

De manera de poder organizar los archivos, muchos


sistemas de archivos tienen directorios o carpetas; /
los cuales también pueden ser archivos.
usr/
De su utilización se derivan los conceptos de:

Estilo Unix
local/

share/
-Directorio Raíz: aquel que contiene al resto del sistema de
archivos. En linux es explicito (/), en windows está escondido detrás home/
de las unidades lógicas (\??\)
jmakuc/
-Directorio de trabajo: directorio en el cual se esta ejecutando un
cmolina/
proceso, como por ejemplo el interprete de comandos. Este se
simboliza con un punto (.). Las entradas X: se
denominan unidades y
-Ruta absoluta: ubicación de un archivo o directorio indicando su representan a
\??\ particiones de los discos
posición explicitando todos los directorios desde el directorio raíz al
elemento. Ej: /usr/local/nachos/code/build.linux/nachos.

Estilo Windows
-Ruta relativa: ubicación de un archivo o directorio indicando su
C:\ D:\
posición respecto al directorio de trabajo actual.
Ej: ../build.linux/nachos
Documents And Settings Videos
-Directorio Padre: aquel en el cual es contenido un directorio. Se
Temp mp3
simboliza con punto doble (..).
Windows Películas
Sistemas Operativos: Sistema de Archivos

Organización del Sist. Archivos - Implementación ://


En sistemas de archivos de discos, estos deben considerar la estructura básica:
particiones o volúmenes.
Disco entero

MBR Partición 1 Partición 2 Partición 3 Partición 4

Tabla de particiones

Partición: división lógica de una unidad de disco, también denominada volúmen en


sistemas Windows.

MBR: Master Boot Record o Registro Maestro de Arranque. Es leído y ejecutado por la
BIOS al encenderse el computador.

Tabla de Particiones: Contiene la información de donde comienza y termina cada


partición en el disco. Cada partición puede tener un sistema de archivos diferente.

Bloque de arranque: primer bloque de cada partición. Contiene la información de cómo


arrancar el Sistema Operativo contenido en ella. Al ejecutarse el MBR, este busca los
bloques de arranque para ejecutarlos. Si no existe S.O. en una partición, se deja el bloque
en blanco por provisión.
Sistemas Operativos: Sistema de Archivos

Organización del Sist. Archivos - Implementación ://


Físicamente se puede distinguir:

Cilindro: disco físico. Ej: 1 diskette tiene 1 cilindro, mientras que un disco duro puede tener varios.

Pistas: divisiones concéntricas del disco. Un disco removible de 3.5” tiene en formato simple 18 pistas.

Sectores: unidad atómica en la que se divide un disco para acceder a él en múltiplos de esta. Ej: 512b

Bloques: agrupación de sectores que realiza el sistema operativo, denominado cluster en sistemas Windows. El acceso al disco
que realiza el S.O. se hace en esta unidad.
Sistemas Operativos: Sistema de Archivos

Organización del Sist. Archivos - Implementación ://

En sistemas de archivos de discos, estos deben considerar la estructura básica: particiones o volúmenes.
Disco entero

MBR Partición 1 Partición 2 Partición 3 Partición 4

Tabla de particiones

Cada partición debe contener la información de todos los archivos (y directorios si corresponde) que
alberga. Esta información es almacenada en sectores al inicio del volúmen, cuya estructura varía
considerablemente entre sistemas de archivos, aunque conceptualmente se puede graficar como
sigue.

Bloque de arranque Metadatos Archivos y Directorios

El sector de metadatos contiene la información respecto de donde y


Número Mágico que como están almacenados los archivos en la partición.
identifica sistema de
archivos que contiene la
partición
Sistemas de direccionamiento

 CHS (Cilindro-Head cabeza – Sector), con estos tres valores se


puede situar un dato en cualquier parte del disco. (hasta un máximo
de 8 Gb)

 LBA (Logical Block Addressing- direccionamiento lógico de


bloques), que consiste en dividir el disco entero en sectores y
asignar a cada uno un único número. Este es el que actualmente se
usa.
Numero de Sectores de un disco (CHS)

 El número total de sectores de un disco duro se puede calcular a través de esta


fórmula
nº sectores = nº caras * nº pistas/cara * nº sectores/pista

 Por ejemplo, un disco duro con las siguientes características: cilindros = 6.253,
cabezas = 16 y sectores = 63.
El número total de sectores será  6.253 * 16 * 63 = 6.303.024 sectores.
Si cada sector almacena 512 bytes de información, la capacidad máxima de
este disco duro será de 6.303.024 sectores * 512 bytes/sector = 3.227.148.228
bytes ~ 3 GB. 
Traducción de direcciones
 La dirección física de un sector está constituida por una terna (cilindro, pista, sector).
 El SO trata el disco como una tabla de bloques de disco unidimensional, donde cada
bloque es un sector.
 La traducción de un número de bloque en una dirección física depende de la numeración
del disco
 Empezar desde el cilindro exterior, superficie superior y un sector al azar marcándolo como (0, 0,
1)
 Completar los sectores de la pista actual hasta (0, 0, s)
 Pasar a la siguiente superficie con (0, 1, 0)
 Repetir para todas las pistas del cilindro hasta (0, p, s)
 Pasar al siguiente cilindro, superficie superior (1, 0, 1)
 Completar con los cilindros interiores (c, p, s)
Traducción de direcciones
 En un disco con P pistas/cilindro y S sectores/pista:
 Para calcular el número de bloque de una dirección física (i, j, k):

b = i*P*S + j*S + k
 Para obtener la dirección física de un bloque b:

i = int(b/PS) r = mod(b/PS)
j = int(r/S)
k = mod(r/S)
El BIOS del PC

 El software BIOS es el primer programa que se ejecuta cuando se enciende un ordenador.


El software que contiene la BIOS se almacena en un circuito integrado de memoria ROM
no-volátil en la placa base.
 El papel de la BIOS en el arranque del PC
 Inicializar y probar el hardware del sistema.
 Cargar un bootloader (gestor de arranque) o un sistema operativo de un dispositivo de
almacenamiento de datos.
 Relación de la BIOS con el MBR
 Cuando la BIOS arranca mira el estado de la máquina, busca el sector 0 del disco MBR y
empieza el arranque.
Particiones GPT
 Actualmente existen dos tipos de estilos de particionado, el MBR y GPT, y
ambos tienen la misión de preparar nuestro disco duro para albergar, y arrancar
nuestro sistema operativo. Pero es mucho más que esto, así que hoy vamos a
explicar en qué consiste el estilo de particionado GPT.

 GPT no es más que otro estilo distinto de tabla de particiones, la cual fue
implementada para los modernos sistemas EFI o Extensible Firmware
Interface, que ha sustituido al antiguo sistema BIOS de los ordenadores.
Entonces, mientras que BIOS utiliza MBR para gestionar el disco duro y el
arranque del sistema, GPT está orientado a ser el sistema propio para UEFI.
 El nombre que recibe de GUID o GPT proviene de que el sistema le asocia un
identificador global único a cada partición (Global Unique Identifier). La extensión del
nombre de GUID es tan larga que podríamos poner nombre a todas las particiones que
hay en el mundo con un identificador único distinto, por lo que las limitaciones no
existen para este estilo de partición más allá que las del propio disco duro y sistema
operativo. Por ejemplo, Windows tiene un límite de 128 particiones primarias GPT.

 Al igual que una partición MBR, un disco duro con una tabla de particiones GPT
comienza el disco con una entrada MBR como meros propósitos de compatibilidad
con los antiguos sistemas BIOS para PC. Pero realmente se basa en las capacidades de la
propia EFI para realizar los procesos de gestión y arranque del contenido del disco
 Esto significa que GPT cambia por ejemplo el sistema de direccionamiento de
nuestro disco duro. Mientras que el MBR utiliza el tradicional sistema CHS o
Cilindro-Cabeza-Sector para enviar las direcciones de datos al dispositivo, GPT lo
hace mediante LBA o dirección de bloque lógica para referirse a la región en donde se
encuentran los datos físicamente almacenados en nuestra unidad de almacenamiento.
 Otra de las grandes diferencias entre MBR y GPT es la limitación de particiones y su
tamaño: con MBR podremos solamente crear cuatro particiones primarias y no de
un tamaño mayor a 2 TB cada una. Por ejemplo, en un disco duro de 16 TB ya
tendríamos patente esta limitación en sus dos aspectos. En GPT no hay prácticamente
ningún tipo de limitación salvo la del sistema operativo y el disco duro.
 Las siglas GUID se refieren al Globally Unique Identifier (en castellano, identificador
único global). Se trata de un número exclusivo de 128 bits (16 bytes) que se asigna a
cada archivo o documento y que, en el caso de los discos duros, también permite
identificar a los medios de almacenamiento y tipos de particiones de forma inequívoca.
 ventajas y características de la partición GPT
 Particiones primarias ilimitadas: aunque, en teoría, la tabla de particiones admite un número
ilimitado de particiones primarias, en la práctica, los sistemas operativos establecen un límite. Por
ejemplo, el valor de Windows asciende a 128, lo que resulta más que suficiente.
 Protección mediante sumas de verificación CRC32: las sumas de verificación garantizan la
integridad de la cabecera GPT, ya que permiten detectar los sectores defectuosos.
 Identificación clara de particiones y medios de almacenamiento: como ya hemos mencionado,
con la tecnología GUID, todas las particiones y medios de almacenamiento obtienen un número
de identificación único.
 Copia de seguridad de la cabecera: la cabecera de la tabla de particiones GUID no solo queda
respaldada por la suma de verificación que hemos descrito, sino también por una copia de
seguridad idéntica,
 Compatibilidad con sistemas anteriores: el llamado Protective Master Boot Record (MBR
protector) del sector 0, el primer bloque de datos de un disco duro GPT, asegura que casi todos los
sistemas operativos, servicios y herramientas diseñados para la partición MBR funcionen también
con la GPT.
Relación entre LBA y CHS
Tiempo de acceso
 Tiempo de acceso: tiempo transcurrido desde que la unidad de control
proporciona a la unidad de disco una dirección de un sector, hasta que dicho
sector es transferido a la memoria.

Posicionamiento : intervalo de tiempo necesario para desplazar la cabeza de lectura y escritura


desde una pista a otra adyacente.

Latencia Promedio : Es el promedio de tiempo para que el disco una vez en la pista correcta
encuentre el sector deseado, es decir el tiempo que tarda el disco en dar media vuelta.

Velocidad de transferencia : velocidad a la que los datos (bits) pueden transferirse desde el disco a
la unidad central. Depende esencialmente de dos factores : la velocidad de rotación y la densidad de
almacenamiento de los datos en una pista
 Los discos duros actuales pueden presentar un tiempo de búsqueda
de alrededor de unos 9 ms, dispositivos móviles unos 12 ms, y
servidores de gama alta alrededor de 4 ms de tiempo de búsqueda
promedio.
 Los discos duros de estado sólido (SSD)presentan un tiempo de
búsqueda entre los 0.08 y 0.16 ms.
Gestión del Almacenamiento Secundario

 Algoritmos de ubicación:

 Primer hueco (first fit)


 El primer grupo de bloques contiguo de tamaño suficiente
 Crea muchos fragmentos pequeños al principio del disco
 Simple y rápido en las decisiones

 Siguiente hueco (next fit)


 El siguiente grupo de bloques contiguo desde la asignación anterior y con tamaño suficiente
 Distribuye los fragmentos pequeños a lo largo del disco
 Más complejo de implementar que el primer hueco
Gestión del Almacenamiento Secundario

 Mejor hueco (best fit)


 El grupo de bloques contiguo menor de tamaño suficiente
 Lento, porque debe recorrer todos los huecos
 Deja huecos pequeños poco aprovechables

 Peor hueco (worst fit)


 El grupo de bloques contiguo mayor de tamaño suficiente
 Lento, porque debe recorrer todos los huecos
 Deja huecos grandes que pueden ser aprovechables

 En ejecuciones largas, todos tienen resultado similar


Sistemas Operativos: Sistema de Archivos

Implementación de archivos - Implementación ://

Asignación Contigua
Se entrega espacio continuo en el disco a los archivos.
Su ventaja es la implementación simple y el buen desempeño en lectura.
La desventaja es la fragmentación excesiva y compleja dado que se DEBE
escribir cada archivo como un todo cada vez.
Si se elimina un archivo se requiere otro de igual tamaño para no
desperdiciar lugar, o reubicar los archivos para hacer espacio a un archivo
más grande.

Arch. A Arch. B Arch. C Arch.D Arch. A Arch. C Arch.D

Sistemas Operativos – ICC243 [ 22 ] Prof. Jonathan Makuc


Asignación por Lista Enlazada
Los archivos se mantienen como una lista enlazada de bloques en el disco.
Permite que un archivo no deba estar contiguo en el disco y elimina la
fragmentación del disco dado que se pueden utilizar todos los bloques.
Su mayor problema es el acceso aleatorio, pues el S.O. debe ir buscando nodo
por nodo la dirección del siguiente, hasta llegar al que necesita.
Por otra parte ahora la cantidad de datos almacenada en un bloque ya no es
potencia de 2, complicando el panorama para la implementación de página, por
ejemplo.

Bloque 0 Bloque 1 Bloque 2 Bloque 3

Bloque 7 en disco Bloque 1 en disco Bloque 5 en disco Bloque 2 en disco


Asignación por Lista Enlazada empleando tabla en la memoria

Bloque Físico Sgte Bloque


0
1 5 Toma el apuntador que antes estaba dentro del
2 -1 bloque en disco, y lo traslada a una tabla
3
4
exclusivamente para ese efecto.
Término del archivo 5 2 De esta forma el bloque se llena de datos y poder
6
7 1
acceder aleatoriamente al archivo es más simple
Inicio del
archivo
pues no requiere de accesos a disco dado que
todos los datos están juntos en memoria

A esto se le conoce como FAT, File Allocation


Table.
Bloque de disco
Atributos del archivo Nodos-i
Consiste en asociar a cada archivo una estructura de
Dirección del bloque 0 datos llamada “i-node” (nodo índice).

Dirección del bloque 1 Esta estructura contiene las direcciones de los bloques
en disco que componen al archivo.
Dirección del bloque 2

La mayor ventaja es que solo es necesario tener en


Dirección del bloque 3
memoria las estructuras de los archivos abiertos, pues
Dirección del bloque 4
estas son las únicas que se necesitan para el acceso
aleatorio.
Dirección del bloque 5
Para solucionar el problema de que la cantidad de
Dirección del bloque 6 bloques de un archivo no queda en un solo i-node, se
agrega al final de este la posibilidad de enlazar en la
Dirección del bloque 7 última posición a un bloque que contenga más
direcciones (solo direcciones)
Dirección bloque con más direcc.
Control de bloques libres
Uno de los problema importantes que debe tratar el sistema de archivos, es la
administración de los bloques libres. Sin importar cual método se emplee, se
suelen usar bloques libres del disco para colocar la estructura que los
maneja.
387
Listas Enlazadas Libres 321 12

Se utiliza una lista enlazada de bloques de disco que contienen 123 3 987
números de bloques libres.
Se almacenan tantos números como se pueda en cada bloque. 32 54 976
Para agilizar el proceso de búsqueda de un bloque libre, se
33 55 765
mantiene uno o más bloques en memoria, dejando el resto en
disco. 433 56 433
La desventaja es que cuando el bloque esta por llenarse puede
766 57 654
provocar muchas operaciones de I/O al buscar otro bloque,
producto de una seguidilla de creaciones y eliminaciones de 7 77 543
archivos y directorios.
56 9 21
Mapas de bits
0 1 0 0 0 0 0 0 1 1 0 1 0 1 0 1
Se crea un mapa donde se representa a cada bloque
0 1 0 0 0 1 1 0 0 0 1 0 0 0 1 0
disponible con 1 bit.
0 0 0 0 1 0 1 0 0 1 1 0 1 0 1 0

0 0 0 0 1 0 0 0 1 1 0 1 0 0 1 1
Es muy eficiente en espacio dado que utiliza 1 bit en
lugar de 1 palabra, excepto cuando el disco esta lleno,
0 1 0 0 0 1 0 0 1 1 0 1 0 0 0 0
caso en el cual la lista es más pequeña.
0 1 1 0 1 0 0 1 0 0 0 1 0 0 0 1

Al igual que la lista, se puede dejar solo una porción del


mapa en memoria y el resto en disco; teniendo una
ventaja adicional, puesto que las asignaciones realizadas
con el bloque en memoria serán a bloques cercanos,
reduciendo el overhead de acceso a disco.
Sistemas Operativos: Sistema de Archivos

Introducción - NTFS ://


NTFS o New Technology File System, es el sistema de archivos de la línea NT de
los sistema MS Windows.

Fue diseñado desde cero, pensado para reemplazar a la familia de FAT eliminando
todas las limitaciones de este, y pensando en poder extenderlo fácilmente en el
futuro.

Conceptualmente NTFS ve todo en el sistema como un archivo, incluyendo a los


metadatos.

El corazón de tal esquema es la MFT (Master File Table) que contiene la


información de donde están los archivos y sus atributos.

Aunque esta respaldada en un %, si se daña los datos de todo el volumen se


perderán.

Utiliza bitmaps para determinar los bloques (clusters) libres en el disco, e indexa
los directorios a través de árboles B+.
Tamaño máximo de volumen 16EiB (Exbibyte – 260)

Tamaño máximo de archivo Teórico 16EiB

Tamaño máximo de archivo implementación actual 16TiB (Tebibyte – 240)

Número máximo de archivo 232 – 1

Largo nombre de archivo 255 caracteres

Fechas 01/01/1601 – 28/05/60056

Compresión de datos LZ77 (zip) desde WinNT 3.51

Encriptación de datos XDES (Win2000), 3DES (WinXP), AES


(Win2003)
Sistemas Operativos: Sistema de Archivos

Esquema General - NTFS ://


Partition Archivos
MFT Área de archivos
Boot Record de Sistema
Ejemplo Esquema partición NTFS

Boot Partition Record


En los primeros 8kb se contiene la información sobre el volumen (tipo de partición, largo, etc), junto con
el bloque de código básico para iniciar al sistema operativo. Contiene también un puntero a la MFT.

MFT – Master File Table


La Tabla Maestra de archivos contiene el donde y como están almacenados los archivos, junto con todos
los atributos asociados a estos.

Archivos de Sistema
Contienen la información sobre los datos y operaciones que se realizan sobre el sistema de archivos:
espacio libre, log de transaccionalidad, etc.

Área de archivos
Donde realmente se almacenan los datos del usuario.
Sistemas Operativos: Sistema de Archivos

Master File Table Entry - NTFS ://

Al crearse el volumen en el formato, se reserva espacio para


que la MFT pueda crecer (alrededor del 12% del disco por
defecto).

Este espacio aunque esta libre, no es utilizado sino hasta que


no queda más espacio disponible en el disco.

En el caso de que la MFT crezca mucho, puede particionarse y


colocar una porción en otro lugar del disco.

El tamaño de una entrada de la MFT puede variar entre 1.024 y


4.096 bytes, estando de la mano el tamaño del cluster.
Atributos Básicos

Cada registro de la MFT contiene un encabezado o header que


permite identificar la entrada, junto con indicar la cantidad de
bytes usados, contador de referencias, etc

Fuente: http://dbserver.kaist.ac.kr/~yjlee/Courses/CS230/ntfs/NTFS-3.html

También podría gustarte