Sistemas Operativos [El sistema de archivos]

Anuncio
Sistemas Operativos [El sistema de archivos]
M. en C. Sergio Luis Pérez Pérez
UAM C UAJIMALPA , M ÉXICO, D. F.
Trimestre 13-O
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
1 / 79
Archivos
Archivos I
Un archivo es un mecanismo de abstracción que permite
almacenar información en un dispositivo de almacenamiento y
leerla después.
Es importante distinguir entre archivo fı́sico y archivo lógico.
Un archivo fı́sico es una colección de bytes almacenados en
algún dispositivo.
Un archivo lógico es cómo un programa visualiza un archivo.
Dicho programa no tiene por que saber donde son escritos o
leı́dos los datos.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
2 / 79
Archivos
Archivos II
La administración de archivos debe ser transparente para el
usuario.
Las reglas para nombrar archivos varı́an de un sistema a otro.
Algunos sistemas permiten nombres de hasta 255 caracteres de
longitud.
Algunos sistemas de archivos distinguen entre mayúsculas y
minúsculas (Unix-Linux) mientras que otros no (Windows).
Windows 95 y 98 utilizaban el sistema de archivos de MS-DOS, y
las versiones posteriores utilizaban NTFS.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
3 / 79
Archivos
Archivos III
NTFS (New Technology File System) es un sistema de archivos
basado en el sistema de archivos HPFS de IBM/Microsoft usado
en el sistema operativo OS/2.
NTFS también posee caracterı́sticas del formato de archivos HFS
diseñado por Apple.
HPFS (High Performance File System) fue un sistema de archivos
creado especı́ficamente para el OS/2.
El objetivo de HPFS era mejorar las limitaciones del sistema de
archivos FAT.
HPFS fue escrito por Gordon Letwin.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
4 / 79
Archivos
Archivos IV
FAT (file allocation table) es un sistema de archivos desarrollado
para MS-DOS y, además, el sistema de archivos principal de las
ediciones no empresariales de Microsoft Windows.
Los sistemas de archivos suelen considerar dos partes para el
nombre del archivo, ambas separadas por un punto.
La primera parte es el nombre que el usuario desea para el
archivo y la segunda parte, llamada extensión, se utiliza para
ayudar a determinar el tipo de archivo.
En Unix los nombres de archivo son sólo convenciones mientras
que en Windows se suele asociar un significado.
Algunas formas de estructuras archivos son:
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
5 / 79
Archivos
Archivos V
Sucesión de bytes. Se cuenta con una sucesión no estructura de
bytes y el SO no sabe y no le interesa el contenido del archivo.
Sucesión de registros. En este tipo de estructura los archivos son
una sucesión de registros de longitud fija. En este modo las
operaciones de lectura devuelven un registro y las de escritura
sobreescriben o anexan otro.
Árboles. El archivo consiste de un árbol de registros no
necesariamente de la misma longitud.
¿Qué tipos de estructura de árbol conoce?
Algunos tipos de archivos son:
Archivos normales. Contienen información de usuario. Pueden
ser ASCII o binarios.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
6 / 79
Archivos
Archivos VI
Directorios. Son archivos del sistema que permiten mantener la
estructura del sistema de archivos.
Archivos especiales de caracteres. Sirven para modelar los
dispositivos E/S en serie.
Archivos especiales de bloques. Sirven para modelar discos.
Los archivos ASCII tienen la ventaja de que pueden editarse con
cualquier editor de texto.
ASCII (American Standard Code for Information Interchange es
un código de caracteres basado en el alfabeto latino, tal como se
usa en el inglés moderno y en otras lenguas occidentales.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
7 / 79
Archivos
Archivos VII
El código ASCII se creó en 1963 por el ANSI (American National
Standards Institute).
En 1967 se incluyeron las minúsculas y se redefinieron algunos
códigos de control, lo que dio pie al US-ASCII.
Los archivos binarios mantienen una estructura que sólo
pueden entender los programas que lo usan.
Un archivo binario ejecutable tiene la siguiente estructura:
Encabezado. Se compone de un identificador de archivo
ejecutable, tamaño de texto, tamaño de datos, tamaño de los bits
de reubicación, tamaño de tabla de sı́mbolos y punto de ingreso.
Texto.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
8 / 79
Archivos
Archivos VIII
Datos.
Bits de reubicación.
Tabla de sı́mbolos.
Un archivo binario permanente consiste de los siguiente:
Encabezado. Se compone del nombre del módulo, la fecha, el
propietario, la protección y el tamaño.
Módulos que lo conforman.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
9 / 79
Archivos
Archivos IX
Tipos de acceso a archivos
Acceso secuencial. Un archivo es accedido leyendo sus bytes
en orden comenzando por el primer byte o registro. Generalmente
se utilizaba cuando el dispositivo de almacenamiento era una
cinta magnética.
Acceso aleatorio. En este tipo de archivo los bytes o registros
pueden leerse en cualquier orden. Su uso es fundamental en
diversas aplicaciones tales como bases de datos.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
10 / 79
Archivos
Archivos X
Atributos de archivos I
Los atributos de archivo permiten asociar alguna información
adicional a los archivos. Algunos atributos de archivo son:
Protección. Indican quién puede tener acceso al archivo.
Contraseña. Es la clave necesaria para tener acceso al archivo.
Creador. Es el identificador de la persona que crea el archivo.
Dueño. Indica el propietario actual.
Indicador de sólo lectura. 0 para leer/escribir. 1 para sólo
lectura.
Indicador de oculto. 0 para normal. 1 para no mostrarlo en
listados.
Indicador de sistema. 0 para archivos normales. 1 para archivo
de sistema.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
11 / 79
Archivos
Archivos XI
Atributos de archivos II
Indicador de archivado. 0 para ya respaldado. 1 para
respaldarse.
Indicador de ASCII/binario. 0 para archivo ASCII. 1 para archivo
binario.
Indicador de acceso aleatorio. 0 para sólo acceso secuencial. 1
para acceso aleatorio.
Indicador de temporal. 0 para normal. 1 para borrarlo al terminar
el proceso.
Indicadores de bloqueo. 0 para sin bloqueo. Distinto de cero si
está bloqueado.
Longitud de registro. Número de bytes en un registro.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
12 / 79
Archivos
Archivos XII
Atributos de archivos III
Posición de clave. Distancia a la clave, dentro de cada registro.
Longitud de clave. Número de bytes en el campo clave.
Hora de creación. Fecha y hora en que se creó el archivo.
Hora de último acceso. Fecha y hora en que se tuvo acceso por
última vez al archivo.
Hora de último cambio. Fecha y hora en que se modificó por
última vez el archivo.
Tamaño actual. Número de bytes en el archivo.
Tamaño máximo. Número de bytes que puede alcanzar el
archivo.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
13 / 79
Archivos
Archivos XIII
Operaciones con archivos I
La llamadas al sistema más comunes relacionadas con archivos son:
Create. Se crea un archivo sin datos con sólo algunos valores
iniciales por defecto.
Delete. Elimina el archivo para desocupar el espacio en disco.
Open. Permite abrir un archivo para luego usarlo.
Close. Se utiliza para cerrar el archivo toda vez que se han
terminado los accesos.
Read. Permite leer los datos del archivo desde una posición
actual.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
14 / 79
Archivos
Archivos XIV
Operaciones con archivos II
Write. Se escriben datos en el archivo a partir de una posición
actual.
Append. Es una forma restrictiva del write pues solo puede
agregar datos al final del archivo.
Seek. Permite reubicar el apuntador de archivo en algún punto
especı́fico de éste.
Get attributes. Permite leer los atributos de un archivo.
Set attributes. Permite establecer o modificar los atributos de un
archivo.
Rename. Permite cambiar el nombre de un archivo existente.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
15 / 79
Directorios
Directorios I
Los directorios permiten llevar el control de los archivos.
Algunas formas de organizar el sistema de directorios son:
Sistemas de directorios de un sólo nivel.
Sistemas de directorios de dos niveles.
Sistemas de directorios jerárquicos.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
16 / 79
Directorios
Directorios II
Sistemas de directorios de un sólo nivel
Consiste de un sólo directorio que contiene a todos los archivos.
Generalmente se denomina directorio raı́z.
Es un esquema sencillo y permite la ubicación de los archivos con
rapidez.
Los problemas ocurren cuando se tienen múltiples usuarios para
un solo directorio.
Este esquema no se utiliza en sistemas multiusuario pero podrı́a
utilizarse en un sistema empotrado.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
17 / 79
Directorios
Directorios III
Sistemas de directorios de dos niveles
En este esquema se da a cada usuario un directorio privado.
De este modo se elimina el problema de que varios usuarios
utilicen el mismo dispositivo de almacenamiento.
Este esquema requerı́a que los usuarios utilizaran un nombre de
usuario y password para acceder a sus propios directorios.
Sin embargo es posible ejecutar archivos de otros usuarios (en
otros directorios).
Lo anterior se requiere para poder ejecutar los programas de
usuario que todos desean utilizar.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
18 / 79
Directorios
Directorios IV
Sistemas de directorios jerárquicos I
Establece un árbol de directorios tal que cada usuario puede
tener tantos directorios como necesite.
De este modo los usuarios pueden organizar mejor su trabajo.
Casi todos los sistemas de archivos actuales se encuentran
organizados de este modo.
Para especificar los nombres de archivo pueden utilizarse dos
métodos: nombre de ruta absoluta y nombre de ruta relativa.
El nombre de ruta absoluta considera el camino que debe
seguirse para llegar al archivo desde el directorio raı́z.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
19 / 79
Directorios
Directorios V
Sistemas de directorios jerárquicos I
El nombre de ruta relativa sólo considera el nombre de un
archivo sin la ruta desde el directorio raı́z, siempre y cuando se
encuentre en el directorio de trabajo.
El directorio de trabajo o directorio actual se refiere al
directorio en el que un usuario se encuentra ubicado actualmente.
En Unix el separador para distinguir entre directorios es ‘/’
mientras que en Windows el separador común es ‘\’ aunque
también se puede utilizar el de Unix.
El directorio raı́z en Unix se denota con ‘/’, mientras que en
Windows se debe especificar primero una unidad de
almacenamiento digamos “C:”.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
20 / 79
Directorios
Directorios VI
Operaciones con directorios I
La llamadas al sistema más comunes para administrar directorios son:
Create. Crea un directorio el cual está casi vacı́o, pues contiene
por defecto los directorios punto y punto punto.
Delete. Elimina el directorio siempre y cuando esté vacı́o (aunque
contenga los directorios punto y punto punto).
Opendir. Permite abrir un directorio para luego usarlo.
Closedir. Se utiliza para cerrar el directorio.
Readdir. Permite leer la siguiente entrada de un directorio abierto.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
21 / 79
Directorios
Directorios VII
Operaciones con directorios II
Rename. Permite cambiar el nombre de un directorio existente.
Link. Se utiliza para permitir que un archivo pueda aparecer en
más de un directorio. Esta llamada requiere de un nombre de
archivo y el nombre de la ruta que se desea ligar al archivo.
Unlink. Borra un archivo del sistema de archivos si es que sólo se
encuentra en un directorio, de otro modo sólo elimina la referencia
del archivo del directorio actual.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
22 / 79
Construcción del sistema de archivos
Construcción del sistema de archivos I
El sistema de archivos estará almacenado en el disco.
Si el disco se divide en varias particiones entonces cada una de
ellas tendrá su propio sistema de archivos.
El sector 0 del disco se conoce como registro maestro de
arranque MBR (Master Boot Record) y es el que arranca la
computadora.
Al final del MBR se encuentra una tabla de particiones que
contiene las direcciones inicial y final de cada partición.
¿Qué ocurre cuando se enciende la computadora?
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
23 / 79
Construcción del sistema de archivos
Construcción del sistema de archivos II
1
El BIOS (Basic Input-Output System) lee el MBR del disco y lo
ejecuta.
2
El MBR primero localiza la partición activa y lee el primer bloque,
también llamado bloque de arranque, y lo ejecuta.
3
Entonces el programa del bloque de arranque carga el SO
contenido en esa partición. Todas las particiones cuentan con un
bloque de arranque.
Algunos métodos para realizar la implementación de archivos son:
Asignación contigua.
Asignación por lista enlazada.
Asignación por lista enlazada mediante una tabla en memoria.
Estructura de datos de nodo-ı́ndice.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
24 / 79
Construcción del sistema de archivos
Construcción del sistema de archivos III
Asignación contigua I
Cada archivo es almacenado en una serie contigua de bloques.
Este esquema es sencillo de implementar ya que para saber
dónde se encuentran los bloques de un archivo sólo se requiere
conocer la dirección del primer bloque y el tamaño.
Otra ventaja es que la lectura es muy rápida pues se necesita sólo
un desplazamiento del brazo y luego leer los bloques contiguos.
La desventaja es que al borrar archivos se van creando huecos
en el disco y es necesario realizar una compactación.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
25 / 79
Construcción del sistema de archivos
Construcción del sistema de archivos IV
Asignación contigua II
La compactación puede ser ayudada al solicitar al usuario el
tamaño del archivo que va a crear para ubicarlo en el mejor hueco
y ası́ evitar hasta donde sea posible la compactación.
¿Es esta una buena solución desde el punto de vista del usuario?
¿En qué tipo de hardware puede utilizarse el esquema de
asignación contigua sin problemas?
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
26 / 79
Construcción del sistema de archivos
Construcción del sistema de archivos V
Asignación por lista enlazada
Se crea una lista enlazada de bloques para cada archivo.
La primera palabra de cada bloque se utiliza como apuntador al
siguiente bloque del archivo.
En este caso no existe pérdida por la fragmentación de disco.
El problema es que el acceso se vuelve pseudo-aleatorio y por
tanto bastante lento.
Otro problema es que los primeros bytes o palabra de cada
bloque del archivo contiene información que no es propia del
archivo.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
27 / 79
Construcción del sistema de archivos
Construcción del sistema de archivos VI
Asignación por lista enlazada mediante una tabla en memoria
Es igual que el anterior pero en lugar de poner las referencias
junto con el bloque, se utiliza una tabla en memoria.
Este tipo de asignación con una tabla en memoria se conoce
como FAT (File Allocation Table).
Dado que la secuencia de referencias de bloques de un archivo
se encuentra en memoria, es más fácil ir a una parte en
especı́fica del archivo.
En el directorio de archivos sólo se almacenarı́a la referencia a la
posición en la tabla del primer bloque de un archivo.
La desventaja es que para que esto funcione la tabla debe estar
en memoria siempre.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
28 / 79
Construcción del sistema de archivos
Construcción del sistema de archivos VII
Estructura de datos de nodo-ı́ndice
Se utiliza una estructura de datos llamada nodo-ı́ndice los
atributos y direcciones en disco de los bloques de un archivo.
Suele ser de tamaño fijo n.
Si k es el número máximo de archivos que pueden estar abiertos
al mismo tiempo entonces sólo se requiere n ∗ k espacio en
memoria.
¿Qué hacer si un archivo requiere más de n bytes para poder ser
referenciado?
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
29 / 79
Construcción del sistema de archivos
Construcción del sistema de archivos I
¿Qué ocurre con el sistema de archivos cuando se abre un archivo?
Al abrirse un archivo el SO utiliza el nombre proporcionado por el
usuario para localizar la entrada correspondiente en el directorio.
Dicha entrada de directorio provee la información necesaria
para encontrar los bloques de disco.
El objetivo principal del sistema de directorios es establecer una
correspondencia entre el nombre de archivo y la información
necesaria para localizar los datos.
Algunos sistemas de archivos guardan todos los atributos de un
archivo junto con la entrada correspondiente en el directorio
(MS-DOS).
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
30 / 79
Construcción del sistema de archivos
Construcción del sistema de archivos II
También suelen mantener nombres de archivo de longitud fija.
Otros sistemas sólo mantienen en la entrada del directorio el
nombre del archivo y la referencia al nodo-ı́ndice (UNIX).
Otro método es utilizar una porción fija en cada entrada de
directorio y una porción variable.
La porción fija comienza con una longitud de entrada del archivo y
continua con una serie de parámetros de longitud fija.
La porción variable es el nombre del archivo y debe terminar con
el caracter nulo.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
31 / 79
Construcción del sistema de archivos
Construcción del sistema de archivos III
Otra alternativa es que todas las porciones fijas de cada entrada
de directorio se almacenen de forma consecutiva y en otro lugar
los nombres de directorio en una especie de montı́culo (heap).
Otra opción es utilizar tablas de dispersión (hash):
Supongamos que el tamaño de la tabla es n.
1
2
3
Primero, se utiliza algún criterio para asociar al nombre del archivo
un valor entre 0 y n − 1.
Luego, se examina la entrada de la tabla correspondiente al código
obtenido.
Si la ranura ya esta usada se construye una lista ligada que para
ahı́ encadenar todas las entradas con el mismo código.
Para consultar un archivo se sigue un proceso parecido al
anterior.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
32 / 79
Ejemplos de sistemas de archivos
Ejemplos de sistemas de archivos I
Algunos ejemplos de sistemas de archivos son:
Sistemas de archivos de CD-ROM.
Sistema de archivos de MS-DOS.
Sistema de archivos de Windows 98.
Sistema de archivos de Windows 2000.
Sistema de archivos de UNIX V7.
Sistema de archivos de UNIX.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
33 / 79
Ejemplos de sistemas de archivos
Sistemas de archivos de CD-ROM
Sistemas de archivos de CD-ROM I
Un CD-ROM (Compact Disc - Read Only Memory) es un
prensado disco compacto que contiene los datos de acceso, sin
permisos de escritura.
El CD-ROM estándar fue creado en 1985 por Sony y Philips.
Los sistemas de archivos de CD-ROM son sencillos pues trabajan
bajo el supuesto de que sólo se escribe una vez.
El estándar más común para sistemas de archivos de CD-ROM
es el ISO 9660 y fue establecido en 1998.
Los CD-ROM se componen de una sola espiral continua que
contiene los bits en sucesión lineal.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
34 / 79
Ejemplos de sistemas de archivos
Sistemas de archivos de CD-ROM
Sistemas de archivos de CD-ROM II
Los bits de la espiral se dividen en bloques lógicos, llamados
sectores, de 2352 bytes.
Algunos de esos bytes se utilizan para la corrección de errores y
otros gastos adicionales y sólo 2048 bytes son útiles.
Cuando se graba música, para dejar los espacios entre canción y
canción, lo que ocurre es que se dejan bloques sin grabar.
Esto se logra teniendo en cuenta que cierto número de bloques
es igual a un segundo.
Bajo el estándar ISO 9660, la función de los primeros 16 bloques
de un CD-ROM no están definidos.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
35 / 79
Ejemplos de sistemas de archivos
Sistemas de archivos de CD-ROM
Sistemas de archivos de CD-ROM III
Dichos bloques podrı́an utilizarse para crear un disco de arranque.
Después de dichos bloques, viene el descriptor de volumen
primario que se compone de:
Identificador del sistema (32 bytes).
Identificador de volumen (32 bytes).
Identificador del productor (128 bytes).
Identificador del preparador de datos (128 bytes).
Archivo de resumen.
Archivo de derechos de autor.
Información bibliográfica.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
36 / 79
Ejemplos de sistemas de archivos
Sistemas de archivos de CD-ROM
Sistemas de archivos de CD-ROM IV
Tamaño del bloque lógico (potencias de 2, como 2048, 4096 y
8192).
Número de bloques del CD-ROM.
Fechas de creación y de expiración.
Información del contenido del directorio raı́z (donde inicia el
sistema de archivos).
El directorio raı́z ası́ como los demás directorios constan de un
número variable de entradas.
Cada entrada de directorio también es de longitud variable y se
compone de:
Longitud de entrada de directorio (1 byte).
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
37 / 79
Ejemplos de sistemas de archivos
Sistemas de archivos de CD-ROM
Sistemas de archivos de CD-ROM V
Longitud de registro de atributos extendidos (1 byte). Es la
longitud de los atributos extendidos pero suelen ser opcionales.
Ubicación del archivo (8 bytes). Basta con la ubicación del bloque
inicial y el tamaño para determinar la ubicación de todos los
bloques.
Tamaño del archivo (8 bytes).
Fecha y hora (7 bytes). Contiene campos para año, mes, dı́a, hora,
minuto, segundo y uso horario. Dado que los años se empezaron a
contar de 1900, en el año 2156 habrá problemas, ¿por qué?.
Marcadores (1 byte). Contiene bits de significado como: bit de
entrada oculta, bit para distinguir entre archivo y directorio, bit para
habilitar los atributos extendidos, entre otros.
Intercalación (1 byte).
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
38 / 79
Ejemplos de sistemas de archivos
Sistemas de archivos de CD-ROM
Sistemas de archivos de CD-ROM VI
Número de CD (4 bytes). Permite indicar que corresponde a una
entrada de directorio de un archivo situado en otro CD-ROM.
Nombre del archivo (Longitud variable).
Relleno. Permite que toda entrada de directorio tenga un número
par de bytes.
Es importante mencionar que cada campo binario se encuentra
codificado dos veces: big endian (Motorola) y little endian (Intel).
Dentro de un directorio las entradas aparecen en orden alfabético
con excepción de las dos primeras que representan el directorio
en sı́ y su padre (como . y .. de Unix).
No hay lı́mite de archivos por directorio.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
39 / 79
Ejemplos de sistemas de archivos
Sistemas de archivos de CD-ROM
Sistemas de archivos de CD-ROM VII
La profundidad lı́mite para los directorios a partir de la raı́z es
ocho.
ISO 9660 define tres niveles de uso:
1
Nivel 1: Limita el nombre del archivo a 8 caracteres y sólo tres para
la extensión.
2
Nivel 2: Permite nombres de archivos de hasta 31 caracteres.
3
Nivel 3: Igual que el nivel 2 para la parte de nombres pero permite
que un archivo pueda estar dividido en secciones no
necesariamente contiguas.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
40 / 79
Ejemplos de sistemas de archivos
Sistema de archivos de MS-DOS
Sistema de archivos de MS-DOS I
La primera versión de MS-DOS (MS-DOS 1.0) se limitó a un solo
directorio.
A partir del MS-DOS 2.0 se permitió que la profundidad de los
directorio fuera arbitraria.
El número de archivos o directorios a crear en cada directorio
sólo está limitado por el espacio en disco.
Uno de los problemas de MS-DOS es que no existe el concepto
de usuario por cada archivo por lo que el que inicie sesión puede
tener acceso a todos los archivos.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
41 / 79
Ejemplos de sistemas de archivos
Sistema de archivos de MS-DOS
Sistema de archivos de MS-DOS II
La entradas de directorio son de 32 bytes pero la información de
directorio es de longitud variable.
Una entrada de directorio de MS-DOS contiene la siguiente
información:
Nombre de archivo (8 bytes).
Extensión (3 bytes).
Atributos (1 byte). Bit de oculto, bit de sólo lectura, bit de respaldo
y bit de archivo de sistema.
Reservado (10 bytes). No se usan.
Hora (2 bytes). Tiene una exactitud de ±2 segundos pues 2 bytes
sólo permiten almacenar hasta 65536 valores mientras que el dı́a
tiene 86400 segundos. De modo que para la hora se utilizan 5 bits,
6 para el minuto y 5 para los segundos.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
42 / 79
Ejemplos de sistemas de archivos
Sistema de archivos de MS-DOS
Sistema de archivos de MS-DOS III
Fecha (2 bytes). Se utilizan 5 bits para el dı́a, 4 para el mes y 7
para el año contando a partir de 1980.
Número del primer bloque (2 bytes).
Tamaño de archivo (4 bytes). Dado que la cuenta es de bytes se
pueden tener archivos hasta de 4GB (en teorı́a).
MS-DOS lleva el control de los bloques de archivo por medio de
una tabla de asignación de archivos (FAT) en memoria.
El número de primer bloque se utiliza como ı́ndice para consultar
la tabla FAT de 64K entradas.
El sistema de archivos FAT viene en tres versiones para MS-DOS:
FAT-12, FAT-16 y FAT-32.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
43 / 79
Ejemplos de sistemas de archivos
Sistema de archivos de MS-DOS
Sistema de archivos de MS-DOS IV
Con FAT-N, N denota el número de bits que tiene una dirección en
disco, aunque FAT-32 en realidad tiene 28 bits.
En todas las versiones FAT el bloque de disco debe ser un
múltiplo de 512 bytes.
Cuando aparecieron los discos duros se comenzaron a manejar
tamaños de bloque de 1, 2 y 4 KB.
Con tamaños de bloque de 4 KB se podı́an tener particiones de
disco de hasta 16 MB para FAT-12 (212 ∗ 212 ).
Como MS-DOS reconocı́a cuatro particiones por unidad de disco
entonces podı́a utilizarse en discos de hasta 64 MB.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
44 / 79
Ejemplos de sistemas de archivos
Sistema de archivos de MS-DOS
Sistema de archivos de MS-DOS V
La siguiente tabla muestra el tamaño máximo que puede manejar
una partición MS-DOS para diferentes versiones FAT y tamaños
de bloque.
Tamaño de bloque FAT-12 FAT-16
FAT-32
0.5 KB
2 MB
1 KB
4 MB
2 KB
8 MB
128 MB
4 KB
16 MB 256 MB
1 TB
8 KB
512 MB
2 TB
16 KB
1024 MB 2 TB
32 KB
2048 MB 2 TB
FAT-32 apareció a partir de la segunda versión de Windows 95.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
45 / 79
Ejemplos de sistemas de archivos
Sistema de archivos de Windows 98
Sistema de archivos de Windows 98 I
Para que el sistema de archivos de Windows 98 fuera compatible
con Windows 95 y Windows 3, Microsoft decidió mantener un tipo
de estructura de datos compatible con tales versiones.
FAT-32 permitió resolver ese problema y se utilizarı́a también en
Windows ME y NT.
Las entradas de directorio continuaron siendo de 32 bytes pero se
utilizaron los 10 bytes que se tenı́an reservados anteriormente.
Una entrada de directorio de Windows 98 contiene la siguiente
información:
Nombre de archivo (8 bytes).
Extensión (3 bytes).
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
46 / 79
Ejemplos de sistemas de archivos
Sistema de archivos de Windows 98
Sistema de archivos de Windows 98 II
Atributos (1 byte).
NT (1 byte). Este campo permite asegurar la compatibilidad con
Windows NT, desplegando los nombres de archivo en el caso
correcto (para MS-DOS sólo se permitı́an mayúsculas).
Seg (1 byte). Es un campo complementario para la fecha y hora de
creación lo que permite una precisión de hasta 10 ms.
Fecha y hora (4 bytes).
Ultimo acceso (2 bytes). Almacena la fecha de ultimo acceso
(pero no la hora).
16 bits superiores del bloque inicial (2 bytes) . Con esto se
permite que los números de bloque sean de 32 bits.
Fecha y hora de última escritura (4 bytes).
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
47 / 79
Ejemplos de sistemas de archivos
Sistema de archivos de Windows 98
Sistema de archivos de Windows 98 III
16 bits superiores del bloque inicial (2 bytes).
Tamaño de archivo (4 bytes). Dado que la cuenta es de bytes se
pueden tener archivos hasta de 4GB (en teorı́a).
La solución para que se pudieran crear nombres de archivo largos
y se mantuviera la compatibilidad con MS-DOS fue asociar a
cada archivo dos nombres.
Uno era el nombre largo que permitı́a caracteres Unicode para la
compatibilidad con Windows NT y el otro corto para la
compatibilidad con MS-DOS.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
48 / 79
Ejemplos de sistemas de archivos
Sistema de archivos de Windows 98
Sistema de archivos de Windows 98 IV
Para convertir un nombre largo en un nombre corto se tomaban
los primero seis caracteres válidos del nombre largo y se anexaba
el sufijo ∼ N donde N es un número consecutivo.
Si el archivo tenı́a un nombre largo y deseaba almacenarse en
MS-DOS entonces se agregaban bloques de entrada que
contenı́an el resto del nombre del archivo.
Cada bloque adicional al de la entrada principal permitı́a agregar
13 caracteres Unicode del modo siguiente:
Secuencia (1 byte).
5 caracteres (10 bytes).
Atributos (1 byte).
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
49 / 79
Ejemplos de sistemas de archivos
Sistema de archivos de Windows 98
Sistema de archivos de Windows 98 V
0 (1 byte).
Suma de comprobación (1 byte).
6 caracteres (12 bytes).
0 (2 bytes).
2 caracteres (4 bytes) .
Para que Windows 98 distinguiera entre bloques de entrada y
bloques correspondientes a nombres de archivo largos, se
utilizaba el valor 0 en los atributos.
0 es un valor inválido para los atributos, por lo que los programas
de MS-DOS viejos ignoran tales bloques.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
50 / 79
Ejemplos de sistemas de archivos
Sistema de archivos de Windows 98
Sistema de archivos de Windows 98 VI
Para llevar la cuenta de bloques que componen el nombre largo
se utiliza el primer byte de la entrada (Secuencia).
Puesto que el primer campo de Secuencia es de un byte podrı́a
pensarse en utilizar nombres tan largos como 28 ∗ 13 caracteres
Unicode.
Sin embargo sólo se utilizan 6 bits de ese byte y de hecho sólo se
permiten nombres de hasta 260 caracteres Unicode.
Los nombres largos se almacenan del siguiente modo:
Se crea el nombre de archivo MS-DOS y corresponderá a la última
entrada de directorio del archivo.
Al nombre MS-DOS lo precede la primera parte del nombre largo,
que a su vez es precedida por el resto del nombre.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
51 / 79
Ejemplos de sistemas de archivos
Sistema de archivos de Windows 98
Sistema de archivos de Windows 98 VII
Al principio de todas las entradas se encontrará la ultima parte del
archivo.
La suma de comprobación se utiliza para que Windows 98 se de
cuenta de que el nombre MS-DOS que sigue a un nombre largo
en verdad corresponde a dicha entrada.
FAT-32 tiene la ventaja (sobre FAT-16) de que sólo crea tantas
entradas de archivo como necesite.
Además no mantiene todas las entradas siempre en memoria,
sino sólo una parte de ellas.
¿Cómo se almacenarı́a el nombre largo “Este es un nombre
largo”?
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
52 / 79
Ejemplos de sistemas de archivos
Sistema de archivos de Windows 2000
Sistema de archivos de Windows 2000 I
Windows 2000 reconoce los sistemas de archivos FAT-16, FAT-32
y NTFS.
NTFS fue creado especı́ficamente para Windows NT e
incorporado en Windows 2000.
NTFS utiliza direcciones de disco de 64 bits y puede manejar
particiones de hasta 264 bytes (en teorı́a).
Las caracterı́sticas principales de NTFS son:
Los nombres de archivo están limitados a 255 caracteres y se
permite Unicode.
Las rutas completas de un archivo están limitadas a 32767
caracteres.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
53 / 79
Ejemplos de sistemas de archivos
Sistema de archivos de Windows 2000
Sistema de archivos de Windows 2000 II
Distingue entre mayúsculas y minúsculas (la API Win32 es la que
no reconoce tal diferencia).
Un archivo consiste de múltiples atributos representados mediante
un flujo de bytes.
Todos los archivos contienen algunos flujos cortos y algunos largos.
Ejemplos de flujos cortos son el nombre del archivo y su
identificador de objeto (de 64 bits).
Ejemplos de flujos largos son todos los que contienen los datos del
archivo.
La longitud máxima de un flujo es 264 bytes.
La apertura de archivos devuelve un identificador (que se utiliza
para leer y escribir el archivo).
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
54 / 79
Ejemplos de sistemas de archivos
Sistema de archivos de Windows 2000
Sistema de archivos de Windows 2000 III
La idea del uso de flujos se tomó de Apple Macintosh donde los
archivos tienen dos flujos: la rama de datos y la rama de recursos.
Los flujos de archivo permiten que un archivo pueda utilizarse con
mayor eficiencia.
Un ejemplo del uso de flujos de archivo es en la edición de texto
donde se utilizan dos flujos: uno se utiliza para la versión temporal
del archivo (que se esta editando) y el otro para la versión final.
Las llamadas a funciones de la API Win32 para manipular
archivos y directorios son similares a las equivalentes en Unix.
A continuación se presentan las principales funciones API Win32:
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
55 / 79
Ejemplos de sistemas de archivos
Sistema de archivos de Windows 2000
Sistema de archivos de Windows 2000 IV
Principales funciones de la API Win32 para E/S de archivos
CreateFile. Devuelve un identificador que permite crear o abrir un
archivo.
DeleteFile. Destruye un archivo.
CloseHandle. Cierra un archivo.
ReadFile. Lee los datos de un archivo.
WriteFile. Escribe datos en un archivo.
SetFilePointer. Coloca el apuntador de archivo en una posición
especı́fica.
GetFileAttributes. Devuelve las propiedades de archivo.
LockFile. Bloquea una región del archivo para exclusión mutua.
UnlockFile. Desbloquea una región del archivo.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
56 / 79
Ejemplos de sistemas de archivos
Sistema de archivos de Windows 2000
Sistema de archivos de Windows 2000 V
/*Ejemplo de uso de algunas funciones de la API de Windows*/
void copiarArchivo(){
HANDLE original, copia;
DWORD cont;
int s;
char buffer[TAM BUFFER+1];
original = CreateFile(“APIWindows.c”, GENERIC READ,
0, NULL, OPEN EXISTING, 0, NULL);
copia = CreateFile(“APIWindows(copia).c”, GENERIC WRITE,
0, NULL, CREATE ALWAYS, FILE ATTRIBUTE NORMAL,
NULL);
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
57 / 79
Ejemplos de sistemas de archivos
Sistema de archivos de Windows 2000
Sistema de archivos de Windows 2000 VI
do{
s = ReadFile(original, buffer, TAM BUFFER, &cont, NULL);
printf(“s = %d %d\n”, s, cont);
if(s && cont > 0)
WriteFile(copia, buffer, cont, &cont, NULL);
}while(s > 0 && cont > 0);
CloseHandle(original);
CloseHandle(copia);
return;
}
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
58 / 79
Ejemplos de sistemas de archivos
Sistema de archivos de Windows 2000
Sistema de archivos de Windows 2000 VII
Principales funciones de la API Win32 para administrar directorios
CreateDirectory. Crea un nuevo directorio.
RemoveDirectory. Elimina un directorio siempre y cuando este
vacı́o.
FindFirstFile. Coloca el apuntador para comenzar a leer las
entradas de un directorio.
FindNextFile. Lee la siguiente entrada de directorio.
MoveFile. Permite cambiar un archivo de directorio.
SetCurrentDirectory. Cambia el directorio de trabajo actual.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
59 / 79
Ejemplos de sistemas de archivos
Sistema de archivos de Windows 2000
Sistema de archivos de Windows 2000 VIII
NTFS es un sistema de archivos jerárquico y mantiene los
conceptos de directorio de trabajo actual, de ruta absoluta y de
ruta relativa.
Cada volumen NTFS se conforma de archivos, directorios, mapas
de bits y otras estructuras de datos.
Cada volumen se organiza como una sucesión lineal de bloques
que puede variar entre los 512 bytes y 64 KB.
La principal estructura de datos de cada volumen es la tabla
maestra de archivos (MFT: Master File Table).
La MFT es una sucesión lineal de registros de tamaño fijo (1 KB)
y se compone de 13 elementos:
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
60 / 79
Ejemplos de sistemas de archivos
Sistema de archivos de Windows 2000
Sistema de archivos de Windows 2000 IX
1
Información estándar: contiene los bits indicadores, las marcas
de hora, entre otros.
2
Nombre de archivo: en formato Unicode y de ser necesario se
duplica para la compatibilidad con MS-DOS.
3
Descriptor de seguridad: ya no se utiliza este campo.
4
Lista de atributos: ubicación de registros MFT adicionales.
5
Identificador de objeto: identificador de archivo de 64 bits único
en este volumen.
6
Punto de re-análisis: permite montajes y enlaces simbólicos.
7
Nombre de volumen: nombre del volumen al que pertenece.
8
Información de volumen: versión del volumen al que pertenece.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
61 / 79
Ejemplos de sistemas de archivos
Sistema de archivos de Windows 2000
Sistema de archivos de Windows 2000 X
9
Raı́z ı́ndice: para directorios.
10
Asignación de ı́ndice: para directorios grandes.
11
Mapa de bits: para directorios grandes.
12
Flujo unitario de registro: permite llevar el control de las entradas.
13
Datos: datos de flujo.
Los primeros 16 registros MFT están reservados para archivos de
metadatos de NTFS.
Cada registro describe un archivo como cualquier otro.
El nombre de estos archivos comienza con $ para denotar que
son archivos de metadatos.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
62 / 79
Ejemplos de sistemas de archivos
Sistema de archivos de Windows 2000
Sistema de archivos de Windows 2000 XI
A continuación se describen los 16 registros reservados de la
MFT.
1
$Mft: tabla maestra de archivos. Indica donde están situados los
bloques del archivo MFT para que el sistema pueda encontrar el
archivo.
2
$MftMirr: es una copia de respaldo del archivo $Mft.
3
$LogFile: es el archivo de registro de recuperación. Permite
respaldar la información antes de que se realice un cambio
estructural en el sistema de archivos (como borrar o crear
directorios).
4
$Volume: contiene información acerca del volumen.
5
$AttrDef: contiene la definición de los atributos.
6
$: es el directorio raı́z.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
63 / 79
Ejemplos de sistemas de archivos
Sistema de archivos de Windows 2000
Sistema de archivos de Windows 2000 XII
7
$Bitmap: permite llevar el control del espacio utilizado mediante un
mapa de bits.
8
$Boot: es el archivo cargador de auto-arranque.
9
$BadClus: indica cuáles son los bloques defectuosos.
10
$Secure: contiene los descriptores de seguridad para todos los
archivos.
11
$Upcase: es la tabla de conversión de mayúsculas a minúsculas.
12
$Extend: es un directorio que contiene archivos para fines
diversos.
Los últimos cuatro bloques de la MFT están reservados para uso
futuro.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
64 / 79
Ejemplos de sistemas de archivos
Breve historia de Unix
Breve historia de Unix I
La primera aproximación a Unix fue el sistema MULTICS
(MULTiplexed Information and Computing Service), creado por
parcialmente por el MIT, GE y los Bell Labs en los 70’s.
Luego Ken Thompson de los Bell Labs decidió escribir por su
cuenta una versión sencilla de MULTICS en una PDP-7.
Brian Kernighan (en ese entonces también de los Bell Labs)
decidió llamar a la versión de Thompson UNICS (UNiplexed
Information and Computing Service) que después cambiarı́a su
nombre a UNIX.
Denis Ritchie comenzó a colaborar con ellos en la creación de un
nuevo UNIX para las PDP-11/20, PDP-11/45 y PDP-11/75.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
65 / 79
Ejemplos de sistemas de archivos
Breve historia de Unix
Breve historia de Unix II
Para no estar re-escribiendo el SO para cada nuevo tipo de
máquina, Thompson decidió re-escribir Unix en un lenguaje de
alto nivel: B .
Después Ritchie diseñarı́a el sucesor de B, el lenguaje C, junto
con un excelente compilador.
Luego Thompson y Ritchie re-escribirı́an Unix en lenguaje C.
En 1974 Thompson y Ritchie escribireron un excelente artı́culo
acerca de Unix y en 1984 recibirı́an el premio Turing gracias a
eso.
A partir de ese momento se comenzaron a organizar numerosas
reuniones cientı́ficas entorno a Unix.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
66 / 79
Ejemplos de sistemas de archivos
Breve historia de Unix
Breve historia de Unix III
Con el libro de la versión 6 de Unix venı́a el código fuente: 8,200
lı́neas en C y 900 en ensamblador.
La versión 7 fue la primer versión portátil de Unix, diseñada para
la PDP-11.
La versión 7 tenı́a varias mejoras y su código fuente consistı́s de:
18,800 lı́neas en C y 2,100 en ensamblador.
A mediados de los 80 Unix se usaba ampliamente en
mini-computadoras y estaciones de trabajo.
Incluso Microsoft adquirió la licencia de la versión 7 y la
re-escribió vendiéndola como XENIX.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
67 / 79
Ejemplos de sistemas de archivos
Breve historia de Unix
Breve historia de Unix IV
Después, la universidad de Berkeley adquirió la versión 6 y
escribió una mejora considerable del sistema llamada Berkeley
Unix.
Para estandarizar las diferentes versiones de Unix que se iban
desarrollando se decidió hacer el estándar POSIX (Portable
Operating System unIX).
En 1987, Tanenbaum escribió MINIX basado en un diseño de
microkernel.
MINIX pretendı́a proporcionar un mı́nimo de funcionalidad en el
Kernel.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
68 / 79
Ejemplos de sistemas de archivos
Breve historia de Unix
Breve historia de Unix V
Los microkernel suelen ser más sencillos de entender que las
versiones monolı́ticas de los sistemas.
Luego en 1991, el estudiante Finlandés, Linus Torvalds,
escribió Linux 0.01 en base a Unix.
El código de Linux 0.01 eran: 9,300 lı́neas en C y 950 en
ensamblador.
En 1994, salió Linux 1.0, con 195,000 lı́neas de código en C y
menos de 8,000 en ensamblador.
En 1996, salió Linux 120, con 487,000 lı́neas de código en C y
8,000 en ensamblador.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
69 / 79
Ejemplos de sistemas de archivos
Breve historia de Unix
Breve historia de Unix VI
Linux maneja un modelo de negocio de software libre.
La licencia de Linux fue desarrollada por Richard Stallman,
fundador de Free Software Foundation.
Aunque Linux es gratuito, GPL (Licencia Pública de GNU)
especifica lo que el usuario puede y no puede hacer al código.
Los usuarios pueden usar, copiar, modificar y redistribuirlo.
La principal restricción es que Linux no puede venderse o
redistribuirse sin incluir el código.
Para mas información visite www.linux.org.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
70 / 79
Ejemplos de sistemas de archivos
Sistema de archivos de UNIX V7
Sistema de archivos de UNIX V7 I
El sistema de archivos V7 fue empleado en la PDP-11.
El sistema de archivos tiene la estructura de un árbol que
comienza en el directorio raı́z.
Este sistema permite agregar enlaces formando una gráfica
acı́clica dirigida.
Los nombres de archivo pueden medir hasta 14 caracteres ASCII
con excepción de / y ’\0’.
Una entrada de directorio Unix contiene una entrada para cada
archivo de ese directorio.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
71 / 79
Ejemplos de sistemas de archivos
Sistema de archivos de UNIX V7
Sistema de archivos de UNIX V7 II
Cada entrada de directorio contiene sólo 16 bytes (2 para el
número del nodo-ı́ndice y 14 para el nombre).
El tamaño del nodo-ı́ndice limita el número de archivos a 64 KB.
Los nodos-ı́ndice contienen la información de algunos atributos
como:
El tamaño del archivo.
La hora de creación.
La hora del último acceso.
La hora de la última modificación.
El dueño.
El grupo.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
72 / 79
Ejemplos de sistemas de archivos
Sistema de archivos de UNIX V7
Sistema de archivos de UNIX V7 III
La información de protección.
La cuenta del número de entradas del directorio.
Los nodos-ı́ndice cuentan con espacio para indicar hasta 10
direcciones de disco donde se encuentra el archivo.
Si los archivos requieren más de 10 direcciones entonces se
utiliza una de las direcciones para indicar la dirección de un
bloque llamado bloque indirecto.
Si dicho bloque no es suficiente entonces se utiliza una dirección
que permite referenciar a un segundo bloque llamado bloque
indirecto doble e incluso hasta un tercer bloque llamado bloque
indirecto triple.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
73 / 79
Ejemplos de sistemas de archivos
Sistema de archivos de UNIX V7
Sistema de archivos de UNIX V7 IV
Figura : Estructura del nodo-ı́ndice de Unix. Tomado de
http://es.wikipedia.org/wiki/Inodo
.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
74 / 79
Ejemplos de sistemas de archivos
Sistema de archivos de UNIX V7
Sistema de archivos de UNIX V7 V
Cuando se abre un archivo el sistema de archivos debe tomar el
nombre y localizar los bloques de disco.
El algoritmo de localización de nombres de archivo es el
siguiente:
1
El sistema de archivos localiza el directorio raı́z.
Este es fácil de localizar pues el nodo-ı́ndice de este se encuentra
en un lugar fijo.
2
Se comienzan a buscar cada uno de los componentes de la ruta.
La localización de los nodos-ı́ndice en el disco es fácil pues todos
tienen una posición fija en el disco y siempre se conoce su número.
3
Cuando se llega al archivo deseado se lee el nodo-ı́ndice de éste y
se coloca en la memoria.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
75 / 79
Ejemplos de sistemas de archivos
Sistema de archivos de UNIX V7
Sistema de archivos de UNIX V7 VI
Gracias a que los directorios contienen entradas para los archivos
. y .. es fácil obtener los números de nodo-ı́ndice.
La entrada . tiene el número de nodo-ı́ndice del directorio actual y
.. la del directorio padre.
No se requiere manejo especial para los nombres . y .. pues para
el sistema son simplemente nombres ordinarios de archivos.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
76 / 79
Ejemplos de sistemas de archivos
Sistema de archivos de UNIX
Sistema de archivos de UNIX I
En Unix no se hace distinción entre tipos de archivo (ASCII,
binarios, etc.).
El tamaño de archivo fue incrementado a 255 caracteres a partir
del sistema Berkeley Unix.
En este caso, las extensiones de los archivos pueden tener
cualquier longitud e incluso puede haber varias extensiones para
un mismo archivo.
El directorio raı́z también se llama “/”.
Los principales directorios del sistema son:
bin. Contiene los programas binarios.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
77 / 79
Ejemplos de sistemas de archivos
Sistema de archivos de UNIX
Sistema de archivos de UNIX II
dev. Contiene los archivos especiales para los dispositivos de E/S.
etc. Contiene los archivos de sistema diversos.
lib. Contiene las bibliotecas.
usr. Contiene los directorios de usuarios.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
78 / 79
Ejemplos de sistemas de archivos
Sistema de archivos de UNIX
Sistema de archivos de UNIX III
Principales llamadas al sistema en Unix para E/S
create(name, mode): permite crear un archivo nuevo
open(file, how, . . . ): abre un archivo para lectura/escritura.
close(ref name): cierra un archivo abierto.
read(ref name, buffer, nbytes): lee datos de un archivo.
write(ref name, buffer, nbytes): escribe datos en un archivo.
lseek(ref name, offset, whence): posiciona en otro lugar el
apuntador de archivo.
stat(name, &buf): obtiene la información de los atributos.
pipe(&ref name[0]): crea una canalización.
fcntl(ref name, cmd, . . . ): para bloqueos.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
79 / 79
Descargar