DERS:İŞLETİM SİSTEMLERİ
ÖĞRETİM GÖREVLİSİ: ERDEM UÇAR
HAZIRLAYANLAR:
FİLİZ SOYKAN
ŞENOL ZAFER ERDOĞAN
A.OĞUZ ŞAHİN
HPFS
HPFS dosya sistemi, piyasadaki hard drivelerden daha büyük hard drivelere daha iyi bir erişim sağlanması için ilk olarak OS/2 1.2 ile birlikte tanıtılmıştır. Ek olarak yeni bir dosya sistemi için, mevcut bulunan sistemi, organizasyonu ve network server piyasasındaki büyüyen isteklerin güvenliğini genişletmek gerekliydi. HPFS, FAT’in dizin organizasyonunu sürdürür, fakat dosya isimleri üzerine kurulan dizinlerin otomatik sıralamasını ekler. Dosya isimleri 254 double byte karaktere kadar genişletilmiştir.
HPFS ayrıca bir dosyanın datadan ibaret olmasına imkan verir. Ve diğer anlaşmaları ve güvenliği desteklemek konularındaki artan esnekliğe imkan vermek için özel sıfatlara sahip olmasını sağlar.
Ek olarak dağıtım ünitesi Hpfs altında dizin kayıtları(girişleri) Fat altında olduklarından daha fazla bilgi tutarlar.Bu kayıtlar özellik dosyasında olduğu gibi değişiklik,yaratım ve tarih ve zamana erişimle ilgili bilgi içerir.Hpfs altındaki dizin girişleri dosyanın ilk clusterını göstermek yerine Fnode’u gösterirler.Fnode dosyanın bilgilerini veya dosya datalarını gösteren pointerleri içerebilir clusterlardan disk boşluğunu azaltan fiziksel sektörlere (512 bytes) dönüşmüştür
HPFS bir dosyayı mümkün olduğunca ardışık sektörlere ayırmaya çalışır.Bunu bir dosyanın ardışık işlemlerini yaparken hızı yükseltmek için yapar
HPFS bir sürücüyü 8Mb’lık bandlar şeklinde düzenler ve ne zaman mümkün ise bir dosya bu bandlardan birinin içinde yer alabilir. Bu bandların herbirinin arasında 2K’lık ayırım bitmapları vardır. Bitmap; bir bandın içindeki ayrılmış ve ayrılmamış sektörlerin tracklarını tutar. Banding, performansı artırır çünkü sürücü kafası diskin mantıksal olarak başına(genelde silindir 0) dönmek zorunda kalmaz . Bir dosyanın nerde saklandığına karar vermek için en yakın band ayırım bitmapına gider.
Ek olarak,HPFS bir çift özel data nesnesine sahiptir.
Super Blok
Super Blok mantıksal olarak sektör 16’nın içine yerleşmiştir ve kök dizinin Fnode’unu gösteren bir pointer içerir. HPFS kullanmanın en büyük tehlikelerinden biri eğer Super Blok bozuk bir sektör yüzünden kaybolur veye zara görürse,sürücünün geri kalanı iyi olsa bile partisyonun içerikleri de kaybolur veya bozulur. İyi bir sektör 16 ile herşeyi başka bir sürücüye kopyala
yarak sürücü üzerindeki datayı yeniden bulmak ve Super Blok’u yeniden oluşturmak mümkündür.Ama bu çok karışık bir iştirSpare Blok (Yedek Blok)
Yedek Blok mantıksal sektör 17 içine yerleşmiştir ve bir “Hotfixes” tablosu ve Yedek Dizin Bloğu içerir. HPFS altında bozuk bir sektör tespit edildiğinde “hotfixes” girişi bozuk sektör yerine mevcut olan iyi bir sektörün yerini mantıksal olarak göstermek için kullanılır.Yazma hatalarını kontrol altında tutan bu yöntem hot fixing olarak bilinir
Hot fixing; nerde kötü bir sektör yüzünden bir hata meydana gelirse dosya sisteminin bilgiyi farklı bir sektöre almasını sağlayan ve orijinal sektörü bozuk olarak işareyleyen bir tekniktir. Bunların hepsi, disk I/O’larını yapanherhangi bir uygulamada şeff
af olarak yapılır.(Yani uygulama harddiskte sorun olduğunu bilmez).Hot fixing’i destekleyen bir dosya sistemi kullanmak,FAT’te bozuk bir sektörle karşılaşıldığında ortaya çıkan “Abort,Retry,Fail?” gibi hata mesajlarını ortadan kaldıracaktır.NOT: Windows NT’de kullanılan HPFS versiyonu hotfixing’i desteklemez
HPFS’in Avantajları
HPFS, 200-400 Mb kapasitesi olan sürücüler için en iyisidir.
HPFS’in Dezavantajları
HPFS, 200Mb altındaki büyüklüklerde pek uygun bir seçim değildir.Ek olarak 400Mb üstündeki büyüklüklerde de performans düşüklüğü olacaktır.Windows NT altında HPFS’e güvenlik kuramazsınız.
HPFS sadece Win NT 3.1, 3.5 ve 3.51 altında desteklenir.Win NT 4.0 Hpfs partisyonlarına erişemez.
YÜKSEK PERFORMANSLI DOSYA SİSTEMİ(HPFS) NEDİR?
HPFS, OS/2 için tercih edilen, doğal dosya sistemi veya disk formatıdır. OS/2 1.0 ilk gündeme geldiğinde Microsoft, işletim sisteminin bir parçası üzerinde çalışan elemanlarının diğer kısımlar üzerinde çalışmalarınnı istedi. Bu parça HPFS’ti. Böylece OS/2 1.0 Dos’la aynı disk formatında yani FAT ile çıktı. Performansı eskilerinden iyi olmadı ve Dos kullanıcılarını OS/2’ye çekemedi.
OS/2 1.2’de Microsoft ve IBM araştırmalarına devam ettiler ve Kurulabilir Dosya Sistemleri(Installable File Systems) için bir destek geliştirdiler. IFS özel bir dinamik link kütüphanesidir.CONFIG:SYS içindeki ‘IFS=statement’ bölümüyle çekirdeğin(kernel) dosya sistemi yoluna yerleşir ve bir disk formatına destek sağlar.
OS/2 için birkaç kurulabilir dosya sistemi
HPFS’İN FAT’TEN ÜSTÜNLÜKLERİ
DEZAVATAJLARI
NEDEN HPFS’İN PERFORMANSI DAHA İYİ?
Hpfs’in içine bakmadan önce FAT’in niye çok kötü işlediğine bakalım.Öncelikle önemli data yapıları (kök dizin ve file allocation table) diskin en uzak silindirlerindedir.Ama son yaratılan ve en sık erişilen dosyalar en iç silindirlerdedir. (Diskinizin tam dolu olduğunu kabul edelim) Bu da disk erişiminin en yavaş kısmı olan kafa hareketini arttırır.Sonra bir dizinimiz var. Dizin girişleri doğrusal liste olarak basitçe organize edilmiş. Yani buna en uygun arama; baştan başlayıp istediğnizi bulana kadar veya listenin sonuna vurana kadar aramaya devam etmektir. Belki de daha kötüsü de; CHKDSK gibi bir komut verdiğinizde dizinin ilk girişi CHKDSK.EXE olsa bile komut işlemci öncelikli olan bir CHKDSK.COM bulunabilir diye tam dizini aramalıdır.
HPFS daha iyi dizayn edilmiştir. Disk 16 MB ‘lık bandlara ayrılmıştır. Her bandın dizin yapıları ve ayırım bitmaplarıı merkezine yerleştirilmiştir. Bu ne demektir? Bir dosya içeriği ona erişmeyi sağlayan yapılardan disk yüzeyinde en fazla 8 MB uzak olabilir. Ayrıca kök dizin kafa hareketini azaltmak için merkezdeki banda yerleştirilmiştir. Dizinler B-Treelerd en oluşur. Yani bir dosya ikili arama yöntemiyle yapılır. Yani FAT’in doğrusal arama yönteminden daha az disk erişimi yapılır. Böylece bir HPFSsürücüye DIR komutunu yazdığınız zaman sonuç alfabetik olarak gelir. Kod; ağacı kendiliğinden böler ve doğal olarak çıktı alfabetik olarak gelir. FAT, DIR komutu yazıldığında ki gibi karışık değildir.
Ek olarak, HPFS FAT’tan daha karışık bir caching algoritması kullanır.Tüm bunlar özellikle büyük sürücüler üzerinde
veya tek bir dizin altında pek çok dosya olduğu zaman HPFS’in büyük performans avantajını gösterir.
HPFS SÜRÜCÜMÜ SIKIŞTIRMAMA GEREK VAR MI?
Çok fazla gerek yok. HPFS dosyaları çok fazla parçalamaz.Buna rağmen çok güncelleme yapılan ve random erişilen dosyalar üzerinde çok ekleme yapıyorsanız veya bölünmüş dosya vars
a defrag iyi bir fikir olabilir.eya tek bir dizin altında pek çok dosya olduğu zaman HPFS’in büyük performans avantajını gösterir
HPFS(VE
FAT) İÇİN MAX SÜRÜCÜ BÜYÜKLÜĞÜFat için max sürücü büyüklüğü 2 GB
HPFS için max sürücü büyüklüğü 64 GB(ama son 16 bitlik CHKDSK 16 Gbdan daha büyük sürücülerle uyuşmuyor.)
FAT dosya sistemi depolama bölümünü cluster denen ünitelere ayırır.Clusterlar bitişik sektör gruplarıdır.Ne kadar büyük sürücü o kadar büyük cluster.1-2 Gblık bir sürücü için bir cluster 64 sektör veya 32 Kbden oluşur.Bir dosya son clusterının yarısına geldiğinde bitebilir.Yani her dosyaya ayrılan ‘slack space’ bir clusterın yarısından büyük olabilir.Bu yüzden FAT’de fazla dosya yüklenecek olan büyük sürücüler genellikle mantıksal sürü
cülere bölünürler.HPFS ise her zaman sektörlere böler.Tüm durumlarda her dosya için aşağı yukarı yarım sektörlük ‘slack space’ ler olabilir.Yani büyük sürücüleri bölmeye gerek kalmaz.
AMA FDİSK 512 MB’DAN DAHA BÜYÜK BİR SÜRÜCÜ YARATMAMA İZİN VERMİYOR?
Aslında limit 512 Mb değildir.1024 silindir ve bunlar makine biosuna göre ayarlanır.BIOS\NT 13H alt fonksiyon 08H (sürücü geometri bilgisini döndüren) CH ve CL registerlerindeki silindir sayım bilgisinin 10 bitini kullanır.Böylece BIOS bir sürücünün sadece ilk 1024 silindirini görebilir.İşletim sisteminin ana parçalarının tümünü ilk 1024 silindire yerleşmiş olması gerekir.FDISK bu kuralı yıkan tek bir partition yaratmanıza izin vermeyecektir.(sorunun ne olduğunu söylemeden menü özelliklerinin olduğu gri ekrana döner.) Bu problem özellikle İDE sürücülerinde ortaya cıkar.SCSI ve E-IDE(ATA-2)lerde bu problemler karşılaşılmaz.Bunun yanısıra E-İDE farlı BIOS uzantılarına bağlıdır ve os/2 ile çalışınca problem çıkabilir.
HPFS (VE FAT ) İÇİN MAXIMUM DOSYA BÜYÜKLÜĞÜ
FAT için (sürücü büyüklüğüyle sınırlanan ) 2 Gb dır.HPFS için de 2 Gb dır.Bu os/2 de /seek() e eşit olan Doschgfileptr() API’ye geçen 32 bitlik argümanın sonucudur.
NEDEN HPFS FAT’TAN DAHA FAZLA BÜTÜNLÜK SAĞLAR
FAT’ın data yenileme desteğinde çok az bir fazlası vardır.İki fat vardır.Bunlar kötü bir sektör ilk FAT i okunamaz.Yapabilme ihtimaline karşıdır.Bellekteki FAT yanlışla dolu ise iki kere yazılır ve yenilemeyi imkansızlaştırır.HPFS daha zekidir.Öncelikle dosya sistemi yapısında kullanılan her sektörün belli bir işareti vardır.Her sektörün başında sadece onu tanımlayan, iki veya sekiz byte arası bir imzadır.Örneğin sürücünün 16.sektöründeki süper bloğun “49 E8 95F9C5E953FA” şeklinde bir imzası vardır.Böylece konumu önemsenmeden tanımlanabilir.Dizin blokları ”AE0AE477” şeklinde bir işaretle başlar.Kullanılan dizin girişlerinin fnodelarıda “AE0AEF7” şeklinde bir işaret taşır.Bu yapı CHKDSK nin çok yanlışla dolu bir sürücü üzerinde olsa bile dosya sistemi data yapısını tanımasını sağlar.ve uygun yenilemeyi gerçekleştirir.Ek olarak Fat in kendi içinde sadece ön linkleri vardır.Fatin içinde veya fat ile clusterlar arasında arka linkler yoktur.HPFS tam tersine,farklı dizin blokları ve diğer yapılar arasında hem ön hem de arka linklere sahiptir.Bu nedenlerle CHKDSK çoğu dosya sistemi problemlerini ek ’disk bakım yada hata yenileme’ yazılımına gerek duymadan çözer.Bunun yanısıra CHKDSK linklerden aşağı ileri yönde bir yenileme yaptığından tam bir yenileme için birkaç kez çalıştırılması gerekebilir.
Kitabında şöyle yazar.”disk hatalarını yok etmek için CHKDSK’i tekrarlayarak çalıştırın”.Her zaman birşeylerin tamir edildiği mesajını alırsınız.CHKDSK yı tamir işareti almayana kadar çalıştırmaya devam edin.Dosya sistemi yapılarının imzalarına rağmen CHKDSK neden diskin görünüşte kullanılmaya parçalar gibi yapılarıda tanır ve onarır.özellikle quick formatlar
Sektörlerin bir HPFS Volume'de Haritalanması
Bir HPFS partisyonu üzerindeki sektör kullanımı, data band bitmap bloklarında haritalanmıştır.Bu bloklar 2 Kb uzunluğundadır(4 sektör) ve genelde data bandın başına veya sonuna yerleşmişlerdir. Bir data band yaklaşık olarak 8Mb'dır(Aslında 2Kb'sı bitmap için gerekli olduğundan 8,190Kb). Figür 1. Blok içindeki her bitin durumu bir sektörün dolu yada boş olduğunu gösterir. Eğer bir bit set edilmişse(1) onun sektörü boştur.Eğer bi
t 0 ise kullanılmıştır.Bir data bandın içindeki Kod Sayfası&Data Sektörleri, Hotfix sektörleri, kök dizin DirBlk gibi yapılar, bandın kullanım bitmaplarıyla birlikte tamamen dolu olarak işaretlenir.

