61
03/11/2009 1 Tema Tema 2 Tema Tema 2 SISTEMA DE FICHEROS SISTEMA DE FICHEROS Almacenamiento permanentes de información. Almacenamiento permanentes de información. SISTEMA DE FICHEROS SISTEMA DE FICHEROS No No están ligados al ciclo de vida de una aplicación particular. están ligados al ciclo de vida de una aplicación particular. Conjunto de información estructurada de forma lógica. Conjunto de información estructurada de forma lógica. Nombres lógicos y estructurados. Nombres lógicos y estructurados. Abstraen los dispositivos de almacenamiento físico. Abstraen los dispositivos de almacenamiento físico. Se acceden a través de llamadas al sistema operativo o de Se acceden a través de llamadas al sistema operativo o de bibliotecas de utilidades. bibliotecas de utilidades.

SISTEMA DE FICHEROS 2 - dsa-research.orgdsa-research.org/teresa/SO/Clases/SISTEMA DE FICHEROS_2.pdf · Tipos de archivos: ... Estructura de archivo ejecutable Estructura de archivo

Embed Size (px)

Citation preview

03/11/2009

1

TemaTema 22TemaTema 22

SISTEMA DE FICHEROSSISTEMA DE FICHEROS

Almacenamiento permanentes de información. Almacenamiento permanentes de información. 

SISTEMA DE FICHEROSSISTEMA DE FICHEROS

No No están ligados al ciclo de vida de una aplicación particular.están ligados al ciclo de vida de una aplicación particular.

Conjunto de información estructurada de forma lógica.Conjunto de información estructurada de forma lógica.

Nombres lógicos y estructurados.Nombres lógicos y estructurados.

Abstraen los dispositivos de almacenamiento físico.Abstraen los dispositivos de almacenamiento físico.

Se acceden a través de llamadas al sistema operativo o de Se acceden a través de llamadas al sistema operativo o de bibliotecas de utilidades.bibliotecas de utilidades.

03/11/2009

2

FicherosFicheros DirectoriosDirectorios

SISTEMA DE FICHEROSSISTEMA DE FICHEROS

DirectoriosDirectorios ImplementaciónImplementación del del sistemasistema de de ficherosficheros EjemplosEjemplos de de sistemasistema de de ficherosficheros El El servidorservidor de de archivoarchivo AumentoAumento de de prestacionesprestacionesS i iS i i d ld l i ti t dd fi hfi h ServiciosServicios del del sistemasistema de de ficherosficheros

ConceptoConcepto de de archivoarchivo Un espacio lógico de direcciones contiguas usado para  Un espacio lógico de direcciones contiguas usado para  

almacenar datosalmacenar datos

Tipos de archivos: Tipos de archivos: pp

Datos: Datos: 

numéricos numéricos 

carácter carácter 

binariosbinarios

Programas: Programas: 

ódi f tódi f t código fuente código fuente 

archivos objetos (imagen de carga)archivos objetos (imagen de carga)

DocumentosDocumentos

03/11/2009

3

NombresNombres de de archivoarchivo. . ExtensionesExtensiones típicastípicas

EstructurasEstructuras de de archivoarchivo

03/11/2009

4

TiposTipos de de archivoarchivo

(a) Un (a) Un ficherofichero executable   (b) Un executable   (b) Un archivoarchivo

Cabecera primaria

Número mágico

Número de secciones

Tamaño segmento texto

Tamaño segmento datos

Estructura de archivo ejecutable Estructura de archivo ejecutable LINUXLINUX

Cabecera de sección 1

Cabecera de sección n

Sección 1

Sección 2

Tipo de sección,tamaño de la sección dirección virtual

Datos con valor inicial

Código

Tipo de sección,tamaño de la sección dirección virtual

Tamaño segmento datos

Tamaño datos sin valorinic ial

Tamaño tabla de símbolos

Valor inicial de registros

Dirección inic ial

Opciones

...

Sección n

Otrainformación

Datos con valor inicial

Informaciónde carga

Tabla desímbolos

03/11/2009

5

Nombre:Nombre: la única información en formato legible por una la única información en formato legible por una persona.persona.

Identificación única del archivo y del usuario:Identificación única del archivo y del usuario: descriptor interno descriptor interno 

AtributosAtributos del del archivoarchivo

yy ppdel archivo, dueño y grupo del archivodel archivo, dueño y grupo del archivo

Tipo de archivo: Tipo de archivo: necesario en sistemas que proporciona necesario en sistemas que proporciona distintos formatos de archivos.distintos formatos de archivos.

Tamaño del archivo: Tamaño del archivo: número de bytes en el archivo, máximo número de bytes en el archivo, máximo tamaño posible, etc. tamaño posible, etc. 

Protección: Protección: control de accesos y de las operaciones sobre control de accesos y de las operaciones sobre hihiarchivosarchivos

Información temporal:Información temporal: de creación, de acceso, de modificación, de creación, de acceso, de modificación, etc.etc.

Información de control: Información de control: archivo oculto, de sistema, normal o archivo oculto, de sistema, normal o directorio, etc.directorio, etc.

OperacionesOperaciones sobresobre archivosarchivos File es un tipo abstracto de datos

Create, Delete

Write Read Write, Read

Open, Close

Append, Truncate

Seek

Rename

Set atributos

Get atributos

Open(Fi) – busca la entrada Fi en el directorio y mueve el contenido de la entrada desde disco a memoria.

Close (Fi) – busca la entrada Fi en el directorio y mueve el contenido de la entrada desde memoria a disco. 

03/11/2009

6

Acceso secuencial: lectura de los bytes del archivo en orden Acceso secuencial: lectura de los bytes del archivo en orden ascendente, empezando por el principio.ascendente, empezando por el principio.

MétodosMétodos de de accesoacceso II

readread nextnext, , writewrite nextnext, , resetreset, no , no readread afterafter lastlast writewrite, …, …

rewindrewind: ir al principio para buscar hacia delante: ir al principio para buscar hacia delante

Lectura Lectura ‐‐> posición = posición + datos leídos> posición = posición + datos leídos

Dispositivos de cintaDispositivos de cinta

Acceso Directo:Acceso Directo: Acceso Directo:Acceso Directo:

readread n, n, writewrite n, n, gotogoto n, n, rewriterewrite n, n, readread nextnext, , writewrite nextnext, …, …

n = número de bloque relativo al origenn = número de bloque relativo al origen

Dispositivos: discos magnéticos Dispositivos: discos magnéticos 

AccesoAcceso secuencialsecuencial

03/11/2009

7

•• Control del  Control del  dueñodueño//creadorcreador del del ficherofichero::

–– QuéQué se se puedepuede hacerhacer

ProtecciónProtección

–– PorPor quíenquíen

•• TiposTipos de de acesosacesos

–– ReadRead

–– WriteWrite

EE–– ExecuteExecute

–– AppendAppend

–– DeleteDelete

–– ListList

•• ModosModos of of acesoaceso:  :  readread, , writewrite, , executeexecute

•• TresTres clasesclases de de usuariosusuariosRWXRWX

a)a) owner accessowner access 77 1 1 11 1 1

Listas de accesos y gruposListas de accesos y grupos

a)a) owner access owner access  77 1 1 11 1 1RWXRWX

b) b) group access group access  66 1 1 01 1 0RWXRWX

c) c) public accesspublic access 11 0 0 10 0 1

•• El El gestorgestor ceacea un un ungrupoungrupo , , porpor ejemploejemplo GG, y , y añadirañadir algunosalgunos usuariosusuarios al al grupogrupo..

•• DefinirDefinir un un tipotipo de de accesoacceso parapara un un ficherofichero particular, particular, porpor ejemploejemplo ggameame, , o o subdirectoriosubdirectorio,.,.

owner group public

chmod 761 game

03/11/2009

8

ListaLista de control de de control de accesosaccesos en Windows XPen Windows XP

BloqueBloque de control de de control de ficherofichero típicotípico

03/11/2009

9

Ejemplo. Copia un archivo en Ejemplo. Copia un archivo en otro Iotro I

#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <stdio.h>

#define BUFSIZE 512

main(int argc, char **argv) {int fd_ent, fd_sal;char buffer[BUFSIZE];int n_read;

/* abre el archivo de entrada */fd_ent = open(argv[1], O_RDONLY); if (fd_ent < 0) {

perror("open");exit(-1);

}

/* crea el archivo de salida */fd_sal = creat(argv[2], 0644);if (fd_sal < 0) {

close(fd_ent);perror("open");exit(-1);

}

Ejemplo. Copia un archivo en Ejemplo. Copia un archivo en otro IIotro II

/* bucle de lectura del archivo de entrada */while ((n_read = read(fd_ent, buffer, BUFSIZE)) > 0) { /* escribir el buffer al archivo de salida */

if (write(fd_sal, buffer, n_read) < n_read) {perror("write2);close(fd_ent); close(fd_sal);exit(-1);

}}

if (n_read < 0) { perror("read");close(fd_ent); close(fd_sal);exit(-1);

}} close(fd_ent); close(fd_sal);exit(0);

}

03/11/2009

10

FicherosFicheros DirectoriosDirectorios

SISTEMA DE FICHEROSSISTEMA DE FICHEROS

ImplementaciónImplementación del del sistemasistema de de ficherosficheros EjemplosEjemplos de de sistemasistema de de ficherosficheros El El servidorservidor de de archivoarchivo AumentoAumento de de prestacionesprestaciones ServiciosServicios del del sistemasistema de de ficherosficheros

Estructura de directorioEstructura de directorio

UnaUna coleccióncolección de de nodosnodos con con informacióninformación sobresobre los los ficherosficheros

F 1 F 2 F 4

DirectoriosDirectorios

FicherosFicherosF 1 F 2

F 3F 4

F n

