Sistemul de fișiere fat32

În domeniul computerelor personale în 1987 a existat o criză. Capacitățile sistemului de fișiere FAT dezvoltat de Microsoft cu zece ani mai devreme pentru interpretul Standalone Disk Basic și mai târziu adaptate pentru sistemul de operare DOS au fost epuizate. FAT a fost destinat pentru hard disk-uri cu o capacitate maximă de 32 MB, iar noile HDD cu capacitate mai mare au fost complet inutile pentru utilizatorii de PC-uri. Unii furnizori independenți și-au oferit propriile soluții la această problemă, dar numai odată cu apariția lui DOS 4.0 această criză a fost depășită - pentru o vreme.







Schimbări semnificative în structura sistemului de fișiere din DOS 4.0 au permis sistemului de operare să funcționeze cu discuri de până la 128 MB; cu introducerea în adăugările minore ulterioare, această limită a fost ridicată la 2 GB. În acel moment, se părea că o astfel de capacitate de memorie depășea orice necesitate imaginabilă. Cu toate acestea, dacă istoria computerelor personale a învățat ceva, tocmai datorită faptului că capacitatea "depășind toate nevoile imaginabile" devine foarte repede "aproape inadecvată pentru muncă gravă". Într-adevăr, în prezent, sunt disponibile în comerț hard disk-uri sunt, de obicei de 2,5 GB și mai sus, și o dată foarte mare, și să ne elibereze de constrângerile de tavan în 2 GB transformat într-un alt obstacol care trebuie parcursă.

Pentru Windows 95, Microsoft a dezvoltat un nou sisteme de extensie FAT - FAT32, fără declarații zgomotoase prevăzute în pachetul OEM Service Pack 2. FAT32 sistem este instalat numai în noi PC-ul, și nu se așteaptă să-l în tranziția la noua versiune de Windows 95, cu toate că , potrivit Microsoft, această extensie va face parte din pachetul principal pentru modernizarea Windows (codificat Memphis), care urmează să fie lansat în cursul acestui an. În acest articol, analizăm pe scurt structura generală a sistemelor de fișiere FAT și apoi ne concentrăm asupra inovațiilor care diferențiază FAT32. Pentru a evita confuzia, vechea versiune pe 16 biți va fi numită FAT16.

Zona discurilor

Acest sistem de fișiere oferă o serie de domenii specifice de pe disc alocat pentru organizarea de spațiu pe disc în procesul de formatare - cap de înregistrare de sarcină tabelă de partiții de disc, boot record, dosar tabelul de alocare (FAT de la care sistemul devine numele său) și directorul rădăcină. La nivel fizic, spațiul pe disc este împărțit în 512 de octeți, numite sectoare. Fișierul spațiu alocat blocuri de sistem FAT, care constau dintr-un număr întreg de sectoare și sunt denumite clustere. Numărul de sectoare din grup trebuie să fie mai mare decât puterea a două. (Aflați dimensiunea cluster pe sistemul dumneavoastră, puteți folosi programul ScanDisk CHKDSK sau.) În Microsoft numește aceste clustere de unități de memorie (unitate de alocare) de alocare, precum și raportul ScanDisk arată dimensiunea lor, cum ar fi „16 384 octeți în fiecare unitate de alocare de memorie.“ De obicei, dimensiunea cluster poate fi determinată prin împărțirea cantității de memorie pe disc 64 Kbytes (65,536 bytes) și rotunjirea rezultatului la cel mai apropiat multiplu de o putere de două. Astfel, mărimea clusterului disc 1.2 GB este de 32 Kbytes - în cazul în care 1.2 GB (1258 291,2 Kbytes) împart 65 536 obține 19,2 Kbytes, iar după rotunjire - 32 Kbytes.

Lanțul FAT

FAT este o bază de date care asociază clustere de spațiu pe disc cu fișiere. În această bază de date, pentru fiecare grup este furnizat un singur element. Primele două elemente conțin informații despre sistemul FAT în sine. Al treilea și elementele ulterioare sunt mapate la grupuri de spațiu pe disc, începând cu primul cluster alocat fișierelor. Elementele FAT pot conține mai multe valori speciale care indică faptul că
  • Clusterul este gratuit, i. nu este folosit de nici un fișier (pentru FAT16 această valoare este 0000H);
  • Clusterul conține unul sau mai multe sectoare cu defecte fizice și nu ar trebui utilizat (pentru FAT16 această valoare este FFF7H);
  • Acest cluster este ultimul cluster al fișierului (pentru FAT16 această valoare este FFF8 FFFFH).

Pentru orice fișier utilizat de fișier, dar nu și ultimul, elementul FAT conține numărul următorului cluster ocupat de fișier.

