mg. samuel oporto díaz sistema de archivos sistemas operativos

Post on 01-Jan-2015

21 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Mg. Samuel Oporto Díaz

Sistema de Archivos

SISTEMAS OPERATIVOS

22 /53/53

Gestión de archivos y directorios• Objetivos:

– Que el alumno entienda los conceptos de fichero y directorio

– Mostrar los métodos de acceso y los mecanismos de protección

– Estudiar las semánticas de compartición– Que el alumno comprenda la estructura del sistema de

ficheros– Presentar las llamadas al sistema y ejemplos de

programación en LINUX y Windows– Presentar distintas técnicas de gestión de archivos y

directorios a nivel de diseño.

33 /53/53

Contenido• Visión del usuario del sistema de archivos• Archivos• Directorios• Servicios de archivos• Servicios de directorios• Sistemas de archivos• El servidor de archivos• Puntos a recordar

44 /53/53

Visión del usuario• Visión lógica:

– Archivos – Directorios – Sistemas de archivos y particiones

• Visión física: – Bloques o bytes ubicados en dispositivos

Visiónlóg ica

Visiónfísica

55 /53/53

Función principal• El SF establece una correspondencia entre los archivos y

los dispositivos lógicos.

SISTEM AD E

FIC H ER O S

ProtecciónInte

rfa

z de

acc

eso

66 /53/53

Características para el usuario• Almacenamiento permanentes de información. No

desaparecen aunque se apague el computador.• Conjunto de información estructurada de forma lógica

según criterios de aplicación.• Nombres lógicos y estructurados.• No están ligados al ciclo de vida de una aplicación

particular.• Abstraen los dispositivos de almacenamiento físico.• Se acceden a través de llamadas al sistema operativo o

de bibliotecas de utilidades.

77 /53/53

Sistema de archivos• El acceso a los dispositivos es:

– Incómodo • Detalles físicos de los dispositivos • Dependiente de las direcciones físicas

– No seguro • Si el usuario accede a nivel físico no tiene restricciones

• El sistema de archivos es la capa de software entre dispositivos y usuarios.

• Objetivos: – Suministrar una visión lógica de los dispositivos – Ofrecer primitivas de acceso cómodas e

independientes de los detalles físicos – Mecanismos de protección

88 /53/53

Contenido• Visión del usuario del sistema de archivos

• Archivos• Directorios• Servicios de archivos• Servicios de directorios• Sistemas de archivos• El servidor de archivos• Puntos a recordar

99 /53/53

Archivos: visión lógica• Conjunto de información relacionada que ha sido definida por su

creador • Estructura de un archivo:

– Secuencia o tira de bytes (UNIX, POSIX)

– Registros (de tamaño fijo o variable)

Posición

R egistro 1

R egistro 3

R egistro 2

R egistro 4

R egistro n

C 1

C 1

C 1

C 1

C 1

C 2

C 2

C 2

C 2

C 2

C 3

C 3

C 3

C 3

C 3

C 5

C 5

C 5

C 5

C 5

C 4

C 4

C 4

C 4

C 4

R egistro 1

R egistro 3

R egistro 2

R egistro 4

R egistro n

C 1

C 1

C 1

C 1

C 1

C 2

C 2

C 2

C 3

C 3

C 3

C 4

C 4

C 4

C 4

C 3

C 3

C 5

C 5

1010 /53/53

Contenido• Visión del usuario del sistema de archivos• Archivos• Directorios• Servicios de archivos• Servicios de directorios• Sistemas de archivos• El servidor de archivos• Puntos a recordar

1111 /53/53

Concepto de archivo• Un espacio lógico de direcciones contiguas usado para

almacenar datos• Tipos de archivos:

– Datos: • numéricos • carácter • binarios

– Programas: • código fuente • archivos objetos (imagen de carga)

– Documentos

1212 /53/53

Atributos del archivo• Nombre: la única información en formato legible por una persona.• Identificación única del archivo y del usuario: descriptor interno del