AmbosAmbos residenresiden en discoen disco

03/11/2009

11

Un único nivel de directorios IUn único nivel de directorios IUn Un directoriodirectorio parapara todostodos loslos usuariosusuarios

Problema de nombres

Problema de grupos

Un único nivel de directorios IIUn único nivel de directorios IIUn Un directoriodirectorio parapara cadacada usuariousuario

Path de nombres

Se puede tener el mismo nombre de archivo para diferentes usuarios.

Búsqueda eficiente

No tiene capacidad de agrupación

03/11/2009

12

Estructura de directorios en árbol IEstructura de directorios en árbol I

Estructura de directorios en árbol IIEstructura de directorios en árbol II BúsquedaBúsqueda eficienteeficiente

CapacidadCapacidad de de agrupaciónagrupaciónpp g pg p

DDirectorioirectorio actual (working directory)actual (working directory)

cdcd /spell/mail//spell/mail/progprog

Se Se denotadenota con “con “..””

Directorios especiales:Directorios especiales:

•• Directorio “Directorio “ ”: directorio padre de “”: directorio padre de “ ””•• Directorio Directorio .... : directorio padre de : directorio padre de ..

•• Directorio Directorio HOMEHOME: el directorio base del usuario: el directorio base del usuario

03/11/2009

13

Estructura de directorios en árbol IIIEstructura de directorios en árbol III nombrenombre aabsolutobsoluto o o relativorelativo

El El nuevonuevo ficherofichero se se creacrea en el en el directoriodirectorio actual actual 

BorrarBorrar unun ficheroficheroBorrarBorrar un un ficherofichero

rmrm <file<file‐‐name>name>

El El nuevonuevo subdirectoriosubdirectorio se se creacrea en el en el directoriodirectorio actual actual 

mkdirmkdir <dir<dir‐‐name>name>

EjemploEjemplo:  :  sisi el el directoriodirectorio actual actual eses /mail/mail

mkdirmkdir countcount

mail

prog copy prt exp count

Para borrar “mail”  borrar el subárbol que cuelga de  “mail”

ComparticicónComparticicón de archivos Ide archivos I

26

SistemaSistema de de ficherosficheros queque contienencontienen un un ficherofichero compartidocompartido

03/11/2009

14

ComparticicónComparticicón de archivos IIde archivos II

27

(a)(a) SituaciónSituación anterior al enlace anterior al enlace 

(b)  (b)  DepuésDepués de de crearcrear el enlaceel enlace

(c)  (c)  DespuésDespués de de queque el el dueñodueño original original borraborra el el ficherofichero

EnlacesEnlaces

DDos o más nombres hacen referencia al mismo archivo. os o más nombres hacen referencia al mismo archivo.

Dos tipos: Dos tipos:

Enlace físico Enlace físico

El archivo sólo se elimina cuando se borran El archivo sólo se elimina cuando se borran todos los enlaces todos los enlaces

Sólo se permiten enlazar ficheros del mismo Sólo se permiten enlazar ficheros del mismo volumen o particiónvolumen o partición

Enlace simbólico Enlace simbólico

El hi li i d b l lEl hi li i d b l l El archivo se elimina cuando se borra el enlace El archivo se elimina cuando se borra el enlace físico. Si permanece el enlace simbólico provoca físico. Si permanece el enlace simbólico provoca errores al tratar de accederlo. errores al tratar de accederlo.

Se puede hacer entre archivos de diferentes Se puede hacer entre archivos de diferentes sistema de archivos sistema de archivos

03/11/2009

15

Enlace físicoEnlace físico

/

usr lib user

/

usr lib user

pepe juan

prog.cdatos.txt

prog.c

..

.datos.txt

23100

28400

pepe

..

.

datos2.txt

80100

60 enlaces = 2prueba.txt

datos2.txtprueba.txt

28

descripción

juannodo-i 28

pepe

prog.c prueba.txtdatos.txt

prog.c

..

.datos.txt

23100

28400

pepe

..

.prueba.txt

80100

60

juan

juan

ln /user/pepe/datos.txt /user/juan/datos2.txt

del fichero

Enlace simbólicoEnlace simbólico

/

usr lib user

/

usr lib user usr lib

pepe

user

juan

prog.cdatos.txt

prog.c

...datos.txt

23100

130400

pepe

...

datos2.txt

80100

60prueba.txt

datos2.txtprueba.txt

28

juan

enlaces = 1

/user/pepe/datos.txt

nodo-i 130

Enlaces = 1

descripción del fichero

nodo-i 28

usr lib

pepe

user

prog.c prueba.txtdatos.txt

prog.c

...datos.txt

23100

28400

pepe

...prueba.txt

80100

60

juan

juan

ln -s /user/pepe/datos.txt /user/juan/datos2.txt

03/11/2009

16

Grafo Grafo acíclicoacíclico de directorios Ide directorios IDirectoriosDirectorios y y ficherosficheros compartidoscompartidos

Grafo Grafo acíclicoacíclico de directorios IIde directorios II

•• link: Un archivo con varios nombres link: Un archivo con varios nombres ‐‐> control de enlaces> control de enlaces–– un único archivo con contador de enlaces en descriptor (e. Físicos)un único archivo con contador de enlaces en descriptor (e. Físicos)–– archivos nuevos con el nombre destino dentro (e. simbólicos)archivos nuevos con el nombre destino dentro (e. simbólicos)

•• Borrado de enlaces: Borrado de enlaces: –– decrementardecrementar contador; si 0 borrar archivocontador; si 0 borrar archivo

•• Problema grave: existencia de bucles en el árbol. Soluciones:Problema grave: existencia de bucles en el árbol. Soluciones:–– Permitir sólo enlaces a archivos, no subdirectoriosPermitir sólo enlaces a archivos, no subdirectorios

Algoritmo de búsqueda de bucle cuando se hace un enlaceAlgoritmo de búsqueda de bucle cuando se hace un enlace–– Algoritmo de búsqueda de bucle cuando se hace un enlaceAlgoritmo de búsqueda de bucle cuando se hace un enlace

•• Limitación de implementación en UNIX: sólo enlaces físicos dentro del Limitación de implementación en UNIX: sólo enlaces físicos dentro del mismo sistema de archivos.mismo sistema de archivos.

03/11/2009

17

Grafo general de directorios IGrafo general de directorios I

Grafo general de directorios IIGrafo general de directorios II CómoCómo evitarevitar ciclosciclos??

PermitiendoPermitiendo únicamenteúnicamente enlaces a enlaces a laslas hojashojas

CadaCada vezvez queque sese creacrea unun nuevonuevo link selink se miramira sisi creacrea CadaCada vezvez queque se se creacrea un un nuevonuevo link se link se miramira sisi creacreaciclociclo o no.o no.

Garbage collectionGarbage collection

03/11/2009

18

Árbol de directoriosÁrbol de directoriosPor dispositivo lógico en Windows (c:Por dispositivo lógico en Windows (c:\\usersusers\\miguelmiguel\\claves, j:claves, j:\\pepepepe\\tmptmp))

Jerarquía de directoriosJerarquía de directorios

Por dispositivo lógico en Windows (c:Por dispositivo lógico en Windows (c:\\usersusers\\miguelmiguel\\claves, j:claves, j:\\pepepepe\\tmptmp))

