Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Peugeot Polygon Concept: ecco il futuro delle utilitarie
Peugeot Polygon Concept: ecco il futuro delle utilitarie
Polygon è la concept car di Peugeot che mostra il futuro delle soluzioni del segmento B: tra design compatti e innovativi affiancati da dimensioni compatte uno scherzo dalla manovrabilità incredibile per le manovre a bassa velocità
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione
OPPO ha portato in Italia, dal 1° luglio 2026, Reno16 Pro: display AMOLED da 6,32 pollici a 144Hz, tripla fotocamera con sensore principale da 200 megapixel, chip Dimensity 8550 Super e batteria da 6000mAh, al prezzo di lancio di 899 euro. Lo abbiamo provato per due settimane insieme al nuovo accessorio Bubble, per capire se la formula compatta della serie regge ancora di fronte a un listino da 1099 euro
 Hisense 55U7SE: tuttofare e accessibile, il MiniLED per film, sport e gioco
Hisense 55U7SE: tuttofare e accessibile, il MiniLED per film, sport e gioco
MiniLED di fascia media con local dimming a 192 zone, 144 Hz nativi e audio firmato Devialet. La prova strumentale riscontra colori affidabili e gaming reattivo, per un prodotto molto accessibile e convincente. Ma la soundbar aggiuntiva è quasi d'obbligo
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 22-05-2004, 11:16   #1
Goldrake_xyz
Senior Member
 
Iscritto dal: Apr 2004
Messaggi: 984
Come funziona la FAT

Cosa è e come funziona la FAT (File Allocation Table)
-----------------------------------------------------------------------------------


Per comodità si analizza la FAT a 12 Bit di un floppy disk da 720k,
ma il ragionamento è perfettamente equivalente per la FAT a 32 bit di un Hard Disk !

Caratteristiche Fisiche di un Floppy Disk da 720K
Tracce da 0 a 79 , Lati da 0 a 1 , Settori da 1 a 9 ( 1 Settore = 512KByte )


se si considera:
================
traccia 0 , faccia 0 , settore 1 = absolute sector 0
traccia 0 , faccia 0 , settore 2 = absolute sector 1
.... .... .... ..... .....
traccia 0 , faccia 0 , settore 9 = absolute sector 8
traccia 0 , faccia 1 , settore 1 = absolute sector 9
traccia 0 , faccia 1 , settore 2 = absolute sector 10
.... .... .... ..... .....
traccia 0 , faccia 1 , settore 9 = absolute sector 17
traccia 1 , faccia 0 , settore 1 = absolute sector 18
.... .... .... ..... .....
e cosi via fino a:

traccia 79 , faccia 1 , settore 9 = absolute sector 1439



Il Sistema Operativo lo usa così :

absolute sector 0 = BOOT SECTOR (serve per caricare il S.O.)
absolute sector 1 - 3 = FAT
absolute sector 4 - 6 = FAT seconda copia (deve essere uguale alla prima)
absolute sector 7 - 13 = ROOT DIRECTORY
absolute sector 14 - 1439 = DATA SECTOR

il S.O. raggruppa i data sector in cluster.
1 cluster = 2 settori , quindi 1 cluster = 1024 byte = 1Kbyte

I cluster sono così numerati:

absolute sector : cluster :

14 ----------------------- 002 ( primo DATA CLUSTER )
15
16 ----------------------- 003
17
18 ----------------------- 004
19
... ... ... ...
1438 ------------------- 714 ( ultimo DATA CLUSTER )
1439

( se settore 10 = cluster 000 allora 9-1439 = 1430 settori da
raggruppare 2 a 2 per 1 cluster = 1430/2 = 715 cluster, ma se il
primo cluster ‚ 000 l'ultimo allora sarà… 714 )


LA FAT:
=======

Nel disco ci sono due copie della FAT , per sicurezza.
Quindi devono essere identiche altrimenti il S.O. segnala un errore.
La FAT serve per comunicare al S.O. la disposizione di un file nell' interno del disco.

Ad esempio, un file può essere sparpagliato nei data sector così :
inizio al cluster 8 , segue al cluster 23 , continua al cluster 21,
e finisce al cluster 2.
( questo metodo ‚è usato per impaccare il maggior numero di dati sul
disco, senza lasciare spazi vuoti. Pensare a scritture e cancellazioni
di file di differenti dimensioni. )

La FAT ‚è appunto una specie di array di interi senza segno a 12-bit (32 bit x FAT32)
e serve per indicare il collegamento di un file nei vari data cluster.

Un esempio può essere :

file PROVA.TXT dim = 4004 byte , Entry point = indice 8

allora il primo cluster dove leggere il file è il cluster 8.
il cluster 8 contiene i primi 1024 byte del file PROVA.TXT.
per leggere i successivi byte, si ricorre alla FAT.
all' indice 8 della FAT (pensare all' indice di un array) c'è‚ un
dato (di 12 bit) che vale , ad esempio 23.
Allora bisogna andare al cluster 23 per leggere i successivi 1024 byte
del file. ma il file non è ancora terminato.
Si và allora ancora all' indice 23 della FAT, che contiene il numero 11.
ciò significa che si prosegue la lettura del file al cluster 11.

