Está en la página 1de 86

DSO

Tema
Gestión de Ficheros
Índice

• Conceptos básicos de E/S


• Concepto de sistema de ficheros
• Ficheros
• Implementación de Ficheros en disco
• Directorios
• Protección
• Ficheros, directorios y servicios en POSIX
• Gestión espacio
• Incremento de prestaciones

Dso 2 Gestión de Ficheros


Referencias bibliográficas

• “Sistemas Operativos: una visión aplicada”, cap 8


Jesús Carretero et al.
McGraw Hill, 2001

• “Sistemas Operativos” cap 11


Willian Stalling
Prentice Hall, 2000

• “Sistemas Operativos” , cap 13


Gary Nutt

Dso 3 Gestión de Ficheros


Sistema de Ficheros
Introducción

SISTEMA DE COMPUTACIÓN: necesitad de


almacenar y recuperar información

- Característica fundamental del medio de


almacenamiento: NO VOLATILIDAD
- Variedad de medios donde almacenar
información: discos magnéticos, cintas
magnéticas, discos ópticos, etc...

Dso 5 Gestión de Ficheros


Abstracción Datos

– Solución:
Sistema Operativo abstraiga las propiedades físicas de sus
dispositivos de almacenamiento

– ¿Cómo?

Definiendo una unidad de almacenamiento lógica, el ARCHIVO

– Definiciones de Fichero-Archivo

• Un almacén persistente de información accesible mediante un


nombre
• Es una abstracción cómoda del almacenamiento secundario (tipo
abstracto de datos)
• Oculta la realidad física del almacenamiento (cintas, discos, etc...)
• Sirve para organizar la información como lo hacemos las personas
Dso 6 Gestión de Ficheros
Conceptos básicos

– Funciones del SO:


l Controlar el funcionamiento de los dispositivos de almacenamiento
l Ofrecer un interfaz entre estos dispositivos y el resto del sistema
¿como?

– Mediante el GESTOR del SISTEMA DE FICHEROS conjunto de


módulos del SO que se encargan de la gestión de la información
(archivos).
– Implementa la abstracción de archivo, de directorios para
organizar archivos y de sistemas de archivos para organizar
directorios y archivos.

Dso 7 Gestión de Ficheros


Gestor de ficheros

• Visión lógica:
- Ficheros
- Directorios
- Volúmenes y particiones
• Visión física:
- Bloques o bytes ubicados en dispositivos

Visión Visión
lógica física

Dso 8 Gestión de Ficheros


Gestor de ficheros

• El acceso a los dispositivos es:


- Incómodo
l Detalles físicos de los dispositivos
l Dependiente de las direcciones físicas

- No seguro
l Si el usuario accede a nivel físico no tiene restricciones

• El Gestor de ficheros es la capa de software del SO


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

Dso 9 Gestión de Ficheros


Función principal del Gestor de Ficheros

• El GF establece una correspondencia entre los archivos y


los dispositivos lógicos.

Interfaz de acceso

SISTEMA
DE
FICHEROS

Protección

Dso 10 Gestión de Ficheros


Estructura del sistema de E/S (almacenamiento)

Proceso d e Proceso d e Proceso d e ... Proceso d e


Usua rio 1 Usua rio 2 Usua rio 3 Usua rio n Nivel d e
usua rio
Nivel d e
sistema

Sistema de Archivos Virtual

Módulo de Organización de Archivos


ext2 msdos ffs ... proc

Cache de
Servidor de Bloques Bloques

Manejadores de Dispositivo

...

Dso 14 Gestión de Ficheros


Gestor de archivos

• Para proporcionar un acceso eficiente y sencillo a los


dispositivos de almacenamiento, todos los sistemas
operativos tienen un Gestor de archivos que permite
almacenar, buscar y leer datos fácilmente.

• Dicho servidor de archivos tiene dos tipos de problemas de


diseño muy distintos entre sí:

• Definir la visión de usuario del sistema de entrada/salida, incluyendo


servicios, archivos, directorios, sistemas de archivos, etc.
• Definir los algoritmos y estructuras de datos a utilizar para hacer
corresponder la visión del usuario con el sistema físico de
almacenamiento secundario.

Dso 15 Gestión de Ficheros


Gestor de archivos virtuales

• G.A. Virtual: interfaz de llamadas de entrada/salida del


sistema y de enviar al módulo de organización de archivos
la información necesaria para ejecutar los servicios pedidos
por los usuarios.
• PERMITE a usuarios y aplicaciones acceder a los registros
• Servicios:
– manejo de directorios,
– gestión de nombres,
– algunos servicios de seguridad,
– integración dentro del servidor de archivos de distintos tipos de métodos
de acceso a archivos
– servicios genéricos de archivos y directorios.

