From: bof@midget.saar.de (Patrick Schaaf)
Subject: Re: OS/2 HPFS kontra FAT (was: OS/2 2.0 Gruppe wo)
Organization: Yoyodyne Programming Systems,  midget headquarters, Germany
Date: Mon, 27 Jul 1992 09:24:07 GMT

werwolf@fenris.abg.sub.org (Martin Freiberg) writes:
>ak@ananke.stgt.sub.org (Andreas Kaiser) writes:
>> Uebrigens: Wenn man, was sinnvoll ist, fuer das OS/2 System eine
>> separate 40-50MB Partition anlegt, kann man die genauso gut mit FAT
>> formatieren. Denn HPFS ist in diesem Fall nicht schneller, eher ein
>> Tick langsamer.
>Wie ist das zu verstehen ?
>- Ist HPFS nur bei kleinen Partitionen 'nicht schneller' als FAT,
>- oder wird HPFS abgebremst sobald sich eine nicht-HPFS- Partition
>  mit auf der Platte befindet ?

Ich bezweifle, dass HPFS bei kleinen Partitionen langsamer als FAT ist.
Im allgemeinen ist es definitiv schneller. Andreas, Du postest doch jetzt
sicherlich, mit welchem Benchmark Du zu diesen Ergebnissen gekommen bist
und wie genau die Ergebnisse aussahen. Immerhin hast Du eine ziemlich
ueble Behauptung aufgestellt, ohne auch nur den geringsten Schimmer einer
Erklaerung zu posten. Schreib bitte auch dazu, auf welchem Rechner Du
das ausprobiert hast. Nach dem, was ich hier sehe, ist HPFS (auch bei
Vorhandensein einer FAT-Partition) schneller als FAT, und auch DOS-
Programme, die in einer DOS-Box laufen und auf HPFS zugreifen, werden
beschleunigt, wenn sie viel mit der Platte machen und das auf einer
HPFS-Partition tun koennen. Mal sehen, wenn Tilman wach ist, schick
ich vielleicht noch die iozones hinterher.

>Wie/was ist den (genau) der funktionelle Unterschied zwischen
>HPFS und FAT ?  Den Aufbau von FAT weiss ich aber der Aufbau vom
>HPFS kenne ich noch nicht.

HPFS ist vollkommen anders aufgebaut. Ich hab leider gerade keine
brauchbare technische Doku zur Hand, aber hier ein paar Highlights:
  - Verzeichnisse sind Baeume statt Arrays. Files werden schneller
    gefunden
  - Die FAT als globaler wo-steht-was-Merker ist verschwunden.
    Die Platte wird in mehrere Cylinder-Groups unterteilt, die jeweils
    eine Bitmap mit der Blockbelegung enthalten.
  - Dateien werden moeglichst in einer Cylinder-Group abgelegt, es
    wird versucht, Fragmentierung zu vermeiden :-)
    Sprich: Wenn eine Datei neu geoeffnet wird, bekommt sie erst mal einen
    kleinen Batzen (~10k) Plattenplatz. Die naechste Datei wird in einer
    anderen Cylindergroup geoeffnet.
  - Die Information, welche Bloecke der Platte wie zu einer Datei ge-
    hoeren, ist auf der Platte verteilt angelegt aehnlich dem Konzept
    der meisten Unix-Filesysteme. Im Gegensatz zu Unix sind diese
    Verweisbloecke "komprimiert" in der Form
      Startsektor (logisch)    Laenge    phys. Block
	  0			 10k       97512
	 20			 23k	   127513
	 66			 2.5k      56666
    wobei immer mit 512byte-Bloecken gearbeitet wird (reduziert das
    interne Fragmentierungsproblem des FAT-Filesystems).
    Diese "Komprimierung" spart im obigen Beispiel 68 Blockverweise.
  - Fileallokierungsdaten werden auf irgendeine Art und Weise (Gedaecht-
    nis ist schwammig hier) redundant abgelegt, so dass bei einem Crash
    die Platte ziemlich problemlos und flott wieder repariert werden
    kann.

Alle Angaben ohne Korrektheitsversprechen, das kam aus dem Gedaechtnis...
Wer Fehler entdeckt - bitte praezisieren.

Gruss
  Patrick

-- 
bof@midget.saar.de      /   \      I've just spent an hour in Your head.
Saarbruecken, De     .^/ -.- \      Believe me, I've been in nicer places.
Patrick Schaaf      / /       \        (kid eternity)
-                  this line intentionally blanked right                  -