Sistemas operativos. Tema 10: Sistemas de ficheros

Sistemas operativos Tema 10: Sistemas de ficheros Sistemas de ficheros ► El sistema de ficheros suele ser el aspecto más visible de un SO para los

0 downloads 204 Views 145KB Size

Recommend Stories


Tema 3. Sistemas Operativos
Tema 3. Sistemas Operativos 1. 2. 3. 4. ¿Qué es un SO? Evolución de los SO Funciones de los SO Clasificación de los SO Un Sistema Operativo (SO)

Tema 2. Sistemas Operativos
.enREDa. Tema 2. Sistemas Operativos autor Carmelo lunes, 06 de noviembre de 2006 Modificado el lunes, 27 de noviembre de 2006 TEMA 2. SISTEMAS OPER

Tema 2. Sistemas operativos
Tema 2. Sistemas operativos. Medios Informáticos. CFGS Fotografía 1. Tema 2. Sistemas operativos. n  Organización y gestión de archivos.. n  Tem

Story Transcript

Sistemas operativos Tema 10: Sistemas de ficheros

Sistemas de ficheros ► El

sistema de ficheros suele ser el aspecto más visible de un SO para los usuarios. ► Objetivos: ƒ Ofrecer una visión uniforme del almacenamiento de información en memoria secundaria. ► El

SO oculta las propiedades físicas de los discos, y define una unidad lógica de almacenamiento: el fichero.

ƒ Gestionar el espacio de almacenamiento y el acceso a la información.

Sistemas de ficheros ► Los

primeros SO soportaban tipos de ficheros, incorporando código para interpretar su estructura y contenido. ► Actualmente, se tiende a ver los ficheros como secuencias no interpretadas de bytes. ƒ Máxima flexibilidad, pero mínimo soporte: queda todo en manos de las aplicaciones. ƒ Todo lo más, el SO distingue ficheros ejecutables, y tipos de documentos según el programa con que se crean o editan.

Métodos de acceso a ficheros ►

Acceso secuencial: se accede a las distintas partes de un fichero una tras otra, en un orden predeterminado. ƒ Al abrir un fichero, el puntero de L/E se sitúa al principio del mismo. ƒ Cada operación de L/E accede a la posición apuntada y hace que el puntero avance a la posición siguiente.



Acceso directo: se puede acceder a las distintas partes de un fichero en cualquier orden. ƒ Los ficheros se ven como secuencias de bloques de longitud fija. ƒ Las operaciones de L/E indican un número de bloque relativo al comienzo del fichero.



Se puede simular de manera eficiente el acceso secuencial sobre dispositivos de acceso directo, pero no viceversa.

Estructura física y lógica

Estructuras de sistemas de ficheros ► Muchos

sistemas de ficheros combinan dos estructuras distintas: ƒ Directorio de dispositivo. ► Contiene

información sobre las propiedades físicas de cada fichero: localización en el dispositivo de almacenamiento, tamaño, etc.

ƒ Directorio de ficheros. ► Contiene

información sobre las propiedades lógicas de cada fichero: nombre, tipo, propietario, permisos, etc.

► La

vinculación entre ambas estructuras se hace a través de un identificador unívoco de fichero.

Directorio de nivel único ►

Todas las entradas en el mismo nivel. directorio

ficheros

► ►

Solución adoptada en los directorios de dispositivo. No se utiliza en directorios de ficheros, por dos motivos principales:

ƒ Falta de organización lógica. ƒ Limitaciones al nombramiento: no podría haber dos ficheros con el mismo nombre, aunque pertenecieran a distintos usuarios.

Directorio de dos niveles ►

Un directorio por cada usuario. so1

p1.c

p2.c

func.h func.c

so2

directorio raíz

so3

p1.tgz notas

p1.c

p1b.c

core

directorios de usuario ficheros

► ►

Sólo se requiere unicidad de nombres dentro de cada directorio. Un usuario puede acceder a los ficheros de otro indicando caminos de búsqueda.

Estructura de árbol ► Generalización

del directorio de dos niveles.

ƒ Los usuarios pueden crear subdirectorios. home

so1

p1.pdf

prac1.c p1.pdf func.h func.c

so2

bin

opt

bash

gcc

p1.tgz p1b.tgz p1.c

info

share

texinfo web2c

Estructura de árbol ► Dos

tipos de caminos:

ƒ Absolutos: desde el directorio raíz. ƒ Relativos: desde el directorio actual. ► Existe

un único camino para cada fichero o subdirectorio desde el directorio raíz.

Estructura de grafo acíclico ►

Ficheros y subdirectorios pueden tener varios caminos desde el directorio raíz (y, por extensión, varios nombres). dict

list

all

w

spell

count

list

count words

radc

w7

list

Estructura de grafo acíclico ►

El grafo acíclico facilita la compartición de ficheros y subdirectorios entre usuarios. ƒ Sin embargo, complica los mecanismos de generación de estadísticas de disco, copia de seguridad, etc.



Implementaciones: ƒ Información replicada. ► Al

modificar un fichero, por consistencia, hay que modificar igualmente todas sus réplicas.

ƒ Una única copia, y enlaces a los ficheros o subdirectorios compartidos. ► Al

borrar un fichero o subdirectorio, se elimina un enlace. ► El fichero o subdirectorio se borra cuando no quedan enlaces a él (se necesita un contador de referencias).

Estructura de grafo general ►

Se permite la aparición de ciclos, enlazando subdirectorios de nivel superior. dict

list

spell

count words

old

list

radc

ipc

w7

list

Estructura de grafo general ► ►