fin ora sono stati letti 1024x3 = 3072 byte del file PROVA.TXT

allora bisogna andare ancora alla FAT all' indice 11, dove è contenuto
il numero 34, si legge allora il cluster 34.

Ora, avendo letto 4 cluster, cioè 1024x4=4096 byte , sono stati letti
allora tutti i cluster occupati dal file PROVA.TXT che aveva dimensione
4004 byte. perch‚ 4096 > 4004 (al limite possono essere uguali) .

( 4096 - 4004 = 92 byte che il S.O. è costretto a leggere, ma che
non contengono informazione utile. Ecco perchè è indispensabile
specificare la dimensione del file , perchè‚ si possano separare
le informazioni utili dal totale che il S.O. è costretto a leggere )

Quindi all' indice 34 della FAT c'è un numero che non corrisonde a
nessun cluster, è il numero di Fine File , che indica che il cluster
34 era l'ultimo cluster di un file e che non ci sono più collegamenti.

La situazione può essere riassunta così :

ROOT DIR : PROVA.TXT dim 4004 byte Entry Point 8

FAT : .. ......... .. [23] ... .. [34] ... [11] ..... [EOF] ....

indice : 2,3,4,5, .. .. ,8, .. .. ,11, ... ,23, ...... ,34, ........,40, ...


il File è messo nella sequenza, nei cluster : 8 - 23 - 11 - 34

-------------------------------------------------------------------------------------------------

ESEMPIO CONCRETO:
=================

Se in un disco vuoto ho messo un file LETTERA.TXT di 7280 byte ,
allora esso occupa 8 cluster cioè 1024x8 = 8192 byte , 8192 >= 7280.
8192 è il più piccolo maggiore uguale, di 7820 (per gruppi di 1024)
(non è possibile 7 cluster perchè 7x1024=7168 byte)

Se il file LETTERA.TXT inizia dal primo data cluster del disco, ed
è messo contiguamente, esso allora occuperà
i cluster : 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9

e sarà descritto nella ROOT DIRECTORY :

LETTERA.TXT dim 7280 byte Entry Point 2

(la root dir. contiene inoltre data ora e attributi che ho omesso)

la FAT sarà allora : (in esadecimale)

F9 FF FF 03 40 00 05 60 00 07 80 00 09 F0 FF 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 ecc.

per leggere questa FAT bisogna innanzitutto togliere i 3 byte iniziali
che sono Riservati ! Rimane:

03 40 00 05 60 00 07 80 00 09 F0 FF 00 00 00 ecc.

Quindi bisogna invertire ogni nibble del byte , si ha:

30 04 00 50 06 00 70 08 00 90 0F FF 00 00 00 ecc.

essendo una fat a 12 bit , si prendono 3 cifre in 3 cifre ,
ciò in esadecimale corrisponde ad un numero di 12 bit.
allora:

300 400 500 600 700 800 900 FFF 000 000 000 ecc.

tali gruppi vanno letti al contrario , cioè :

__003 004 005 006 007 008 009 FFF 000 000 000 ecc.
| | | | | | | | | | |
i = 2 3 4 5 6 7 8 9 10 11 12 (indice)


Il numero FFF hex indica il valore EOF , End Of File.
In questo caso allora, l'entry point del File LETTERA.TXT
è uguale a 2, e significa leggi il cluster 2.
Poi si và nella FAT , che all' indice 2 contiene il valore 3.
significa, prosegui la lettura al cluster 3.
e cosi via , fino a leggere il cluster 9.
Avendo l'indice 9 della FAT il valore EOF
si può capire che l'ultimo cluster del file ‚ il cluster 9.
Avendo quindi l'entry point nella FAT, e la FAT stessa, posso leggere
un file disseminato nei vari cluster del disco.

Ora si può capire a che servono i programmi di deframmentezione disco,
essi non fanno altro che spostare i vari pezzi del file disseminati frà i vari
cluster e metterli in modo sequenziale, come nel file visto sopra.
-----------------------------------------------------------------------------------------------------------------

Qualche considerazione:
===================

in un disco da 720k,
per la FAT sono riservati 3 settori da 512 byte ciacuno.

allora 512x3=1536 byte nella FAT , cioè 1536x8=12288 bit nella FAT.
raggruppandoli per 12 , si ha : 12288/12=1024 pezzi da 12 bit.
(se ne devono togliere 2 perchè sono la sequenza riservata F9 FF FF)
totale 1022 indici per 715 cluster, cioè in abbondanza.

12 bit = 4096 combinazioni, allora si possono collegare fino a 4096
cluster, ammesso che la FAT sia di dimensione più grande.
Se il cluster è di 1024 byte allora 4096x1024=4194304 byte = 4096 kbyte
= 4 Mbyte.

Per un Hard Disk che ha una capacità ben maggiore di 4 Mbyte
si usa una FAT composta da 16 bit. o 32 bit.
(e quindi si dimensiona opportunamente anche l'area di memoria cosicchè ci
siano tanti indici quante possibili combinazioni abbia il dato a 16 bit o 32bit)
E si devono usare anche cluster più grandi.
(ad es. i cluster sono generalmente di 2048 byte per gli H.D.)

