Está en la página 1de 27

Repaso

Ejercicios
Adicionales

Clase práctica - Filesystem

Ignacio Vissani

1◦ Cuat - 2012

ivissani - Sistemas operativos Clase práctica - Filesystem


Repaso
Ejercicios
Adicionales

1 Repaso

Motivación

Cómo se almacenan los archivos

2 Ejercicios

3 Adicionales

ivissani - Sistemas operativos Clase práctica - Filesystem


Repaso
Motivación
Ejercicios
Cómo se almacenan los archivos
Adicionales

Dónde estamos

1 Repaso

Motivación

Cómo se almacenan los archivos

2 Ejercicios

3 Adicionales

ivissani - Sistemas operativos Clase práctica - Filesystem


Repaso
Motivación
Ejercicios
Cómo se almacenan los archivos
Adicionales

Ya vimos:

Que las computadores tienen discos


Que los discos tienen platos
Que los platos tienen pistas
Que las pistas tienen sectores
Que los sectores tienen bytes (¿Cuántos?)

ivissani - Sistemas operativos Clase práctica - Filesystem


Repaso
Motivación
Ejercicios
Cómo se almacenan los archivos
Adicionales

Ya vimos:

Que las computadores tienen discos


Que los discos tienen platos
Que los platos tienen pistas
Que las pistas tienen sectores
Que los sectores tienen bytes (¿Cuántos?)

La pregunta del millón (de archivos): ¿Cómo hacemos para hacer


algo útil con todo eso?

ivissani - Sistemas operativos Clase práctica - Filesystem


Repaso
Motivación
Ejercicios
Cómo se almacenan los archivos
Adicionales

A priori no parece muy amigable para el usuario manejar bytes


dentro de sectores dentro de pistas dentro de platos dentro de
discos

“¿Dónde guardé el curriculum para el concurso? Era en el


disco 1, plato 0, pista 321, sector 4? ¿O era sector 44?”
Quiero que nadie más que yo tenga acceso a mi curriculum
antes del concurso.
Quiero ampliar mi curriculum, pero no me entra en un sector
¿Cómo la guardo? ¿Cómo la recupero fácilmente?

Todos estos problemas aparecen porque estamos demasiado cerca


del hardware.

Recordar que el SO es un intermediario entre el software especı́fico


y el hardware, y entre el usuario y el hardware.
ivissani - Sistemas operativos Clase práctica - Filesystem
Repaso
Motivación
Ejercicios
Cómo se almacenan los archivos
Adicionales

⇒ Aparecen los archivos

¿Qué es un archivo?

ivissani - Sistemas operativos Clase práctica - Filesystem


Repaso
Motivación
Ejercicios
Cómo se almacenan los archivos
Adicionales

⇒ Aparecen los archivos

¿Qué es un archivo?

A los archivos hay que administrarlos (principalmente almacenarlos


y recuperarlos, pero también manejar de permisos, mantener
fechas de acceso, modificación, etc.)

ivissani - Sistemas operativos Clase práctica - Filesystem


Repaso
Motivación
Ejercicios
Cómo se almacenan los archivos
Adicionales

⇒ Aparecen los archivos

¿Qué es un archivo?

A los archivos hay que administrarlos (principalmente almacenarlos


y recuperarlos, pero también manejar de permisos, mantener
fechas de acceso, modificación, etc.)

⇒ Aparecen los sistemas de archivos (filesystems)

⇒ ¿Qué es un archivo? Depende del filesystem

ivissani - Sistemas operativos Clase práctica - Filesystem


Repaso
Motivación
Ejercicios
Cómo se almacenan los archivos
Adicionales

Asignación contigua
Todos los bloques de un archivo se almacenan en forma consecutiva

Ventajas:

Acceso rápido (secuencial + aleatorio)

Desventajas:

Difı́cil decidir dónde ubicar un archivo nuevo (desconozco el


tamaño final del archivo)
Costo muy alto (potencialmente) al modificar archivos
Fragmentación
Guardo A de N bloques
Guardo B de 1 bloque
Guardo C de M bloques
Borro B
Desperdicio de espacio (si quiero guardar un archivo de N bloques
necesito que en algún lugar del disco haya N bloques libres consecutivos)
ivissani - Sistemas operativos Clase práctica - Filesystem
Repaso
Motivación
Ejercicios
Cómo se almacenan los archivos
Adicionales

Lista enlazada

En cada bloque de un archivo guardo data+ptr_next_block

Ventajas:

Acceso secuencial “relativamente” rápido (¿impacto en scheduling


de E/S?)

Puedo usar todos los bloques del disco (no pierdo espacio por
fragmentación)

Desventajas:

Acceso aleatorio extremadamente lento (O(N) ¡puaj!)

