DSO-4a: Introducción a un sistema de ficheros (v4d)
-
Upload
alejandro-calderon-mateos -
Category
Education
-
view
74 -
download
1
Transcript of DSO-4a: Introducción a un sistema de ficheros (v4d)
Lección 4 (a)Sistemas de ficheros
Diseño de Sistemas Operativos
Grado en Ingeniería Informática
Grupo ARCOS
Universidad Carlos III de Madrid
Alejandro Calderón Mateos
Objetivos
ARCOS @ UC3M2
1. Conocimiento de las abstracciones usadas en un sistema operativo.
2. Usar herramientas de monitorización, gestión y ajuste de sistemas operativos.
3. Motivación de logro de soluciones mejores.
Alejandro Calderón Mateos
Lecturas recomendadas
ARCOS @ UC3M3
1. Carretero 2007:1. Cap.9
1. Tanenbaum 2006(en):1. Cap.5
2. Stallings 2005:1. Parte tres
3. Silberschatz 2006:1. Cap. 10, 11 y 12
Base Recomendada
Alejandro Calderón Mateos
A recordar…
ARCOS @ UC3M4
1. Estudiar la teoría asociada.� Estudiar el material asociado a la bibliografía:
las transparencias solo no son suficiente.� Pensar cuestiones con sus respuestas y justificación.
2. Repasar lo visto en clase.� Realizar el cuaderno de prácticas progresivamente.
3. Ejercitar las competencias.� Realizar las prácticas progresivamente.� Realizar todos los ejercicios posibles.
Alejandro Calderón Mateos
Contenidos
ARCOS @ UC3M5
1. Introducción
2. Abstracciones usadas
3. Software de sistema
Alejandro Calderón Mateos
Contenidos
ARCOS @ UC3M6
1. Introducción
2. Abstracciones usadas
3. Software de sistema
Sistema de ficheros
Basede datos
Dispositivos de almacenamiento
Aplicaciones
Alejandro Calderón Mateos
Introducción
� Un proceso de edición de fotografías (por ejemplo) tiene en memoria su código y datos.� Cada proceso trabaja con sus
datos, pudiendo generar nuevos datos.
7
Procesos
código
datos
pila
código
datos
pila
…
Sistemas Operativos - ARCOS
ARCOS @ UC3M
Alejandro Calderón Mateos
Introducción
� Un proceso de edición de fotografías (por ejemplo) tiene en memoria su código y datos.� Cada proceso trabaja con sus
datos, pudiendo generar nuevos datos.
� Puede haber varios procesos en memoria, siendo el sistema operativo el que reparte y organiza la memoria.
8
Procesos
código
datos
pila
código
datos
pila
…
Sistema Operativo
Sistemas Operativos - ARCOS
ARCOS @ UC3M
Alejandro Calderón Mateos
Introducción
� La memoria principal en los sistemas actuales es de pequeño tamaño, acceso a palabra y volátil.� Los datos almacenados no son
persistentes (sin electricidad).
� Solo se usa para guardar los datos accedidos por el procesador durante un periodo.
� Se puede acceder a cualquier palabra directamente.
� ¿Dónde guardar los datos?
9
Procesos
código
datos
pila
código
datos
pila
…
Sistema Operativo
Sistemas Operativos - ARCOS
ARCOS @ UC3M
Alejandro Calderón Mateos
Introducción
� La memoria secundaria es de mayor tamaño, acceso a bloque y no volátil.� Datos persistentes
� Al proceso que lo usa, a la lectura concurrente entre procesos.
� Permitirá guardar mayor cantidad de datos que en M.P.
� Organizada en bloques, lo que supone tener que gestionar el uso de estos bloques.
� Los datos se guardarán en M.S.: disco duro, flash, etc..
10
Procesos
código
datos
pila
código
datos
pila
…
Sistema Operativo
Sistemas Operativos - ARCOS
ARCOS @ UC3M
Alejandro Calderón Mateos
Introducción
� Parte del sistema operativo se encarga de repartir y organizar la M.S. � Sistema de ficheros.
� El sistema de ficheros ofrece servicios para almacenar y recuperar los datos de forma simple � Oculta los detalles de la
organización de la M.S. mediante abstracciones: ficheros, directorios, etc.
11
Procesos
código
datos
pila
código
datos
pila
…
Sistema Operativo
Res
erva
do S
.O.
…
Sistemas Operativos - ARCOS
ARCOS @ UC3M
Alejandro Calderón Mateos
Introducción
� Pero también es posible que ciertas aplicaciones organicen la M.S.:� Gestores de bases de datos.
� El sistema operativo ofrece acceso a todo el dispositivo.
� Es posible también una organización mixta � parte el sistema operativo y
parte la aplicación
12
Procesos
código
datos
pila
código
datos
pila
…
Sistema Operativo
Res
erva
do
BB
DD
…
Sistemas Operativos - ARCOS
ARCOS @ UC3M
Alejandro Calderón Mateos
Resumen
� Tenemos ambas posibilidades en ilustración que propone la SNIA:� Storage Networking
Industry Association
� http://www.snia.org
� Las aplicaciones acceden a los datos almacenados en los dispositivos de almacenamiento usando BBDD y/o Sistemas de Fich.
13
Sistema de ficheros
Basede datos
Dispositivos de almacenamiento
Aplicaciones
Sistemas Operativos - ARCOS
ARCOS @ UC3MSNIA: Storage Networking Industry Association (http://www.snia.org/)
Alejandro Calderón Mateos
Contenidos
ARCOS @ UC3M14
1. Introducción
2. Abstracciones usadas
3. Software de sistema
Sistema de ficheros
Basede datos
Dispositivos de almacenamiento
Dispositivos
Particiones/volúmenes
Sistema de ficheros
Ficheros + Directorios
Aplicaciones
Alejandro Calderón Mateos
Introducción
� ficheros, directorios, sistema de ficheros, volúmenes y dispositivos
Sistema de ficheros
Basede datos
Dispositivos de almacenamiento
Aplicaciones
Dispositivos
Particiones/volúmenes
Sistema de ficheros
Ficheros + Directorios
Visión físicaVisión lógica
Vis
ión
lógi
caV
isió
n fís
ica
Sistemas Operativos - ARCOS
ARCOS @ UC3M
Alejandro Calderón Mateos
Introducción
� Cuidado con el término “sistema de ficheros” que es usado para nombrar tanto al software gestor como para las estructuras de datos en disco
Sistema de ficheros
Basede datos
Dispositivos de almacenamiento
Aplicaciones
Dispositivos
Particiones/volúmenes
Sistema de ficheros
Ficheros + Directorios
Sistemas Operativos - ARCOS
ARCOS @ UC3M
Alejandro Calderón Mateos
Dispositivos
17
Sistema de ficheros
Basede datos
Dispositivos de almacenamiento
Aplicaciones
Dispositivos
Particiones/volúmenes
Sistema de ficheros
Ficheros + Directorios
Sistemas Operativos - ARCOS
ARCOS @ UC3M
Alejandro Calderón Mateos
Dispositivos
� Disco duro
� SSD (estado sólido)
� Sistemas ópticos
� Etc.
ARCOS @ UC3M18
Dispositivo
Particiones/volúmenes
Sistema de ficheros
Directorios
Fichero…
Alejandro Calderón Mateos
Dispositivos
� Listar los dispositivos PCI:
� Listar los dispositivos USB:
19
acaldero@arcos:~/infodso/$ lspci00:00.0 Host bridge: Intel Corporation 82Q35 Express DRAM Controller (rev 02)00:01.0 PCI bridge: Intel Corporation 82Q35 Express PCI Express Root Port (rev 02)00:03.0 Communication controller: Intel Corporation 8 2Q35 Express MEI Controller (rev 02)
00:03.2 IDE interface: Intel Corporation 82Q35 Expre ss PT IDER Controller (rev 02)00:03.3 Serial controller: Intel Corporation 82Q35 E xpress Serial KT Controller (rev 02)...
acaldero@arcos:~/infodso/$ lsusbBus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hubBus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub...
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hubBus 003 Device 002: ID 1241:1166 Belkin MI-2150 Trust MouseBus 005 Device 002: ID 0c45:600d Microdia TwinkleCam U SB camera
ARCOS @ UC3M
Alejandro Calderón Mateos
Discos
� Listado de discos/particiones:
� Listado de dispositivos por bloques (discos/particiones):
20
acaldero@arcos:~/infodso/$ cat /proc/partitionsmajor minor #blocks name
8 0 2930266584 sda8 1 19998720 sda18 2 512000000 sda2
...
ARCOS @ UC3M
acaldero@arcos:~/infodso/$ lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsda 8:0 0 2,7T 0 disk ├─sda1 8:1 0 19,1G 0 part├─sda2 8:2 0 488,3G 0 part /├─sda3 8:3 0 2T 0 part /mnt/sda3└─sda4 8:4 0 196,7G 0 part
Alejandro Calderón Mateos
Dispositivosservicios ampliados
� Dispositivo loopback
� Fichero como dispositivo de bloques
� Ejemplo de sesión de trabajo:1. [1] Crear un fichero inicial vacío (~128 MB):
dd if=/dev/zero of= /tmp/sf-01 bs=1M count=128
2. Asociar el fichero al dispositivo de loopback:sudo losetup /dev/loop1 /tmp/sf-01
3. Trabajar con el dispositivo… /dev/loop1
4. Desasociar el dispositivo:losetup –d /dev/loop1
ARCOS @ UC3M21
Dispositivo
Particiones/volúmenes
Sistema de ficheros
Directorios
Fichero…
Alejandro Calderón Mateos
Dispositivosservicios ampliados
� Dispositivo md
� Dispositivo de dispositivos
� Ejemplo de sesión de trabajo:1. [1] Crear el dispositivo md espejo:
mdadm --create --verbose /dev/md5 --level=1--raid-devices=2 /dev/loop1 /dev/loop2
2. Trabajar con el dispositivo:… /dev/md5
3. Parar el dispositivo md:mdadm --stop /dev/md5
4. Arrancar el dispositivo md:mdadm --assemble /dev/md5 /dev/loop1 /dev/loop2
ARCOS @ UC3M22
Disp.
Particiones/volúmenes
Sistema de ficheros
Directorios
Fichero…
Disp.
Alejandro Calderón Mateos
Particiones/volúmenes
23
Sistema de ficheros
Basede datos
Dispositivos de almacenamiento
Aplicaciones
Dispositivos
Particiones/volúmenes
Sistema de ficheros
Ficheros + Directorios
Sistemas Operativos - ARCOS
ARCOS @ UC3M
Alejandro Calderón Mateos
� 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.
� Un contenedor de un sistema de ficheros (o sistema gestor de datos).
Particiones/volúmenes
24
Tab
la d
e pa
rtic
ione
s
Partición primaria 1(activa)
Partición primaria 2(no activa)
Primer sector Último sector
Sistemas Operativos - ARCOS
ARCOS @ UC3M
Alejandro Calderón Mateos
Particiones/volúmenes: atributos
� Atributos típicos de una partición:� Tipo: primaria, secundaria, unidad lógica, con arranque, etc..
� Tamaño: inicio y fin de partición.
� Sistema albergado: linux, linux swap, vfat, etc.
� Identificación: número de partición (orden o UUID).
25
Tabla de particiones Partición Partición
Sistemas Operativos - ARCOS
ARCOS @ UC3M
Alejandro Calderón Mateos
Particiones/volúmenes
� Listado de discos/particiones:
26 ARCOS @ UC3M
acaldero@arcos:~/infodso/$ parted -l
Modelo: ATA ST3000DM001-1CH1 (scsi)Disco /dev/sda: 3001GBTamaño de sector (lógico/físico): 512B/4096BTabla de particiones. gpt
Numero Inicio Fin Tamaño Sistema de archivos Nombre Banderas1 1049kB 20,5GB 20,5GB bios_grub2 20,5GB 545GB 524GB ext43 545GB 2789GB 2245GB ntfs4 2789GB 3001GB 211GB ntfs msftdata
…
acaldero@arcos:~/infodso/$ blkid
/dev/sda4: LABEL="w10" UUID="0A568AE42B85AEDC" TYPE="ntfs" /dev/sda2: UUID="8de35b39-e3e8-43d8-a5b1-91cf76ca2e89" TYPE="ext4" /dev/sda3: UUID="2CB158D64D7CC0DD" TYPE="ntfs" …
Alejandro Calderón Mateos
Particiones/volúmenes particionado tradicional en PC
� Sector de arranque contiene la tabla de particiones
� Partición primaria o secundaria (con unidades lógicas)
� Antiguo y limitado: � 4 particiones en total (primarias + secundarias)
� No es posible cambiar el tamaño sin perder los datos
27
Primer sector
Sec
tor
de
arra
nque Partición
primaria 1 (activa)
Partición primaria 2
Esp
acio
sin
pa
rtic
iona
r
Último sector
Partición extendida
Partición lógica 1
Partición lógica 2
Sistemas Operativos - ARCOS
ARCOS @ UC3M
Alejandro Calderón Mateos
Particiones/volúmenes sistema basado en volúmenes
� Volúmenes lógicos (~antiguas particiones)sobre grupo de volúmenes compuestos de volúmenes físicos.
� Moderno y flexible: � Sin límite, cambio dinámico, uso de múltiples discos, etc.
28
http://www.howtoforge.com/linux_lvm
Sistemas Operativos - ARCOS
ARCOS @ UC3M
Alejandro Calderón Mateos
Particiones/volúmenes sistema basado en volúmenes
� Crear un volumen físico, un grupo de volúmenes y uno lógico:1. # pvcreate /dev/sdb1
2. # vgcreate vol_infoso /dev/sdb1
3. # lvcreate –L100M –nweb vol_infoso
4. … /dev/vol_infoso/web
29
Sistemas Operativos - ARCOS
ARCOS @ UC3M
Alejandro Calderón Mateos
Sistema de ficherosEstructuras de datos en memoria y disco
30
Sistema de ficheros
Basede datos
Dispositivos de almacenamiento
Aplicaciones
Dispositivos
Particiones/volúmenes
Sistema de ficheros
Ficheros + Directorios
Sistemas Operativos - ARCOS
ARCOS @ UC3M
Alejandro Calderón Mateos
Sectores
� El dispositivo de almacenamiento se divide en sectores, pistas y cilindros.
31
Primer sector
Últimosector
Sistemas Operativos - ARCOS
ARCOS @ UC3M
Alejandro Calderón Mateos
Bloques
� Bloque: agrupación lógica de sectores de disco (2n sectores)
� Es la unidad de transferencia mínima usado por el S.O.
� Optimizar la eficiencia de la entrada/salida de los dispositivos.
� Los usuarios pueden definir el tamaño de bloque al crear el sistema de ficheros, o usar el ofrecido por defecto en el S.O.
32
Primer bloque Último bloque
Primer sector
Últimosector
Sistemas Operativos - ARCOS
ARCOS @ UC3M
Alejandro Calderón Mateos
Bloques
� Bloque: agrupación lógica de sectores de disco (2n sectores)
� Es la unidad de transferencia mínima usado por el S.O.
� Optimizar la eficiencia de la entrada/salida de los dispositivos.
� Los usuarios pueden definir el tamaño de bloque al crear el sistema de ficheros, o usar el ofrecido por defecto en el S.O.
33
Primer bloque Último bloque
Sistemas Operativos - ARCOS
ARCOS @ UC3M
Alejandro Calderón Mateos
Tamaño de bloque
� La elección del tamaño del bloque es importante para balancear:� Ancho de banda: mayor número de sectores inicialmente, mejor ancho de banda
� Uso del disco: menor número de sectores, menos fragmentación interna
34
Tamaño de Bloque
ancho de banda
uso del disco
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
Sistemas operativos: una visión aplicada
Sistemas Operativos - ARCOS
ARCOS @ UC3M
Alejandro Calderón Mateos
Sistema de ficheros
� El sistema de archivos permite organizar la información dentro de los dispositivos de almacenamiento en un formato inteligible para el sistema operativo:� Es un conjunto coherente de metainformación y datos.
35
Primer bloque Último bloque
Metadatos Datos
Sistemas Operativos - ARCOS
ARCOS @ UC3M
Alejandro Calderón Mateos
Sistema de ficheros: atributos típicos
� Gestión de espacio usado: número de bloques totales gestionados, tamaño de bloque, número de entradas gestionadas, tamaño de la zona de metadatos…
� Gestión de espacio libre: identificación de qué bloque está libre.
� Gestión de entradas: para cada entrada (fichero o directorio) se reserva un espacio para los metadatos que la describe:� Atributos generales: fechas, permisos, identificación de usuario, etc.
� Atributos para la gestión de ocupado: bloques usados por esta entrada.
� Referencia a la entrada del directorio raíz.
36
Sistemas Operativos - ARCOS
ARCOS @ UC3M
Metadatos
Blo
que
de
arra
nque
Sup
er-
bloq
ue
Asi
gnac
ión
de r
ecur
sos 00
0
001
002
003
004
i-nodos
Datos
Alejandro Calderón Mateos
Sistema de ficheros
� Ver metadatos:
37 ARCOS @ UC3M
acaldero@arcos:~/infodso/$ dumpe2fs /dev/sda2
dumpe2fs 1.42.9 (4-Feb-2014)Filesystem volume name: <none>Last mounted on: /Filesystem UUID: 8de35b39-e3e8-43d8-a5b1-91cf76ca2e89Filesystem magic number: 0xEF53Filesystem revision #: 1 (dynamic)Filesystem features: has_journal ext_attr resize_inode dir_index filetypeneeds_recovery extent flex_bg sparse_super large_file huge_file uninit_bgdir_nlink extra_isizeFilesystem flags: signed_directory_hashDefault mount options: user_xattr aclFilesystem state: cleanErrors behavior: ContinueFilesystem OS type: LinuxInode count: 32006144Block count: 128000000Reserved block count: 6400000Free blocks: 100051682…
Alejandro Calderón Mateos
Sistema de ficheros: operaciones
� Operaciones con sistemas de ficheros:� Crear
� Montar
� Desmontar
38
Sistemas Operativos - ARCOS
ARCOS @ UC3M
Tab
la d
e pa
rtic
ione
s
Met
adat
os
(sw
ap)
Primer sector Último sector
Datos (swap) Metadatos(ext2)
Datos (ext2)
� Creación de las estructuras de datos en disco para llevar la gestión:� # mkswap -c /dev/hda1 20800
� # mkfs.ext2 -c /dev/hda2 -b 8196 123100
Alejandro Calderón Mateos
Sistema de ficheros: operaciones
� Operaciones con sistemas de ficheros:� Crear
� Montar
� Desmontar
39
umount /usr
/
/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
Sistemas operativos: una visión aplicada
Sistemas Operativos - ARCOS
ARCOS @ UC3M
Alejandro Calderón Mateos
Sistema de ficheros
� Gran cantidad de sistemas de ficheros.
40http://en.wikipedia.org/wiki/List_of_file_systems
� Para dispositivos de almacenamiento:
– minix (Minix)– ext2 (Linux)– ext3 (Linux)– ufs (BSD)– fat (DOS)– vfat (win 95)– hpfs (OS/2)– hfs (Mac OS)– ntfs (win
NT/2K/XP)– ...
� Especiales:– procfs (/proc)– devFS (/dev)– umsdos
(Unix sobre DOS)
– …
� En red:– NFS – CODA– SMBFS – NCPFS (Novell)– …
Sistemas Operativos - ARCOS
ARCOS @ UC3M
Alejandro Calderón Mateos
Sistema de ficheros + volúmenes
41
Sistema de ficheros
Basede datos
Dispositivos de almacenamiento
Aplicaciones
Dispositivos
Particiones/volúmenes
Sistema de ficheros
Ficheros + Directorios
Sistemas Operativos - ARCOS
ARCOS @ UC3M
Alejandro Calderón Mateos
Sistemas alternativossistema integrado zfs (antigua Sun)
� Simplificación en el uso de dispositivo, volúmenes y sistemas de ficheros mediante la integración de los mismos:� zpool create arcos /home/ocean/disk1
� zfs create arcos/alex
ARCOS @ UC3M42
Alejandro Calderón Mateos
Sistemas alternativosThe Birth of ZFS by Jeff Bonwick
ARCOS @ UC3M43 https://www.youtube.com/watch?v=dcV2PaMTAJ4
Alejandro Calderón Mateos
Ejemplo: volúmenes + sistema de fichero
� Simular un disco con un fichero:1. dd if=/dev/zero of=/tmp/disk1 bs=1G count=1
2. losetup /dev/loop2 /tmp/disk1
� Crear un volumen físico, un grupo de volúmenes y uno lógico:1. pvcreate /dev/loop2
2. vgcreate vol_dso /dev/loop2
3. lvcreate –L100M –ntest vol_dso
� Crear un sistema de ficheros y montar en un directorio:1. mkfs –t ext3 /dev/vol_dso/test
2. mount /dev/vol_dso/test /mnt
3. df –mh
44
Sistemas Operativos - ARCOS
ARCOS @ UC3M
Alejandro Calderón Mateos
Ejemplo: volúmenes + sistema de fichero
� Cambiar de tamaño el sistema de ficheros:1. umount /mnt
2. fsck –f /dev/vol_dso/test
3. resize2fs /dev/vol_dso/test 50M
� Cambiar el tamaño del volumen:1. lvreduce -L -50m /dev/vol_dso/test
2. mount /dev/vol_dso/test /mnt
3. df –mh
45
Sistemas Operativos - ARCOS
ARCOS @ UC3M
Alejandro Calderón Mateos
Ejemplo: sistema integrado btrfs
� Simular discos con un ficheros:1. dd if=/dev/zero of=/tmp/disk3 bs=1G count=1
2. losetup /dev/loop3 /tmp/disk3
3. dd if=/dev/zero of=/tmp/disk3 bs=1G count=1
4. losetup /dev/loop4 /tmp/disk3
� Crear un volumen/sistema btrfs y montarlo:1. mkfs.btrfs /dev/loop3
2. mount /dev/loop3 /btrfs
3. btrfs filesystem show /dev/loop3
46
Sistemas Operativos - ARCOS
ARCOS @ UC3Mhttp://www.slideshare.net/anu-bhaskar/introducing-btrfs
Alejandro Calderón Mateos
Ejemplo: sistema integrado btrfs
� Cambiar de tamaño:1. btrfs filesystem resize -10m /btrfs/
2. btrfs filesystem show /dev/loop3
� Añadir un dispositivo:1. btrfs device add /dev/loop4 /btrfs
2. btrfs filesystem balance /btrfs/
3. btrfs filesystem show /dev/loop3
� Crear volumen (~directorio que puede ser montado como raíz):1. cd /btrfs/
2. btrfs subvolume create vol_infodso
3. btrfs subvolume list /btrfs/
47
Sistemas Operativos - ARCOS
ARCOS @ UC3Mhttp://www.funtoo.org/BTRFS_Fun
Alejandro Calderón Mateos
Fichero o archivo
48
Sistema de ficheros
Basede datos
Dispositivos de almacenamiento
Aplicaciones
Dispositivos
Particiones/volúmenes
Sistema de ficheros
Ficheros + Directorios
Sistemas Operativos - ARCOS
ARCOS @ UC3M
Alejandro Calderón Mateos
Ficheros (archivos)
� Conjunto de información relacionada que ha sido definida por su creador.
� Diferentes tipos de información:
ARCOS @ UC3M49
Alejandro Calderón Mateos
Ficheros (archivos)
� Habitualmente el contenido es representado poruna secuencia o tira de bytes:
ARCOS @ UC3M50
posición L/E
Alejandro Calderón Mateos
Ficheros (archivos)
� Traducción a binario y almacenamiento como una secuencia o tira de bytes:
ARCOS @ UC3M51
posición L/E
Alejandro Calderón Mateos
Ficheros (archivos): interfaz
� Interfaz genérico para acceder a la información:� descriptor ← open (nombre, flags, modo)
� close (descriptor)
� read (descriptor, puntero, tamaño)
� write (descriptor, puntero, tamaño)
� lseek (descriptor, desplazamiento, origen)
� ioctl (descriptor, operación, puntero_a_parámetros)
ARCOS @ UC3M52
posición L/E
Alejandro Calderón Mateos
Ficheros (archivos): interfaz POSIX
53
#include <unistd.h>#include <stdlib.h>#include <stdio.h>#include <string.h>#include <fcntl.h>
int main ( int argc, char *argv[] ){int fd1 ;char str1[10] ;int nb ;
fd1 = open ("/tmp/txt1",O_CREAT|O_RDWR, S_IRWXU);
if ( -1 == fd1) {perror("open:"); exit(-1);
}
strcpy(str1,"hola");nb = write (fd1,str1,strlen(str1));printf(" bytes escritos = %d\n",nb);
close (fd1);return (0) ;
}
escritura#include <unistd.h>#include <stdlib.h>#include <stdio.h>#include <string.h>#include <fcntl.h>
int main ( int argc, char *argv[] ){int fd1 ;char str1[10] ;int nb, i ;
fd1 = open ("/tmp/txt1", O_RDONLY);if ( -1 == fd1) {
perror("open:"); exit(-1);
}
i=0;do {
nb = read (fd1,&(str1[i]),1); i++;} while (nb != 0) ;str1[i] = '\0';printf(“%s\n",str1);
close (fd1);return (0);
}
lectura
ARCOS @ UC3M
Alejandro Calderón Mateos
� Información de un archivo:
Ficheros (archivos)
ARCOS @ UC3M54
� Datos� Información
que almacena el archivo.
� Metadatos� Información
sobre el archivo.
� Distintos atributos
Alejandro Calderón Mateos
� Información de un archivo:
Ficheros (archivos)
ARCOS @ UC3M55
� Datos� Información
que almacena el archivo.
� Metadatos� Información
sobre el archivo.
� Distintos atributos
Alejandro Calderón Mateos
� Información de un archivo:
Ficheros (archivos)
ARCOS @ UC3M56
� Datos� Información
que almacena el archivo.
� Metadatos� Información
sobre el archivo.
� Distintos atributos:� Nombre y tipo
� Localización y tamaño
� Protección
� Fechas (creación, …)
� Etc.
Alejandro Calderón Mateos
Directorios
57
Sistema de ficheros
Basede datos
Dispositivos de almacenamiento
Aplicaciones
Dispositivos
Particiones/volúmenes
Sistema de ficheros
Ficheros + Directorios
Sistemas Operativos - ARCOS
ARCOS @ UC3M
Alejandro Calderón Mateos
Directorios
� Estructura de datos que permite agrupar un conjunto de ficheros según el criterio del usuario.
ARCOS @ UC3M58
Alejandro Calderón Mateos
Directorios
� Organizan y proporcionan información sobre la estructuración de los sistemas de archivos:
59
/
foto.jpg x.exe nota.txt
alex ana
/
boot lib home
alex ana
/
boot lib home users
� De un nivel� 1 dir con n ficheros
� 1 fichero con 1 dir.
� Jerárquico (árbol)� 1 dir con n entradas
� 1 entrada con 1 dir.
� Árbol a-cíclico� 1 dir. con n entradas
� 1 entrada con n dir.
pic.jpg x.exe
Sistemas Operativos - ARCOS
ARCOS @ UC3M
Alejandro Calderón Mateos
Directorios
� Organizan y proporcionan información sobre la estructuración de los sistemas de archivos:
60
/
foto.jpg x.exe nota.txt
alex ana
/
boot lib home
alex ana
/
boot lib home users
� De un nivel� 1 dir con n ficheros
� 1 fichero con 1 dir.
� Jerárquico (árbol)� 1 dir con n entradas
� 1 entrada con 1 dir.
� Árbol a-cíclico� 1 dir. con n entradas
� 1 entrada con n dir.
pic.jpg x.exe
Sistemas Operativos - ARCOS
ARCOS @ UC3M
Necesario llevar la pista del número de referencias (por el borrado):• Lista de punteros en cadena• Contador de referencias
Alejandro Calderón Mateos
Directorios
� Nombres jerárquicos para la identificación.
� Tipo de nombrado de directorio:� 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: (estando en /users/) alex/correo.txt
� Relativos al directorio de trabajo o actual: basado en el directorio en el que se encuentre el usuario (directorio de trabajo)
� Directorios especiales:
� Directorio actual o directorio de trabajo: .
� Directorio padre: ..
� Directorio base del usuario: $HOME
ARCOS @ UC3M61
alex ana
/
boot lib home users
Alejandro Calderón Mateos
Directorios: interfaz
� Interfaz genérica para gestión de directorios:� mkdir (nombre,modo)
� rmdir (nombre)
� chdir (nombre)
� getcwd (nombre, tamaño_nombre)
� descriptor ← opendir (nombre)
� closedir (descriptor)
� estructura ← readdir (descriptor)
� rewindir (descriptor)
� unlink (nombre)
� rename (antiguo_nombre, nuevo_nombre)
62
Sistemas Operativos - ARCOS
alex ana
/
boot lib home users
ARCOS @ UC3M
Alejandro Calderón Mateos
Directorios: interfaz POSIX
63
#include <unistd.h>#include <sys/types.h>#include <dirent.h>#include <stdio.h>
int main ( int argc, char *argv[] ){DIR *dir1 ;struct dirent *dp ;char nombre[256] ; int ret ;
ret = chdir ("/tmp/") ;if (ret < 0) exit(-1) ;
getcwd (nombre, 256);printf("%s\n",nombre);
dir1 = opendir (nombre);if (NULL == dir1) exit(-1) ;while ( (dp = readdir (dir1)) != NULL) {
printf(“%/%s\n",nombre,dp->d_name);}closedir (dir1);
return (0) ;}
lectura de /tmp Sistemas Operativos - ARCOS
Cambiar de directorio de trabajo
Imprimir el directorio actual de trabajo
Abrir un directorio para trabajar con él
Leer entradas del directorio e imprimir el nombre de cada entrada
Cerrar el directorio de trabajo
ARCOS @ UC3M
Alejandro Calderón Mateos
� Información de un directorio:
� Datos� “fichero especial” que contiene un listado de entradas.
� Metadatos� Información sobre el directorio.
� Distintos atributos sobre el directorio
Directorios
ARCOS @ UC3M64
fichero | directorio
Alejandro Calderón Mateos
� Información de un directorio:
� Datos� “fichero especial” que contiene un listado de entradas.
� Metadatos� Información sobre el directorio.
� Distintos atributos sobre el directorio
Directorios
ARCOS @ UC3M65
fichero | directorio
o Nombre
o Localización y tamaño
o Protección
o Fechas (creación, …)
o Etc.
Alejandro Calderón Mateos
Contenidos
ARCOS @ UC3M66
1. Introducción
2. Abstracciones usadas
3. Software de sistema
Sistema de ficheros
Basede datos
Dispositivos de almacenamiento
Dispositivos
Particiones/volúmenes
Sistema de ficheros
Ficheros + Directorios
Aplicaciones
Benchmarks
Consistencia
Fiabilidad
Alejandro Calderón Mateos
Software de sistema
67 ARCOS @ UC3M
Alejandro Calderón Mateos
Sistema de ficheros
Basede datos
Dispositivos de almacenamiento
Dispositivos
Particiones/volúmenes
Sistema de ficheros
Ficheros + Directorios
Aplicaciones
Benchmarks
Consistencia
Fiabilidad
Alejandro Calderón Mateos
Medición de prestaciones
� Necesario conocer el sistema de ficheros más adecuado para una cierta labor (con una carga de trabajo más específica).
� Solución:� Uso de software (benchmarks) que permiten medir las prestaciones
del sistema de ficheros.� Diseñados para medir diversos aspectos: latencia, ancho de banda,
número de ficheros procesados por unidad de tiempo, etc.
� Dos aspectos a evaluar:
� Gestión de metadatos.
� Gestión de los datos.
ARCOS @ UC3M68
Alejandro Calderón Mateos
Medición de prestacionesDatos
69 http://www.phoronix.com/scan.php?page=article&item=ubuntu_1204_fs&num=1 ARCOS @ UC3M
� Ejemplos:� iozone, postmark, etc.
Alejandro Calderón Mateos
Medición de prestacionesMetadatos
70 ARCOS @ UC3M
� Ejemplos:� fdtree, mdtest, etc.
http://linuxgazette.net/122/piszcz.html
http://www.linux-mag.com/id/7682/
Alejandro Calderón Mateos
Mejora de prestaciones
� Defragmentador:� Defragmentación de bloques de un fichero, reorganización
según el órden de carga en memoria, etc.
� Ej.: defrag en Windows� Ej.: defragfs en Linux
71 ARCOS @ UC3M
Alejandro Calderón Mateos
Consistencia del sistema de archivos
� Fallos en software pueden que la información (y metadatos) quede inconsistente.
� Solución:� Disponer de herramientas que revisen el sistema de archivos y
permita reparar los errores encontrados.
� Dos aspectos importantes a revisar:
� Comprobar que la estructura física del sistema de archivos es coherente.
� Verificar que la estructura lógica del sistema de archivos es correcta.
ARCOS @ UC3M72
Alejandro Calderón Mateos
Consistencia del sistema de archivosestructura física
� Lógica del controlador: � Se realizan pruebas
del estado del disco-controlador � Ej.: S.M.A.R.T.
73
� Superficie del disco:� Se lee/escribe los bloques de disco
uno a uno para comprobar problemas en la superficie de parte del disco.
� Ej.: si lo leído es diferente a lo escrito
Sistemas Operativos - ARCOS
ARCOS @ UC3M
Alejandro Calderón Mateos
Consistencia del sistema de archivosestructura lógica
� Estructuras en disco: � Comprobar que los metadatos en disco son coherentes
para la partición, directorios y archivos almacenados� Ej.: fsck en Linux o scandisk en Windows
74
Sistemas Operativos - ARCOS
ARCOS @ UC3M
Alejandro Calderón Mateos
Fiabilidad en sistema de archivos
� Fallos hardware y software pueden provocar fallos en unvolumen (posible pérdida de información).
� Soluciones:
� Detección:� Controladores que tratan con sectores con fallos
� Redundancia:� Discos con información redundante (RAID)
� Backups (copias de respaldo)� Backup completo, incremental o diferencial� En discos, cinta o remoto
ARCOS @ UC3M75
Alejandro Calderón Mateos
Fiabilidad en sistema de archivos
� Fallos hardware y software pueden provocar fallos en unvolumen (posible pérdida de información).
� Soluciones:
� Detección:� Controladores que tratan con sectores con fallos
� Redundancia:� Discos con información redundante (RAID)
� Backups (copias de respaldo)� Backup completo, incremental o diferencial� En discos, cinta o remoto
ARCOS @ UC3M76
Alejandro Calderón Mateos
Redundancia con replicación
ARCOS @ UC3M77 Sistemas operativos: una visión aplicada
A
B
B
A
Alejandro Calderón Mateos
Redundancia con paridad
ARCOS @ UC3M78 Sistemas operativos: una visión aplicada
b0Paridad 012b1 b2
Disco 0 Disco 1 Disco 2 Disco 3
b3 …
Alejandro Calderón Mateos
Fiabilidad en sistema de archivos
� Fallos hardware y software pueden provocar fallos en unvolumen (posible pérdida de información).
� Soluciones:
� Detección:� Controladores que tratan con sectores con fallos
� Redundancia:� Discos con información redundante (RAID)
� Backups (copias de respaldo)� Backup completo, incremental o diferencial� En discos, cinta o remoto
ARCOS @ UC3M79
Alejandro Calderón Mateos
Backup (copia de seguridad)¿Dónde?
� Lugar:� Distante del sistema principal
� Protegido del agua, fuego, etc.� Armarios ignífugos
� Medio:� Disco duro
� V: capacidad y precio, I: delicado
� Cinta � V: capacidad y precio, I: lentitud
ARCOS @ UC3M80
Alejandro Calderón Mateos
Backup (copia de seguridad)¿Cómo?
� Completo (full backup): copiar todo el contenido del sistema de ficheros.
� Diferencial (differential backup):contiene todos los ficheros que han sido modificados desde la última copia de seguridad completa.
� Incremental (incremental backup): contiene todos los ficheros que han sido modificados desde la última copia de seguridad, ya sea completa o diferencial
ARCOS @ UC3M81
Alejandro Calderón Mateos
Backup (copia de seguridad)¿Cuándo?
� En parada (Off-line)� La copia de seguridad se realiza en los periodos de tiempo
en los que no se utilizan los datos del sistema.
� En línea (On-line):� La copia de seguridad se realiza mientras se utiliza el sistema
� Uso de técnicas que eviten problemas de consistencia:� Snapshots
copia solo lectura del estado del sistema de ficheros� Copy-on-write
escrituras después de snapshot se realizan en copias
ARCOS @ UC3M82
Alejandro Calderón Mateos
Backup (copia de seguridad)MacOS: Time Machine
ARCOS @ UC3M83
http://www.reghardware.com/2007/11/08/review_leopard_pt2/page2.html
http://www.genbeta.com/sistemas-operativos/primeras-imagenes-de-history-vault-el-time-machine-de-windows-8
Lección 4 (a)Sistemas de ficheros
Diseño de Sistemas Operativos
Grado en Ingeniería Informática
Grupo ARCOS
Universidad Carlos III de Madrid