Único para todo el sistema en UNIX (/Único para todo el sistema en UNIX (/usersusers/miguel/claves, /pepe//miguel/claves, /pepe/tmptmp,, ...)...)Ventajas:Ventajas:

imagen única del sistema y ocultan el tipo de dispositivoimagen única del sistema y ocultan el tipo de dispositivo

Desventajas: Desventajas: ‐‐ Complican la traducción de nombres, problemas para Complican la traducción de nombres, problemas para enlaces enlaces  físicos entre archivosfísicos entre archivos‐‐ Hacen falta servicios para construir la jerarquía:Hacen falta servicios para construir la jerarquía:

mountmount //devdev//hdahda //usersusersumountumount //usersusers

•• Oculta el nombre del dispositivo físico o partición Oculta el nombre del dispositivo físico o partición Volumen raiz(/dev/hd0)

Volumen sin montar(/dev/hd1)

Volumen montado

Montado de sistemas de archivos o Montado de sistemas de archivos o particionesparticiones

/

/lib /bin /usr

/

/d1 /d2 /d3

/d3/f2/d3/f1

/

/lib /bin /usr

mount /dev/hd1 /usr

•• En MSEn MS‐‐DOS  c:DOS  c:\\tmptmp\\datos.txt datos.txt 

/usr/d1 /usr/d3

/usr/d3/f2/usr/d3/f1

03/11/2009

19

Operaciones sobre directoriosOperaciones sobre directorios

1.1. DeleteDelete

22 O diO di2.2. OpendirOpendir

3.3. ClosedirClosedir

4.4. Create Create 

5.5. ReaddirReaddir

6.6. RenameRename

77 LinkLink7.7. LinkLink

8.8. UnlinkUnlink

EjemploEjemplo: : exploradorexplorador de Windowsde Windows

03/11/2009

20

Un Un ejemploejemplo de de listadolistado de de directoriodirectorio UNIXUNIX

BloqueBloque de controlde controlde de ficherofichero descriptor o descriptor o ii--nodonodo

03/11/2009

21

Ejemplo. Ejemplo. Lista Lista un directorio un directorio II

#include <sys/types.h>#include <dirent.h>#include <stdio.h>

#define MAX_BUF 256

id i (i t h ** )void main(int argc, char **argv){

DIR *dirp;struct dirent *dp;char buf[MAX_BUF];

/* imrpime el directorio actual */getcwd(buf, MAX_BUF);printf("Directorio actual: %s\n", buf);

/* abre el directorio pasado como argumento */dirp = opendir(argv[1]);

if (dirp == NULL) {( p ) {fprintf(stderr,"No puedo abrir %s\n", argv[1]);

} else {

/* lee entrada a entrada */while ( (dp = readdir(dirp)) != NULL)

printf("%s\n", dp->d_name);closedir(dirp);

}exit(0);

}

FicherosFicheros

SISTEMA DE FICHEROSSISTEMA DE FICHEROS

DirectoriosDirectorios ImplementaciónImplementación del del sistemasistema de de ficherosficheros EjemplosEjemplos de de sistemasistema de de ficherosficheros El El servidorservidor de de archivoarchivo AumentoAumento de de prestacionesprestacionespp ServiciosServicios del del sistemasistema de de ficherosficheros

03/11/2009

22

CorrespondenciaCorrespondencia bloquesbloques--archivosarchivos II

Se Se refiererefiere a la forma a la forma en en queque los los bloquesbloques se se organizanorganizan en en ficherosficheros..

ContinuaContinua

ListaLista

IndexadaIndexada

CorrespondenciaCorrespondencia bloquesbloques--archivosarchivos IIII1.1. AsignaciónAsignación dede bloquesbloques contiguoscontiguos..

–– SencilloSencillo dede implementarimplementar yy elel rendimientorendimiento dede lala E/SE/S eses muymuy buenobueno..–– SiSi nono sese conoceconoce elel tamañotamaño totaltotal deldel archivoarchivo cuandocuando sese crea,crea, puedepuede serser

ii bb hh dd blbl titi ddnecesarionecesario buscarbuscar unun nuevonuevo huecohueco dede bloquesbloques consecutivosconsecutivos cadacada vezvezqueque elel archivoarchivo crececrece..

–– Fragmentación externa Fragmentación externa ‐‐> compactar el disco.> compactar el disco.

2.2. AsignaciónAsignación dede bloquesbloques discontinuosdiscontinuos..–– SeSe asignaasigna alal archivoarchivo elel primerprimer bloquebloque queque sese encuentraencuentra librelibre..–– NoNo hayhay fragmentaciónfragmentación externaexterna deldel discodisco nini búsquedabúsqueda dede huecoshuecos..–– LosLos archivosarchivos puedenpueden crecercrecer mientrasmientras existaexista espacioespacio enen elel discodisco..LosLos archivosarchivos puedenpueden crecercrecer mientrasmientras existaexista espacioespacio enen elel discodisco..–– ComplicaComplica lala implementaciónimplementación dede lala imagenimagen dede archivoarchivo ‐‐>> mapamapa dede

bloquesbloques deldel archivoarchivo..

03/11/2009

23

CorrespondenciaCorrespondencia continua Icontinua I

CorrespondenciaCorrespondencia continua IIcontinua II Acceso muy rápido, poco movimiento del cabezal de discoAcceso muy rápido, poco movimiento del cabezal de disco

Buscar un espacio libre suficiente consecutivoBuscar un espacio libre suficiente consecutivo

•• FirstFirst fitfit

•• BestBest fitfit

•• WorstWorst fitfit

Fragmentación externa: Fragmentación externa: 

•• El espacio libre se distribuye en espacios pequeños El espacio libre se distribuye en espacios pequeños dificilesdificiles de aprovecharde aprovechar

•• Hay que compactar la informaciónHay que compactar la información

•• Que pasa si el fichero crece o no hay un espacio suficiente?Que pasa si el fichero crece o no hay un espacio suficiente?

CorrespondenciaCorrespondencia de de lógicológico aa físicofísico

R

LA/512

Q

BloqueBloque al al queque se accede  se accede  = = Q+ Q+ direccióndirección de de comienzocomienzoDesplazamientoDesplazamiento en el en el bloquebloque = R= R

03/11/2009

24

CorrespondenciaCorrespondencia enlazadaenlazada II

CadaCada ficherofichero eses unauna listalista de de bloquesbloques....

pointerpointerblock      =block      =

CorrespondenciaCorrespondencia enlazadaenlazada IIII

03/11/2009

25

CorrespondenciaCorrespondencia enlazadaenlazada IIIIII

Simple Simple –– necesitanecesita únicamenteúnicamente la la direccióndirección de de comienzocomienzo

Gestión de Gestión de espacioespacio librelibre -- no no gastagasta espacioespacio

NN l t il t i

LA/512‐1

Q

R

No No acesoaceso aleatorioaleatorio

CorrrespondenciaCorrrespondencia de de lógicológico aa físicofísico

BloqueBloque accedidoaccedido = = el Qel Q‐‐ésimoésimo en la en la listalista enlazadaenlazadaDesplazamientoDesplazamiento en el en el bloquebloque = = R + 1R + 1

CorrespondenciaCorrespondencia enlazadaenlazada III. III. TablaTabla

FileFile‐‐allocation table (FAT) allocation table (FAT) –– en MSen MS‐‐DOS y OS/2DOS y OS/2

03/11/2009

26

CorrespondenciaCorrespondencia indexadaindexada II•• CadaCada archivoarchivo tienetiene sussus bloquesbloques dede índiceíndice queque incluyenincluyen apuntadoresapuntadores aa loslos

bloquesbloques dede discodisco deldel archivoarchivo..–– ElEl ordenorden lógicológico sese consigueconsigue mediantemediante lala insercióninserción dede loslos apuntadoresapuntadores

enen ordenorden creciente,creciente, aa partirpartir deldel primero,primero, enen loslos bloquesbloques dede índicesíndices..enen ordenorden creciente,creciente, aa partirpartir deldel primero,primero, enen loslos bloquesbloques dede índicesíndices..–– VentajaVentaja:: bastabasta concon traertraer aa memoriamemoria elel bloquebloque dede índicesíndices dondedonde estáestá elel

apuntadorapuntador aa loslos datosdatos parapara tenertener accesoacceso alal bloquebloque dede datosdatos.. SiSi ununapuntadorapuntador dede bloquebloque ocupaocupa 44 bytesbytes yy elel bloquebloque eses dede 44 KbytesKbytes,, concon ununúnicoúnico accesoacceso aa discodisco tendremostendremos 10241024 apuntadoresapuntadores aa bloquesbloques deldelarchivoarchivo..

–– ProblemaProblema:: elel espacioespacio extraextra necesarionecesario parapara loslos bloquesbloques dede índicesíndices..

•• EseEse problema,problema, fuefue resueltoresuelto enen UNIXUNIX BSDBSD combinandocombinando unun sistemasistema dede índicesíndicespurospuros concon unun sistemasistema dede índicesíndices multinivel,multinivel, queque eses queque sese usausa actualmenteactualmentepp qq qqenen UNIXUNIX yy LINUXLINUX..–– PermitePermite almacenaralmacenar archivosarchivos pequeñospequeños sinsin necesitarnecesitar bloquesbloques dede índicesíndices..–– PermitePermite accesosaccesos aleatoriosaleatorios aa archivosarchivos muymuy grandesgrandes concon unun máximomáximo dede

33 accesosaccesos aa bloquesbloques dede índicesíndices..

CorrespondenciaCorrespondencia indexadaindexada IIII

TodosTodos los los punterospunteros estánestán en un en un bloquebloque índiceíndice..

Vista localVista local..

index tableindex table

03/11/2009

27

CorrespondenciaCorrespondencia indexadaindexada IIIIII

CorrespondenciaCorrespondencia indexadaindexada VV

NecesitaNecesita unauna tablatabla de de índicesíndices

AAccesocceso aleatorioaleatorio

AA di á idi á i ii f t ióf t ió tt

LA/512

Q

AccesoAcceso dinámicodinámico sin sin fragmentaciónfragmentación externaexterna

CorrespondenciaCorrespondencia lógicalógica a a físicafísica en un en un ficherofichero de de tamañotamaño máximomáximo 256K 256K words words y y tamañotamaño de de bloquebloque de de 512 512 words. words. Se Se necesitanecesita únicamenteúnicamente 1 1 bloquebloque parapara la la tablatabla de de índicesíndices

LA/512

R

Q = Q = desplazamientodesplazamiento en la en la tablatabla de de índicesíndicesR = R = ddesplazamientoesplazamiento en el en el bloquebloque

03/11/2009

28

TablaTabla de de índicesíndices enlazaenlaza

CorrrespondenciaCorrrespondencia de de lógicológico aa físicofísico en un en un ficherofichero de de tamañotamaño ilimitadoilimitado((tamañotamaño del del bloquebloque 512 words).512 words).

EsquemaEsquema enlazadoenlazado –– BloquesBloques enlazadosenlazados en laen la tablatabla dede índicesíndices (no(no

LA/(512*511)

Q1

R1

EsquemaEsquema enlazadoenlazado –– BloquesBloques enlazadosenlazados en la en la tablatabla de de índicesíndices (no (no existeexiste límitelímite en el en el tamañotamaño))

Q2

Q1 = Q1 = bloquebloque de la de la tablatabla de de índicesíndicesR1 = se R1 = se utilizautiliza comocomo siguesigue: : 

R1/512

Q2

R2

Q2 = Q2 = desplazamientodesplazamiento en el en el bloquebloque de la de la tablatabla de de índicesíndicesR2 = R2 = desplazamientodesplazamiento en el en el bloquebloque de de ficherofichero

CorrespondenciaCorrespondencia indexadaindexada en 2 en 2 nivelesniveles

outer‐index

index table file

03/11/2009

29

Q1

CorrespondenciaCorrespondencia indexadaindexada en 2 en 2 nivelesniveles Dos Dos nivelesniveles de de índiceíndice ((tamañotamaño máximomáximo del del ficherofichero 512*512*512 512*512*512

words).words).

LA/(512*512)

R1

Q2

Q1 = Q1 = desplazamientodesplazamiento en el en el índiceíndice externoexternoR1 = se R1 = se utilizautiliza comocomo siguesigue: : 

R1/512

Q2

R2

Q2 = Q2 = desplazamientodesplazamiento en el en el bloquebloque de la de la tablatabla de de índicesíndicesR2 = R2 = desplazamientodesplazamiento en el en el bloquebloque de de ficherofichero

EsquemaEsquema combindocombindo::UNIX UNIX (4K (4K bytes/bytes/bloquebloque))

03/11/2009

30

ManejoManejo de de espacioespacio librelibre II

Para Para ficherosficheros de de tamañotamaño 2KBytes2KBytes

ManejoManejo de de espacioespacio librelibre IIII

•• ListaLista enlazadaenlazada dede bloquesbloques dede discodisco concon ## dede bloquesbloques libreslibres..

•• MMapasapas dede bitsbits oo vectoresvectores dede bitsbits:: unun bitbit porpor recursorecurso existenteexistente (descriptor(descriptor dede•• MMapasapas dede bits,bits, oo vectoresvectores dede bitsbits:: unun bitbit porpor recursorecurso existenteexistente (descriptor(descriptor dedearchivoarchivo,, bloquebloque oo agrupaciónagrupación)).. SiSi elel recursorecurso estáestá librelibre,, elel valorvalor deldel bitbitasociadoasociado alal mismomismo eses 11,, sisi estáestá ocupadoocupado eses 00..–– FácilFácil dede implementarimplementar yy sencillosencillo dede usarusar.. EficienteEficiente sisi elel dispositivodispositivo nono estáestá

muymuy llenolleno oo muymuy fragmentadofragmentado..

•• ListasListas dede recursosrecursos libreslibres:: mantenermantener enlazadosenlazados enen unauna listalista todostodos loslos recursosrecursosdisponiblesdisponibles (bloques(bloques oo descriptoresdescriptores dede archivos)archivos) manteniendomanteniendo unun apuntadorapuntadoralal primerprimer elementoelemento dede lala listalista..alal primerprimer elementoelemento dede lala listalista..–– EsteEste métodométodo nono eses eficiente,eficiente, exceptoexcepto parapara dispositivosdispositivos muymuy llenosllenos yy

fragmentadosfragmentados–– UsoUso dede agrupacionesagrupaciones..

03/11/2009

31

ManejoManejo de de espacioespacio librelibre IIIIII

ManejoManejo de de espacioespacio librelibre IVIVBit map  (Bit map  (nn blocks)blocks)

0 1 2 n‐1

bit[i] =

1 block[i] free

0 block[i] occupied

CálculoCálculo deldel primerprimer bloquebloque librelibre::((númeronúmero dede bits bits porpor palabrapalabra) *) *((númeronúmero dede palabraspalabras concon valorvalor 00) +) +((númeronúmero dede palabraspalabras concon valorvalor 00) +) +desplazamientodesplazamiento hastahasta el primer bit ael primer bit a 11

03/11/2009

32

ManejoManejo de de espacioespacio librelibre VV

ManejoManejo de de espacioespacio librelibre VIVI

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

Bloques libres 7 14 16 1711 18 (A)

Bloques libres 11,1 16,314,17,1 (B)

03/11/2009

33

ManejoManejo de de espacioespacio librelibre VIIVII

Se Se necesitanecesita espacioespacio parapara el el bbit map it map 

NecesitaNecesita mucho mucho espacioespacio. . EjemploEjemplo::

tamañotamaño bloquebloque = 2= 21212 bytesbytes

ManejoManejo de de espacioespacio librelibre VIIIVIII

tamañotamaño bloquebloque = 2= 21212 bytesbytes

tamañotamaño disco  = 2disco  = 23030 bytes (1 gigabyte)bytes (1 gigabyte)

nn = 2= 23030/2/21212 = 2= 21818 bits (or 32K bytes)bits (or 32K bytes)

•• MSMS‐‐DOS: DOS: AgrupacionesAgrupaciones de de bloquesbloques

•• FácilFácil obtenerobtener ficherosficheros continuoscontinuos

ListaLista dede bloquesbloques libreslibres

No No necesitanecesita mucho mucho espacioespacio

No No eses fácilfácil obtenerobtener fincherosfincheros continuoscontinuos

03/11/2009

34

BloquesBloques y y agrupacionesagrupaciones

•• Bloque:  Bloque:  agrupación lógica de sectores de disco y es la unidad agrupación lógica de sectores de disco y es la unidad de transferencia mínima que usa el sistema de archivosde transferencia mínima que usa el sistema de archivos. . –– Optimizar la eficiencia de la entrada/salida de losOptimizar la eficiencia de la entrada/salida de losOptimizar la eficiencia de la entrada/salida de los Optimizar la eficiencia de la entrada/salida de los dispositivos secundarios de almacenamiento. dispositivos secundarios de almacenamiento. 

–– Todos los sistemas operativos proporcionan un tamaño de Todos los sistemas operativos proporcionan un tamaño de bloque por defecto.bloque por defecto.

–– Los usuarios pueden definir el tamaño de bloque a usar Los usuarios pueden definir el tamaño de bloque a usar dentro de un sistema de archivos mediante el mandato dentro de un sistema de archivos mediante el mandato mkfsmkfs. . 

•• Agrupación (Agrupación (clustercluster): ): conjunto de bloques que se gestionan conjunto de bloques que se gestionan como una unidad lógica de gestión del almacenamientocomo una unidad lógica de gestión del almacenamiento. . –– El problema que introducen las agrupaciones, y los bloques El problema que introducen las agrupaciones, y los bloques grandes, es la existencia de fragmentación interna. grandes, es la existencia de fragmentación interna. 

EEtructuratructura de de directoriosdirectorios

ListaLista lineallineal de de nombresnombres con con punterospunteros a los a los bloquesbloques de de datosdatos..

SSi li l dd SSimpleimple de de programarprogramar

Consume Consume tiempotiempo dede ejecuciónejecución

TablaTabla Hash  Hash  –– listalista lineallineal concon búsquedabúsqueda hash.hash.

DecrementaDecrementa el el tiempotiempo de de búsquedabúsqueda dede directoriosdirectorios

CColisionesolisiones –– cuandocuando dos dos nombresnombres dandan el el mismomismoHashHash

TamañoTamaño fijofijo

03/11/2009

35

ImplementaciónImplementación de de directoriosdirectorios

MS DOS/WindowsMS DOS/Windows UNIXUNIXMS_DOS/WindowsMS_DOS/Windows UNIXUNIX

ImplementaciónImplementación de de directoriosdirectorios IIII

•Compactación•Caracteres de relleno

•Administración de heap

03/11/2009

36

Sistemas de archivos y Sistemas de archivos y particiones Iparticiones I

• Previamente a la instalación del sistema de archivos es necesario dividir físicamente, o lógicamente, los discos en particiones o volúmenes.

• Una partición es una porción de un disco a la que se la dota de una identidad propia y que puede ser manipulada por el sistema operativo como una entidad lógica independiente. 

• Una vez creadas las particiones, el sistema operativo debe crear lasestructuras de los sistemas de archivos dentro de esas particiones.

• Para ello se proporcionan mandatos como format o mkfs al usuario.– #mkswap –c /dev/hda2 20800– #mkfs ‐c /dev/hda3 –b 8196 123100

•• Relación Relación sistema de archivossistema de archivos‐‐dispositivo: dispositivo: –– Típico: 1 dispositivo N Típico: 1 dispositivo N ssistemas de archivos (particiones) istemas de archivos (particiones) 

Sistemas de archivos y Sistemas de archivos y particiones IIparticiones II

–– Grandes archivos: N dispositivos 1 Grandes archivos: N dispositivos 1 sistema de archivossistema de archivos

•• Típicamente cada dispositivo se divide en una o más particiones (en cada Típicamente cada dispositivo se divide en una o más particiones (en cada partición partición sistema de archivossistema de archivos) ) 

•• La tabla de particiones indica el principio, el tamaño y el tipo de cada La tabla de particiones indica el principio, el tamaño y el tipo de cada partición. partición. 

•• Descripción de Descripción de ssistemas de archivos: istemas de archivos: –– El sector de arranque en MSEl sector de arranque en MS‐‐DOS DOS –– El superbloque en UNIX El superbloque en UNIX 

•• Volumen: Volumen: conjunto coherente de metainformación y datos.conjunto coherente de metainformación y datos.

03/11/2009

37

Sistemas de archivos y Sistemas de archivos y particiones IIparticiones II

Partición 2

Partición 5Partición 4

Partición 3

Organizaciones típicas de SFOrganizaciones típicas de SF

03/11/2009

38

EjemploEjemplo de de volumenvolumen o o particiónpartición

VerificarVerificar queque lala estructuraestructura lógicalógica deldel sistemasistema dede archivosarchivos eses correctacorrecta::

1.1. EEll contenidocontenido deldel superbloquesuperbloque responderesponde aa laslas característicascaracterísticas deldeli ti t dd hihi

ConsistenciaConsistencia del del sistemasistema de de archivosarchivos II

sistemasistema dede archivosarchivos..

2.2. LLos mapas de bits de nodosos mapas de bits de nodos‐‐i se corresponden con los nodosi se corresponden con los nodos‐‐i i ocupados en el sistema de archivos. ocupados en el sistema de archivos. 

3.3. LLos mapas de bits de bloques se corresponden con los bloques os mapas de bits de bloques se corresponden con los bloques asignados a archivos.asignados a archivos.

4.4. Ningún bloque está asignado a más de un archivo. Ningún bloque está asignado a más de un archivo. 

5.5. UUn mismo nodon mismo nodo‐‐i no está asignado a más de un directorio.i no está asignado a más de un directorio.

En UNIX y LINUX: En UNIX y LINUX: fsckfsck

fsckfsck //devdev//dskdsk/c0t0d3s1/c0t0d3s1

Comprueba el dispositivo físico c0t0d3s1Comprueba el dispositivo físico c0t0d3s1

03/11/2009

39

•• ConsistenciaConsistencia sobresobre archivosarchivos::

ContadorContador dede enlacesenlaces >> contadorcontador realreal

ConsistenciaConsistencia del del sistemasistema de de archivosarchivos IIII

–– ContadorContador dede enlacesenlaces >> contadorcontador realreal

–– ContadorContador dede enlacesenlaces << contadorcontador realreal

–– NúmeroNúmero dede nodonodo‐‐ii >> NúmeroNúmero totaltotal dede nodosnodos‐‐ii

–– ArchivosArchivos concon bitsbits dede protecciónprotección 00070007

–– Archivos con privilegios en directorios de usuarioArchivos con privilegios en directorios de usuario

ConsistenciaConsistencia del del sistemasistema de de archivosarchivos IIIIII

EstadosEstados del del sitemasitema de de archivoarchivoRecuentoRecuento de de bloquesbloques::•• SeSe leenleen todostodos los Ilos I nodosnodos y sey se cuentancuentan loslos bloquesbloques ocupadosocupados

78

•• Se Se leenleen todostodos los Ilos I‐‐nodosnodos y se y se cuentancuentan los los bloquesbloques ocupadosocupados•• Se Se examinaexamina el el mapamapa de bits o la de bits o la listalista librelibre parapara contarcontar bloquesbloques libreslibres•• SE SE cmparancmparan laslas dos dos tablastablas::

(a) (a) ConsistenteConsistente(b) (b) BloquesBloques perdidosperdidos: se : se recuperarecupera ‐‐> se > se agregaagrega a la a la listalista librelibre(c) (c) BloqueBloque duplicadoduplicado en la en la listalista librelibre: se : se reconstruyereconstruye la la listalista librelibre(d) (d) BloqueBloque de de datosdatos duplicadoduplicado: se : se realizarealiza unauna copiacopia del del bloquebloque y se y se aignaaigna a a unouno de los dos de los dos archivosarchivos queque

tienentienen el el bloquebloque duplicadoduplicado ‐‐> se > se informainforma del del ERRORERROR

RecuentoRecuento de Ide I‐‐nodosnodos::•• Se Se inspeccionainspecciona el el árbolárbol de de directoríosdirectoríos y se y se cuentancuentan los  Ilos  I‐‐nodosnodos•• ……

03/11/2009

40

•• TTablaabla dede nodosnodos‐‐ii:: almacenaalmacena enen memoriamemoria lala informacióninformación deldel nodonodo‐‐ii existenteexistente enenelel discodisco yy otraotra queque sese usausa dinámicamentedinámicamente yy sólosólo tienetiene sentidosentido cuandocuando elelarchivoarchivo estáestá abiertoabierto..–– PProblemaroblema:: sisi sólosólo hayhay unun campocampo dede apuntadorapuntador,, cadacada operaciónoperación dede unun

f t íf t í t dt d ll d ád á

Estructuras Estructuras del SF en MP Idel SF en MP I

procesoproceso afectaríaafectaría aa todostodos loslos demásdemás..–– PPosibleosible soluciónsolución:: incluirincluir lala informacióninformación relativarelativa alal archivoarchivo dentrodentro deldel

bloquebloque dede descripcióndescripción deldel procesoproceso (BCP)(BCP)..

•• TTablaabla dede archivosarchivos abiertosabiertos ((tdaatdaa)) porpor unun proceso,proceso, dentrodentro deldel BCP,BCP, concon sussusdescriptoresdescriptores temporalestemporales yy elel valorvalor deldel apuntadorapuntador dede posiciónposición deldel archivoarchivo paraparaeseese procesoproceso..–– ElEl tamañotamaño dede estaesta tablatabla definedefine elel máximomáximo númeronúmero dede archivosarchivos queque cadacada

procesoproceso puedepuede tenertener abiertoabierto dede formaforma simultáneasimultánea..–– ElEl descriptordescriptor dede archivoarchivo fdfd indicaindica elel lugarlugar dede tablatabla.. LaLa tdaatdaa sese rellenarellena dede

formaforma ordenadaordenada,, dede formaforma queque siempresiempre sese ocupaocupa lala primeraprimera posiciónposición librelibredede lala tablatabla..

–– EnEn loslos sistemassistemas UNIXUNIX cadacada procesoproceso tienetiene trestres descriptoresdescriptores dede archivosarchivosabiertosabiertos porpor defectodefecto:: entradaentrada estándar,estándar, fdfd == 00,, salidasalida estándar,estándar, fdfd == 11,, errorerrorestándar,estándar, fdfd == 22..

•• TTablaabla intermediaintermedia nodonodo‐‐ii‐‐posiciónposición:: entreentre lala tablatabla dede archivosarchivos abiertosabiertos deldel BCPBCPyy lala tablatabla dede nodosnodos‐‐II.. DichaDicha tablatabla incluyeincluye,, entreentre otrasotras cosascosas::

Estructuras Estructuras del SF en MP III del SF en MP III

–– LaLa entradaentrada deldel nodonodo‐‐ii deldel archivoarchivo abiertoabierto enen lala tablatabla dede nodosnodos‐‐ii..

–– ElEl apuntadorapuntador dede posiciónposición correspondientecorrespondiente alal proceso,proceso, oo procesos,procesos, quequeusanusan elel archivoarchivo durantedurante esaesa sesiónsesión..

–– ElEl modomodo dede aperturaapertura deldel archivoarchivo

03/11/2009

41

Tabla de archivos abiertos. P1

230

Tabla de archivos abiertos. P3

23000

Tabla de archivos abiertos. P2

2300

Estructuras Estructuras del SF en MP IV del SF en MP IV

234563563678

01234

fd 2300534465326

01234

fd230563983247

01234

fd

Tabla intermedia de nodos-i y posiciones

Tabla de nodos-i

98 456234898

Nodo-i Posición

98

FicherosFicheros DirectoriosDirectorios

SISTEMA DE FICHEROSSISTEMA DE FICHEROS

ImplementaciónImplementación del del sistemasistema de de ficherosficheros EjemplosEjemplos de de sistemasistema de de ficherosficheros El El servidorservidor de de archivoarchivo AumentoAumento de de prestacionesprestaciones ServiciosServicios del del sistemasistema de de ficherosficheros

03/11/2009

42

BootDos  copias Directorio Datos y

MS‐DOS

Ejemplo de sistemas Ejemplo de sistemas de archivos de archivos

Bootp

de la FAT Raízy

Directorios

Boot nodos‐iSuperBloque

Mapasde bits

Datos yDirectorios

UNIX

BootDescriptores físicosde archivos

SuperBloque

Mapasde bits

Datos yDirectorios

Windows‐NT

CPMCPM

FormatosFormatos de de entradaentrada de de directoriodirectorio

MSMS‐‐DOSDOS

BytesMSMS‐‐DOS DOS extendidaextendida::MFTMFTWindows 98Windows 98

03/11/2009

43

f

Directorio RaízNombre Atrib KB Agrup

FAT

El El sistemasistema de de ficherosficheros de MSde MS--DOS IDOS I

• Información en el directorio– 32 bytes por entrada– Nombre + Extensión ( 8.3 )– Primer bloque de datos– Atributos ( Subdirectory, System, Hidden, Read‐only, ... )– Tamaño

• En grafo

<eof>

<eof>

<eof>

pep_dir dir 5 27

fiche1.txt 12 45

Nombre Atrib. KB Agrup.

Directorio pep_dir

carta1.wp R 24 74

prue.zip 16 91 75

51

74

45

58

27

7576

58

Nombre Atrib. KB Agrup.

• En grafo– No hay hard links– Pueden haber soft links

• FAT de:– 12 bits 4K agrupaciones – 16 bits 64K agrupaciones 

<eof>76

91 92

El El sistemasistema de de ficherosficheros de MSde MS--DOS IIDOS II

86

•• ParticionesParticiones máximasmáximas parapara diferentesdiferentes tamañostamaños de de bloquebloque

03/11/2009

44

Bytes

El El sistemasistema de de ficherosficheros Windows Windows 98 98

ChecksumUnaUna entradaentrada parapara (parte de) un(parte de) un nombrenombre de de ficherofichero largo en largo en Windows 98Windows 98

63

EjemploEjemplo de de archivoarchivo con con nombrenombre largo en Windows 98largo en Windows 98

SistemaSistema de de ficherosficheros UNIX UNIX V7 I V7 I

•Superbloque•Formato del SF ( tamaño de bloqueFormato del SF ( tamaño de bloque, #inodos, #bloques de datos,... )•Lista de bloques libres•Lista de inodos libres

•Asignación indexada•Almacenada en los inodos

•En grafo•hard links y soft links

88

EntradaEntrada de de directoriodirectorio UNIX V7 UNIX V7 

03/11/2009

45

SistemaSistema de de ficherosficheros UNIX UNIX V7 II V7 II Inodo

•tamaño•tipo ( directory, file, link, pipe, dispositivo de caracteres, dispositivo de bloques)•protecciones•tiempos de acceso, modificación, creación•#links

•Indices a los bloques de datos •10 indices directos•1 indice indirecto •1 indice indirecto doble •1 indice triple indirecto 

89Un Un ii‐‐nodonodo UNIXUNIX

Tamaño máximo del archivo: 10Sb+(Sb/4)Sb +(Sb/4)2Sb +(Sb/4)3Sb

Sb el tamaño del bloque y direcciones de bloques de 4 bytes. 

SistemaSistema de de ficherosficheros UNIX UNIX V7 IIIV7 III

PasosPasos parapara accederacceder a a //usrusr//astast//mboxmbox

03/11/2009

46

FicherosFicheros

SISTEMA DE FICHEROSSISTEMA DE FICHEROS

FicherosFicheros DirectoriosDirectorios ImplementaciónImplementación del del sistemasistema de de ficherosficheros EjemplosEjemplos de de sistemasistema de de ficherosficheros El El servidorservidor de de archivoarchivoA tA t dd t it i AumentoAumento de de prestacionesprestaciones ServiciosServicios del del sistemasistema de de ficherosficheros

•• Para proporcionar un acceso eficiente y sencillo a los Para proporcionar un acceso eficiente y sencillo a los dispositivos de almacenamiento, todos los sistemas dispositivos de almacenamiento, todos los sistemas operativos tienen un servidor de archivos que permite operativos tienen un servidor de archivos que permite almacenar buscar y leer datos fácilmentealmacenar buscar y leer datos fácilmente

ServidorServidor de de archivosarchivos

almacenar, buscar y leer datos fácilmente.almacenar, buscar y leer datos fácilmente.

•• DichoDicho servidorservidor dede archivosarchivos tienetiene dosdos tipostipos dede problemasproblemas dedediseñodiseño muymuy distintosdistintos entreentre sísí::

–– DefinirDefinir lala visiónvisión dede usuariousuario deldel sistemasistema dede ficherosficheros,,incluyendoincluyendo serviciosservicios dede archivosarchivos,, directoriosdirectorios,, sistemassistemas dedearchivosarchivos,, etcetc..

–– DefinirDefinir loslos algoritmosalgoritmos yy estructurasestructuras dede datosdatos aa utilizarutilizarparapara hacerhacer correspondercorresponder lala visiónvisión deldel usuariousuario concon elelsistemasistema físicofísico dede almacenamientoalmacenamiento secundariosecundario..

03/11/2009

47

Proceso deUsuario 1

Proceso deUsuario 2

Proceso deUsuario 3

Proceso deUsuario n

. . .Nivel deusuario

Nivel de

Estructura del servidor de Estructura del servidor de archivosarchivos

sistema

Servidor de Bloques

Módulo de Organización de Archivos

Cache de Bloques

ext2 msdos ffs . . . proc

Sistema de Archivos Virtual

Manejadores de Dispositivo

. . .

SistemaSistema de de ficherosficheros virtualvirtual

•• Un Un sistemasistema de de ficherosficheros virtual (VFS) virtual (VFS) proporcionaproporciona unauna implementaciónimplementaciónorientadaorientada a a objetosobjetos del del sistemasistema de de ficherosficheros..

•• VFS VFS permitepermite queque el el mismomismo interface de interface de llamadasllamadas al al sistemasistema (API) se (API) se utilize en utilize en distintosdistintos tipostipos de de sistemassistemas de de ficherosficheros

•• El API El API eses parapara el  interface VFS, mucho el  interface VFS, mucho másmás queque cualquiercualquier tipotipo específicoespecíficode SFde SF

•• Nodo virtual: estructura de información que incluye las características Nodo virtual: estructura de información que incluye las características mínimas comunes a todos los sistemas de archivos subyacentes.mínimas comunes a todos los sistemas de archivos subyacentes.

03/11/2009

48

EsquemaEsquema de de ssistemaistema de de ficherosficheros virtualvirtual

EsquemaEsquema de de sistemasistema de de ficherosficheros virtual IIvirtual II

03/11/2009

49

nodo-v

Información del archivo

virtual

Estructura de un nodo virtual de Estructura de un nodo virtual de UNIXUNIX

Direcciones delas operaciones

virtuales

Direcciones de

Dirección delnodo-i

específico

virtual

nodo-i

Direcciones delas operaciones

específicas de SA

Tabla de funciones

del SA

NivelesNiveles del del sistemasistema de de archivoarchivo

Sistema de ficheros virtualSistema de ficheros virtual

Módulo de Módulo de organización organización de ficherosde ficheros

Gestión de bloquesGestión de bloquesGestión de bloquesGestión de bloques

Manejador de dispositivoManejador de dispositivo

03/11/2009

50

•• PProporcionaroporciona elel modelomodelo dede archivoarchivo deldel sistemasistema operativooperativo yy loslos serviciosservicios dedearchivosarchivos..

Módulo de organización de Módulo de organización de archivosarchivos

•• RRelacionaelaciona lala imagenimagen lógicalógica deldel archivoarchivo concon susu imagenimagen físicafísica,, proporcionandoproporcionandoalgoritmosalgoritmos parapara trasladartrasladar direccionesdirecciones lógicaslógicas dede bloquesbloques aa sussuscorrespondientescorrespondientes direccionesdirecciones físicasfísicas..

•• GGestionaestiona elel espacioespacio dede loslos sistemassistemas dede archivosarchivos,, lala asignaciónasignación dede bloquesbloques aaarchivosarchivos yy elel manejomanejo dede loslos descriptoresdescriptores dede archivoarchivo ((nodosnodos‐‐ii dede UNIXUNIX ooregistrosregistros dede WindowsWindows NT)NT)..

•• UUnn módulomódulo dede esteeste estiloestilo porpor cadacada tipotipo dede archivoarchivo soportadosoportado (UNIX,(UNIX, AFS,AFS,WindowsWindows NT,NT, MSMS‐‐DOS,DOS, EFS,EFS, MINIX,MINIX, etcetc..))..WindowsWindows NT,NT, MSMS DOS,DOS, EFS,EFS, MINIX,MINIX, etcetc..))..

•• LasLas llamadasllamadas dede gestióngestión dede archivosarchivos yy dede directoriosdirectorios particularesparticulares dede cadacadasistemasistema dede archivosarchivos sese resuelvenresuelven enen elel módulomódulo dede organizaciónorganización dede archivosarchivos..ParaPara elloello,, sese usausa lala informacióninformación existenteexistente enen elel nodonodo‐‐ii deldel archivoarchivo afectadoafectadoporpor laslas operacionesoperaciones..

•• SeSe encargaencarga dede emitiremitir loslos mandatosmandatos genéricosgenéricos parapara leerleer yy escribirescribir bloquesbloquesaa loslos manejadoresmanejadores dede dispositivodispositivo..

LL E/SE/S dd blbl dd hihi iblibl ti i iti i i llll

ServidorServidor de de bloquesbloques

•• LaLa E/SE/S dede bloquesbloques dede archivo,archivo, yy sussus posiblesposibles optimizaciones,optimizaciones, sese llevalleva aacabocabo enen esteeste nivelnivel deldel servidorservidor dede archivosarchivos..

•• LasLas operacionesoperaciones sese traducentraducen aa llamadasllamadas dede loslos manejadoresmanejadores dede cadacada tipotipodede dispositivodispositivo específicoespecífico yy sese pasanpasan alal nivelnivel inferiorinferior deldel sistemasistema dedearchivosarchivos..

•• EstaEsta capacapa ocultaoculta loslos distintosdistintos tipostipos dede dispositivos,dispositivos, usandousando nombresnombresEstaEsta capacapa ocultaoculta loslos distintosdistintos tipostipos dede dispositivos,dispositivos, usandousando nombresnombreslógicoslógicos parapara loslos mismosmismos.. PorPor ejemplo,ejemplo, //devdev/hda/hda33 seráserá unun dispositivodispositivodede tipotipo hardhard diskdisk ((hdhd),), cuyocuyo nombrenombre principalprincipal eses aa yy enen elel cualcual sese trabajatrabajasobresobre susu particiónpartición 33..

•• LosLos mecanismosmecanismos dede optimizaciónoptimización dede lala E/S,E/S, comocomo lala cachecache dede bloques,bloques, seseincluyeincluye enen esteeste nivelnivel..

03/11/2009

51

•• ArchivosArchivos concon estructuraestructura dede bytesbytes–– EscrituraEscritura leerleer

Descomposición en operaciones de Descomposición en operaciones de bloquesbloques

Fichero (tira de bytes)Fichero (tira de bytes)

Bloques

•• UUnn manejadormanejador porpor cadacada dispositivodispositivo,, oo claseclase dede dispositivodispositivo,, deldel sistemasistema..

•• SuSu funciónfunción principalprincipal eses recibirrecibir ordenesordenes dede E/SE/S dede altoalto nivelnivel,, taltal comocomomove to blockmove to block 234234 yy traducirlastraducirlas alal formatoformato queque entiendeentiende elel

ManejadoresManejadores de de dispositivosdispositivos

move_to_blockmove_to_block 234234,, yy traducirlastraducirlas alal formatoformato queque entiendeentiende elelcontroladorcontrolador deldel dispositivodispositivo,, queque eses dependientedependiente dede susu hardwarehardware..

•• HabitualmenteHabitualmente,, cadacada dispositivodispositivo tienetiene unauna colacola dede peticionespeticiones pendientespendientes,,dede formaforma queque unun manejadormanejador puedepuede atenderatender simultáneamentesimultáneamente aa variosvariosdispositivosdispositivos deldel mismomismo tipotipo..

•• UUnana dede laslas principalesprincipales funcionesfunciones dede loslos manejadoresmanejadores dede dispositivosdispositivos esesrecibirrecibir laslas peticionespeticiones dede entrada/salidaentrada/salida yy colocarlascolocarlas enen elel lugarlugar adecuadoadecuadodede lala colacola dede peticionespeticiones deldel dispositivodispositivo afectadoafectado..

–– LaLa políticapolítica dede insercióninserción enen cadacada colacola puedepuede serser diferentediferente,,dependiendodependiendo deldel tipotipo dede dispositivodispositivo oo dede lala prioridadprioridad dede loslosdispositivosdispositivos.. ParaPara unun disco,disco, porpor ejemploejemplo,, sese suelesuele usarusar lala políticapolíticaCSCANCSCAN..

03/11/2009

52

Usuario

read (fd, buffer, tamaño)

tamaño

buffer

Flujo de datos en el S. de AFlujo de datos en el S. de A..

bloques del archivo

bloques del dispositivo

archivo lógico(VFS)

archivo lógico(FFS)

Bloques lógicos(Servidor

de bloques)

3

1340 1756 840 8322

4 5 6

bloques del discoManejador de

disco ydispositivo

1340 1756

840

8322

FicherosFicheros DirectoriosDirectorios

SISTEMA DE FICHEROSSISTEMA DE FICHEROS

ImplementaciónImplementación del del sistemasistema de de ficherosficheros EjemplosEjemplos de de sistemasistema de de ficherosficheros El El servidorservidor de de archivoarchivo AumentoAumento de de prestacionesprestaciones SistemasSistemas de de almacenamientoalmacenamiento masivomasivo

03/11/2009

53

EficienciaEficiencia y y pperformanceerformance

•• EficiencienciaEficienciencia dependedepende de:de:

–– UbicaciónUbicación en disco y en disco y algoritmosalgoritmos de de directoriosdirectoriosyy gg

–– TipoTipo de de datosdatos en en laslas entradasentradas de de ficherofichero de los de los directoriosdirectorios

•• Performance Performance dependedepende de:de:

–– MejorasMejoras de performance de performance comocomo discos discos virtualesvirtuales y discos RAMy discos RAM

–– CachéCaché de disco  de disco  –– secciónsección separasepara de de memoriamemoria principal principal parapara bloquesbloquesusadosusados frecuentementefrecuentemente

LasLas técnicastécnicas freefree behindbehind yy readread aheadahead parapara optimizaroptimizar elel accesoacceso–– Las Las técnicastécnicas freefree‐‐behind behind yy readread‐‐ahead ahead –– parapara optimizaroptimizar el el accesoaccesosecuencialsecuencial

•• BBasadosasados enen elel usouso dede almacenamientoalmacenamiento intermediointermedio dede datosdatos dedeentrada/salidaentrada/salida enen memoriamemoria principalprincipal.. EstosEstos mecanismosmecanismos sonson dede dosdos tipostipos::

–– DiscosDiscos RAMRAM,, cuyoscuyos datosdatos estánestán almacenadosalmacenados sólosólo enen memoriamemoria..

IncrementoIncremento de de prestacionesprestaciones. Performance. Performance

•• AAceptanceptan todastodas laslas operacionesoperaciones dede cualquiercualquier otrootro sistemasistema dedearchivosarchivos yy sonson gestionadosgestionados porpor elel usuariousuario..

•• PPseudodispositivosseudodispositivos parapara almacenamientoalmacenamiento temporaltemporal oo paraparaoperacionesoperaciones auxiliaresauxiliares deldel sistemasistema operativooperativo.. SuSu contenidocontenido esesvolátilvolátil..

–– CacheCache dede discodisco,, almacenaalmacena datosdatos enen MPMP parapara optimizaroptimizar accesosaccesosposterioresposteriores..

•• SSee basabasann enen lala existenciaexistencia dede proximidadproximidad espacialespacial yy temporaltemporal enen laslasreferenciasreferencias aa loslos datosdatos dede entrada/salidaentrada/salida..

•• DDosos cachescaches importantesimportantes dentrodentro deldel servidorservidor dede archivosarchivos:: cachecache dedenombresnombres yy cachecache dede bloquesbloques..

03/11/2009

54

•• AccesoAcceso aa discodisco muchomucho másmás lentolento queque elel accesoacceso aa memoriamemoria

•• FundamentoFundamento::

Cache de Cache de bloquesbloques II

Proceso PFundamentoFundamento::–– ProximidadProximidad espacialespacial–– ProximidadProximidad temporaltemporal–– DosDos clasesclases dede flujosflujos dede E/SE/S::

•• UsanUsan unauna solasola vezvez cadacada bloquebloque•• UsanUsan repetidamenterepetidamente loslos bloquesbloques

E t tE t t dd d td t ii ll blbl áá f t tf t t

Disco

Proceso

Disco

Cache

Proceso

Cache

•• EstructuraEstructura dede datosdatos enen memoriamemoria concon loslos bloquesbloques másmás frecuentementefrecuentementeutilizadosutilizados–– LecturasLecturas adelantadasadelantadas–– LimpiezaLimpieza dede lala cachecache (sync)(sync)

•• Problema: fiabilidad del sistema de archivos. Problema: fiabilidad del sistema de archivos. 

Cache de Cache de bloquesbloques IIII

108

EstructuraEstructura de la cache de de la cache de bloquesbloques

03/11/2009

55

Cache de Cache de páginaspáginasCCache de ache de páginaspáginas: : escondeesconde páginaspáginas en en vezvez de de bloquesbloques de disco de disco utilizandoutilizando

técnicastécnicas de de memoriamemoria virtualvirtual

–– En la E/S En la E/S mapeadamapeada en en memoriamemoria se se utilizautiliza la cache de la cache de páginapágina

–– Las Las rutinasrutinas de E/S de E/S utilizanutilizan el buffer cache de disco el buffer cache de disco 

Usuario

read (fd, buffer, tamaño)

tamaño

buffer

hi ló i

Flujo Flujo datos con datos con buffer cachebuffer cache

bloques del archivo

bloques del dispositivo

archivo lógico(VFS)

archivo lógico(FFS)

Bloques lógicos(Servidor

de bloques)

Cache de bloques

3

1340 1756 840 8322

4 5 6

bloques del discoManejador de

disco ydispositivo

q(Servidor

de bloques)1340 1756

1756

840 8322

8322

03/11/2009

56

•• AlgoritmoAlgoritmo::

–– CComprobaromprobar sisi elel bloquebloque aa leerleer estáestá enen lala cachecache..

•• EnEn casocaso dede queque nono estéesté,, sese leelee deldel dispositivodispositivo yy sese copiacopia aa lala cachecache..

•• SiSi lala cachecache estáestá llenallena,, eses necesarionecesario hacerhacer huecohueco parapara elel nuevonuevobloquebloque reemplazandoreemplazando unouno dede loslos existentesexistentes:: políticaspolíticas dede

PolíticasPolíticas de de reemplazoreemplazo

qq pp ppreemplazoreemplazo..

•• SiSi elel bloquebloque haha sidosido escritoescrito (sucio)(sucio):: políticapolítica dede escrituraescritura..

•• PolíticasPolíticas dede reemplazoreemplazo:: FIFOFIFO ((FirstFirst inin FirstFirst OutOut),), segundasegunda oportunidadoportunidad,,MRUMRU ((MostMost RecentlyRecently UsedUsed),), LRULRU ((LeastLeast RecentlyRecently UsedUsed),), etcetc..

–– LaLa políticapolítica dede reemplazoreemplazo másmás frecuentementefrecuentemente usadausada eses lala LRULRU.. EstaEstapolíticapolítica reemplazareemplaza elel bloquebloque queque llevalleva másmás tiempotiempo sinsin serser usadousado,,asumiendoasumiendo queque nono seráserá referenciadoreferenciado próximamentepróximamenteasumiendoasumiendo queque nono seráserá referenciadoreferenciado próximamentepróximamente..

–– LosLos bloquesbloques másmás usadosusados tiendentienden aa estarestar siempresiempre enen lala cachecache y,y, porportantotanto,, nono vanvan alal discodisco.. LaLa utilizaciónutilización estrictaestricta dede estaesta políticapolítica puedepuedecrearcrear problemasproblemas dede fiabilidadfiabilidad enen elel sistemasistema dede archivosarchivos sisi elelcomputadorcomputador fallafalla..

–– LLaa mayoríamayoría dede loslos servidoresservidores dede archivosarchivos distinguendistinguen entreentre bloquesbloquesespecialesespeciales yy bloquesbloques dede datosdatos..

•• EEscriturascritura inmediatainmediata ((writewrite‐‐throughthrough)):: sese escribeescribe cadacada vezvez queque sese modificamodifica elelbloquebloque..

–– NNoo hayhay problemaproblema dede fiabilidadfiabilidad,, peropero sese reducereduce elel rendimientorendimiento deldelsistemasistema..

PolíticasPolíticas de de escrituraescritura

•• EEscriturascritura diferidadiferida ((writewrite‐‐backback)):: sólosólo sese escribenescriben loslos datosdatos aa discodisco cuandocuandosese eligeneligen parapara susu reemplazoreemplazo porpor faltafalta dede espacioespacio enen lala cachecache..

–– OpOptimizatimiza elel rendimientorendimiento,, peropero generagenera loslos problemasproblemas dede fiabilidadfiabilidadanteriormenteanteriormente descritosdescritos..

•• EscrituraEscritura retrasadaretrasada ((delayeddelayed‐‐writewrite),), queque consisteconsiste enen escribirescribir aa discodisco loslosbloquesbloques dede datosdatos modificadosmodificados enen lala cachecache dede formaforma periódicaperiódica cadacada ciertociertotiempotiempo ((3030 segundossegundos enen UNIX)UNIX)..

–– CompromisoCompromiso entreentre rendimientorendimiento yy fiabilidadfiabilidad–– CompromisoCompromiso entreentre rendimientorendimiento yy fiabilidadfiabilidad..

–– ReduceReduce lala extensiónextensión dede loslos posiblesposibles dañosdaños porpor pérdidapérdida dede datosdatos..

–– LosLos bloquesbloques especialesespeciales sese escribenescriben inmediatamenteinmediatamente alal discodisco..

–– NoNo sese puedepuede quitarquitar unun discodisco deldel sistemasistema sinsin antesantes volcarvolcar loslos datosdatos dede lalacachecache..

•• EscrituraEscritura alal cierrecierre ((writewrite‐‐onon‐‐closeclose)):: cuandocuando sese cierracierra unun archivo,archivo, sese vuelcanvuelcanalal discodisco loslos bloquesbloques deldel mismomismo queque tienentienen datosdatos actualizadosactualizados..

03/11/2009

57

•• Las CPUs Las CPUs cadacada vezvez eses másmás rápidarápida y la y la memoriamemoria másmás grandegrande–– La cache de disco La cache de disco puedepuede ser ser másmás grandegrande–– AumentaAumenta el el númeronúmero de de peticionespeticiones de de lecturalectura queque puedenpueden venirvenir de la de la 

cachecachePorPor lolo queque lala mayoríamayoría de losde los accesosaccesos a discoa disco seránserán escrituraescritura

LFS: LFS: SistemasSistemas de de archivosarchivos LogLog--StructuredStructured

–– PorPor lo lo queque, la , la mayoríamayoría de los de los accesosaccesos a disco a disco seránserán escrituraescritura

•• Los Los sistemassistemas de de ficherofichero Log structured (LFS o journaling) Log structured (LFS o journaling) grabangraban cadacadaactualizaciónactualización comocomo unauna transaccióntransacción..

•• TodasTodas laslas transactionestransactiones se se escribenescriben en el logen el log–– UnaUna transacióntransación se se consideraconsidera committed committed cuandocuando se ha se ha escritoescrito en el en el 

log,log, aunqueaunque el SF no se el SF no se hayahaya actualizadoactualizado todavíatodavía

•• Las Las transactionestransactiones del log se del log se escribenescriben de forma de forma asíncronaasíncrona en el SFen el SF–– Cuando el Cuando el ficherofichero se se modificamodifica, la , la transaccióntransacción se se borraborra del logdel log

•• Si el SF Si el SF fallafalla, el , el restoresto de de transaccionestransacciones en el log en el log quedanquedan pendientespendientes

FicherosFicheros

SISTEMA DE FICHEROSSISTEMA DE FICHEROS

DirectoriosDirectorios ImplementaciónImplementación del del sistemasistema de de ficherosficheros EjemplosEjemplos de de sistemasistema de de ficherosficheros El El servidorservidor de de archivoarchivo AumentoAumento de de prestacionesprestacionespp Servicios del sistema de ficheroServicios del sistema de fichero

03/11/2009

58

Operaciones genéricas sobre archivosOperaciones genéricas sobre archivos

•• creatcreat:: crea un archivo con un nombre y protección y devuelve un crea un archivo con un nombre y protección y devuelve un descriptordescriptor

•• deletedelete:: borra el archivo con un nombreborra el archivo con un nombre

•• open:open: abre un archivo con nombre para una(s) operación(es) y devuelve abre un archivo con nombre para una(s) operación(es) y devuelve un descriptorun descriptor

•• closeclose:: cierra un archivo abierto con un descriptorcierra un archivo abierto con un descriptor

•• readread:: lee datos de un archivo abierto, usando su descriptor, a un almacén lee datos de un archivo abierto, usando su descriptor, a un almacén en memoria en memoria 

•• writewrite:: escribe datos a un archivo abierto, usando su descriptor, desde un escribe datos a un archivo abierto, usando su descriptor, desde un , p ,, p ,almacén en memoria almacén en memoria 

•• lseeklseek::mueve el apuntador a mueve el apuntador a relativo_arelativo_a+ desplazamiento+ desplazamiento

•• ioctlioctl:: permite manipular los atributos de un archivopermite manipular los atributos de un archivo

Servicios POSIX para archivosServicios POSIX para archivos•• Visión lógica: tira secuencial de bytesVisión lógica: tira secuencial de bytes

•• Apuntador de posición a partir del cual se efectúan las operacionesApuntador de posición a partir del cual se efectúan las operaciones

•• Descriptores de archivos: enteros de 0 a 64K Predefinidos:Descriptores de archivos: enteros de 0 a 64K Predefinidos:•• Descriptores de archivos: enteros de 0 a 64K. Predefinidos:Descriptores de archivos: enteros de 0 a 64K. Predefinidos:–– 00: entrada estándar: entrada estándar–– 11: salida estándar: salida estándar–– 22: salida de error: salida de error

•• ForkFork: duplicación de BCP, pero compartición de tabla de archivos: duplicación de BCP, pero compartición de tabla de archivos

•• Servicios consulta y modificación atributosServicios consulta y modificación atributos

•• Protección:Protección:–– dueñodueño grupogrupo mundomundo–– rwxrwx rwxrwx rwxrwx

•• Ejemplos: Ejemplos: 755755 indica indica rwxrrwxr--xrxr--xx

• Ejemplo de programación en el libro (Programa 8.1)

03/11/2009

59

ArchivosArchivos, , directoriosdirectorios y y serviciosservicios en en POSIX (UNIX) POSIX (UNIX) 

•• Tipos de archivo: Tipos de archivo: 

–– NormalesNormalesNormales Normales 

–– Directorios Directorios 

–– Especiales Especiales 

•• Nombres de archivo y directorio: Nombres de archivo y directorio: 

–– Nombre completo (empieza por Nombre completo (empieza por //) ) 

•• /usr/include/stdio.h/usr/include/stdio.h

–– Nombre relativo al directorio actual (no empieza por Nombre relativo al directorio actual (no empieza por //) ) 

•• stdio.hstdio.h, , /usr/include/usr/include es el directorio actual. es el directorio actual. 

–– La entradas La entradas .. y y .... pueden utilizarse para formar rutas de acceso pueden utilizarse para formar rutas de acceso 

•• ../include/stdio.h../include/stdio.h

stat.stat.Obtiene información sobre un archivo Obtiene información sobre un archivo 

•• ServicioServicio::

#include#include <sys/types<sys/types..h>h>

#include#include <sys/stat<sys/stat h>h>#include#include <sys/stat<sys/stat..h>h>

intint stat(charstat(char *name,*name, structstruct statstat *buf)*buf);;

intint fstat(intfstat(int fd,fd, structstruct statstat *buf)*buf);;

•• ArgumentosArgumentos::

•• namename nombrenombre deldel archivoarchivo

•• fdfd descriptordescriptor dede archivoarchivopp

•• bufbuf punteropuntero aa unun objetoobjeto dede tipotipo structstruct statstat dondedonde sesealmacenaráalmacenará lala informacióninformación deldel archivoarchivo..

•• DevuelveDevuelve::

–– CeroCero óó ‐‐11 sisi errorerror

03/11/2009

60

•• DescripciónDescripción::

–– ObtieneObtiene informacióninformación sobresobre unun archivoarchivo yy lala almacenaalmacena enen unauna estructuraestructuradd titi t tt t t tt t

stat.stat.Obtiene información sobre un archivo Obtiene información sobre un archivo 

dede tipotipo structstruct statstat::

structstruct statstat {{mode_tmode_t st_modest_mode;; /*/* modomodo deldel archivoarchivo */*/ino_tino_t st_inost_ino;; /*/* númeronúmero deldel archivoarchivo */*/dev_tdev_t st_devst_dev;; /*/* dispositivodispositivo */*/nlink_tnlink_t st_nlinkst_nlink;; /*/* númeronúmero dede enlacesenlaces */*/uid tuid t st uidst uid;; /*/* UIDUID deldel propietariopropietario */*/uid_tuid_t st_uidst_uid;; // UIDUID deldel propietariopropietario //gid_tgid_t st_gidst_gid;; /*/* GIDGID deldel propietariopropietario */*/off_toff_t st_sizest_size;; /*/* númeronúmero dede bytesbytes */*/time_ttime_t st_atimest_atime;; /*/* últimoúltimo accesoacceso */*/time_ttime_t st_mtimest_mtime;; /*/* últimaúltima modificacionmodificacion */*/time_ttime_t st_ctimest_ctime;; /*/* últimoúltimo modificacionmodificacion dede datosdatos */*/

}};;

Servicios POSIX para directoriosServicios POSIX para directorios

•• Visión lógica: tabla de entradas nombre lógico, nodoVisión lógica: tabla de entradas nombre lógico, nodo‐‐ii

C d d i l i iC d d i l i i•• Cada entrada tiene la siguiente estructura:Cada entrada tiene la siguiente estructura:

StructStruct direntdirent {{charchar **d_named_name; ; /* nombre archivo *//* nombre archivo */......

}}

G tió li d l b d hi ti l it dG tió li d l b d hi ti l it d•• Gestión complicada porque los nombres de archivo tienen longitud Gestión complicada porque los nombres de archivo tienen longitud variable. variable. 

•• Servicios POSIX: gestión de directorios y de la tablaServicios POSIX: gestión de directorios y de la tabla

• Ejemplos de programación en el libro (Programas 8.4 y 8.5)

03/11/2009

61

Servicios UNIX para ficheros y directoriosServicios UNIX para ficheros y directorios

Ficheros:Ficheros:

stdinstdin(), (), stdoutstdout(), (), stderrstderr(), (), creatcreat(), (), fstatfstat(), (), fcntfcnt(), (), flockflock(), link(), pipe(), (), link(), pipe(), mkfifomkfifo()() renamerename()() truncatetruncate()() dupdup()() aio readaio read()() aio writeaio write()()mkfifomkfifo(), (), renamerename(), (), truncatetruncate(), (), dupdup(), (), aio_readaio_read(), (), aio_writeaio_write(), (), aio_suspendaio_suspend(), (), aio_cancelaio_cancel()()

Directorios: Directorios: 

mkdirmkdir(), (), rmdirrmdir(), (), opendiropendir(), (), closeclose(), (), closedirclosedir(), (), readdirreaddir(), (), chdirchdir(), link(), (), link(), symlinksymlink(), (), rewinddirrewinddir(), (), getcwdgetcwd(), (),