Desperdicio espacio del bloque (tengo que guardar el puntero al


siguiente)

ivissani - Sistemas operativos Clase práctica - Filesystem


Repaso
Motivación
Ejercicios
Cómo se almacenan los archivos
Adicionales

FAT (lista enlazada + refactoring de punteros)

Guardo una tabla (en disco, pero la puedo cargar en memoria) en la que la
entrada i tiene el puntero (N◦ de bloque) al bloque siguiente a i

Ventajas:

Acceso secuencial+aleatorio rápido1


No desperdicio espacio del bloque
Puedo usar todos los bloques del disco

Desventajas:

El tamaño de la tabla es proporcional al tamaño del disco


1
En los algoritmos en memoria secundaria el orden de complejidad temporal
se mide en accesos a disco. Los accesos a memoria son despreciables. Más sobre
esto en Bases de Datos
ivissani - Sistemas operativos Clase práctica - Filesystem
Repaso
Motivación
Ejercicios
Cómo se almacenan los archivos
Adicionales

i-nodos (Steve Jobs (1955 - 2011) no tuvo nada que ver con estos)

A cada archivo se asocia una estructura (de tamaño fijo) llamada


i-nodo que contiene punteros a los bloques del archivo (o a bloques de
punteros a bloques)

Ventajas:

Acceso secuencial+aleatorio rápido (overhead acotado por una


constante pequeña)

La memoria ocupada es k × n (donde k es el tamaño de los i-nodos y n


la cantidad de archivos abiertos)

Desventajas:

Tamaño máximo de archivos limitado (igual se pueden conseguir


archivos muy grandes)

ivissani - Sistemas operativos Clase práctica - Filesystem


Repaso
Ejercicios
Adicionales

Dónde estamos

1 Repaso

Motivación

Cómo se almacenan los archivos

2 Ejercicios

3 Adicionales

ivissani - Sistemas operativos Clase práctica - Filesystem


Repaso
Ejercicios
Adicionales

Ejercicio 1

Se tiene un disco con capacidad de 128GB, con bloques de 8KB.


Suponga un sistema de archivos similar a FAT, donde la tabla se
ubica desde la posición 0.

1 ¿Cuál es el tamaño que ocupará la tabla?


2 Se sabe que un archivo comienza en el bloque 20000. Dada la
siguiente FAT, indicar el tamaño de dicho archivo.

B 0 1 ... 6143 ... 7003 7004 7005 7006 ... 20000 20001 20002 ...
S 1 2 ... EOF ... 7004 7005 7006 EOF ... 20001 20002 7003 ...

ivissani - Sistemas operativos Clase práctica - Filesystem


Repaso
Ejercicios
Adicionales

Ejercicio 2

Un disco posee bloques de 8KB. Un FS está administrando un


archivo que ocupa 10 MB. El usuario del archivo desea insertar un
bloque de 8KB con datos a la mitad del archivo. Suponiendo que
el usuario ya se encuentra posicionado en la mitad del archivo.
Cada bloque en el disco se direcciona con 4B ¿ Cuántos accesos de
lectura y de escritura realiza el FS si ...

a) ... los archivos se almacenan consecutivamente?

ivissani - Sistemas operativos Clase práctica - Filesystem


Repaso
Ejercicios
Adicionales

Ejercicio 2

Un disco posee bloques de 8KB. Un FS está administrando un


archivo que ocupa 10 MB. El usuario del archivo desea insertar un
bloque de 8KB con datos a la mitad del archivo. Suponiendo que
el usuario ya se encuentra posicionado en la mitad del archivo.
Cada bloque en el disco se direcciona con 4B ¿ Cuántos accesos de
lectura y de escritura realiza el FS si ...

a) ... los archivos se almacenan consecutivamente?


b) ... si el FS usa tabla de alocación ?

ivissani - Sistemas operativos Clase práctica - Filesystem


Repaso
Ejercicios
Adicionales

Ejercicio 2

Un disco posee bloques de 8KB. Un FS está administrando un


archivo que ocupa 10 MB. El usuario del archivo desea insertar un
bloque de 8KB con datos a la mitad del archivo. Suponiendo que
el usuario ya se encuentra posicionado en la mitad del archivo.
Cada bloque en el disco se direcciona con 4B ¿ Cuántos accesos de
lectura y de escritura realiza el FS si ...

a) ... los archivos se almacenan consecutivamente?


b) ... si el FS usa tabla de alocación ?
c) ... si el FS usa i-nodes ?

ivissani - Sistemas operativos Clase práctica - Filesystem


Repaso
Ejercicios
Adicionales

Ejercicio 3
En un FS con inodos de 200bytes se desea acelerar el resultado de la
operación ls -la que muestra los nombres de los archivos, sus atributos
y su tamaño

