[so2] [Tema 4] Stocarea directoarelor pe disk

Razvan Deaconescu razvan.deaconescu at cs.pub.ro
Mon May 5 18:38:33 EEST 2014


Andrei Pârvu <andrei.prv at gmail.com> writes:
> Pe 05.05.2014 12:21, "Vicentiu Ciorbaru" <cvicentiu at gmail.com> a scris:
>> Salut,
>>
>> Nu mi-e 100% clar cum sunt stocate directoarele pe disk. Din ce
>> inteleg din enunt, toate inode-urile ce reprezinta directoare vor avea
>> datele stocate in block-ul cu ID-ul 0 (din dzone).
>>
>> Am tras concluzia asta pornind de la următoarele afirmatii:
>> Directoarele au asociate un singur bloc de date în care vor fi stocate
>> intrările de director.
>> Directorul rădăcină va avea alocat inode-ul 0 și blocul de date 0.
>>
>> Practic block-ul 0 (relativ la inceputul dzone) ar avea multe intrari
>> de tipul struct pitix_dir_entry, fiecare cu câte un backlink la
>> inode-ul aferent.
>>
>> Am inteles corect?
>>
>> O altă alternativă ar fi ca fiecare inode director sa aiba block-ul
>> lui dedicat in care sa se afle doar structurile pitix_dir_entry cu
>> backlink-ul catre el insusi. In cazul asta insa mi se par inutile
>> acele backlink-uri din struct pitix_dir_entry.
>
> Din cate mi-am dat eu seama, fiecare inode director va avea un singur block
> de date, care va avea un corespondent in dzone. Acel block va contine
> intrari de tipul pitix_dir_entry (e o functie in pitix.h care calculeaza
> cate astfel de intrari sunt intr-un block).

Este cum spune Andrei, după cum e precizat și în enunț[1]:
---
Directoarele au asociate un singur bloc de date în care vor fi stocate
intrările de director.
---

Adică:
sizeof(pitix_inode->data_blocks)/sizeof(pitix_inode->data_block[0]) = 1

Vicențiu, nu îmi este clară întrebarea ta cu backlink. Din enunț:
---
Pentru simplificare, la mkdir nu este necesară crearea intrărilor
. (dot) și .. (dot dot) în noul director; tester-ul se folosește de
această presupunere.
---

[1] http://ocw.cs.pub.ro/courses/so2/teme/tema4

Răzvan


More information about the so2 mailing list