KarbosGuide.dk. Modul 6a3.

Om filsystemer: DOS-formatering, FAT mv.


  • Tæt på den FAT-formaterede disk
  • Boot record
  • FAT-områderne
  • Næste side
  • Forrige side

  • Den FAT-formaterede disk

    Alle harddiske opdeles altså i et stort antal sektorer ved formateringen. Sektorerne skal rumme både brugerdata og filsystemets egne administrationer. For under FAT ligger hele filadministrationen gemt på selve disken:

    Disken er altså overordnet opdelt i:

  • Sektorer, der er beslaglagt af FAT til administration.
  • Sektorer, der stilles til rådighed til brugeren for lagring af filer (dataområdet).


    Diskens fire områder

    Den enkelte disk eller (diskafsnit) indeholder fire grundlæggende forskellige områder:

  • Bootrecorden, som altid ligger i diskensførste sektor .
  • FAT-områderne, som der oftest er to identiske af.
  • Rodkataloget.
  • Data-området, hvor alle filer og underbiblioteker udover rodbiblioteket gemmes. Dataområdets sektorer er samlet i klynger

    Du ser denne opdeling grafisk afbildet her:


    Et eksempel - sektorerne i de fire områder

    Lad os se på en FAT-formateret harddisk partition på 160 MB: Hvordan udnyttes sektorerne?

    Partitionen rummer præcist 157,9 MB, hvis vi regner helt rigtigt. I bytes taler vi om 165.656.576. Dette samlede lager er opdelt i 323.548 sektorer 512 bytes. Hvis du ganger sammen, giver det i alt 165.656.576 bytes.

    323.548 sektorer
    512 bytes
    = 165.656.576 bytes
    = 157,9 MB

    Filsystemet tager nu kontrol over disse 323.548 sektorer. Den første sektor ryger til boot-recorden, som er diskensførste sektor . Her følger en kort beskrivelse af den og af de øvrige administrative områder:


    Boot record

    Den første sektor på en disk er altid reserveret tilboot record.Den indeholder oplysninger om disken, eller partitonen - diskafsnittet - for en fysisk harddisk kan sagtens være opdelt i flere partitioner. DOS, Windows 95 og NT anskuer hver partition som et uafhængigt drev.

    Oplysningerne i boot record sætter filsystemet i stand til at håndtere disken. Samtidig indeholder den et lille program, der benyttes til styresystemets opstart.

    Bootrecorden aktiveres af bootstrap-loaderen under pc'ens opstart.

    Her ses en oversigt over sektorens indhold (spring det evt. over, hvis det er uforståeligt):

    8086-instruktion (JUMP).
    DOS-navn og versionsnummer.
    Bytes pr. sektor
    Sektorer pr. klynge i dataområdet.
    Antal reserverede sektorer.
    Maks. antal indgange i rod-kataloget.
    Totalt antal sektorer.
    Media description (er dette en harddisk?).
    Antal sektorer pr. FAT
    Antal sektorer pr. spor.
    Antal disk-læsehoveder.
    Antal skjulte sektorer.
    BOOT-strap programrutine, der starter indlæsning af den skjulte fil
    (fx IO.SYS), der starter styresystemet.

    Bootrecorden findes på alle diske, uanset om de er FAT- eller anderledes formaterede. Sektoren indeholder den nødvendige beskrivelse af partitionen.


    FAT-områderne

    Efter boot-recorden støder vi på FAT-områderne. Dem er der oftest er to identiske af. FAT nummer 2 er simpelthen en sikkerhedskopi af nummer 1, for FAT er helt afgørende for diskens funktion.

    Filadministration med FAT er faktisk et meget enkelt system, men det er lidt kompliceret at beskrive med ord. Der kommer senere praktiske eksempler på det. Her er en første beskrivelse. Opgiv ikke, hvis du ikke helt forstår det følgende.

    FAT består af en tabel af heltal, som har 65.536indgange á 16 bytes. Hver af disse indgange (entry’s) indeholder én oplysning om én klynge.

    Den enkelte FAT-indgangs indhold består af etheltal (herunder skrevet som firecifret hextal), der oplyser én af fire muligheder:

    Mulighed for klyngeindgang i FATVærdi
    Klyngen indgår i en fil, og klyngen den sidste i filen.FFFF
    Klyngen indgår i en fil, og man kan læse nummeret på
    den næste klynge i samme fil.
    fx: A8F7
    Klyngen er tom, og dermed fri.0000
    Klyngen indeholder defekte sektorer.FFF7


    Eksempel på læsning af fil

    Når filsystemet skal læse en fil, foregår det altså i følgende rutine. Vi forestiller os at filen fylder 4 klynger, og i denne situation beslaglægger den klyngenumrene 442, 443, 444 og 448. Men hvordan aflæser styresystemet denne fils "adresse"?

  • Find filens katalog-indgang (ud fra dens stiangivelse)
  • Læs startklynge-nummeret (442) i katalog-indgangen
  • Slå op i FAT under nummer 442. Her ses nummeret på næste klynge (443)
  • Slå op i FAT under nummer 443. Her ses nummeret på næste klynge (444)
  • Slå op i FAT under nummer 444. Her ses nummeret på næste klynge (448)
  • Slå op i FAT under nummer 448. Her ses nummeret FFFF. Det var sidste klynge.

    På den måde bruges FAT hele tiden. Hver gang en fil skal læses, aflæses dens beliggenhed i tabellen. Og hver gang den skrives til disk, skal der først findes ledige klynger til den, og oplysningerne skal noteres i FAT, så den kan genfindes.

    En af de store fordele veddiskcache -programmerne er, at de hele tiden har en kopi af FAT i RAM. På den måde kan "landkortet" over diskens klynger læses langt hurtigere, end hvis styresystemet rent fysisk skulle aflæse FAT fra disk ved hver forespørgsel.


    FAT's størrelse

    FAT-områdernes størrelse afhænger af diskens størrelse, i det hver klynge i dataområdet er tilknyttet én FAT-indgang. Hver indgang optager 16 bytes. Tilbage til vores sektor-regnskab i eksemplet med en harddisk på 160 MB:

    FAT kan højest fylde 128 KB, idet 216 filer á 2 byte = 65.536 x 2 = 131.072 byte = 128 KB. I vores tilfælde viser det sig, at der er 40.400 klynger, fordi diskafsnittet er på 160 MB.

    Vi har to FAT’s på hver 40.400 X 2 byte, det er i alt 161.600, og det bruges der 316 sektorer til.


  • Næste side
  • Forrige side


    Lær mere

    Læs om boot-processen og systembussen i modul 2b.

    Læs om I/O-busserne i modul 2c.

    Læs om bundkortets chipsæt i modul 2d.

    Læs om RAM i modul 2e.

    Læs om BIOS i modul 6c.Copyright (c) 1996-2011 by Michael B. Karbo.