Dso 16 Gestión de Ficheros


Módulo de organización de archivos
• Proporciona el modelo del archivo del sistema operativo y los
servicios de archivos (tipo de acceso).
• Relaciona la imagen lógica del archivo con su imagen física,
proporcionando algoritmos para trasladar direcciones lógicas de
bloques a sus correspondientes direcciones físicas.
• Gestiona el espacio de los sistemas de archivos, la asignación
de bloques a archivos y el manejo de los descriptores de
archivo.
• Un módulo de este estilo por cada tipo de archivo soportado
(UNIX, AFS, Windows NT, MS-DOS, EFS, MINIX, etc.).
• Dentro de este nivel también se proporcionan servicios para
pseudo-archivos, tales como los del sistema de archivos proc.
• Las llamadas de gestión de archivos y de directorios
particulares de cada sistema de archivos se resuelven en el
módulo de organización de archivos.
Dso 17 Gestión de Ficheros
Servidor de bloques
• Se encarga de emitir los mandatos genéricos para leer y
escribir bloques a los manejadores de dispositivo. Se
encarga de ubicar los bloques en el disco
• La E/S de bloques de archivo, y sus posibles
optimizaciones, se lleva a cabo en este nivel .
• Las operaciones se traducen a llamadas de los
manejadores de cada tipo de dispositivo específico y se
pasan al nivel inferior del sistema de archivos.
• Esta capa oculta los distintos tipos de dispositivos, usando
nombres lógicos para los mismos. Por ejemplo,
/dev/hda3 será un dispositivo de tipo hard disk (hd),
cuyo nombre principal es a y en el cual se trabaja sobre su
partición 3.
• Los mecanismos de optimización de la E/S, como la cache
de bloques, se incluye en este nivel.

Dso 18 Gestión de Ficheros


Manejadores de dispositivos (drivers)
• Un manejador por cada dispositivo, o clase de dispositivo, del
sistema. Se comunica con el controlador (físico) del dispositivo
• Su función principal es recibir ordenes de E/S de alto nivel, tal
como move_to_block 234, y traducirlas al formato que entiende el
controlador del dispositivo, que es dependiente de su hardware.
• Habitualmente, cada dispositivo tiene una cola de peticiones
pendientes, de forma que un manejador puede atender
simultáneamente a varios dispositivos del mismo tipo.
• Una de las principales funciones de los manejadores de
dispositivos es recibir las peticiones de entrada/salida y
colocarlas en el lugar adecuado de la cola de peticiones del
dispositivo afectado.
– La política de inserción en cada cola puede ser diferente, dependiendo del tipo
de dispositivo o de la prioridad de los dispositivos. Para un disco, por ejemplo,
se suele usar la política CSCAN.

Dso 19 Gestión de Ficheros


Flujo de datos en el S. de A.
read (fd, buffer, tamaño)

Usuario buffer
tamaño

archivo lógico
(VFS)

archivo lógico bloques del


(FFS) 3 4 5 6
archivo

Bloques lógicos bloques del


(Servidor 1340 1756 840 8322
dispositivo
de bloques)

1340 1756
bloques del
Manejador de disco
disco y 840
dispositivo
8322

Dso 20 Gestión de Ficheros


Soporte Bajo Nivel
Implementación de Sistemas de
Ficheros en Disco
Ficheros: visión física
• Conjunto de bloques ubicados en un dispositivo
• ¿Cómo asignar los bloques de disco a un archivo y cómo hacerlos
corresponder con la imagen del archivo que tiene la aplicación?
Fichero
Bytes

Bloques

Visión Lógica Visión Física


Dso 24 Gestión de Ficheros
Dso 25 Gestión de Ficheros
Correspondencia bloques-archivos
¿Cómo asignar los bloques de disco a un archivo y cómo hacerlos
corresponder con la imagen del archivo que tiene la aplicación?

• Asignación de bloques contiguos.

– Sencillo de implementar y el rendimiento de la E/S es muy bueno.


– Si no se conoce el tamaño total del archivo cuando se crea, puede ser necesario buscar
un nuevo hueco de bloques consecutivos cada vez que el archivo crece.
– Fragmentación externa -> compactar el disco.

• Asignación de bloques discontiguos.

– Se asigna al archivo el primer bloque que se encuentra libre.


– No hay fragmentación externa del disco ni búsqueda de huecos.
– Los archivos pueden crecer mientras exista espacio en el disco.
– Complica la implementación de la imagen de archivo -> mapa de bloques del archivo.