Con FAT a 16 bit e cluster a 2048 byte si può fare un hard disk di massimo
65536x2048 = 128 Mbyte (altri tempi...)

Con FAT a 32 bit e cluster a 2048 byte si può fare un hard disk di massimo
8 Tbyte (TeraByte !)
Ma con il piccolo inconveniente che la FAT occuperebbe 4.294.967.296 pezzi
da 32 bit cioè 16 Gbyte di FAT !

Naturalmente sui sistemi con FAT 32 la dimensione della stessa è molto
più limitata, ecco perchè non si raggiunge neanche 1 TeraByte !
-------------------------------------------------------------------------------------------------------------------------

Qualche nota in più sugli H.D.
======================

A differenza di un floppy disk l' HD è strutturato in maniera leggermente diversa,
cioè si hanno : Traccia, Numero Testina, Settore, cioè il famoso indirizzamento
CHS = Cylinder, Head, Sector (Cylinder stà per traccia)
A questo proposito và detto che qualsiasi H.D. sul primary channel può essere
indirizzato da Bios in modo CHS, anche quelli LBA, questo per ragioni di
compatibilità con i più vecchi calcolatori.

Un'altra differenza è che sulla prima traccia di un HD c'è la Partition Table !
Poi viene il boot sector dell' unità C: , Root Directory di C: data sector di C:
(la P.T. serve principalmente per dividere l'HD in più unità logiche)

è Interessante notare che la Partition Table è costituita da pochi Kbyte
e viene scritta principalmente da 2 famosi programmi :
FDISK e PARTITION MAGIC...
FDISK è molto lento perchè si preoccupa anche di verificare l'intera area
della partizione, mentre Partition Magic si limita solo a modificare la P.T.


Accidenti, con i caratteri proporzionali le righe non sono
allineate ....


Cordiali Saluti.


P.S. sono molto apprezzati suggerimenti e/o correzzioni, Grazie !

x il Moderatore .... se è il caso spostare questo su sezione
più appropriata ... Grazie !

Ultima modifica di Goldrake_xyz : 22-05-2004 alle 11:19.
Goldrake_xyz è offline   Rispondi citando il messaggio o parte di esso
Old 22-05-2004, 15:24   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Chiedimelo prima
Qui c'è scritto cosa bisogna fare: http://forum.hwupgrade.it/showthread...hreadid=585879

Comunque dai per stavolta va bene...quando ho tempo me la leggo tutta e la metto fra le faq

Per far rispettare l'indentazione includi le tabelle all'interno del tag (code)(/code) con le quadre al posto delle tonde...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 22-05-2004, 15:31   #3
Goldrake_xyz
Senior Member
 
Iscritto dal: Apr 2004
Messaggi: 984
Ok, ricevuto, e che sono abbastanza nuovo su questo forum
e non sono pratico delle varie procedure.
Thank You !
Goldrake_xyz è offline   Rispondi citando il messaggio o parte di esso
Old 22-05-2004, 16:39   #4
recoil
Senior Member
 
L'Avatar di recoil
 
Iscritto dal: Jul 2002
Città: Milano
Messaggi: 19149
utile
può far comodo a chi studia sistemi operativi (quindi anche il FS)
recoil è offline   Rispondi citando il messaggio o parte di esso
Old 23-08-2010, 10:47   #5
_CR_
Junior Member
 
Iscritto dal: Aug 2010
Messaggi: 2
ma come si trova il primo cluster di un file?
_CR_ è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Peugeot Polygon Concept: ecco il futuro delle utilitarie Peugeot Polygon Concept: ecco il futuro delle ut...
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione Reno16 Pro: il compatto di OPPO punta su fotocam...
 Hisense 55U7SE: tuttofare e accessibile, il MiniLED per film, sport e gioco Hisense 55U7SE: tuttofare e accessibile, il Min...
Kindle Scribe Colorsoft: riduce le cornici e diventa a colori, ma il prezzo è alto Kindle Scribe Colorsoft: riduce le cornici e div...
L'IA cambia tutte le regole della sicurezza tra vulnerabilità e sorveglianza. Intervista al CEO di Proofpoint L'IA cambia tutte le regole della sicurezza tra ...
Edge AI: NVIDIA Jetson raggiungerà...
La missione robotica LINK per salvare il...
Potrebbe essere stato lanciato l'ultimo ...
PamStealer, il malware per Mac che prima...
NAVEE EXO S Pro, il robot esoscheletro p...
Samsung Galaxy A57 5G a 399€ con 256 GB:...
Volevano collegare delle aragoste vive a...
La crisi dei PC è peggiore del pr...
Alibaba pronta a vietare Claude Code ai ...
Sovranità sui dati: Cloud Firewal...
FiberCop porterà la fibra Gigabit...
Data center in Lombardia: 20 progetti sc...
Tutti i modi in cui la scommessa di Orac...
Kioxia e SanDisk sbandierano i numeri de...
iPhone 18 Pro potrebbe usare modem Qualc...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 00:26.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v