La existencia de bucles complica la generación de estadísticas y los mecanismos de copia de seguridad. Problemas con el borrado: pueden existir subdirectorios con el contador de referencias a un valor distinto de cero, y que sin embargo no son alcanzables desde el directorio raíz. ƒ Información inaccesible. ƒ Se necesita un recolector de basura.



Pocas ventajas con respecto al grafo acíclico Æ la estructura de grafo general apenas se utiliza.

Asignación de espacio

Asignación de espacio ► Objetivos

principal:

análogos a la gestión de memoria

ƒ Aprovechamiento de espacio. ƒ Acceso eficiente a los ficheros.

► Compromiso

asignación:

común a todas las formas de

ƒ Como el almacenamiento se realiza por bloques, aparece una fragmentación interna media de ½ bloque por fichero. ► ¿Mejor

bloques pequeños?

► ¿Mejor

bloques grandes?

ƒ Para reducir los accesos a disco, debería maximizarse la cantidad de información leída en cada operación de E/S.

Asignación contigua ►

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

A cada fichero se le asigna un conjunto de bloques contiguos en disco. ƒ Estrategias first-fit, best-fit o worst-fit. ƒ El directorio de dispositivo almacena la dirección del primer bloque y el número de bloques que le siguen.

Soporte eficiente para acceso secuencial y para acceso directo. ► Fragmentación externa. ►

ƒ Se requieren mecanismos de compactación.



Otras cuestiones:

ƒ ¿Cómo saber cuánto espacio necesitará un fichero? ƒ ¿Qué hacer si un fichero crece y no hay bloques libres después del último?

Asignación enlazada ►

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

Se ve cada fichero como una lista enlazada de bloques. ƒ El directorio de dispositivo almacena la dirección del primer bloque. ƒ Cada bloque almacena un puntero al siguiente.



No hay fragmentación externa.

ƒ Aún así, la compactación puede mejorar el rendimiento de la E/S.

Soporte eficiente sólo para acceso secuencial. ► El espacio ocupado en punteros se hace notorio con bloques pequeños. ► La pérdida de un puntero hace inaccesible el resto del fichero. ►

Asignación indexada ►

BI

1

2

3

4

5

6

7

8

9

10

BI

12

13

14

15

16

17

18

19

20

Cada fichero tiene un bloque índice (BI), con punteros a los bloques que almacenan sus datos.

ƒ El directorio de dispositivo almacena la dirección del BI.

► ► ►

Soporte eficiente para acceso secuencial y para acceso directo. No hay fragmentación externa. Ficheros pequeños desaprovechan gran parte de su BI Æ despilfarro de espacio. ƒ ¿Bloques pequeños?



En el BI caben un determinado número de punteros Æ tamaño máximo de los ficheros limitado. ƒ ¿Bloques grandes?

Bloques índice enlazados BI

1

2

3

BI

5

6

7

8

9

10

11

BI

13

14

15

16

17

18

19

20



El último puntero de un bloque índice puede apuntar a otro bloque índice. ƒ No hay limitación de tamaño.



Acceso más lento al final de los ficheros.

Bloques índice multinivel BI1

BI2

BI2

BI2

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20





Los bloques índice de primer apuntan a bloques índice de segundo nivel, y así sucesivamente. Sólo apuntan a bloques de datos los bloques índice de nivel más bajo. ƒ Sigue habiendo limitación de tamaño.



Se accede por igual a cualquier parte de los ficheros.

Gestión del espacio libre

Gestión de espacio libre ►

La gestión del espacio libre implica: ƒ Buscar y asignar espacio libre cuando se crea un fichero. ƒ Registrar como libre el espacio que ocupaba un fichero que se borra. ƒ Actualizar el mapa del espacio libre cuando un fichero crece o se trunca.



Consideraciones importantes: ƒ Espacio en disco necesario para almacenar el propio mapa de espacio libre. ƒ Facilidad para encontrar 1 bloque libre o n bloques libres contiguos. ƒ Facilidad para actualizar el mapa de espacio libre.

Vector de bits 0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

► Un

bit por cada bloque de disco.

ƒ 0 Æ bloque libre ƒ 1 Æ bloque asignado 101000011101001100000 ► Por

cuestiones de eficiencia, el vector se suele cargar en memoria.

Vector de bits ►

Ventajas: ƒ Fácil de implementar y usar con cualquier método de asignación. ƒ Facilidad para encontrar un bloque libre o un conjunto de bloques contiguos libres. ƒ Actualización sencilla.

101000011101001100000 ►

Inconveniente: tamaño excesivo con discos grandes.

ƒ Ejemplo: disco de 16 GB y bloques de 512 bytes Æ vector de 8MB. ► Reservar

8 MB de memoria, o recorrer hasta 16384 bloques de disco.

ƒ Solución: usar bloques libres para gestionar el espacio libre.

Lista enlazada de bloques libres ►

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20





Mínimo desperdicio de espacio: sólo se necesita almacenar la dirección del primer bloque libre. Con asignación no contigua, para buscar n bloques libres hay que leer n-1 bloques. Con asignación contigua, por lo general, hay que leer muchos más.

Lista enlazada de secciones libres 0

0

1

2

3

4

5

6

7

8

3

0

9

10

11

12

13

14

15

16

17

18

19

20

1

4

► Cada

bloque de la lista enlazada indica cuántos bloques libres le siguen. ƒ Mayor eficiencia para la asignación contigua.

Lista enlazada de bloques índice 0

BI

2

3

4

5

BI

7

8

9

10

11

12

13

14

15

BI

17

18

19

BI



Un bloque índice contiene un cierto número de punteros a bloques libres, más un puntero a otro bloques índice. ƒ Se pueden localizar rápidamente un gran número de bloques libres.



Alternativa más eficiente para asignación contigua: apuntar a secciones de bloques libres contiguos.

Fin

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.