Fiecare director - independent o rădăcină sau un subdirector - reprezintă, de asemenea, o bază de date. În directorul DOS, există o înregistrare principală pentru fiecare fișier (în Windows 95, sunt introduse intrări suplimentare pentru nume de fișiere lungi). Spre deosebire de FAT, unde fiecare element constă dintr-un singur câmp, intrările pentru fișierul din director constau din mai multe câmpuri (a se vedea Figura 1). Unele câmpuri - nume, extensie, dimensiune, dată și oră - pot fi afișate în comanda DIR. Dar în sistemul FAT există un câmp care nu este afișat de comanda DIR, un câmp cu numărul primului cluster alocat fișierului.

Structura de intrare în director

Când programul trimite o solicitare sistemului de operare cu o cerere de a furniza conținutul unui anumit fișier, sistemul de operare caută prin intrarea directorului pentru a găsi primul cluster al acestui fișier. Apoi accesează elementul FAT pentru acest cluster pentru a găsi următorul grup din lanț. Repetând acest proces până când detectează ultimul cluster al fișierului, sistemul de operare determină cu precizie clusterele care aparțin acestui fișier și în ce succesiune. În acest fel, sistemul poate furniza programului orice parte a fișierului solicitat. Acest mod de organizare a fișierului se numește lanțul FAT.







În sistemul FAT, un număr întreg de clustere sunt întotdeauna alocate fișierelor. La 1,2 GB hard-disk cu clustere de 32 KB în catalog se poate afirma că dimensiunea fișierului text care conține cuvântul „Bună ziua, lume“, este de numai 12 bytes, dar, de fapt fișierul ocupă 32 KB de spațiu pe disc. Porțiunea neutilizată a cluster-ului se numește spațiul pierdut (slăbit). În fișierele mici, aproape întregul cluster poate fi un spațiu pierdut și, în medie, pierderile sunt jumătate din dimensiunea clusterului.

850 MB de spațiu pe hard disk cu clustere de 16 KB, cu o dimensiune medie a fișierului de 50 KB pentru aproximativ 16% din spațiul alocat pentru fișierele disc vor fi pierdute pe zona fișierele neutilizate, dar alocate. O modalitate de a elibera spațiu pe disc este prin programe de compresie a discurilor, cum ar fi DriveSpace, care alocă "locurile pierdute" pentru a fi utilizate de alte fișiere.

Calcularea dimensiunilor sectoarelor și clusterelor

În primul rând, sistemul de fișiere FAT din DOS 1 folosea elemente FAT pe 12 biți. (În prezent, pe 12 biți FAT încă își găsește o aplicație pentru dischete). In DOS 2, echipat cu mijloace suplimentare pentru HDDs, elemente de 16 biți sunt furnizate în FAT. Motivul pentru problemele care apar în 1987 g. Constă în cererile de strat inferior la sistemul de operare citește sectoarele de disc de transfer de valoare de 16 biți ca parametru. Există 65.536 valori diferite pe 16 biți; înmulțind 65 536 cu 512 octeți în sector, obținem 32 MB. În ceea ce privește numărul de sectoare de pe disc, acesta este limitat de sistemul de operare. În DOS 4.0, parametrii de 32 de biți sunt utilizați pentru a procesa cererile de citire a sectoarelor de nivel inferior.

Limitări privind dimensiunile sectoarelor și grupurilor din FAT16

Numărul de sectoare din grup

EROARE: Problemă pentru sistemul de operare

Chiar dacă această problemă nu are loc cu un volum de 2 GB, sistemul de operare nu va putea funcționa cu discuri mai mari de 4 GB. Atunci când se utilizează FAT16, numărul de sectoare din cluster este stocat de sistemul de operare în sine într-un octet al blocului de parametri de disc setat de sistemul de operare. Acest număr trebuie să fie un multiplu de grad 2 și mai mic de 256. Astfel, un cluster poate conține maximum 128 sectoare sau 64 KB. În cele din urmă, chiar dacă limita de 2 GB este eliminată, sistemul FAT16 este acceptabil numai pentru unitățile cu o capacitate mai mică de 4 GB.

În sistemul de fișiere FAT32, atât elementele FAT, cât și numerele de sector sunt de 32 de biți. Aceasta este ceea ce înseamnă acest lucru: multiplica 4294967296 valori diferite pe 32 de biți în 512 octeți per sector și de a obține un număr mare de 2 terabytes (2 199 023 255 552 bytes), care este capacitatea maximă de antrenare este posibil folosind FAT32.

Unele eliminări ale pierderilor

Acum, că numărul de clustere admis și numărul de sectoare sunt aceleași, probabil, s-ar presupune că, în scopul de a reduce la minimum pierderea de spațiu pe disc pentru a clusterelor FAT32 care urmează să fie utilizate, constând dintr-un singur sector. Dar în această problemă este nevoie de un anumit tip de compromis, deci în specificația FAT32, dimensiunea clusterului pentru unitățile de până la 8 GB este de 4 KB.

Dimensiunea grupului în raport cu capacitatea discului

Capacitatea discului, GB

Dimensiunea grupului, Kb

