PDF de programación - El sistema de archivo de UNIX - Programación de sistemas

Imágen de pdf El sistema de archivo de UNIX - Programación de sistemas

El sistema de archivo de UNIX - Programación de sistemasgráfica de visualizaciones

Publicado el 29 de Junio del 2019
1.138 visualizaciones desde el 29 de Junio del 2019
1,7 MB
17 paginas
Creado hace 8a (21/01/2016)
Programación de sistemas

El sistema de archivo de UNIX

Prof: Sergio Bemposta
Dpto: DACA – E.Politecnica
[email protected]

Indice

 Concepto de archivo

 El i-nodo

 Tablas de control de archivos

 Los directorios

 Los archivos compartidos

 Los dispositivos

 Algunos archivos especiales

Pag: 2

1

Concepto de archivo

 El archivo es una unidad lógica de

almacenamiento de la información que utiliza
el S.O para dar una visión uniforme del
sistema de almacenamiento.

 Un archivo tiene una serie de atributos o de

propiedades como su nombre y ubicación, su
tipo, su fecha de creación, su dueño, etc..

 El S.O es el encargado de la gestión del
sistema de archivo y es el que ofrece los
servicios básicos para los usuarios y las
aplicaciones.

Pag: 3

Concepto de archivo:
Tipos de ficheros en UNIX

 Fichero regular: Un conjunto de datos guardados en

una entidad lógica llamada fichero. El S.O no distingue
si es de texto o binario.

 Directorio: Un fichero que contiene nombres de otros

ficheros y punteros a la información de los mismos.

 Ficheros especiales: Son archivos que se utilizan solo

para el manejo de dispositivos (Carácter o Bloque).
 FIFO: Ficheros que se comportan como tuberías y
residen en el sistema de archivo. Los datos que se
leen se borran del archivo de forma automática.

 Enlaces: Un tipo de fichero que apunta a otro fichero.

Pag: 4

2

El i-nodo

 Todo archivo tiene asociado un i-nodo.
 Es una estructura de datos que reside en el disco y

contiene toda la información necesaria para la gestión
del archivo.

• Tipo de fichero y protección (permisos),

• Propietario y Grupo,

• Fechas de creación y última fecha de acceso,

• Numero de enlaces,

• Tamaño del archivo,

• Direcciones de los bloques de datos en el disco.

 Cuando se abre un fichero, el sistema carga en

memoria el i-nodo del fichero correspondiente.

Pag: 5

El i-nodo:
Asignación de bloques de datos

 Un archivo en el disco es un conjunto de bloques
de datos que no están necesariamente contiguos.

 Es una forma de optimizar el espacio del disco

frente a los bloques únicos que crean mucha
fragmentación.

 Cada bloque de (512 o 1024 bytes) tiene asociado
un número que representa su dirección en el disco.

 El número de bloques de un fichero depende de su

tamaño.

 El i-nodo de un fichero tiene una tabla de todos los

bloques en el disco.

Pag: 6

3

El i-nodo:
Indexación

• Los 10 primeros punteros apuntan
directamente a Bloques de Datos
(BD). Son los punteros directos. Si
un fichero tiene más de 10
bloques, se usan uno o más
niveles de indexación

• Puntero 11 o indexación simple:

Apunta a un bloque de 256
punteros a BD

• Puntero 12 o indexación doble:

Apunta a un bloque de 256
punteros a bloques de indexación
simple.

• Puntero 13 o indexación triple:

Apunta a un bloque de 256
punteros a bloques de indexación
doble.

Pag: 7

El i-nodo:
Indexación

 Algunos sistemas tienen bloques de

indexación de 128 punteros en vez de 256.

 Ejemplo: Capacidad de un archivo en

UNIX con bloques de 512 bytes y bloques
de indexación de 256 punteros.

• Directo:

10 Bloques de 512b







Indexación simple:

256 Bloques

Indexación doble:

256*256 Bloques

Indexación triple:

256*256*256 Bloques

5Kb

128Kb

32Mb

8Gb

Pag: 8

4

El i-nodo:
Ventajas del esquema i-nodo.

 La información del i-nodo es relativamente

pequeña y se guarda en memoria.

 Se puede acceder a archivos pequeños

con indexación directa, reduciendo así el
tiempo de acceso a disco.

 El tamaño máximo teórico es

suficientemente grande como para
satisfacer a casi todas las aplicaciones.

Pag: 9

Tablas de control de acceso a
ficheros

 El Núcleo mantiene 3 tablas de información para

la gestión de archivos.

• Tabla de los i-nodos:

• Tabla de los ficheros:

• Tabla de los descriptores:

Pag: 10

5

Tablas de control de acceso a ficheros:
Tablas de ficheros.

 Es una tabla global a todo el sistema y tiene

la siguiente información:

• Derechos de acceso (rwx),

• Estado actual del fichero (abierto, bloqueado, ..),

• Contador de enlaces.

• Desplazamiento de lectura o escritura,

• ….

 Cada entrada de la tabla de ficheros apunta a

una entrada de la tabla de i-nodos.

Pag: 11

Tablas de control de acceso a ficheros:
Tabla de descriptores.

 Es una tabla local a cada proceso y sirve para

gestionar los ficheros abiertos por el proceso.

 Cada entrada de la tabla (descriptor) referencia a

una entrada de la tabla de ficheros.

 Las llamadas al sistema como read() o

write(), operan sobre los descriptores y no
sobre los ficheros.

 Cuando se crea un proceso, el sistema le asigna 3

descriptores que ocupan las 3 primeras entradas.
• Descriptor 0 (Entrada estándar):

Teclado

• Descriptor 1 (Salida estándar):

Terminal

• Descriptor 2 (Salida error estándar): Terminal

Pag: 12

6