Dso 26 Gestión de Ficheros


Introducción
• Se supondrá que existe un manejador de dispositivo que
permite ver el disco como una lista lineal de bloques con
acceso aleatorio.
• OBJETIVO: asignar espacio a ficheros de modo que el espacio en disco
se aproveche de forma eficaz y se pueda acceder rápidamente a los
archivos
• Debe asignarse espacio a los archivos antes de crearlos.
• Es necesario guardar constancia del espacio disponible para
asignar.
• Desde el punto de vista de la implementación un fichero es una
colección ordenada de bloques de disco; existen varias técnicas que
permiten la implementación de dicha colección:
l Asignación contigua.

l Asignación enlazada.

l Asignación indexada.

Dso 27 Gestión de Ficheros


Asignación Contigua

• Cuando se crea un archivo se le asigna un único conjunto


contiguo de bloques. Es necesario antes de crearlo saber el
tamaño
• La tabla de asignación necesita sólo una entrada por cada
archivo: el primer bloque y el tamaño en bloques.
• Para asignar se debe de satisfacer una solicitud de tamaño N a
partir de una lista de huecos libres que va variando con el tiempo.
• Algoritmos mas utilizados
– Primer ajuste (First Fit)
– Mejor ajuste (Best Fit)
• Desde un punto de vista de aprovechamiento del espacio no
existen diferencias pero el primero suele ser mas rápido

Dso 28 Gestión de Ficheros


Asignación Continua

• Ventajas
- Rapidez de acceso: Para acceder a bloques consecutivos
no hace falta mover el cabezal del disco.
- Adecuado y eficiente para sistemas de ficheros de sólo
lectura donde los ficheros no crecen.
• Desventajas
- Limita el crecimiento de los ficheros. Es difícil gestionarlo
cuando el tamaño del fichero no se sabe inicialmente.
• Problema ambos algoritmos de gestión de espacio:
Fragmentación
• Solución: Compactación (pero es una solución costosa)

Dso 29 Gestión de Ficheros


Asignación Enlazada
• Fichero = Lista de bloques enlazada (en cada bloque
encontramos un puntero al siguiente)
• La asignación se hace con bloques individuales.
- Cada bloque contiene un puntero al siguiente bloque de la
cadena.
- La tabla de asignación necesita una sola entrada por cada
archivo:
l Bloque de comienzo y longitud del archivo.
- Un bloque puede estar en cualquier lugar del disco
• Inconvenientes
- Solo eficiente para archivos de acceso secuencial
- Espacio que ocupan los punteros (un archivo requerirá algo mas de espacio del que
requeriría en otro caso)
- El espacio útil deja de ser potencia entera de 2

Dso 32 Gestión de Ficheros


Asignación Indexada

• Asignación enlazada resolvía los problemas de la


asignación contigua: la fragmentación y declaración
anticipada del tamaño de los archivos, pero creaba otros
como el tamaño del bloque que contenía ademas de datos
los punteros.
• Solución: Unir los punteros en un índice de bloques
mediante la Asignación indexada:
• La tabla de asignación de archivos contiene un índice separado de un
nivel para cada archivo.
• El índice posee una entrada para cada sección asignada al archivo.
• La tabla de asignación contiene números de bloque para el índice.

Dso 34 Gestión de Ficheros


Asignación Indexada

• Cada archivo tiene sus bloques de índice que incluyen apuntadores a


los bloques de disco del archivo.
– El orden lógico se consigue mediante la inserción de los apuntadores en
orden creciente, a partir del primero, en los bloques de índices.
– Ventaja: basta con traer a memoria el bloque de índices donde está el
apuntador a los datos para tener acceso al bloque de datos. Si un
apuntador de bloque ocupa 4 bytes y el bloque es de 4 Kbytes, con un
único acceso a disco tendremos 1024 apuntadores a bloques del archivo.
– Problema: el espacio extra necesario para los bloques de índices.
• Ese problema, fue resuelto en UNIX BSD combinando un sistema de índices
puros con un sistema de índices multinivel, que es que se usa actualmente en
UNIX y LINUX.
• Permite almacenar archivos pequeños sin necesitar bloques de índices.
• Permite accesos aleatorios a archivos muy grandes con un máximo de 3
accesos a bloques de índices.

Dso 35 Gestión de Ficheros


Asignación Indexada

Dso 36 Gestión de Ficheros


Asignación Indexada

• ¿ Qué pasa si el fichero tiene más


bloques que los que caben en el
bloque de la tabla de índices?

• Solucion: Esquema combinado

Dso 39 Gestión de Ficheros