Unul dintre factorii care au jucat un rol în luarea acestei decizii a fost că acum este necesar să se ia în considerare dimensiunea FAT în sine. Sistemul de operare salvează două copii ale FAT, astfel că sunt necesare 8 octeți pentru elementul FAT al fiecărui grup. Pe un disc de 2 GB, FAT va ocupa 32 MB din spațiul său, cu o dimensiune a clusterului de 512 octeți. Și dacă dimensiunea grupului este de 4 Kbytes, vor fi necesare doar 4 MB pentru a stoca două tabele FAT, adică 28 Mbytes vor fi salvate.

Dar motivul compromisului nu a fost doar considerentele de salvare a spațiului pe disc; Problemele de performanță nu au fost uitate. Pentru a accelera accesul pe disc, programul încorporat de memorie cache al discului VCACHE încarcă întregul FAT în memoria principală. Evident, este mai ușor să o atingeți dacă fiecare tabel individual FAT ocupă 2 MB în loc de 16 MB. Și nu vă faceți griji că creșterea numărului de clustere și FAT dublarea dimensiunea elementului va reduce VCACHE eficiență: pentru FAT32 există o nouă metodă de lucru cu cache-ul, care, potrivit declarațiilor Microsoft, îmbunătățește performanța generală.

Alte modificări în FAT32

Pentru a putea lucra cu numărul crescut de clustere în intrarea de director pentru fiecare fișier trebuie să fie alocate 4 octeți pentru fișierul de cluster inițial (în loc de 2 octeți ai sistemului de fișiere FAT16). În mod tradițional, fiecare intrare din director conține 32 de octeți (Figura 1). În mijlocul acestei înregistrări, nu se utilizează 10 octeți (octeți 12 până la 21), pe care Microsoft le rezervă pentru nevoile lor în viitor. Două dintre ele sunt acum alocate ca octeți suplimentari necesari pentru a indica clusterul inițial în sistemul FAT32.

Sistemul de operare a furnizat întotdeauna prezența a două copii de FAT pe disc, dar numai unul dintre ele a fost folosit. Odată cu trecerea la FAT32, sistemul de operare poate funcționa cu oricare dintre aceste copii. O altă schimbare este că directorul rădăcină, care anterior avea o dimensiune fixă ​​și un spațiu strict definit pe disc, poate fi acum extins în mod liber, după cum este necesar, ca un subdirector. Acum nu există restricții asupra numărului de intrări din directorul rădăcină. Acest lucru este deosebit de important, deoarece pentru fiecare nume de fișier lung, sunt utilizate mai multe intrări de directoare.

Combinația de roaming directorul rădăcină și posibilitatea de a folosi ambele copii ale FAT - cerințe bune pentru schimbarea lină a pereților despărțitori de disc dinamic, cum ar fi reducerea secțiunii pentru spațiu liber pentru alte sisteme de operare. Această nouă abordare este mai puțin periculoasă decât cea utilizată în programele terților pentru a schimba partițiile de disc atunci când lucrează cu FAT16. (Hot în Windows utilitati care utilizează funcțiile FAT32 astfel de mijloace sunt puse în aplicare în programele de firme independente, cum ar fi Partition Magic 3.0, și PowerQuest firma firma PartitionIt Quarterdeck.)

Măsuri de precauție

Trebuie remarcat faptul că FAT32 este conceput numai pentru Windows 95. Microsoft nu a promis să pregătească Windows NT pentru utilizarea sa și a sugerat că nu o vor face. Cu toate acestea, societatea a susținut că, dacă Windows NT 5.0 nu are mijloacele de a lucra cu FAT32, utilitarul pentru a afișa unitățile de sistem de fișiere FAT32 în NTFS (sistem de „nativ“ fișier Windows NT) vor fi furnizate în ea, astfel încât cei care vor să faceți upgrade sistemul tău, nu-ți face griji. În prezent, cu toate acestea, dacă doriți să instalați Windows NT și Windows 95 pe aceeași mașină, va trebui să se asigure că în comun de aceste două sisteme de operare spațiu pe disc este organizat în conformitate cu FAT16, nu FAT32, care nu „percepe“ Windows NT System , și nu NTFS, pe care Windows 95 nu le "înțelege".

De asemenea, trebuie să vă amintiți că, deoarece câmpul pentru dimensiunea fișierului din intrarea directorului este de 32 de biți, dimensiunea unui singur fișier nu poate depăși 4 GB.

Dacă ne concentrăm pe FAT32, atunci încă 15 ani vor trece înainte de a ajunge la limita de 2TB și va trebui să trecem la FAT64. Având în vedere vorbesc despre sistemul de fișiere orientat-obiect, este posibil cu același grad de certitudine pentru a prezice eșecul FAT, pe care am putea prezice în 1987 plecarea de la FAT pentru a ajunge la limita de 2 GB.







Articole similare

Trimiteți-le prietenilor: