La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Contenido Visión del usuario. Estructura del sistema de ficheros.

Presentaciones similares


Presentación del tema: "Contenido Visión del usuario. Estructura del sistema de ficheros."— Transcripción de la presentación:

0 Sistemas Operativos Tema 4 Ficheros y Directorios

1 Contenido Visión del usuario. Estructura del sistema de ficheros.
Directorios. Enlaces. Llamadas al sistema. Estructura del sistema de ficheros. Dispositivo lógico frente a dispositivo físico. Asignación contigua. Asignación enlazada. Asignación indexada. Gestión de espacio libre. Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

2 Visión de usuario Archivos y directorios.
Archivo: conjunto de información estructurada según las necesidades del usuario. Formalmente: Unidad de almacenamiento lógico no volátil que agrupa un conjunto de información relacionada entre si bajo un mismo nombre. Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

3 Tipos de archivos ASCII (imprimibles)
Binarios: ejecutables, imágenes... Archivos especiales: dispositivos físicos (en UNIX y Linux): imprimibles, de disco y cintas, etc.... Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

4 Estos atributos son ligeramente distintos según SSOO.
Nombre: identificador para el usuario Identificador único: número entero Tipo de archivo Mapa del archivo: posición real del archivo en un dispositivo Protección: permisos del archivo Tamaño del archivo Información temporal: creación, acceso, modificación... Información de control del archivo: oculto, de sistema, normal, directorio... Estos atributos son ligeramente distintos según SSOO. Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

5 Estructura de un archivo
La información de un archivo, sus atributos, se agrupa en una estructura de datos: Nodo-i (UNIX y Linux): atributos y enlaces a los bloques de datos. Tipo – Nombres – Propietario – Grupo – tamaño – Creación – último acceso – última modificación – punteros a bloque – punteros indirectos. Registro MFT (Windows NT): enlaces a grupos de bloques de datos, permite guardar hasta 1.5 Kb de datos del archivo en el mismo registro. Cabecera – Atributos – Tamaño – Nombre – Seguridad – Datos – Vclusters (Punteros a bloques de datos) Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

6 Contenido Visión del usuario. Directorios.
Ficheros. Directorios. Enlaces. Llamadas al sistema. Estructura del sistema de ficheros. Dispositivo lógico frente a dispositivo físico. Asignación contigua. Asignación enlazada. Asignación indexada. Gestión de espacio libre. Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

7 Directorio Directorio: objeto que relaciona de forma univoca el nombre de usuario de un archivo y el descriptor interno del mismo Cada entrada de un directorio es un fichero o directorio. Pero no se guarda la estructura completa con todos los atributos, sino el identificador del descriptor de archivo. En Unix contiene el nombre del fichero y el identificador del descriptor del fichero (número de nodo-i). Usar sólo el identificador del archivo: La entrada de directorio no se ve afectada por los cambios de atributos del archivo. Los nodos-i pueden representar a su vez directorios o ficheros, con lo que se pueden crear esquemas jerárquicos con facilidad. Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

8 Directorios en Unix Ventajas:
La entrada de directorio no se ve afectada por los cambios de atributos del archivo. Los nodos-i pueden representar a su vez directorios o archivos, con lo que se pueden construir esquemas de nombre jerárquicos de forma sencilla. La longitud de los nombres no está predeterminada, pudiendo ser variada hasta un límite ( 4096 caracteres en versiones actuales). La interpretación de nombres es regular, Facilita la creación de sinónimos para el nombre del archivo. Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

9 Sistemas de ficheros Un sistema de ficheros es un directorio raíz y todos los ficheros que “cuelgan” de él. Se habla de árbol de directorios, cuando en realidad los sistemas modernos permiten la creación de grafos acíclicos. Un sistema de ficheros puede montarse en otro sistema de ficheros, como si fuese un directorio más Servicios: crear, borrar, abrir, leer, escribir, cambiar apuntador de posición, manipulación de atributos. Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

10 Nombres jerárquicos Los nombres pueden ser relativos al directorio actual o Absolutos, desde el directorio raíz del sistema de ficheros. Unix: Árbol de directorios único. Windows: Se genera un árbol a partir de cada dispositivo de memoria o partición. Montaje en Unix: mount /dev/hda1 /mnt/windows umount /mnt/windows Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