Asignación Indexada: Esquema Combinado

Dso 40 Gestión de Ficheros


Mapa de bloques en un nodo-i
nodo-i

Información
del archivo DISCO
820
Direcciones de

...
los 10 primeros 342
bloques 1623

8204 1134
Indirecto simple

...
10211
Indirecto doble Bloque
indirecto

Indirecto triple

2046
20464

675

Dso 41 Gestión de Ficheros


Soporte de Alto Nivel
Gestor de ficheros Visión lógica

• Permite a usuarios y aplicaciones


acceder a los registros del fichero.
• Ofrece una capacidad de E/S por
registros de propósito general.
• Mantiene datos básicos sobre los
archivos.

Dso 43 Gestión de Ficheros


Ficheros: visión lógica
• Fichero: unidad lógica de almacenamiento de información
en memoria secundaria. El sistema operativo normalmente mapea
estas unidades lógicas sobre dispositivos físicos de memoria no volátiles.

• Estructura de un fichero:

– Punto de vista del sistema operativo: para la mayoría de s.o.cualquier


fichero no es más que una secuencia de bytes (byte stream). El sistema
operativo no interpreta la información del fichero EXCEPTO en algunos
casos muy concretos: ficheros ejecutables, bibliotecas, ...

• Punto de vista de las aplicaciones de nivel de usuario:


– las aplicaciones pueden construir ficheros de registros más complejos
sobre la estructura de bytes proporcionada por el s.o. La interpretación
de esta estructura corresponde a las propias aplicaciones. (Archivos .gif)

Dso 44 Gestión de Ficheros


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

Posición

Visión lógica

Archivo A 1 2 3 4 5 6
Bloques: 13
20 7 8 9 10 11 12
1
8 13 14 15 16 17 18
3 19 20 21 22 23 24
16
19 25 26 27 28 29 30

Bloques de la Unidad de Disco

Visión física
Dso 45 Gestión de Ficheros
Distintas estructuras lógicas

Árbol de registros

Cabecera

Módulo
objeto

Cabecera
Registros de Módulo
longitud objeto
variable
Archivo de
Byte o
biblioteca
registro de
longitud fija

Dso 46 Gestión de Ficheros


Ficheros: visión lógica (II)

• Tipos de ficheros:
- Ficheros normales
- Ficheros especiales:
l De bloques
l De caracteres
• Atributos de un fichero:
- 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

Dso 47 Gestión de Ficheros


Tipos de ficheros

(a) Ejecutable (b) Archivo


Dso 48 Gestión de Ficheros
Tipos de Ficheros

Dso 49 Gestión de Ficheros


Ficheros

Concepto de fichero

Un fichero puede ser considerado un tipo abstracto de datos, con


unos atributos: información específica que el s.o. mantiene para el
fichero junto a un conjunto de operaciones: las operaciones que el
sistema operativo permite sobre el fichero son el conjunto de
llamadas al sistema para gestión de ficheros.

Dso 50 Gestión de Ficheros


Ficheros

Atributos de un fichero. Pueden variar de un sistema a


otro, pero los siguientes son habituales:

– Nombre del fichero: en algunos s.o. pueden existir más de uno.


– Tipo de fichero
– Tamaño: número de bytes de la información que contiene el fichero.
– Protección: información sobre los usuarios que pueden acceder el
fichero y los tipos de acceso que puede realizar (lectura, escritura,
ejecucion,..)
– Fechas de creación, último acceso, última modificación:
– Información sobre su ubicación: Información sobre el dispositivo y
bloques de memoria secundaria que le dan soporte físico al fichero.
– Datos: contenido o información del fichero.

Dso 51 Gestión de Ficheros


Ficheros
• Operaciones sobre ficheros:
- Crear ficheros
- Abrir y cerrar ficheros
- Renombrar
- Borrar ficheros
- Leer y escribir ficheros
- Truncar un fichero
- Asignar espacio a un fichero
- Situar el puntero en una determinada posición dentro del fichero
- Obtener atributos
- Modificar atributos

• Las llamadas al sistema proporcionan la interfaz a nivel del


programador.

• Las órdenes del shell proporcionan la interfaz a nivel de usuario del s.o.
(cp, ls, ..)

Dso 52 Gestión de Ficheros


Ficheros. Métodos de Acceso

• Reflejan las distintas estructuras de archivos.


• Refleja las formas diferentes de acceder y procesar los
datos.
• Son los métodos para especificar el registro de un fichero que
se pretende acceder. Las tres técnicas de acceso más usuales
son:

» Acceso Secuencial.
» Acceso Directo
» Acceso Indexado.