archivo, dueño y grupo del archivo• Tipo de archivo: necesario en sistemas que proporciona distintos

formatos de archivos.• Tamaño del archivo: número de bytes en el archivo, máximo tamaño

posible, etc. • Protección: control de accesos y de las operaciones sobre archivos• Información temporal: de creación, de acceso, de modificación, etc.• Información de control: archivo oculto, de sistema, normal o

directorio, etc.

1313 /53/53

Representación del archivo• La información relacionada con el archivo se mantiene en el

descriptor del archivo, al que se apunta desde los directorios.• Es distinto en cada sistema operativo: nodo-i, registro Windows, etc.• Tipos de archivos:

– Archivos normales: ASCII y binarios.– Archivos especiales: de bloques y de caracteres

• Atributos de un archivo: – Nombre – Tipo – Dueño y grupo – Información de protección – Tamaño real – Hora y fecha de creación – Hora y fecha del último acceso – Hora y fecha de la última modificación – Número de enlaces

1414 /53/53

Ejemplos de representación

N ombre A tr ib.

S ize K BA gr up. FA T

cabecer a A tr ibutosT am añoN om bre

S egur idad

D atos

V cluster s

1515 /53/53

Nombres de fichero y extensiones I• Muy importante para los usuarios. Es característico de cada sistema

de archivos.• Problema: usar nombre lógicos basados en tiras de caracteres.• Motivo: los usuarios no recuerdan el nombre 001223407654• Tipo y longitud cambian de un sistema a otro

– Longitud: fija en MS-DOS o variable en UNIX– Extensión: obligatoria o no, más de una o no, fija para cada tipo de

archivos, etc.• Sensibles a tipografía. Ejemplo: CATALINA y catalina son el mismo

archivo en Windows pero distintos en LINUX.• El sistema de ficheros trabaja con descriptores internos, sólo distingue

algunos formatos (ejecutables, texto, ...). Ejemplo: número mágico UNIX.

1616 /53/53

Nombres de fichero y extensiones II• Los directorios relacionan nombres lógicos y descriptores internos de

ficheros

• Las extensiones son significativas para las aplicaciones (html, c, cpp, etc.)

1717 /53/53

Estructura del fichero• Ninguna - secuencia de palabras o bytes (UNIX)• Estructura sencilla de registros

– Líneas– Longitud fija– Longitud variable

• Estructuras complejas– Documentos con formato (HTML, postscript)– Fichero de carga reubicable (módulo de carga)

• Se puede simular estructuras de registro y complejas con una estructura plana y secuencias de control

• ¿Quién decide la estructura?– Interna: El sistema operativo– Externa: Las aplicaciones

1818 /53/53

B yte o registro de

longitud fi ja

Á rbol de registros

C abecer a

M ódulo objeto

C abecer a

M ódulo objeto

A rchivo debiblioteca

R egistros de longitudvar iable

Distintas estructuras lógicas

1919 /53/53

Archivos: visión lógica• Estructura de un archivo:

– Archivos de estructura compleja • Archivos indexados • Archivos directos o de dispersión

– Ejemplo de archivo indexado:

– Los archivos estructurados en registros y los archivos con estructuras complejas se pueden construir como una capa sobre la visión de tira de bytes.

C la ve

R e g is tro

F icheroind ice

F ichero principa l

2020 /53/53

C abecera de sección 1

C abecera de sección n

Sección 1

Sección 2

Sección n

Tipo de secc ión,tam año de la secc ión d irección v irtua l

Otrainform ación

D atos con va lor in ic ia l

In fo rm aciónde ca rga

Tab la desím bolos

Datos con valor in icial

C ódigo

Tipo de sección,tam año de la sección dirección virtual

C abecera prim aria

Núm e ro m á g ic o

Núm e ro d e se c c io ne s

Ta m a ño se g m e nto te xto

Ta m a ño se g m e nto d a to s

Ta m a ño d a to s sin va lo rin ic ia l

Ta m a ño ta b la d e sím b o lo s