11 Contenido Visión del usuario. Enlaces.
Ficheros. Directorios. Enlaces. Llamadas al sistema. Estructura del sistema de ficheros. Dispositivo lógico frente a dispositivo físico. Asignación contigua. Asignación enlazada. Asignación indexada. Gestión de espacio libre. Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

12 Enlaces Un enlace es una referencia, un vínculo, a un fichero o directorio que esta presente en otro directorio y/o dispositivo. Cualquier operación sobre ficheros se puede hacer también sobre un enlace a dicho fichero, pero si se intenta borrar el fichero sólo se borra el enlace. Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

13 Enlaces Dos tipos de enlaces:
Lógico: el nombre del enlace es un alias del nombre real del fichero. Físico: se copia el nodo-i del fichero con otro nombre. Un atributo especial debe indicar cuantos enlaces físicos hay sobre el fichero. Diferencia práctica: para borrar un fichero hay que borrar todos los enlaces físicos. Los lógicos se pueden ignorar. Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

14 Contenido Visión del usuario. Llamadas al sistema.
Ficheros. Directorios. Enlaces. Llamadas al sistema. Estructura del sistema de ficheros. Dispositivo lógico frente a dispositivo físico. Asignación contigua. Asignación enlazada. Asignación indexada. Gestión de espacio libre. Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

15 Para la gestión de ficheros
creat / open lseek rename unlink link symlink stat / fstat / lstat Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

16 creat/open open, creat - abren y posiblemente crean un fichero o dispositivo #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> int open(const char *camino, int flags); int open(const char *camino, int flags, mode_t modo); int creat(const char *camino, mode_t modo); Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

17 lseek y rename lseek - reposiciona el puntero de lectura/escritura de un fichero #include <sys/types.h> #include <unistd.h> off_t lseek(int fildes, off_t offset, int whence); rename - cambia el nombre y/o posición de un fichero #include <stdio.h> int rename(const char *oldpath, const char *newpath); Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

18 Unlink y link unlink - borra un nombre y si era el último enlace a ese fichero, el fichero al que hace referencia #include <unistd.h> int unlink(const char *pathname); link crea un nuevo enlace (también conocido como enlace físico) a un fichero existente int link(const char *oldpath, const char *newpath); Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

19 symlink #include <unistd.h>
symlink - construye un nombre nuevo para un fichero (el antiguo no se pierde) #include <unistd.h> int symlink(const char *caminoviejo, const char *caminonuevo); Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

20 stat stat, fstat, lstat - obtiene el estado de un fichero
#include <sys/stat.h> #include <unistd.h> int stat(const char *file_name, struct stat *buf); int fstat(int filedes, struct stat *buf); int lstat(const char *file_name, struct stat *buf); Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

21 Estructura stat struct stat { dev_t st_dev; /* dispositivo */
ino_t st_ino; /* inodo */ mode_t st_mode; /* protección */ nlink_t st_nlink; /* número de enlaces físicos */ uid_t st_uid; /* ID del usuario propietario */ gid_t st_gid; /* ID del grupo propietario */ dev_t st_rdev; /* tipo dispositivo (si es dispositivo inodo) */ off_t st_size; /* tamaño total, en bytes */ unsigned long st_blksize; /* tamaño de bloque */ unsigned long st_blocks; /* número de bloques asignados */ time_t st_atime; /* hora último acceso */ time_t st_mtime; /* hora última modificación */ time_t st_ctime; /* hora último cambio */ }; Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

22 Ejemplo de acceso a stat
#include <stdio.h> #include <time.h> #include <sys/stat.h> #include <unistd.h> /* Muestra algunos valores de "stat" sobre un fichero dado */ int main(int argc, char *argv[]) { struct stat datos; if (argc!=2) { printf("Debe especificar un fichero o directorio\n"); exit(1); } if (stat(argv[1],&datos)!=0) { printf("Error al ejecutar stat\n"); Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