Dso 53 Gestión de Ficheros


Ficheros. Acceso Secuencial
Archivos secuenciales:

• La información del archivo se procesa en orden, un registro tras otro. Se basa en un


modelo de archivo de cinta
• Para acceder un registro del fichero, hay que acceder previamente los anteriores.
• Existe un puntero de posición al registro sobre la que se realizará la siguiente
lectura/escritura; no se especifica como parámetro el número de registro.
l El puntero de posición avanza automáticamente después de la

lectura/escritura en el número de registros leídos o escritos


l Algunos sistemas permiten saltar adelante o atrás “n” registros, para algún
entero “n”

Dso 54 Gestión de Ficheros


Ficheros. Acceso Directo
• El fichero se considera como una secuencia numerada de
registros lógicos de longitud fija.
• Acceso Directo se permite a los programas leer y escribir
registros sin ningún orden específico. Para acceder a uno de
los registros es necesario especificar, como un parametro, el
numero de registro sobre el que se quiere realizar la
operacion.
• Las Operaciones de fichero deben modificarse
• Dos alternativas (dependiendo del dispositivo):
l Incluir Nº bloque en las operaciones Lectura/Escritura
l Leer n
l Escribir n
l Mantener las operaciones Lectura/Escritura = Acceso secuencial
añadiendo una operación de posicionamiento
l posicionar archivo en n

l Leer/Escribir siguiente

Dso 56 Gestión de Ficheros


Ficheros. Acceso Indexado
• El acceso indexado requiere de estructuras adicionales en
disco (tablas de índices) (base en el método de acceso directo)
• Se construye un índice de los registros con el fin de ordenarlos
de acuerdo con alguna clave (p.e., alfabéticamente). El índice
contiene el conjunto de claves y los punteros hacia los registros
dentro del fichero que contienen dicha clave.
• Indice memoria
• Para acceder a un registro primero se busca la clave en el
índice y después los registros a los que apunta el puntero
seleccionado por dicha clave.
• Problema con Archivos grandes : Uso del Doble índice:
Indexación a varios niveles: cuando el fichero de índices es
muy grande, se puede construir un segundo índice para
acceder a éste.

Dso 57 Gestión de Ficheros


Ficheros. Acceso Indexado

Dso 58 Gestión de Ficheros


Directorios: visión lógica

• Un directorio es una tabla de entradas que asocia nombres simbólicos a


ficheros.
• Esquema jerárquico.
• Cuando se abre un fichero 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 ficheros (nombres únicos)
- Proporciona una gestión de la distribución => agrupar ficheros de
forma lógica (mismo usuario, misma aplicación)

Dso 59 Gestión de Ficheros


Tipo de Contador
Nombre archivo de bloques

...

Código de archivo Números


usuario extendido de bloque

Dir ector io de CP /M

Número
Tipo de del primer
Nombre archivo Reservado Hora bloque

Atributos Fecha Tamaño

Dir ector io de M S -DO S

Nodo-i: Puntero al
descriptor del archivo Nombre

Dir ector io de UN I X
Dso 60 Gestión de Ficheros
Directorio de archivos

• Contiene información sobre los archivos:


- Atributos.
- Ubicación en el disco.
- Propietario.
• El directorio es propiamente un archivo,
perteneciente al sistema operativo.
• Ofrece una traducción entre los nombres de
archivo y los archivos propiamente dichos.

Dso 61 Gestión de Ficheros


Estructuración sencilla de un directorio

• Es una lista de entradas, una para cada


archivo.
• Puede representarse con un simple archivo
secuencial, con el nombre del archivo
haciendo las veces de clave.
• No ofrece ayuda en la organización de los
archivos.
• Obliga al usuario a tener cuidado de no usar el
mismo nombre para dos tipos diferentes de
archivo.

Dso 62 Gestión de Ficheros


Esquema de dos niveles para un directorio

• Un directorio para cada usuario y un directorio


maestro.
• El directorio maestro contiene una entrada para cada
directorio de usuario:
- Incluye una dirección e información de control de acceso.
• Cada directorio de usuario es una simple lista de los
archivos del usuario.
• Todavía no ofrece a los usuarios ayuda alguna para
estructurar sus conjuntos de archivos.

Dso 63 Gestión de Ficheros


Directorio jerárquico o estructurado en árbol

• Existe un directorio maestro que


contiene un número determinado de
directorios de usuario.
• Cada uno de estos directorios puede
tener a su vez subdirectorios y archivos
como entradas.

Dso 64 Gestión de Ficheros


Directorio jerárquico o estructurado en árbol