Va lo r in ic ia l d e re g istro s

Dire c c ió n in ic ia l

O p c io ne s

...

Estructura de archivo ejecutable LINUX

2121 /53/53

Archivos: visión lógica y física• Usuario: Visión lógica.• Sistema operativo: visión física ligada a dispositivos. Conjunto de

bloques.

Posic ión

1

13

25

7

19

4

16

28

10

22

2

14

26

8

20

5

17

29

11

23

3

15

27

9

21

6

18

30

12

24

B lo q u e s d e la U n id a d d e D isco

A rch ivo AB lo q u e s : 1 3

2 0183

1 61 9

Visión lóg ica

Vis ión fís ica

2222 /53/53

Archivos: visión física• Bloque

– Unidad de transferencia – 2n sectores – Parámetro fijo por sistema de archivos

• Agrupación – Unidad de asignación – 2p bloques – Aumenta la secuencialidad del archivo

• Descripción de la estructura física: – Bloques utilizados

2323 /53/53

Descripción física en UNIX (nodo-i)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.

Tip o d e F ic he ro y P ro tec c ió nN ú m e ro d e N o m b res

P ro p ie ta r ioG rup o d e l P ro p ie ta rio

Ta m añ oIn s ta n te d e c rea c ió n

In s ta n te d e l ú ltim o a cc e s oIn s ta n te d e la ú ltim a m o d if ic ac ió n

P u n te ro a b loq u e d e d a to s 0P u n te ro a b loq u e d e d a to s 1

P u n te ro a b loq u e d e d a to s 9P u n te ro ind ire c to s im p leP u n te ro ind ire c to d o b leP u n te ro ind ire c to t rip le

nodo-i

Pu nte ro sa B lo que sde D atos

Pu nte ro sa B lo que sde D atos

Pu nte ro sa B lo que sde D atos

Pu nte ro sa B lo que sde D atos

Pu nte ro sa B lo que sde D atos

Pu nte ro sa B lo que sde D atos

2424 /53/53

Descripción física en MS-DOS (FAT)

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

<eof>

<eof>

<eof>

<eof>

pep_dir dir 5 27

fiche1.txt 12 45

Directorio RaízN om bre A trib . KB Agrup.

Directorio pep_dir

carta1.wp R 24 74

prue.z ip 16 91 7576

91

51

74

45

58

27

FAT

7576

58

92

N om bre A trib . KB Agrup.

2525 /53/53

Métodos de Acceso• Acceso secuencial: lectura de los bytes del archivo en

orden ascendente, empezando por el principio.– read next, write next, reset, no read after last write, …– rewind: ir al principio para buscar hacia delante– Lectura -> posición = posición + datos leídos– Dispositivos de cinta– ISAM: método de acceso secuencial indexado

• Acceso Directo:– read n, write n, goto n, rewrite n, read next, write next,

…– n = número de bloque relativo al origen– Dispositivos: discos magnéticos

2626 /53/53

Archivos: semántica de coutilización• Cualquier forma de acceso tiene problemas cuando varios

usuarios trabajan con el archivo simultáneamente. • Semántica de coutilización: especifica el efecto de varios

procesos accediendo de forma simultánea al mismo archivo y cuando se hacen efectivas las modificaciones.

• Tipos de semánticas: – Semántica UNIX (POSIX)

• Las escrituras son inmediatamente visibles para todos los procesos con el archivo abierto.

• Los procesos pueden compartir archivos. Si existe relación de parentesco pueden compartir el puntero. La coutilización afecta también a los metadatos.

2727 /53/53

Archivos: semántica de coutilización (II)

– Semántica de sesión • Las escrituras que hace un proceso no son inmediatamente

visibles para los demás procesos con el archivo abierto. • Cuando se cierra el archivo los cambios se hacen visibles para

las futuras sesiones. • Un archivo puede asociarse temporalmente a varias imágenes.

– Semántica de versiones• Las actualizaciones se hacen sobre copias con nº versión. • Sólo son visibles cuando se consolidan versiones.• Sincronización explícita si se requiere actualización inmediata