23 printf("Numero de enlaces fisicos: %d\n",datos.st_nlink);
printf("Proteccion y tipo fichero: %ho\n",datos.st_mode); printf("Numero de enlaces fisicos: %d\n",datos.st_nlink); printf("Propietario : %d\n",datos.st_uid); printf("Grupo : %d\n",datos.st_gid); printf("Tamaño total en bytes : %ld\n",datos.st_size); printf("Numero de bloques : %ld\n",datos.st_blocks); printf("Tamaño de bloque para E/S: %ld\n",datos.st_blksize); printf("Ultimo acceso : %ld\n",datos.st_atime); printf("Ultima modificacion : %ld\n",datos.st_mtime); printf("Ultimo cambio : %ld\n",datos.st_ctime); printf("Es fichero regular? : %d\n",S_ISREG(datos.st_mode)); printf("Es un directorio? : %d\n",S_ISDIR(datos.st_mode)); printf("Es enlace simbolico? : %d\n",S_ISLNK(datos.st_mode)); printf("Segundos desde el ultimo acceso: %ld\n",time(NULL)-datos.st_atime); exit(0); } Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

24 Para la gestión de directorios
mkdir rmdir chdir getcwd opendir readdir closedir Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

25 mkdir y rmdir mkdir - crea un directorio rmdir - borra un directorio
#include <sys/stat.h> #include <sys/types.h> #include <fcntl.h> #include <unistd.h> int mkdir(const char *pathname, mode_t mode); rmdir - borra un directorio int rmdir(const char *pathname); Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

26 chdir y getcwd chdir, fchdir - cambia el directorio de trabajo
#include <unistd.h> int chdir(const char *path); int fchdir(int fd); getcwd, get_current_dir_name, getwd - Obtienen la dirección absoluta del directorio de trabajo en curso char *getcwd(char *buf, size_t tam); char *get_current_dir_name(void); char *getwd(char *buf); Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

27 opendir y readdir opendir - abre un directorio
#include <sys/types.h> #include <dirent.h> DIR *opendir(const char *nombre); readdir - lee un directorio: devuelve un puntero a una estructura dirent que representa la siguiente entrada de directorio en el flujo de directorio al que apunte dir. struct dirent *readdir(DIR *dir); Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

28 closedir closedir - cierra un directorio #include <sys/types.h>
#include <dirent.h> int closedir(DIR *dir); Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

29 Ejemplo de recorrido de directorio
#include <stdio.h> #include <stdlib.h> #include <sys/stat.h> #include <dirent.h> int main(int argc, char *argv[]) { DIR *d; struct dirent *entrada; struct stat datos; char * ruta; if (argc!=2) { printf("Debe especificar un directorio\n"); exit(1); } Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

