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
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(), (),
Top Related