– Semántica de archivos inmutables • Una vez creado el archivo sólo puede ser compartido para

lectura y no cambia nunca

2828 /53/53

Contenido• Visión del usuario del sistema de archivos• Archivos

• Directorios• Servicios de archivos• Servicios de directorios• Sistemas de archivos• El servidor de archivos• Puntos a recordar

2929 /53/53

Concepto de directorio• Objeto que relaciona de forma unívoca un nombre de

usuario de archivo con su descriptor interno• Organizan y proporcionan información sobre la

estructuración de los sistemas de archivos• Una colección de nodos que contienen información acerca

de los archivos

3030 /53/53

Directorios: visión lógica• Esquema jerárquico. • Cuando se abre un archivo el SO busca el nombre en la

estructura de directorios. • Operaciones sobre un directorio:

– Crear (insertar) y borrar (eliminar) directorios. – Abrir y cerrar directorios. – Renombrar directorios. – Leer entradas de un directorio. – Montar (combinar)

• La organización jerárquica de un directorio – Simplifica el nombrado de archivos (nombres únicos) – Proporciona una gestión de la distribución => agrupar

archivos de forma lógica (mismo usuario, misma aplicación)

3131 /53/53

Ejemplo: explorador de Windows

3232 /53/53

Estructura de los directorios• Tanto la estructura del directorio como los archivos

residen en discos• Los directorios se suelen implementar como archivos• Copias de respaldo en cintas, por seguridad• Información en un directorio: nombre, tipo, dirección,

longitud máxima y actual, tiempos de acceso y modificación, dueño, etc.

• Hay estructuras de directorio muy distintas. La información depende de esa estructura.

• Dos alternativas principales:– Almacenar atributos de archivo en entrada directorio– Almacenar <nombre, identificador>, con datos archivo

en una estructura distinta. Esta es mejor.

3333 /53/53

N o m b reN o d o - i: P u n te ro a l d e sc r ip to r d e l a rc h iv o

D irector io de C P /M

N o m b reT ip o d e a rc h iv o

C o n ta d o rd e b lo q u e s

C ó d ig o d eu su a r io

a rc h iv oe x te n d id o

N ú m e ro sd e b lo q u e

. . .

D irector io de M S -D O S

D irector io de U N I X

N o m b reT ip o d e a rc h iv o R e se rv a d o

A tr ib u to s F e c h a Ta m a ñ o

H o ra

N ú m e rod e l p r im e r b lo q u e

Ejemplo de entradas de directorio

3434 /53/53

Organización del directorio• Eficiencia: localizar un archivo rápidamente• Nombrado: conveniente y sencillo para los usuarios

– Dos usuarios pueden tener el mismo nombre para archivos distintos

– Los mismos archivos pueden tener nombres distintos– Nombres de longitud variable

• Agrupación: agrupación lógica de los archivos según sus propiedades (por ejemplo: programas Pascal, juegos, etc.)

• Estructurado: operaciones claramente definidas y ocultación

• Sencillez: la entrada de directorio debe ser lo más sencilla posible.

3535 /53/53

Directorio de un nivel• Un único directorio para todos los usuarios• Problemas de nombrado y agrupación

D irecto r io

A rch iv o s

ca rta m ap a .g if lis ta .tx t p ro g ram a .o... ...

... ...

3636 /53/53

Directorio de dos niveles• Un directorio por cada usuario• Camino de acceso automático o manual• El mismo nombre de archivo para varios usuarios• Búsqueda eficiente, pero problemas de agrupación

D irecto r iom a estrom ariv i m ig u e l e lv ira... ...

a rch iv o s... ...

D irecto r iod e l u su a r io

d a to s lis ta .c c lav es... ...

a rch iv o s... ...

D irecto r iod e l u su a r io

te s t ag en d a c lav es... ...

a rch iv o s... ...

D irecto r iod e l u su a r io

m ail lis ta .c m io .o... ...