% ls -la
drwxr-xr-x 20 root wheel 2560 25 may 18:51 .
drwxr-xr-x 21 root wheel 512 2 jun 00:21 ..
drwxr-xr-x 2 root wheel 512 16 may 19:44 X11
-rw-r--r-- 1 root wheel 221 16 feb 23:19 amd.map
-rw-r--r-- 1 root wheel 1248 16 feb 23:19 apmd.conf
-rw-r--r-- 1 root wheel 241 16 feb 23:19 auth.conf
drwxr-xr-x 2 root wheel 512 16 feb 23:19 bluetooth
-rw-r--r-- 1 root wheel 736 16 feb 23:19 crontab

1 Si el FS tiene bloques de 512bytes, los i-nodos de un mismo directorio se


encuentran contiguos y el primero comienza al principio de un bloque. En el
listado del ejemplo, ¿cuántos accesos a bloques fueron necesarios?
2 ¿Cómo podrı́a modificarse el FS para resolverlo en un acceso? ¿Cuál serı́a el
precio que se pagarı́a?

ivissani - Sistemas operativos Clase práctica - Filesystem


Repaso
Ejercicios
Adicionales

Dónde estamos

1 Repaso

Motivación

Cómo se almacenan los archivos

2 Ejercicios

3 Adicionales

ivissani - Sistemas operativos Clase práctica - Filesystem


Repaso
Ejercicios
Adicionales

Estructuras de un HDD
2

2
http://home.teleport.com/ brainy/fat32.htm
ivissani - Sistemas operativos Clase práctica - Filesystem
Repaso
Ejercicios
Adicionales

FAT32 Boot Record

ivissani - Sistemas operativos Clase práctica - Filesystem


Repaso
Ejercicios
Adicionales

Organización Partición FAT32

ivissani - Sistemas operativos Clase práctica - Filesystem


Repaso
Ejercicios
Adicionales

Root Directory Entry

ivissani - Sistemas operativos Clase práctica - Filesystem


Repaso
Ejercicios
Adicionales

Ejercicio 4
Se tiene un disco rı́gido con un sistema de archivos de tipo FAT. Se pide programar el algoritmo

void loadFile(const char * path, void * buffer)

Para ello utilice las siguientes estructuras y funciones ya definidas (la variable fat_bs ya se encuentra cargada en
memoria):

s t r u c t FAT BS STRUCT {
u n s i g n e d c h a r jumpCode [ 3 ] ;
u n s i g n e d c h a r OEMName [ 8 ] ;
void h d d l o a d s e c t o r ( unsigned i n t sector ,
unsigned short bytesXSect ;
void ∗ b u f f e r ) ;
unsigned char sectXClust ;
unsigned short r e s e r v e d S e c t ;
struct dir entry {
u n s i g n e d c h a r numOfCopies ;
u n s i g n e d c h a r name [ 8 ] ;
u n s i g n e d s h o r t maxRootDirEnt ;
unsigned char e x t e n s i o n [ 3 ] ;
u n s i g n e d s h o r t smallNumOfSect ;
unsigned char a t t r i b u t e s ;
u n s i g n e d c h a r mediaDesc ;
u n s i g n e d c h a r nada [ 1 0 ] ;
u n s i g n e d s h o r t sectXFAT ;
unsigned short time ;
unsigned short sectXTrack ;
unsigned short date ;
u n s i g n e d s h o r t numOfHeads ;
unsigned short c l u s t e r ;
unsigned i n t hiddenSect ;
unsigned i n t f i l e S i z e ;
u n s i g n e d i n t bigNumOfSect ;
};
u n s i g n e d s h o r t l og D ri v e Nu m ;
unsigned char extendSignat ;
b o o l e a n i s d i r ( s t r u c t d i r e n t r y ∗ de ) ;
unsigned i n t serialNum ;
b o o l e a n i s f i l e ( s t r u c t d i r e n t r y ∗ de ) ;
u n s i g n e d c h a r volumeName [ 1 1 ] ;
i n t s p l i t p a t h ( c o n s t c h a r ∗ path ,
u n s i g n e d c h a r FATName [ 8 ] ;
c h a r ∗∗∗ a r r a y ) ;
unsigned char code [ 4 4 8 ] ;
// p t r a s t r i n g [ ]
unsigned char execMarker [ 2 ] ;
} f a t b s ; // Ya e s t á c a r g a d a en memoria
ivissani - Sistemas operativos Clase práctica - Filesystem
Repaso
Ejercicios
Adicionales

http://www.asknacho.fcen.uba.ar

ivissani - Sistemas operativos Clase práctica - Filesystem


Repaso
Ejercicios
Adicionales

http://www.asknacho.fcen.uba.ar
O sea ¿Preguntas?

ivissani - Sistemas operativos Clase práctica - Filesystem

También podría gustarte