30 printf("Error al abrir el directorio\n"); exit(1); }
d= opendir(argv[1]); if (d==NULL) { printf("Error al abrir el directorio\n"); exit(1); } entrada= readdir(d); while (entrada!=NULL) { ruta= malloc(strlen(argv[1])+strlen(entrada->d_name)+2); sprintf(ruta,"%s/%s",argv[1],entrada->d_name); stat(ruta, &datos); printf("%s (%ld)\n",entrada->d_name, datos.st_size); free(ruta); closedir(d); exit(0); Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

31 Ejemplo recorrido de árbol de directorios
#include <stdio.h> #include <stdlib.h> #include <sys/stat.h> #include <dirent.h> #include <unistd.h> void recorre(char *nombredir) { DIR *d; struct dirent *entrada; struct stat datos; char *ruta; printf("empiezo a recorrer %s\n",nombredir); d= opendir(nombredir); if (d==NULL) { printf("Error al abrir el directorio\n"); exit(1); } Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

32 entrada= readdir(d); while (entrada!=NULL) { if (strcmp(entrada->d_name,".") && strcmp(entrada->d_name,"..")) { /* Evita ciclos infinitos */ ruta= malloc(strlen(nombredir)+strlen(entrada->d_name)+2); sprintf(ruta,"%s/%s",nombredir,entrada->d_name); stat(ruta,&datos); if (S_ISDIR(datos.st_mode)) /* Es un directorio */ recorre(ruta); printf("%s/%s (%ld)\n",nombredir,entrada->d_name,datos.st_size); free(ruta); } closedir(d); int main(int argc, char *argv[]) { if (argc!=2) { printf("Debe especificar un directorio\n"); exit(1); recorre(argv[1]); exit(0); Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

33 Contenido Visión del usuario. Estructura del sistema de ficheros.
Directorios. Enlaces. Llamadas al sistema. Estructura del sistema de ficheros. Dispositivo lógico frente a dispositivo físico. Asignación contigua. Asignación enlazada. Asignación indexada. Gestión de espacio libre. Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

34 Dispositivo lógico/físico
La visión lógica no se corresponde con la realidad física. Lógica: conjunto de datos secuénciales, unidos en un vector. Física: datos repartidos en bloques de datos dentro de un dispositivo. El servidor de archivos crea un sistema de archivos virtual. Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

35 Métodos de acceso Métodos de acceso:
Secuencial: lectura de bytes en orden desde el principio. No permite saltos de lectura. Directo o Aleatorio: el fichero se considera como un conjunto de registros, cada uno de los cuales puede ser un byte. Movimientos entre registros. El SO establece una relación entre los números de registro relativos con números absolutos del dispositivo de almacenamiento. Semántica de coutilización: como permitir el acceso a un fichero por varios procesos a la vez. En Unix cualquier lectura ve los efectos de las escrituras de los datos. Cada vez que se modifica se genera un versión. Sección crítica. Lectores-Escritores. Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

36 Dispositivo físico Sectores de datos dentro de un dispositivo.
Bloque: agrupación lógica de sectores de disco y unidad de transferencia mínima de archivos. Agrupación: conjunto de bloques que se gestionan como una unidad lógica de gestión de almacenamiento. Problema: la existencia de fragmentación interna. Los ficheros se reparten por diversos bloques. No distingue tipos de ficheros (ASCII, binarios…). El S.O. crea una ficción para el usuario, el sistema de archivos virtual. Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

37 Dispositivos Dispositivos magnéticos: discos duros, cintas magnéticas, etc… Dispositivos magnético-ópticos: CDs, DVDs, … Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

38 Disco duro abierto Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

39 Sistemas de ficheros Los discos se dividen en particiones o volúmenes:
Porción de un disco a la cual se dota de identidad propia y puede ser manipulada por el SO como una entidad lógica independiente. Existe un bloque de carga o boot que contiene el programa almacenado en la ROM (BIOS). Sobre estas particiones se instalan los sistemas de archivos. Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

40 Estructura del sistema de archivos
Metainformación del sistema: describe el sistema de archivos y sus componentes. Superbloques: describen el sistema de archivos, donde están y cuanto ocupan. Instalación de la tabla de superbloques. Información de gestión de espacio: dos mapas de espacio: mapa de bloques de datos libres y descripción física de los archivos (nodos-i). Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

41 Diversas estructuras MS-DOS UNIX WINDOWS-NT Boot 2 copias FAT
Dir. Raíz Datos Boot Super Bloque Mapa bits i-nodos Datos Boot Super Bloque Mapa bits Descriptores físicos archivos Datos Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

42 Representación del espacio libre
Mapas de bits. Listas de recursos libres. Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

43 Mapas de bits Fácil de implementar y sencillo de usar.
Si el dispositivo está muy lleno o fragmentado es difícil encontrar zonas libres. Si el dispositivo es muy grande (+100Gb), el mapa de bits también lo es, lo cual ralentiza las búsquedas. Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

44 Listas de recursos El sistema mantiene una lista de recursos libres, con el primer puntero siempre en memoria, para acelerar las búsquedas. Un opción es que cada elemento consta de la posición y cuantos bloques seguidos están vacíos. 7,11 1,1 14,1 16, , ,1 Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

45 Asignación de sectores
Asignación contigua. Un fichero está almacenado en bloques contiguos. Asignación no contigua: Asignación enlazada: un bloque lleva al siguiente. Asignación indexada: el nodo-i de cada fichero tiene enlaces a todos los bloques. Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

46 Asignación de sectores
Siempre hay espacio en disco desperdiciado: asignado a algún fichero pero que no utiliza. Generalmente un fichero no tendrá justo el tamaño de un múltiplo del tamaño del bloque (fragmentación interna). Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

47 Asignación contigua La más sencilla: se sabe dónde se empieza el fichero y dónde acaba (con una marca especial, por ejemplo). ¿Cómo pueden cambiar de tamaño los ficheros? Reordenación de todos los sectores del dispositivo. Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

48 Asignación enlazada Cada sector apunta al siguiente: un fichero se define por su primer sector. Permite las variaciones de tamaño. Obliga al acceso secuencial. Si se pierde uno de los enlaces se pierde todo el fichero. Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

49 Asignación enlazada Mejoras: se eliminan los apuntadores de los bloques del archivo y se almacenan en un índice enlazado gestionado por el servidor de archivos: tabla especial, la FAT (File Allocation Table). FAT muy grande si el dispositivo es grande. Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

50 FAT Archivo A: 6, 8, 4, 2 Archivo B: 5, 9, 12 Archivo C: 10, 3, 13 x
EOF 13 2 9 8 FREE 4 12 3 BAD Archivo A: 6, 8, 4, 2 Archivo B: 5, 9, 12 Archivo C: 10, 3, 13 Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

51 Problema ¿Cuánto ocuparía la FAT en un sistema FAT32 de un disco duro de 4 Gbytes, con 4Kbytes como tamaño de bloque? Solución: 4 GB / 4 KB = 1 M entradas 32 bits / 8 = 4 bytes (lo que ocupa la dirección de un bloque) 1 M entradas * 4 bytes = 4MB Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

52 Problema Disponemos de un disco duro de 20 Gbytes de capacidad. Hay establecida sobre él una partición que contiene un sistema de archivos del tipo FAT32 en el que cada agrupamiento (cluster) consta de 16 sectores de 512 bytes cada uno. ¿Cuántos sectores del disco se necesitarían para almacenar cada copia de la FAT? Razona tu respuesta. Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

53 Solución Tamaño de la FAT: 20 Gbytes / 512 bytes =
20,971,520 bytes / 512 bytes = sectores 40960 sectores / 16 = 2560 clusters 32 bits / 8 bits = 4 bytes 2560 * 4 bytes = bytes 10240 / 512 = 20 bloques para cada copia de la FAT32 Tal vez esta mal, revisarlo… Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

54 Asignación indexada Existen bloques con índices (enlaces) a todos los bloques del fichero. Acceso rápido y no secuencial. La utilización de índices dobles, triples, etc… permite ficheros de gran tamaño (índices multinivel). Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

55 Mapa de bloques en un nodo-i
Información del archivo Dir. 10 bloques de datos Indirecto simple Indirecto doble Indirecto triple 820 120 901 12 567 Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

56 Algunos números Tamaño del bloque de datos = Tamaño del bloque de enlaces Tamaño bloque / Tamaño dirección de un bloque = Número de enlaces por bloque Número enlaces/bloque * Tamaño bloque = Tamaño máximo del fichero Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

57 Problema Considera un sistema de ficheros basado en i-nodos, en el que cada i-nodo contiene 3 índices indirectos, 2 indirectos simples y 1 indirecto doble. Si el tamaño de un bloque de datos es de 4 Kbytes y para referenciar un bloque se utilizan 32 bits, ¿cuál es el máximo tamaño de fichero que se puede utilizar en dicho sistema? Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

58 Solución Cuantos bloques se pueden referenciar con un bloque de datos: 32 bits/ 8 bits = 4 bytes 4 Kbytes / 4 bytes = 1K bloques Un indirecto simple: 1K bloques Un indirecto doble: 1K * 1K = 1M bloques Total: 3 + 2 * 1K + 1 * 1M = 1,050,627 bloques 1,050,627 bloques * 4 Kbytes = 4,202,508 Kbytes Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez

59 Problema Considera un sistema de ficheros basado en i-nodos en el que cada nodo contiene 4 índices directos, 3 indirectos simples, 2 indirectos dobles y 1 indirecto triple. Si el tamaño de un bloque de datos es de 1Kbyte y para referenciar un bloque se utilizan 64 bits, ¿cuántos bloques de disco almacenarán enlaces para un fichero que contiene Kbytes de datos? Razona tu respuesta. Sistemas operativos: una visión aplicada © J. Carretero, F. García, P. de Miguel, F. Pérez


Descargar ppt "Contenido Visión del usuario. Estructura del sistema de ficheros."

Presentaciones similares


Anuncios Google