• Cualquier archivo puede ser localizado siguiendo


un camino desde el directorio raíz o maestro,
descendiendo por varias ramas:
- Este es el nombre de camino del archivo.
• Se pueden tener varios archivos con el mismo
nombre de archivo mientras tengan nombres de
camino únicos.

Dso 67 Gestión de Ficheros


Directorio jerárquico o estructurado en árbol

• El directorio actual es el directorio de trabajo.


• Las referencias a los archivos son relativas al
directorio de trabajo.

Dso 68 Gestión de Ficheros


Compartimiento de archivos

• En un sistema multiusuario, existe la necesidad de


permitir a los usuarios compartir archivos.
• Dos cuestiones:
- Los derechos de acceso.
- La gestión de los accesos simultáneos.

Dso 69 Gestión de Ficheros


Derechos de acceso
• Ninguno:
- El usuario no puede ni siquiera conocer la existencia del
archivo.
- No se permite al usuario leer el directorio de usuario que
incluya al archivo.
• Conocimiento:
- El usuario sólo puede determinar que el archivo existe y
quién es su propietario.

Dso 70 Gestión de Ficheros


Derechos de acceso

• Ejecución:
- El usuario puede cargar y ejecutar un programa
pero no puede copiarlo.
• Lectura:
- El usuario puede leer el archivo para cualquier
propósito, incluyendo copia y ejecución.
• Adición:
- El usuario puede añadir datos al archivo pero no
puede modificar o borrar el contenido del mismo.

Dso 71 Gestión de Ficheros


Derechos de acceso

• Actualización:
- El usuario puede modificar, borrar y añadir datos al archivo.
Esto incluye la escritura del archivo al principio, la reescritura
por completo o en parte y la eliminación de todos los datos o
parte de ellos.
• Cambio de protección:
- El usuario puede cambiar los derechos de acceso otorgados
a otros usuarios.
• Borrado:
- El usuario puede borrar el archivo del sistema de archivos.

Dso 72 Gestión de Ficheros


Derechos de acceso

• Propietario:
- Dispone de todos los derechos de acceso
enumerados antes.
- Puede otorgar derechos a los otros usando las
siguientes clases de usuarios:
l Usuario específico.
l Grupos de usuarios.
l Todos (archivos públicos).

Dso 73 Gestión de Ficheros


Acceso simultáneo

• El usuario puede bloquear el archivo entero


cuando lo vaya a actualizar.
• Un mejor control es bloquear los registros
individuales durante la actualización.
• Al diseñar la posibilidad de accesos
compartidos, deben abordarse aspectos de
exclusión mutua e interbloqueo.

Dso 74 Gestión de Ficheros


Gestión de archivos en UNIX
Sistema de E/S
Sistema de archivos de UNIX

• Estructura jerárquica
• Tratamiento consistente de los datos
• Creación y borrado de archivos
• Crecimiento dinámico de archivos
• Protección de los datos de los archivos
• Independencia de dispositivo

Dso 76 Gestión de Ficheros


Estructura del sistema de archivos (2)

l Bloque de boot
■ Contiene código para el arranque (carga y comienzo) del sistema
operativo.
l Superbloque:
■ Contiene información del sistema de archivos
- Tamaño del sistema de archivos
- Lista de bloques libres
- Indice del siguiente bloque libre en la lista de bloques libres
- Tamaño de la lista de nodos-i
- Número de nodos-i libres
- Indice del siguiente nodo-i libre en la lista de nodos-i libres
- Campos de bloqueo de elementos de las listas de bloques libres y de nodos-i
libres
- Flag que indica si se ha modificado el superbloque
l Lista de nodos índice
l Bloque de datos

Dso 78 Gestión de Ficheros


Lista de nodos índice

Dso 79 Gestión de Ficheros


Tabla de control de acceso a archivos

• Tabla de archivos y de descriptores de archivos


• La tabla de descriptores de archivos es heredada por los
procesos hijos después de efectuar un fork

Dso 80 Gestión de Ficheros


The UNIX V7 File System (1)

A UNIX V7 directory entry

Dso 81 Gestión de Ficheros


The UNIX V7 File System (2)

A UNIX i-node

Dso 82 Gestión de Ficheros


The UNIX V7 File System (3)

The steps in looking up /usr/ast/mbox


Dso 83 Gestión de Ficheros
Paso de pathname a nodo-i
• Cómo obtener el número de nodo-i a partir del
camino
• P.e./usr/include/stdio.h

Dso 84 Gestión de Ficheros


Ficheros, directorios y servicios en POSIX (UNIX)
• Nombres de fichero y directorio:
- Nombre completo (empieza por /)
l /usr/include/stdio.h

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