.
Figür 1:Bir Hpfs Volume'unun Temel Data Şeması
Her bit bir sektörü haritaladığından,bir byte 8 sektörü haritalar ve tüm 2Kb'lık blok 16,384 sektörü(bitmap bloğunu da içine alarak) 8Mb'lık bir bandda haritalar.İki blok birbirine bitişik olabileceğinden 16,380Kb maximum olası parça genişliğini elde ederiz. Figür2'de dosya örnekleri ve boşyer haritalamasını görüyoruz.

Figür 2: Bir data bandının kullanım bitmapındaki ilk 5 byteın bandın ilk 40 sektörüyle haberleşmesi.
Bu örnekte 23 kullanılan sektörü ("u") ve 4 kullanılmayan sektörü-daha sonra sektörlerin "freerun"ları olarak bahsedeceğiz- (".") görüyoruz.Küçük bir ihtimalle de olsa 23 sektör(burada 4 parça) bir tek dosyaya ait olabilir ve başka küçük bir ihtimal, 23 "sıfır-uzunluk" dosyasının Fnode'ları olabilir.(Bir Hpfs Volume üzerindeki her dosya veya dizin girişi bir Fnode sektöre sahip olmalıdır.)
Bitmapların avantajları başlıca iki gruptur.Birincisi; küçük ayırım ünitesi boyu,büyük Fat partisyonlarına nazaran çok daha az ayırım ünitesi artığı demektir. İkincisi; küçük haritalama yapısı,Hpfs'in bir data bandını hızlı aramasını sağlar. Mesela, Hpfs32,760 ayırım ünitesini 4 Kb bitmaplarla haritalayabiliyordu.Halbuki 16 bit Fat yapısı 32,768 ayırım ünitesi haritalam
ak için 64Kb'ya (her Fat kopyası için) ihtiyaç duyar.
HPFS FILE SYSTEM
HPFS ,OS/2 versiyon 1.2 ‘de kullanılan, FAT dosya sisteminin bütün problemlerini çözen yüksek performanslı bir dosya sistemidir. Ayrıca son birkaç yıldaki ortaya çıkan beklentileri karşılamak için tasarlanmıştır. HPFS sadece rastgele erişimli blok depolama cihazlarındaki dataları organize etmeye hizmet etmez; ayrıca uygulama programlarının dosyalara dayalı isteklerini cihaz sürücülerine çeviren bir yazılım modülüdür. HPFS aynı OS/2 sisteminde birbirine uymayan birka
ç yapıya erişimi mümkün hale getiren kurulabilir bir dosya sistemi örneğidir. Akıllı caching gibi ilerlemiş veri yapılarının kullanıldığı mükemmel bir sistem elde edilir. Sektörler kullanılarak disk boşlukları daha ekonomik olarak yönetilir. HPFS ayrıca büyük bir hata düzeltme yöntemi içerir. Uygulama programlarının sadece genişletilmiş özellikler ve uzun dosya isimlerinin kullanılmasını sağlayan basit değişikliklere ihtiyacı vardır. HPFS rastgele erişimli blok depolama cihazlarında dataları organize etmenin bir yoludur. Ayrıca dosya uzantılı istekleri uygulama programlarından cihaz sürücülerinin anlayabileceği basit isteklere çeviren yazılım modülüdür.İlk defa OS/2 işletim sisteminde kullanılan HPFS Microsoft’un ağ bölümünde kendi genesisine sahiptir, ayrıca OS/2 işletim sisteminin şef mimarı Gordon Letwin tarafından tasarlanmıştır. HPFS çoğalan güçlü PC lerin, sabit disklerin ve yıllardır uygun platrform olarak nesneye dayalı diller, uygulamalar ve kullanıcı arayüzlerine hizmet eden ağların ilişkilerini k
arşılaması için tasarlandı.HPFS karmaşık bir konudur çünkü üç farklı dosya sisteminin yayımlarını birleştirir. Birincisi rastgele erişimli blok depolama cihazlarında dataları organize etmenin bir yoludur. İkincisi uygulama programlarından dosya uzantılı istekleri cihaz sürücülerinin anlayabileceği basit isteklere en yüksek performansta çeşitli yaratıcı teknikleri kullanarak çeviren bir yazılım modülü olmak. Üçüncüsü HPFS’in kurulabilen dosya sistemleri gibi yeni OS/2 özelliği olarak bilinen önemli kullanışlı örneklemedir.
HPFS OVERVİEW
Piyasada kullanılan daha geniş sabit disklerde daha hızlı erişim sağlamak amacıyla OS/2
1.2 versiyonuyla geldi. Buna ek olarak yeni bir dosya sistemi için genişletilmiş isim sistemi, organizasyonu ve ağ serverlarının genişleyen isteklerinin güvenliği gereklidir. HPFS FAT ‘in klasör organizasyonunu devam ettirir. Dosya isimleri 254 karaktere kadar genişletilir. HPFS bir dosyaya verinin yerleştirilmesi, güvenlik ve anlaşmalar gibi terimlerin esnekliğini arttıran özellikler sağlar. Buna ek olarak dağılım ünitesi clusterlardan fiziksel sektörlere değiştirilir.HPFS altında FAT ‘e göre daha fazla bilgi tutulur. Özellikli dosyalar gibi dosyalar oluşturmak, zaman ve tarihe erişmek ve değişiklikler hakkındaki bilgileri içerir. Dosyanın ilk clusterini işaretlemek yerine klasör HPFS altındaki FNODE ’a gider. FNODE dosyanın verilerini veya dosyanın verilerini işaret eden işaretçiyi içerir veya dosyanın verilerini işaretleyen diğer yapıları içerir.
HPFS sürücüyü 8MB ‘lık bant serilerine böler ve mümkün olan herhangi bir zaman bu bantların biriyle dosya birleştirilir. Bu bantlar 2KB ‘lık dağılım haritalarıdır. Bunlar bir bölümdeki sektörlerin traklarını korur. Bantlama performansı arttırır, çünkü sürücü başı diskin mantıksal başlangıcını döndürmez. Ama en yakın dağılım tablosu bandına dosyanın nerede depolandığına karar vermek için döndürür. Ek olarak HPFS özel data objeleri içerir.
HPFS VOLUME YAPISI
HPFS volumleri yeni bir partition tipleridir ve bir çok FAT biçimli sabit diskle yan yana bulunabilir. IBM HPFS volume 512 baytlık sektör büyüklüğü kullanır ve 2199 GB maksimum büyüklüğe sahiptir.
HPFS volumunde floppy disklerin formatlanmamasının hiçbir özel sebebi olmamasına rağmen, MS FAT file sistemle bunu yapmayı planlıyor. Bu MS-DOS la OS/2 sistemi arasında dosya transferini kolaylaştırmaktadır.
HPFS volume birkaç sabit yapıya sahiptir. Volume ‘un 18 KB ‘ı (0-15. sektörleri) BootBlock’tur. BootBlok volume ismini(volume ID), ve disk BootStrap programını içerir. BootStrap nispeten daha çok hayata yakındır ve HPFS onu kısıtlanmış modda işletim sistemi dosyalarını her nerede bulunuyorlarsa bulmak ve onları okumak için kullanır.
Sector 16 ve 17 SuperBlok ve SpareBlok olarak adlandırılır. SuperBlok sadece disk güvenlik utilitileri tarafından tanımlanır. Serbest boşlukları, kullanılmayan blok listeleri, dizin blokları ve root dizini gösteren pointerlar içerir. Ayrıca volume un en son kontrol tarihini ve CHKDSK ile onarım tarihini de içerir. SpareBlok ise çeşitli flaglar ve pointerlar içerir. Sistem çalıştığı zaman tanımlanırlar.
Diskin artakalan kısımları 8MB lık bandlara bölünür. Her band’da band içindeki her sektörü bir bitle gösteren bitmaplar(bit haritaları) vapdır. Bit 0 ise sektörün kullanımda, 1 ise sektörün kullanılabilir olduğunu belirler. Bitmap bandın başına yada sonuna yerleştirilir. İki bandın bitmap leri yan yana olabilir. Bir band blok’un ortasına da yerleştirilebilir. Bu dizin bloku olarak adlandırılır ve özel işlemleri kabul eder. Band büyüklüğü karakteristiktir ve dosya sisteminin sonraki versiyonlarında değiştirilebilir.
FİLES and FNODES
HPFS deki her dosya ve klasör Fnode olarak adlandırılan dosya sistemine özgü yapılarda depolanır. Her Fnode bir sektörü işgal eder ve dosya sistemi tarafından kontrol ve erişim bilgilerini içerir. Fnode daima gösterdiği dosya yada klasör yanına depolanır. Fnode daki dağılım yapısı dosya yada klasörlerin büyüklüklerine bağlı olarak birkaç form alabilir. HPFS bir dosyayı bir yada birden fazla çalışan
program yada büyük sektörler topluluğu olarak düşünür. Her çalışan program double word le sembolize edilir(32 bit-ilk sektör numarası,32 bit-uzunluk.).İlk HPFS onun veri yapısını eldeki işle(görevle) karşılaştırır. Bunlar işlenmiş data yapıları (B tree ve B+ tree) rastgele hızlı erişim için dosyalara, klasörlere , dosya veya klasörlerin bölümlenmiş sektörlerine ve uygun boyuttaki serbest boşluklara yerleşmek için kısa ve basit veri yapılarıdır. Bu veri yapılarını işleyen rutinler assembler dilinde yazılır
ve özenlice ayarlanmıştır.Sonra, HPFS nin en önemli hedefi , başlıca görevi mümkün olduğu an ard arda gelen sektörleri aynı dosyaya atamaktır. Diskin okuma yazma kafasını bir traktan başka bir traka getirebilmek için gerekli zaman fazla dır. Bu yüzden HPFS bölümlemiş dosya boşluklarıyla bu tür güçlüklerden sakınmak için sıkı çalışır ve ayrıca onun kontrol ettiği şeylerin yakınındaki Fnode ve serbest boşluklar gibi yapılarını korur.
Yüksek bitşik dosyalar bir zamanda bir çok sektör için disk sürücülerinin isteklerini yerine getiren dosya sistemlerine yardım eder. Ayrıca disk sürücülerinedisk kontrolcüsünün transfer yeteneklerini sağlar ve hizmet etmesi gerekli olan disk tamamlama interruptlarının sayısını azaltır.
Tabiki dosyaları multitasking sistemlerdeki pek çok update edilenler gibi bölümlenmeden korumak kolay değildir. HPFS kullanımındaki bir diğer strateji yeni oluşturulan dosyaların diskte dağınık bantlara dağıtmaktır. Bu na karşılık başka bir strateji ise dosyalara 4KB lık boşluklar atamaktır. Dosya
kapandığında erişim için geri verilir. Eğer uygulama dosyanın esas boyutunu bilirse dosya oluştuğu zaman dosyanın yerleşimini belirterek dosya sistemine yardım eder. Sistem dosyayı tutmak için yeterli sektörleri bulmak için serbest bitmapları tarar. HPFS çok geniş cache leri etkileyici şekilde kullanabilir.Başka bir teknikle HPFS in kullandığı programda tekrar kullanılacağına inandığı dataları tekrar okumatır. Mesela bir dosya açıldığında dosya sistemi tekrar okuyacak ve Fnode ile ilk birkaç (dosyanın içindeki)sektörü cache alacak.bir program küçük okuma istekleri çıkardığı zaman, dosya sistemi 2KB şeklindeki paketlerde dataları alıp getirir ve cache erişim için koyar.
Sonuçta multitaskingte OS/2 işletim sisteminin desteği HPFS yi “lazy write” konusunda güvenilir yapar. Bir program diske yazım istediğinde data cache yerleşir ve cache buffer işaretlenir. Lazy write içinde program daha hızlı çalışır çünkü okuma istekleri yazma amacıyla hiçbir zaman durdurulmaz.
DIRECTORY
Dizinlerde dosyalar gibi Fnode larda tutulur. Root dizindeki Fnode işaretçisi SuperBlock ta bulunur. Root dan farklı olarak dizin Fnode ları ana dizinin alt dizinlerinin girişlerine uzanır. Dizinler heerhangi bir boyuta kadar büyüye bilirler. 2KB lık dizin bloklarından oluşur(4 sektöre yerleşir). Dosya sistemi dizin bloklarını diskin ortasındaki dizin bandına yerleştirmeye çalışır. Eğer dizin bandı doluysa dizin blokları uygun olan boşluğa yerleştirilir. Her 2KB lık dizin bloğu birden çok
dizin girişi içerir. Dizin girişleri zaman, tarih, Fnode pointeri, dosya yada dizin uzunluğu, ismi B+ pointer gibi pek çok alanı içerir. Her giriş girişin uzunluğunu belirten bir wordle başlar.bu, dosya sisteminin özel versiyonlarında kullanılan her girişin sonunda esnek boşlukların değerlerini sağlar ve dizin bloklarının hızlı bir şekilde geçilmelerini sağlar. Dizin bloktaki giriş sayıları isim uzunluğuyla değişir. Eğer dosya ismi uzunluğu 13 karakter ise dizin blok yaklaşık 40 giriş tutar.dizin bloktaki girişler isimlerinin binary karşılıklarıyla sınıflandırılır. Dizin bloktaki en son giriş bloğun sonunu işaret eden taklit kayıttır. Eğer dizin çok büyürse B tree lere göre 2KB lık bloklar eklenerek büyütülür.belirli bir ismi aradığı zaman dosya sistemi ya buna kadar yada o isimden daha büyük kayıt bulana kadar devam eder. Son durumda dosya sistemi B tree pointeri girişten çıkarır eğer işaretçi yoksa arama başarısızdır. Diğer tarafan dosya sistemii ağaçtaki diğer dizin bloğa işaretçiyi götürür ve aramaya devam eder. B tree dizin yapısında açma ve bulma işlemlerinde ilginç karışıklıklar vardır.bir dosyanın oluşumu, tekrar isimlendirilmesi, silimi kompleks işlemlerle sonuçlana bilir.(dizin blokların eklenmesi, isimlerin bir bloktan başka bir bloğa ağaç dengesini sağlamak için taşınması gibi). Gerçekte yeniden isimlendirme işlemi dosya büyümese bile yeterli disk boşluğu olmayışından başarısız olabilir. Bu sorundan kurtulmak için HPFS serbest blok havuzu oluşturur. Bu blok SpareBlock içinde depolanır.
B TREES and B+ TREES
Basit ikili ağaçta her node node un ağaçtaki mantıksal pozisyonunu sınırlayan anahtar değeri içeren bazı dataları bulundurur(alt ağacın sağ ve sol nodelarının işaretçisi gibi). Ağaç root denilen node la başlar. Ağaç yapraklarının sonunda bulunan node lara canlılar denilmektedir. Belirli bir data parçası bulmak için ikili ağaç katedilir. Her node da istenen anahtarla node un anahtarı karşılaştırılır. Eğer node uymazsa node un alt ağaçları seçilir. Bu işlem karşıl
aştırma olumlu olana kadar devam eder veya boş alt ağaç gelene kadar.Böyle basit ikli ağaçlar kolay olmasına rağmen dezavantajları vardır. Eğer anahtarlar iyi dağıtılmamışsa veya ağaca iyi eklenmemişse ağaç asimetrik olabilir. Pek çpk programcı B tree olarak bilinen dengelenmiş ağaç tipini tercih eder. B tree de bütün node larda data depolanır.
B tree nin kurulması dah
a kompleksdir. Yeni data eklemek ahatar değeri değiştirmek veya datayı silmek bir node u bölerek veya birleştirerek sonuçlanabilir.B+ tree B tree nin node unun iki tipiyle özelleştirilmiş şeklidir. B+ tree nin B tree den avantajı daha fazla değeri iç node larda tutabilir. Böylece işlemler daha hızlı olur aynı zamanda dalın ortalama boyu daha kısadır.
BİR B-TREE’NİN HPFS UYGULAMASI
Teori iyi ama şimdi gerçek dünya örnekleri verme zamanı HPFS uygulamasında node’un rolünü DIRBLKlar alır. (DIRENTler node içindeki anahlara uyar.) Bir DIRBLK 2K data yapısındaki gibi düşünülerek 4 sektörden oluşturulmuştur. Bu blok içinde 20 byte başlık ve ardından yaklaşık 44 DIRENT’ler vardır ve herbiri bir dizin veya dosyanın özelliklerini ve disk üzerindeki konumunu tanımlar. Dosya dizin isimleri farklı uzunluklardadır. Yani bir DIRENT büyüklüğü de aynı şekilde değişir. Ama büyüklüğü her zaman 32 Bit düzenini sağlamak için 4’ün katı olacaktır. İsim büyüklüğü “.”ve uzantı içerir.Uzantısı olmayan bir isim nokta içermeyecektir.
Herhangi bir dizinin ilk DIRENT’i “..” girişidir. Herhangi bir kök dizini içeren DIRBLK’deki son giriş bir end işareti kaydıdır. Bir dizindeki ilk DIRBLK’deki girişlerin sayısı(“..” ve end işaret kayıtları sayılmayarak.) dosya ismiyle karşılaştırılırsa ;
İsim uzunluğu Maximum DIRENTler
2-5 54
6-9 49
10-13 44
14-17 40
Bir DIRBLK’nin sınıfı(konumu) DIRENT’lerin maxımum sayısından bir fazla olacaktır.Bir dizinin diğer DIRBLK’ları ,”..” girişine sahip olmadığından dolayı diğerlerinden yine bir fazla sınıfa sahip olabilir.
Offset Data Size Comment
hex (dec) bytes
Header
00h (1) Signature 4 0x77E40AAE
04h (5) Off. 1st Free 4 Offset within DIRBLK to 1st free entry.
08h (9) Change 4 Low bit indicates whether this is
topmost DIRBLK in B-tree.
0Ch (13) Parent LSN 4 If topmost, LSN of this dir's FNODE.
Otherwise, LSN of parent DIRBLK.
10h (17) DIRBLK's LSN 4 Self-pointer.
DIRENT #0
14h (21) Entry's Size 2 Always a multiple of 4.
16h (23) Flags 1 0x01 (0) Special ".." entry
0x02 (1) Has an ACL
0x04 (2) Has a B-tree down-pointer
0x08 (3) Entry is a dummy end record
0x10 (4) Has an EA list
0x20 (5) Has an extended permission list
0x40 (6) Has an explicit ACL
0x80 (7) Has "needed" EAs
17h (24) Attributes 1 0x01 (0) Read-Only
0x02 (1) Hidden
0x04 (2) System
0x08 (3) Not used. Would be Vol attr.
0x10 (4) Directory
0x20 (5) Archive
0x40 (6) Long Name (bigger than 8.3)
0x80 (7) Reserved
18h (25) FNODE LSN 4 FNODE of this entry.
1Ch (29) Time Last Mod. 4 Secs since 00:00 1-1-70
20h (33) File Size 4
24h (37) Time Last Access 4 Secs since 00:00 1-1-70
28h (41) Time When Created 4 Secs since 00:00 1-1-70
2Ch (45) EA Size 4 Size of internal or external EAs.
30h (49) Flex 1 3 LSBits: # ACLs. 5 MSBits: reserved
31h (50) Code Page Index 1 7 LSBits: CP index. MSBit: DCBS present
32h (51) Name Size 1 Length of following name
33h (52) Name n Variable length: 0-254
33h+n ACL ? Access Control List info, if present.
Padding 0-3 bytes to reestablish dword align.
x Down Ptr LSN 4 If present, down ptr to next B-tree node
DIRENT #1
Start offset: DIRBLKHdrLen (20 bytes) + DIRENT #0 size
...
Last "END" DIRENT in DIRBLK contains information of limited validity
Entry's Size 2 32 (dec) or 36 if it has a Down Ptr.
Flags 1 Bit 3 (counting from 0) set.
...
Don't trust any reported FNODE LSN. End marker doesn't have one.
Down Ptr LSN 4 If present.
Note 1: Decimal offset is shown with 1-based numbering to suit REXX work.
Note 2: x = DIRBLKHdrLen + DIRENT size - 4. Always computed from DIRENT end.
Figure 5:
Bir HPFS DIRBLK ve onun DİRENT’lerinin şeması.
DIRBLK’lar 2 K uzunluğunda ve bir DIRENT’in isim alanının (0-254 bytes)farklı uzunluklarına bağlı olarak DIRENT’in maksimum sayısında da farklılıklar olabilir.