3737 /53/53

Directorio con estructura de árbol• Búsqueda eficiente y agrupación• Nombres relativos y absolutos -> directorio de trabajo

D irecto r iora íz

tm p h o m e u sr... ...

m a riv i m ig u e l e lv ira...

te s t ag en d a c lav es

sh rm v i

b in in c lu d e m a il

m io .o

b u zo nstd io .h

d a to s lis ta .c c lav es

co rreo ag en d a

3838 /53/53

Directorio con estructura de árbol• Los nombres absolutos contienen todo el camino• Los nombres relativos parten del directorio de trabajo o

actual• Cambio de directorio:

– cd /spell/mail/prog – cd prog

• Borrar un archivo: rm <nombre-archivo>• Crear un subdirectorio: mkdir <nombre_dir>• Ejemplo:

– cd /spell/mail – mkdir count– ls /spell/mail/count

• Borrar un subdirectorio: rm -r mail

3939 /53/53

Directorio de grafo acíclico I• Tienen archivos y subdirectorios compartidos• Este concepto no existe en Windows

D irecto r iora íz

tm p h o m e u sr... ...

m a riv i m ig u e l e lv ira...

te s t ag en d a c lav es

sh rm v i

b in in c lu d e m a il

b u zo nstd io .h

d a to s lis ta .c c lav es

c lav esco rreo ag en d a

4040 /53/53

Directorio de grafo acíclico II• link: Un archivo con varios nombres -> control de enlaces

– un único archivo con contador enlaces en descriptor (e. Físicos)– archivos nuevos con el nombre destino dentro (e. simbólicos)

• Borrado de enlaces: – a) decrementar contador; si 0 borrar archivo– b) recorrer los enlaces y borrar todos– c) borrar únicamente el enlace y dejar los demás

• Problema grave: existencia de bucles en el árbol. Soluciones:– Permitir sólo enlaces a archivos, no subdirectorios– Algoritmo de búsqueda de bucle cuando se hace un enlace

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

4141 /53/53

Nombres jerárquicos• Nombre absoluto: especificación del nombre respecto a la

raíz (/ en LINUX, \ en Windows). • Nombre relativo: especificación del nombre respecto a un

directorio distinto del raíz– Ejemplo: (Estamos en /users/) miguel/claves– Relativos al dir. de trabajo o actual: aquel en el se está

al indicar el nombre relativo. En Linux se obtiene con pwd

• Directorios especiales:– . Directorio de trabajo. Ejemplo: cp /

users/miguel/claves .– .. Directorio padre. Ejemplo: ls ..– Directorio HOME: el directorio base del usuario

4242 /53/53

Interpretación de nombres en LINUX. I

c lave s

te x tos

7 58

3 26 5

.

. ... .

.

. .

4343 /53/53

Interpretación de nombres en LINUX. II • Interpretar /users/miguel/claves

– Traer a memoria entradas archivo con nodo-i 2– Se busca dentro users y se obtiene el nodo-i 342– Traer a memoria entradas archivo con nodo-i 342– Se busca dentro miguel y se obtiene el nodo-i 256– Traer a memoria entradas archivo con nodo-i 256– Se busca dentro claves y se obtiene el nodo-i 758– Se lee el nodo-i 758 y ya se tienen los datos del archivo

• ¿Cuándo parar?– Se ha encontrado el nodo-i del archivo– No se ha encontrado y no hay más subdirectorios– Estamos en un directorio y no contiene la siguiente

componente del nombre (por ejemplo, miguel).

4444 /53/53

Jerarquía de directorios• ¿Árbol único de directorios?

– Por dispositivo lógico en Windows (c:\users\miguel\claves, j:\pepe\tmp, ...)

– Para todo el sistema en UNIX (/users/miguel/claves, /pepe/tmp, ...).

• Hacen falta servicios para construir la jerarquía: mount y umount.– mount /dev/hda /users– umount /users

• Ventajas: imagen única del sistema y ocultan el tipo de dispositivo