l stdio.h asumiendo que /usr/include es el directorio actual.
- La entradas . y .. pueden utilizarse para formar rutas de
acceso
l ../include/stdio.h
l ./../include/stdio.h
l /usr/./include/../include/stdio.h
l Estos tres ficheros hacen referencia a stdio.h si /usr/include es el
directorio actual

Dso 86 Gestión de Ficheros


Ficheros, directorios y servicios en POSIX (UNIX)

• Tipos de fichero:
- Normales
- Directorios
- Especiales
• Descriptores de fichero:
- Entero no negativo que identifica un fichero abierto
- Se asignan en orden 0, 1, 2, ...
- Los procesos en su inicio:
l 0 entrada estándar
l 1 salida estándar
l 2 salida de error
- Se heredan en el fork()
- Los ficheros abiertos siguen abiertos después del exec()
- Cuando se hace un fork() se comparte el puntero

Dso 87 Gestión de Ficheros


Superbloque de sistemas de archivos en LINUX

Dso 88 Gestión de Ficheros


Descripción física en UNIX (nodo-i)
Tipo de Fichero y Protección
Número de Nombres
Propietario Tamaño máximo del archivo: 10Sb+(Sb/4)Sb +(Sb/4)2Sb +(Sb/4)3Sb
Grupo del Propietario Sb el tamaño del bloque y direcciones de bloques de 4 bytes.
Tamaño
Instante de creación
Instante del último acceso
Instante de la última modificación
Puntero a bloque de datos 0
Puntero a bloque de datos 1
Punteros
a Bloques
de Datos
Puntero a bloque de datos 9
Punteros
Puntero indirecto simple a Bloques
Puntero indirecto doble de Datos

Puntero indirecto triple


Punteros

nodo-i
a Bloques
de Datos

Punteros
a Bloques
de Datos

Punteros
a Bloques
de Datos

Punteros
a Bloques
de Datos

Dso 89 Gestión de Ficheros


Interpretación de nombres en LINUX. I

.
..
.
..
.
..
claves 758
textos 3265

Dso 91 Gestión de Ficheros


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).

Dso 92 Gestión de Ficheros


Protección

• Identificación de usuarios y grupos


- UID: identificador de usuario
- GID: identificador de grupo
• Los procesos se ejecutan con
- UID real
- UID efectivo
- GID real
- GID efectivo

Dso 93 Gestión de Ficheros


Protección (II)

• Protección sobre un fichero


- UID del propietario y GID del grupo
- 9 bits de protección rwx para el propietario grupo y otros.

- En ficheros
l r => leer
l w => escribir
l x => permiso de ejecución

- En directorios
l r => listar contenidos
l w => crear o eliminar entradas
l x => permiso de acceso

Dso 94 Gestión de Ficheros


Protección (III)

• Bits SETUID y GETUID


- Si un proceso ejecuta un fichero con el SETUID activo UID
efectivo = UID del propietario del fichero
- Si un proceso ejecuta un fichero con el GETUID activo GID
efectivo = GID del propietario del fichero
• Reglas de protección:
- Si UID efectivo = 0 se concede el acceso
- Si UID efectivo = UID del propietario se utiliza el primer
grupo de bits; si no
- Si GID efectivo = GID del propietario se utiliza el segundo
grupos de bits; si no
- Se utiliza el último grupo de bits.

Dso 95 Gestión de Ficheros


Gestión de la ocupación del disco
Gestión de espacio libre

• Mapas de bits, o vectores de bits: un bit por recurso existente (descriptor de


archivo, bloque o agrupación). Si el recurso está libre, el valor del bit asociado
al mismo es 1, si está ocupado es 0.
– Ejemplo, sea un disco en el que los bloques 2, 3, 4, 8, 9 y 10 están ocupados y el
resto libres, y en el que los descriptores de archivo 2, 3 y 4 están ocupados. Sus
mapas de bits de serían:
• MB de bloques: 1100011100011.... M
• MB de descriptores: 1100011...
– Fácil de implementar y sencillo de usar. Eficiente si el dispositivo no está muy lleno
o muy fragmentado.
• Listas de recursos libres: mantener enlazados en una lista todos los
recursos disponibles (bloques o descriptores de archivos)
manteniendo un apuntador al primer elemento de la lista.
– Este método no es eficiente, excepto para dispositivos muy llenos y
fragmentados
– Uso de agrupaciones.

Dso 97 Gestión de Ficheros


Ejemplo de listas de recursos

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

Bloques libres 7 11 14 16 17 18 (A)


