1 / 10

Sistema de archivos

Sistema de archivos . TGR Sistemas Operativos 14/10/2013. Ejemplo i-nodos. Mínimo de accesos a disco para: open(“/var/spool/mail/alumnos/bujuan”, O_RDONLY);

fairly
Download Presentation

Sistema de archivos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sistema de archivos TGR Sistemas Operativos 14/10/2013

  2. Ejemplo i-nodos • Mínimo de accesos a disco para: open(“/var/spool/mail/alumnos/bujuan”, O_RDONLY); • Las entradas de subdirectorios están todas en el 1er bloque de su dir. padre salvo: alumnos (en el 4º bloque) y bujuan (en el 2º bloque) • Cachés de i-nodos y datos vacías inicialmente.

  3. Ejemplo i-nodos Pero: en el mejor de los casos, todos los i-nodos vienen ya en este bloque Solución: 1 bloque con los i-nodos + 9 bloques de datos = 10 accesos 1er bloque de ‘var’ 1er bloque de ‘/’ 1er bloque de ‘spool’ i-nodo de ‘alumnos’ i-nodo de ‘bujuan’ i-nodo de ‘mail’ i-nodo de ‘spool’ i-nodo de ‘var’ i-nodo de ‘/’ Entrada ‘var’ Entr. ‘spool’ Entr. ‘mail’ 4º bloque de ‘mail’ 2º bloque de ‘alumnos’ Total = 15 accesos = 6 de i-nodos + 9 de datos En. ‘bujuan’ En. ‘alumnos’ 6 15 13 12 14 9 8 4 10 5 11 7 3 2 1

  4. Ejemplo i-nodos (2) • Bloques de 2KB • i-nodos con 12 dir. directas, 1 indir. simple, 1 indir. doble y 1 indir. triple. • Dirección de bloque de 4 bytes • El archivo bujuan ocupa 6MB • ¿Cuántos bloques se necesitan para almacenarlo?

  5. Ejemplo i-nodos (2) • El archivo ocupa 6 MB = 6 x 1024 KB. Como cada bloque son 2KB, ocupa (6 x 1024)/2 = 3072 bloques • Pero el sistema de i-nodos también ocupa sitio • En un bloque de índices nos caben (2K)/4 = 2048/4 = 512 direcciones • Los 12 primeros bl. de datos se obtienen directamente desde el i-nodo • Los 512 siguientes requieren 1 bloque indirecto simple

  6. Ejemplo i-nodos (2) • En el siguiente nivel tenemos 1 bloque indirecto doble que permite indexar hasta 512 bloques indirectos simples. • Como nos quedan 3072-(512+12)=2548 bloques de datos por indexar, en grupos de 512 tendríamos:2548/512=4,97 es decir 5 bloques indirectos simples • Solución: 3072 datos + 1 ind. simple + 1 indir. doble + 5 indir. simples = 3079 bloques

  7. Ejemplo i-nodos (3) • A continuación, después del open, hacemoslseek(fd,4194304,SEEK_SET); • ¿Cuántos bloques tengo que leer de disco si, inmediatamente después, quiero ejecutar esto?c=fgetc(fd); • Nota: 4194304 = 4 x 220

  8. Ejemplo i-nodos (3) • Los primeros 4 x 220 bytes se numeran 0 … (4 x 220-1) • Están almacenados en los primeros (4 x 220)/(2 x 210 ) bloques = 2 x 210 bloques = 2048 bloques y se numeran0 … 2047 • El byte número 4 x 220 está en el 2049-ésimo bloque (en número, el 2048). • Los 12 primeros bloques (0 … 11) van por índice directo • Los 512 siguientes (12 … 523) van por indirecto simple • Los 512x512 siguientes (524 … 524+5122 – 1) siguientes van por indirecto doble. Como 2048 está en ese intervalo …Solución: 1 indir. doble + 1 indir. simple + 1 datos = 3 bloques

  9. Ejemplo i-nodos (4) • Sabiendo que 1 i-nodo ocupa 128 bytes • El número de i-nodo de ‘/’ es el 2, el de bujuan es el 35 y se empieza a contar en el i-nodo 1 • La boot ocupa 1 bloque y el superbloque ocupa 8 bloques • Los bloques lógicos empiezan a contar en el 0 • ¿En qué bloque lógico se encuentra el i-nodo de ‘/’?¿y el i-nodo de de bujuan?

  10. Ejemplo i-nodos (4) Solución • 1 i-nodo ocupa 128 B = 27 B • 1 bloque son 2 KB = 2 x 210 B = 211 B = (211/27 ) i-nodos = 24 i-nodos = 16 i-nodos • El bloque lógico 0 es la boot, los bloques lógicos 1..8 son el superbloque • El bloque 9 contiene los i-nodos 1 al 16. Por tanto:bloque lógico de ‘/’ = 9 • El bloque 10 contiene los i-nodos 17 al 32. El bloque 11 contiene los i-nodos 33 al 48. Por tanto:bloque lógico de bujuan = 11

More Related