• Desventajas: complican la traducción de nombres, problemas para enlaces físicos entre archivos

4545 /53/53

Sistemas de archivos y particiones• Volumen: conjunto coherente de metainformación y datos. • Ejemplos de Sistemas de archivos:

B o o t D o s c o p ia sd e la FAT

D ire c to r ioR a íz

D a to s yD ire c to r io s

B o o t n o d o s - iS u p e rB lo q u e

M ap a sd e b its

D a to s yD ire c to r io s

M S -D O S

U N IX

4646 /53/53

Montado de Sistemas de archivos o particiones

/

/lib /bin /usr

/

/d1 /d2 /d3

/d3/f2/d3/f1

/

/lib /bin /usr

/usr/d1 /usr/d3

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

Volumen raiz(/dev/hd0)

Volumen sin montar(/dev/hd1)

mount /dev/hd1 /usr

Volumen montado

4747 /53/53

Contenido• Visión del usuario del sistema de archivos• Archivos• Directorios• Servicios de archivos• Servicios de directorios

• Sistemas de archivos• El servidor de archivos• Puntos a recordar

4848 /53/53

Sistemas de archivos y particiones• El sistema de archivos permite organizar la información dentro de los

dispositivos de almacenamiento secundario en un formato inteligible para el sistema operativo.

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

• 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 las estructuras 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

4949 /53/53

P ar tición 2

P ar tición 3

P ar tición 5P ar tición 4

Tipos de particiones

5050 /53/53

Sistemas de archivos y particiones (II)

• Sistema de archivos: conjunto coherente de metainformación y datos. • Ejemplos de Sistemas de archivos:

B o o t D o s c o p ia sd e la FAT

D ire c to r ioR a íz

D a to s yD ire c to r io s

B o o t n o d o s - iS u p e rB lo q u e

M ap a sd e b its

D a to s yD ire c to r io s

M S -D O S

U N IX

5151 /53/53

Sistemas de archivos y particiones (III)

• Descripción de sistemas de archivos: – El sector de arranque en MS-DOS – El superbloque en UNIX

• Relación sistema de archivos-dispositivo: – Típico: 1 dispositivo N sistemas de archivos

(particiones) – Grandes archivos: N dispositivos 1 sistema de archivos

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

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

5252 /53/53

Bloques y agrupaciones• Bloque: agrupación lógica de sectores de disco y es la unidad

de transferencia mínima que usa el sistema de archivos. – Optimizar la eficiencia de la entrada/salida de los

dispositivos secundarios de almacenamiento. – Todos los sistemas operativos proporcionan un tamaño de

bloque por defecto.– Los usuarios pueden definir el tamaño de bloque a usar

dentro de un sistema de archivos mediante el mandato mkfs.

• Agrupación: conjunto de bloques que se gestionan como una unidad lógica de gestión del almacenamiento. – El problema que introducen las agrupaciones, y los bloques

grandes, es la existencia de fragmentación interna.

5353 /53/53

T amaño de B loque

an ch o d e b an da

u so de l d isco

Anc

ho d

e B

anda

(K

byte

s/se

c)

Uso

del

Esp

acio

de

Dis

co

0

50

100

500

800

256 512 1K 2K 4K 8K 16K 32K

0

100 %

25

50

75

Tamaño bloque, ancho banda y uso disco

5454 /53/53

Estructuras de sistemas de archivos

5555 /53/53

Superbloque de sistemas de archivos en LINUX

5656 /53/53

Otros sistemas de archivos• Fast File System• EXT2 (extended file system) • Archivos con bandas• LFS (log structured file system) • Sistemas de archivos paralelos• ....

5757 /53/53

Estructura del FFS

5858 /53/53

P ar tic ión L ógica

D isco 0

b lo q ue 0

b lo q ue 4

b lo q ue 3b lo q ue 2b lo q ue 1

Pa rtic ió n d e lsiste m a

C onjunto de bandas

D isco 1 D isco 2 D isco 3

Estructura de un sistema de archivos con bandas

top related