Bloques libres 7,1 11,1 14,1 16,3 (B)

Dso 98 Gestión de Ficheros


Incremento de prestaciones

• Basados en el uso de almacenamiento intermedio de datos de


entrada/salida en memoria principal. Estos mecanismos son de dos tipos:
– Discos RAM, cuyos datos están almacenados sólo en memoria.
• Aceptan todas las operaciones de cualquier otro sistema de archivos y
son gestionados por el usuario.
• Pseudodispositivos para almacenamiento temporal o para operaciones
auxiliares del sistema operativo. Su contenido es volátil.
– Cache de datos, instaladas en secciones de memoria principal
controladas por el sistema operativo, donde se almacenan datos para
optimizar accesos posteriores.
• Se basan en la existencia de proximidad espacial y temporal en las
referencias a los datos de entrada/salida.
• Dos caches importantes dentro del servidor de archivos: cache de
nombres y cache de bloques.

Dso 99 Gestión de Ficheros


Cache de bloques

• Fundamento:
– Proximidad espacial
– Proximidad temporal
– Dos clases de flujos de E/S:
• Usan una sola vez cada bloque
• Usan repetidamente los bloques
– Acceso a disco mucho más lento que el acceso a memoria

Dso 100 Gestión de Ficheros


Cache de bloques (II)

• Estructura de datos en memoria con los bloques más frecuentemente


utilizados

Proceso Proceso

Cache

Cache

Disco Disco

- Lecturas adelantadas
- Limpieza de la cache (sync)
• Principal problema: fiabilidad del sistema de ficheros.

Dso 101 Gestión de Ficheros


Flujo datos con cache de bloques

read (fd, buffer, tamaño)

Usuario buffer

tamaño

arc hivo lógic o


(VFS)

arc hivo lógic o bloques del


(FFS) 3 4 5 6
archivo

Bloques lógic os bloques del


(Servidor 1340 1756 840 8322
dispositivo
de bloques)

Cac he de bloques
(Servidor 1340 840 1756 8322
de bloques)

1756
bloques del
Manejador de disco
disc o y
dispositivo
8322

Dso 102 Gestión de Ficheros

También podría gustarte

  • Cuestionario Inicial
    Cuestionario Inicial
    Documento4 páginas
    Cuestionario Inicial
    Raquel Gómez
    Aún no hay calificaciones
  • Posix Dso
    Posix Dso
    Documento14 páginas
    Posix Dso
    Raquel Gómez
    Aún no hay calificaciones
  • Supuesto 5
    Supuesto 5
    Documento2 páginas
    Supuesto 5
    Raquel Gómez
    Aún no hay calificaciones
  • Comparativa Algoritmos Planificacià N
    Comparativa Algoritmos Planificacià N
    Documento5 páginas
    Comparativa Algoritmos Planificacià N
    Raquel Gómez
    Aún no hay calificaciones
  • Solución Supuesto 03
    Solución Supuesto 03
    Documento2 páginas
    Solución Supuesto 03
    Raquel Gómez
    Aún no hay calificaciones
  • Fifo PMP Modelos
    Fifo PMP Modelos
    Documento4 páginas
    Fifo PMP Modelos
    Raquel Gómez
    Aún no hay calificaciones
  • GestionE S
    GestionE S
    Documento32 páginas
    GestionE S
    Raquel Gómez
    Aún no hay calificaciones
  • IVA Repercutido PDF
    IVA Repercutido PDF
    Documento1 página
    IVA Repercutido PDF
    Raquel Gómez
    Aún no hay calificaciones
  • Diario Contable PDF
    Diario Contable PDF
    Documento6 páginas
    Diario Contable PDF
    Raquel Gómez
    Aún no hay calificaciones
  • Diario Contable2014
    Diario Contable2014
    Documento1 página
    Diario Contable2014
    Raquel Gómez
    Aún no hay calificaciones
  • FIFO
    FIFO
    Documento2 páginas
    FIFO
    Raquel Gómez
    Aún no hay calificaciones
  • Diario Contable2013
    Diario Contable2013
    Documento3 páginas
    Diario Contable2013
    Raquel Gómez
    Aún no hay calificaciones
  • Supuesto 4
    Supuesto 4
    Documento5 páginas
    Supuesto 4
    Raquel Gómez
    Aún no hay calificaciones
  • Pre Curriculum
    Pre Curriculum
    Documento20 páginas
    Pre Curriculum
    Raquel Gómez
    Aún no hay calificaciones
  • Libros
    Libros
    Documento8 páginas
    Libros
    Raquel Gómez
    Aún no hay calificaciones