Tablas de control de acceso a ficheros:
Asignación y liberación de descriptores.

 Cuando se abre un fichero con las

llamadas create() o open(), el sistema
devuelve siempre el primer descriptor libre
de la tabla comenzando desde 0.

 Cuando se cierra un archivo mediante
close(), la entrada correspondiente
queda libre.

 Cuando un proceso crea un hijo mediante
fork(), el hijo hereda automáticamente
todos los descriptores del padre.

Tablas de control de acceso a ficheros:
Ejemplo:

Paso 1: Un proceso A abre

los siguientes ficheros:

f1=open("/etc/passwd",O_RDONLY)

f2=open(".cshrc", O_RDWR)

f3=open("/etc/passwd",O_WRONLY)

Paso 2: Un proceso B abre

un archivo ya abierto:

f1=open("/etc/passwd",O_RDONLY)

Pag: 13

Pag: 14

7

Directorios

 Un directorio es un archivo y tiene asociado un i-

nodo.

 Se distingue de otros ficheros por un campo de su

i-nodo que especifica que es un directorio.

 Una entrada típica de un directorio: Es una

estructura que contiene el nombre del fichero y el
numero del i-nodo correspondiente.

Directorios

• Relación entre una

entrada de un
directorio, su i-nodo y
los bloques de datos.

Pag: 15

i-nodo

nombre

12345 Fichero1

i-nodo
12345

......

1

......

23567

......

Bloque
23567

Datos....

Pag: 16

8

Los archivos compartidos

 El sistema UNIX permite a los usuarios

compartir ficheros y directorios.

 Los archivos compartidos aparecen en el
sistema de archivo de cada usuario como
si fueran locales.

 Esto se consigue mediante enlaces y UNIX

tiene 2 tipos

• Enlaces duros

• Enlaces simbólicos

Pag: 17

Los archivos compartidos:
Enlace duro.

 Se crea una entrada nueva en el sistema de
archivos del usuario con un nombre diferente.
 El numero del i-nodo al que apunta el archivo

es el mismo que el archivo original.

 Los i-nodos tienen un contador de enlaces.
 Cuando se borra el archivo original, en

realidad no se borra el i-nodo
correspondiente. Solo se borra, la entrada
correspondiente en el directorio.

 Se elimina definitivamente el archivo si el

contador de enlaces o vínculos llega a cero.

Pag: 18

9

Los archivos compartidos:
Enlace duro.

i-nodo nombre

12345

Nombre1

Archivo original

i-nodo nombre

12345

Nombre2

Enlace duro

i-nodo
12345

......

2

......

23567

......

Bloque
23567

Datos.....

Desventajas:
• No se puede enlazar archivos de sistemas de archivos diferentes.
• No se puede crear un enlace a un directorio, [ el superusuario si ].

19

Los archivos compartidos:
Enlace simbólico.

 Los enlaces simbólicos resuelven los

problemas inherentes a los enlaces duros.

• Se puede enlazar archivos de sistemas diferentes

• Se puede enlazar directorios.

 El archivo original y su enlace tienen i-nodos
diferentes, por lo que son archivos diferentes.

 El enlace es un archivo (especial) que

contiene la ruta al archivo original.

Pag: 20

10

Los archivos compartidos:
Enlace simbólico.

Entrada en directorio dirA

Enlace simbólico a un archivo.

i-nodo nombre

12345 Nombre1

i-nodo nombre

13579 Nombre2

i-nodo
12345

......

1

......

23567

......

Bloque
23567

Datos....

i-nodo
13579

......

1

......

15213

......

Bloque
15213

/dirA/Nom
bre1

Pag: 21

Los Dispositivos

 Un manejador de dispositivo es un conjunto de

rutinas para acceder a un periférico o dispositivo
determinado.

 El S. O oculta las detalles del hardware,

permitiendo que el usuario pueda acceder a los
dispositivo a través de una interfaz estandarizada.

 Los manejadores de dispositivos no pueden ser

accedidos directamente por los procesos de
usuario, sino el acceso se realiza a través de
ficheros.

 Ejemplo: Reproducir un sonido, se vuelca el

contenido audio en un archivo especial.

Pag: 22

11

Los Dispositivos

 La interfaz con los dispositivos son “ficheros especiales”, que

residen en el directorio /dev.

 Los procesos acceden al dispositivo utilizando llamadas al
sistema sobre ficheros (No hay llamadas al sistema sobre
dispositivos, con la excepción del terminal).

 Los dispositivos pueden ser de los siguientes tipos:

• Carácter: los datos se transfieren de byte en byte, como el

puertos serie, paralelo, el monitor, etc..

• Bloques: los datos se transfieren en bloques, a través de un

buffer, como las operaciones sobre el disco.

 En general, una maquina puede tener varios dispositivos del

mismo tipo (2 puertos serie, 3 USB, 2 lp, ..)

Pag: 23

Los Dispositivos

 Para referenciar correctamente los dispositivos, se

utilizan 2 números:

• Un número mayor: identifica al tipo de dispositivo. El

sistema lo usa para decidir qué manejador utilizar

• Un número menor: identifica al dispositivo concreto.

 Ejemplo :

$ ls -l /dev/lp*

crw-rw-rw- 1 root root 6, 0 April 23 2003 /dev/lp0

 La salida indica que lp0 es un dispositivo de tipo

carácter, el número mayor es 6 y el menor es 0

Pag: 24

12

Los Dispositivos:
Ejemplos, algunos dispositivos

 /dev/hda, /dev/hdb, /dev/hdc, /dev/hdd,

 /dev/sda:

 /dev/fd0:
  • Links de descarga
http://lwp-l.com/pdf16206

Comentarios de: El sistema de archivo de UNIX - Programación de sistemas (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad