Struktury ext2

Autor: Ewa Socha

Album: 181041



1) Ext2 jest podstawowym systemem plików w Linux’ie.

Zostal wprowadzony 1994r.
Poprzednicy: MINIX i EXT FS

2) Cechy systemu Ext2 istotne dla algorytmów ext2_new_block i ext2_free_blocks:

3) Struktura partycji Ext2 i struktura grupy:

 

calkowita ilosc grup = rozmiar partycji / 8 x rozmiar bloku

(poniewaz mapa bitowa bloków danych musi zmiescic sie w jednym bloku)


Algorytm przydzielania bloku dyskowego: ext2_new_block


 

 

1) Kody Zródlowe:

 

fs/ext2/balloc


2) Naglówek:

int ext2_new_block (const struct inode *inode, unsigned long goal, u32 *prealloc_count, u32 *prealloc_block, int *err)


3) Parametry:

 

 

4) Wynik:

5) Schemat blokowy:

 

 



6) Opis dzialania:

 

 

 

 

 

 

 

ENOSPC - brak miejsca na dysku,
EDQUOT - przydzielenie nowego bloku spowodowaloby przekroczenie quoty,
EIO - nastapia blad przy odczycie lub zapisie na dysku

 

7) Zapobieganie fragmentacji dysku:

a)      jezeli plikowy numer bloku ma numer nastepny po bloku poprzednio alokowanym to goal := goal (poprzedni)+1;

b)      wpp jezeli dla pliku zostal juz wczesniej zaalokowany jakis blok to                    goal := goal(wczesniej zaalokowany dla pliku)

c)      wpp goal := pierwszy blok w grupie, która zawiera i-wlzel


Algorytm zwalniania bloku dyskowego: ext2_free_blocks


 

1) Kody Zródlowe:

fs/ext2/balloc

2) Naglówek:

void ext2_free_block(struct inode * inode, unsigned long block, unsigned long count)

3) Uzycie:

4) Parametry:

5) Wynik:

6) Opis algorytmu: