SÜRÜCÜLERİN KONTROL ÜNİTESİ
Hard disk sürücüleri, aynı disket sürücüleri gibi, kontrol ünitesi içeren bir karta gereksinim duyarlar. IBM AT’lerde hem disket, hem de hard disk sürücülerinin kontrol üniteleri tek bir slot’a takılan ortak bir kartı paylaşırlar. IBM PC ve XT’lerde ise, hard disk için ilave bir kontrol kartı gerekmektedir. Kontrol ünitesini içeren kart, verilerin hard diskten hafızaya gönderilmesi işlemine yardım eder. Kontrol kavramı; verilerin okunmasına, yazılmasına, manyetik kafanın konumlanmasına ve birçok başka sürücü işlemine ilişkin emirler yollayan bir kontrol çipinden gelmektedir.
Kontrol ünitesinin görevleri ise, elektronik olarak sürücünün hareketlerini koordine etmek, kodlanmış bit zincirini gerçek verilere dönüştürmek ve hataları ortaya çıkarmaktır. Tüm bunlar çok hızlı olarak gerçekleşir; hatta bazen bilgisayarın veri işleme hızından bile daha hızlıdır.
VERİLERİN KODLANMASI
Kontrol üniteleri, veri kodlama yöntemlerinde birbirlerinden farklılıklar gösterirler. Verilerin kodlanması, onların hafızadan alınıp disk yüzeyine bitler halinde yazılması anlamına gelir. Eğer düşünülecek olunursa kontrol ünitesinin elektronik aksamı çok karışık bir işin altından kalkmak zorundadır. Manyetik kafanın altından yaklaşık olarak 60,000 tane yükü değişmiş yük alanı içeren bir iz geçer. İz sadece birkaç inch uzunluğundadır ve manyetik kafanın altından sadece 17 milisaniyede bir tam tur yapar. Yani 512 byte’lik (4096 bitlik) bir sektör sadece saniyenin binde birkaçı kadar kısa bir sürede kafanın altında geçer. Kontrol ünitesinin manyetik kafanın altından hangi yük alanının geçtiğini nasıl bilebildiği sorusu aka gelebilir. Fakat eğer sadece bir tek yük alanı kadar bir şaşma olsaydı, tüm veriler birbirlerine karışırdı. Bu sorunun cevabı “formatlama işlemi esnasında disk yüzeyine yazılan ve sektörlerin başlangıç yerlerini belirten veriler sayesinde” dir. Manyetik kafa, bir sektördeki verilerin üzerinde dolaştığında, kontrol ünitesi formatlamayla girilen işaretlerden birine rastlamadan önce binlerce manyetik yük alanını takip eder.
FM ve MFM Kodlamalar
Bu kadar çok sayıdaki yükün takibinde kontrol ünitesinin oryantasyonu kaybetmemesi için belli kodlama yöntemleri geliştirilmiştir. İlk geliştirilen FM (frequency modulation) kodlama yönteminde. ilave bir vuruş ile (clock pulse) yeni bir yük alanı daha kullanılmıştı. Bu şekilde disk kapasitesinin yarısı harcanmaktaydı. Daha sonra ileri sürülen bir fikre göre, bir yük değişiminin ardından gelen değer öncekinin değerine bağımlı olarak değişmekteydi. Bunun neticesinde bugün çoğu diskte kullanılan MFM (modified frequency modulation) kodlama düzeni yaratılmış oldu. Bu metot, zaman aralığı bitini kaldırarak, bir diskin kapasitesini FM kodlama yöntemindekinin iki katına çıkartmıştır.
RLL Kodlama
Son zamanlarda, RLL (Run-Length Limited) kodlama olarak adlandırılan bir metot daha sık kullanılmaya başlanmıştır. Kullanılan teknoloji aslında yeni olmamakla birlikte, son zamanlara kadar çok pahalıya mal oluyordu. RLL işleminde, veriler bir dizi özel kodlara dönüştürülür. Bu kodlar belli sayısal karakteristiklerden, örneğin ardarda gelen sıfırların miktarından meydana gelir. Buradaki mantık çok karışık olsa da, neticede veri yoğunluğu artırılmış olur. RLL 2.7 kodlama yönteminde peş peşe gelen sıfırların sayısı 2 ile 7 arasında sınırlandırılmıştır. Bu, sıfırların geçme boyunun (run-length) en çok 7 ile sınırlandırılmış olduğunu gösterir. Sonuç olarak, disk kapasitesi en az %50 artırılmış olur. RLL 2.7 kodlama metodu, günümüzde mikrobilgisayarlarda en çok kullanılan metottur. Bazı üreticiler ise, kısa bir süre içinde RLL 3.9 kodlama metodunu piyasaya sürdüler. Bu metot disk kapasitelerini iki katına çıkartmıştır.
RLL iz başına düşen sektör sayısını artırırken, belli bir anda manyetik kafanın altından geçen veri miktarının artmasına da yol açar. Bu da veri aktarım oranının artmasıyla sonuçlanır. Ayrıca, bir silindirdeki veri miktarını da artırarak, manyetik kafa hareketlerini azaltır.
Dezavantajlar
RLL kodlama metodunun bazı sorunları vardır. Öncelikle, RLL’yi kullanan kontrol üniteleri MFM kullanan kontrol ünitelerinden %50-%100 arası daha pahalıdırlar. Bundan daha da önemli olan bir sorun ise, sürücünün elektronik aksamlarının da bu veri aktarım oranına ayak uydurmak zorunda olmasıdır. Piyasada sunulmakta olan hard disk sürücüleri, RLL kontrol üniteleriyle uyumlu oldukları halde, çoğu bunlarla uyum içinde çalışmazlar.
HATALARIN DÜZELTİLMESİ
Kontrol ünitesi, birçok işlevinin yanı sıra, hata düzeltme işleminden de sorumludur. Bunu yaparken CRC (Cyclic Redundancy Check) olarak adlandırılan bir yöntem kullanılır. Bu işlemde, matematiksel bir formül yardımıyla veri blokları kontrol edilir. İşlemin sonucu ise veri bloğunun, yani sektörün arkasına yazılır. Bundan sonra bu blok tekrar okunduğunda, kontrol ünitesi bu değeri yeniden hesaplar ve bloğun sonunda bulunan değer ile karşılaştırır. Değerler farklı çıkarsa kontrol ünletesi hata verir. Bu teknik, birden çok hatayı da saptayabilecek kabiliyettedir.
Mevcut hatanın ciddiliğine bağlı olarak, kontrol ünitesi çoğu hata durumunda verileri yeniden oluşturabilir. Alışıldık bir sürücüde verilerin yeniden oluşturulabilmesine olanak sağlayan bir hata (recoverable read error) 10 trilyon byte’da bir meydana gelirken, verilerin yeniden oluşturulabilmesine olanak sağlamayan bir hata (nonrecoverable read error) daha da ender olarak meydana gelir. Arama hataları (seek errors), manyetik kafanın bir işareti kaçırdığı durumlardır ve 1 milyon denemede bir meydana gelirler. Bu çok yüksek güvenirlik oranı. aslında çoğu kullanımlar için son derece yeterlidir. Mekanik ve manuel hatalar bunlardan çok daha tehlikelidir.
ARA BİRİM
Verilerin aktarım oranı, kullanılan ara birimlere bağlı olarak değişir. Ara birim, bilgisayar ile hard disk arasındaki iletişimi sağlayan bir sistemdir. Böyle bir ara birim ya sürücünün elektronik aksamında, veya kontrol ünitesinde bulunur. Genelde iki tür ara birimden söz edilir:
Cihaz ara birimleri (device-level interfaces) ve sistem ara birimleri (system-level interfaces). Bunlardan daha basit olanı, cihaz ara birimi. sürücüye erişim için gerekli olan temel elektronik aksamları içerir. Sistem ara birimi ise, cihaz ara birimi ile bilgisayar arasındaki iletişimi sağlar. İki ara birim arasındaki sınırı kesin olarak belirlemek çok zordur. Ancak, sistem ara biriminin daha kabiliyetli olduğu söylenebilir, çünkü daha yüksek bir seviyede çalışır.
ST506 Ara Birimi
IBM bilgisayarlarında iki çeşit ara birim kullanır:Normal ST506/412 standart ara birimleri ve daha hızlı olan ESDI standart ara birimleri. 506 standart ara birimi 5 Mbps’lik (saniye başına düşen megabit) bir oranda veri aktarımı gerçekleştirebilmektedir. Bu, standart 5 MB’llk bir hard diskin yüksek kapasiteli olarak görüldüğü dönemlerde çıkarılmıştır. Bu 5 Mbit’lik oran IBM XT’ler için yeterli bir orandı, çünkü bilgisayar, hard diskin kontrol ünitesi kadar hızlı bir şekilde buffer’a veya buffer’dan veri aktarımı gerçekleştiremiyordu. Sürücüler bilgisayarın kendisinden daha hızlıydı.
ESDI Ara Birimi
Değişim, daha hızlı olan 80286 veya 80386 microprocessos’lerin piyasaya sürülmesiyle gelmiştir. Daha sonra da Pentium serileri ile devam etmiştir. Artık microprocessos’ler verileri sürücülerden çok daha hızlı olarak hafızaya aktarabiliyorlar. Bunun neticesinde ise ST506’lardan daha hızlı olan ESDI ara birimleri üretilmeye başlanmıştır. ESDI ara birim’lerinin çoğu, saniyede 10 Mbit’lik veri aktarımı gerçekleştirseler de, bu hızı 20 Mbit’e çıkaran ESDI’ler de vardır. Bu kadar yüksek bir veri aktarım oranı, sadece, bir ize sığdırılan 512 byte’lık sektörlerin sayısını iki katına çıkartabilen yüksek kapasiteli sürücülerle mümkündür. ESDI ara birimleri ST506’lardan sadece daha hızlı değil, aynı zamanda daha da kabiliyetlidirler. Disket ve hard disk sürücülerinin haricinde, teyp backup üniteleri ile de çalıştırılabilirler. Ayrıca, bu aletler arasındaki veri aktarımını da bunların kullandıkları sektör büyüklükleri birbirlerinden farklı olsa dahi. gerçekleştirebilirler. Hataların belirlenmesi işleminde de, ESDI ara birimleri ST506’Iardan daha verimli çalışırlar.
Asıl Veri Aktarım Oranları
Saniyede 625,000 byte’lik bir veri aktarım oranına sahip bir sürücünün, 100 KB’lik bir dosyanın yüklenmesinde neden uzun bir süre gerektirdiği düşünülebilir. Elektronik aksamlar, bu hızlarını, sadece manyetik kafa istenen konumda bulunduğu vakit geçekleştirebilırler. 40 milisaniyelik bir erişim hızında manyetik kafanın her hareketi 25,000 byte’lık bir veri aktarımı için gerekli olan süreyi harcar. Her istenilen anda da istenilen sektörün manyetik kafanın altında bulunması gerekir. Dakikada 3,600 devirlik bir sürücü, aranan sektör eğer diskin diğer yüzündeyse, 5,000 byte’lık bir veri aktarımı için gerekli olan süreyi harcar. Başka bir husus da, elektrik aksamın da her zaman hazır olamayacağıdır. Kontrol ünitesi CPU işlemini bitirene kadar beklemelidir. Kullanılan programların da bir kısım verileri işledikten sonra diğer verilere geçtiği unutulmamalıdır. Bu ilave veri işlemi hard diskin taşma faktörünün aşılmasına ve diskin normalden fazla dönmesine sebep olabilir. Bu esnada elektronik aksamlar beklemek zorunda kalırlar.
SCSI Ara Birimi
Yaygınlaşmakta olan üçüncü bir standart ise, çok kabiliyetli olan SCSI ara birim standardıdır. Bu ara birlmlerde, kontrol ünitesinin tüm fonksiyonları sürücünün kontrol kartı tarafından gerçekleştinilir. Bunlar SCSI port’u bulunan bir bilgisayara direk bağlanabilen sistem ara birimleridir. Bu port, aynen seri ve paralel portlar gibi, bilgisayarın arkasında bulunur.
IBM, SCSI ara birimlerini bir SCSI adaptörü yardımıyla kullandırmaktadır. Böylece, tek bir bağlantı slot’u kullanarak örneğin hard disk, yüksek kapasiteli sürücü, optik sürücü, scanner ve yazıcı gibi yedi tane harici birimin bağlanabilmesine imkan tanır. Bunun sağladığı avantaj ortadadır. Birçok harici birimin bağlanması için normalde ihtiyaç duyulan ek slot’lara artık gerek kalmaz. Üretlciler. daha sonraki modelleri SCSI ara birimi ile donatılmış halde üretmeyi düşünüyorlar, SCSI ara birimleri bazı yönlerinden dolayı geleceğin ara birimleri olarak görülseler de, yüksek kapasiteli sürücülerle çalışan ESDI ara birimlerinin yerini almaları beklenmemelidir.
Tanı İz Buffer’ları
Verilere erişimi hızlandırabilmek için piyasaya sürülen kontrol kartlarına ilave bir özellik kazandırılmıştır. Bu özellik, kontrol kartlarının, diskin bir izindeki tüm verileri içerebilecek kadar büyük bir buffer’la donatılmış olmalarıdır. Bu tür buffer’lar genelde 9 KB’lik kapasitede olurlar. Eğer belli bir sektördeki verilere erişilmek istenirse. kontrol ünitesi o anda manyetik kafanın altında bulunan sektörden başlamak üzere tüm izdeki verileri okur. Bu sayede, aynı izde bulunan başka bir sektördeki verilere de erişilmek istendiğinde, bu işlem artık elektronik aksamın imkan tanıdığı hızda (bu hız RAM Diskin hızıyla kıyaslanabilir) gerçekleşir. Şekil 1 bu işlemi göstermektedir.
Normalde hard disklerde bu bufferlar 1:1 ‘ilk bir taşma faktörüne göre çalışırlar; çünkü bu şekilde, veriler mekanik açıdan mümkün olduğu kadar hızlı okunmaktadır. Ancak taşma faktörünün 1: l’den büyük olduğu durumlar da görülebilir. Bu durumlarda veriler (sektörler) şekil 4.1’dek sıralamadan farklı bir sıralamada okunurlar. Burada şu soru akla gelebilir: “Eğer veriler 1:1 ‘ilk taşma faktörüyle aktarılırlarsa, bu buffer’ın ne gibi bir yararı olur?”. Uygulamada, programlar hard diske yönelik girdi çıktı işlemlerini çok verimsiz olarak gerçekleştirirler. En optimal taşma faktörü, ancak veriler işlenmeden hafızaya aktarılırsa sağlanır. Verllerin bu aktarım esnasında işlenmesi, taşmayı keser ve diskin hariçten dönmesini gerektirir. Diskin bir dönüşü 17 milisaniyelik bir zamanda olur. Bu da, hızlı bir hard diskte manyetik kafanın veri araması için harcanan zamanın iki katıdır. Bu tür gecikmeler çok çabuk birikir ve toplamda çok zaman kaybına yol açar. Ancak ilk turda tüm veriler okunurlarsa, artık verilerin programlar tarafından talep edildikleri anda hemen hafızaya aktanlmalan mümkün olur.
Şekil 1 Tam İz Buffer'ı
Dezavantajlar
Çoğu zaman, izdeki verilerden sadece bir kısmı gerçekten gereklidir. Bu durumlarda,
hariçten okunan veriler zaman kaybına yol açar. Aslında bu buffer’lar diskte parçalanmış halde bulunan dosyalarda (random access files) ortalama erişim süresini artınr. Çünkü çoğu zaman, bu tür dosyalarda ard arda gelen veriler çok farklı alanlarda bulunur. Sonuçta, sadece bir sektörlük veri gerektiği halde, izdeki tüm sektörler okunur.
Tam İz Buffer’ları Yardımıyla Diske Veri Yazılması
Okuma işlemi haricinde izdeki bütün yerleri içeren buffer’lar yardımıyla yazma işleminde de kolayhklar sağlanabilir. Aslında bu buffer tam olarak dolmadan, diske hiçbir şey yazılmaması gerekir. Aksi taktirde, bir hamlede diskteki tüm bir izi yazma firsatı elden kaçırılmış olacaktır. Ne var ki, buffer tam olarak dolmuş olmasa dahi, DOS’un manyetik kafayı başka bir ize konumlamaya yönelik her talimatında, buffer’daki veriler diske yazılırlar. Bu, bufferın içerdiği son izi diske hiçbir zaman yazmaması anlamına gelir. En sonunda makina kapatılmak zorunda kalınacağı için, bu son iz kaybolur. Bunu engellemek amacıyla getirilen ek bir önlem, iz bufferlarının sürücünün birkaç saniye hareketsiz kaldığını fark ettikleri an, içerdikleri verileri diske yazmaları şeklindedir.
Sektörü Olmayan İzler
Tam iz buffer’larından sağlanan fayda, sektör kavramının izlerden kaldırılmasıyla üst düzeye çıkarılabilir. Bunun bir örneği, 20 MB’lik bir hard diskte, izlere hiç boşluk vermeden veri yazan ve bu şekilde diskin kapasitesini 26 MB’a çıkartan Tallgrass TG5525i kontrol ünitesidir. Bu kontrol ünitesi, okuma işlemi esnasında, izin içerdiği verilerin hepsini buffer’a koyar ve ardından verileri 512 byte’lık kısımlara bölerek kullanır. DOS hiçbir zaman bu değişikliğin farkına varmaz.
Tam iz buffer’ları, utilityler yardımıyla taklit edilebilirler. Bu programlar, sık sık kullanılan sektörlerin birer kopyalarını hafızaya yerleştirir ve bu sektörlere yönelik gerçekleşen mekanik erişim sayısını en aza indirirler. Hatta bazıları, DOS' u kandırıp bütün bir izi hafızaya yerleştirebilecek durumdadır. Bunun için, iz üzerinde buffer’lamayı gerektirecek kadar veri bulunup bulunmadığına bakarlar. Diğer bir özellikleri ise, buffer’daki bir izin diske yazılmasında görülür. Bu aşamada, sadece üzerinde değişiklik yapılmış olan sektörler diske yazılır. Oysa DOS’a kalsa izdeki tüm sektörleri diske yazardı. Ancak, bu tür metotlar yine de verimsiz sayılır. Çünkü gereksiz yere okunmuş olan veriler, bu sefer sadece kontrol ünitesine kadar değil, sistem hafızasına (RAM) kadar ulaşır. Buffer’lama işlemi biraz daha kabiliyetli bir şekilde gerçekleştirilebilseydi, daha yüksek bir verimlilik elde etmek mümkün olurdu. Yazılımların yardımıyla kontrol ünitesinin veri buffer’lama sistemini iyileştirmek ve böylece gereksiz okuma yazma işlemlerinden kurtulmak mümkündür.
DİSK FORMATI
Kontrol ünitesinin, disk yüzeyini sektör, iz ve silindir isimli kısımlara ayırır. Ancak, yazılımlar verileri bu kısımlara göre değil, dosya kavramına göre saklarlar. Yazılımların büyük bir kısım, veri yazılması ve okunması ile ilgili problemlerle hiç uğraşmazlar, çünkü bu DOS’un görevidir. DOS, disk işletim sistemi (disk operating system) anlamına gelir ve verileri okuyup yazmanın dışında, birçok özelliğe daha sahiptir. Ancak, okuma yazma işlemleri onun en önemli görevleridir. Bunların haricinde, DOS’un sadece programcılar tarafından bilinen bir yönü daha vardır. Çoğu kullanıcı DOS’u sadece COPY ve DIR gibi bir komutlar topluluğu zanneder. Oysaki, programcılar, DOS yardımıyla dosya açıp kapayabilir veya manyetik kafanın başka bir konuma hareket etmesini sağlayabilirler. DOS, programcılara belli bir sektöre erişim imkanı tanıdığı halde, yazılımlar dosyanın saklandığı disk alanını pek bilmezler. Yazılımlar sadece verileri isterler. Onların hafızaya yüklenmesi görevi DOS’a aittir. Tersinde ise, DOS, yazılım tarafından gönderilen verilerin gerekli yere yazılmasını sağlar.
Dosya Kavramı
Dosya kavramı, aslında verilerle dolu sektörlerin oluşturduğu bir zincirden başka bir şey değildir. DOS, diskte bulunan dosyaların bir listesini tutar (directory). Bu directory’lerde dosya ismi ve dosya uzantısının haricinde dosyayla ve dosyanın ilk sektörüyle ilgili bilgiler de bulunmaktadır. Directory, dosyanın ilk sektörü hakkında bilgi verir. Geri kalan sektörler hakkındaki bilgiler dosya dağılım tablosunda (File Allocation Table veya FAT) bulunmaktadır.
Cluster
Diske bir dosya kaydedildiğinde, DOS’ un bu dosyaya diskte ayırdığı yer, genelde dosyanın net uzunluğundan daha fazla olur. Sürücünün kontrol ünitesi verileri sektörlerden daha ufak parçalar halinde ele alamadığı için, DOS, yer rezervasyonunu sektör sektör yapmak zorunda kalmıştır. Eğer dosyanın uzunluğu 1 ile 512 byte arasında kalırsa, bu dosya için diskte mecburen bir sektörlük yer kullanılır. Eğer dosya uzunluğu 513 ile 1024 byte arasında kalırsa, bu sefer de dosya için 1024 byte’lık. yani iki sektörlük yer kullanılır. Bu yöntem, gereksiz disk alanı harcamalarına yol açmaktadır. Ancak uygulamada, sadece tek yüzlü, yüksek yoğunluklu 1.2 MB ve 1.44 MB’lik disketlerde tek sektörlük alan rezervasyonları söz konusu olur. Diğer çeşit disketler ve farklı kapasitelerde olan hard disklerde bu alan 2, 4 veya 8 sektör arasında değişir. Alan rezervasyonlarını bir sektörlük yapan disklerde 10 byte’lık bir bilgi için 512 byte harcanırken; 2. 3 ve 4 sektörlük alan rezervasyonu yapan disklerde bu sayı sırasıyla 1024, 2048 ve 4096 byte olur.
Cluster Numarası
DOS' un dosyalara tahsis ettiği asgari yere cluster adı verilir. DOS, cluster’ları 0’dan başlayarak numaralandırır ve bu numaraları cluster’ın içerdiği sektörlere erişmek için kullanır. 360 KB’lık standart disketler 2 sektörden meydana gelen cluster’lar kullanır. Çoğu hard diskte ise, bir cluster 4 sektörden oluşur. Bununla birlikte. cluster büyüklüğü bir disketin veya hard diskin fiziksel özelliklerinden birisi değildir. Bu, sadece DOS' un veri organizasyonuyla ilgili bir kavramdır.
Cluster’ların daha fazla sektörden oluşmasının gereksiz disk alanı harcamalarına yol açar. Örneğin. çoğu zaman dosyanın son cluster’ının son sektöründe dosyayla ilgili hiçbir veri bulunmaz. Şekil 2’de bu görülebilir.
Şekil 2: Dosyanın Son Cluster’ında Kullanılmayan Disk Alanı
DIRECTORY
Directory de, aynı bir dosya gibi. verilerle dolu sektörlerin oluşturduğu bir zincire benzetilebilir. Ancak directorylerdeki veriler, DOS tarafından hazırlanan verilerdir. Burada her directory girişi ile ilgili 32 bytelık veri bulunur. Bir sektörde 512 byte bulunduğu için, her sektörde 16 tane directory girişi yer alabilir. 32 byte, bazı önemli bilgileri içermek için oldukça yeterli bir sayıdır:
Byte 01-08 Dosya ismi
09-11 Dosya uzantısı
12 Attribute (dosya niteliği)
13-22 Şu anda kullanılmıyor
23-24 Dosyanın son kullanıldığı saat
25-26 Dosyanın son kullanıldığı tarih
27-28 Dosyanın başlangıç cluster’ı
29-32 Dosya uzunluğu (byte olarak)
Bu 32 byte’da bulunan bilgilerin büyük bir bölümü; yani dosya ismi, uzantısı, tarihi, saati ve uzunluğu, directory listelendiğinde ekrana gelirler. Dosya ismi ile uzantısının arasında görülen nokta, bu 32 byte’lık bilgilerin içinde yer almaz. DOS bunun nereye konacağını bilir. Eğer dosya adı sekiz karakterden kısa olursa, DOS bunun sağında kalan alanları sekize tamamlayana kadar boşluklarla doldurur. Aynı şey dosya uzantısı için de geçerlidir.
Dosya Tarih ve Saati
Dosyanın tarihine ve saatine ikişer byte’lık yer ayrılır. Normalde 12-07-1992 şeklinde yazılan bir tarih en az sekiz karakterden oluşur (tireler çıkartıldıktan sonra) ve 10:57:16 şeklinde yazılan bir saat de en azından altı karakterden oluşur. Ancak, DOS bu bilgileri karaktersel olarak saklamaz. Bu bilgileri saklarken öncelikle bu iki byte’lık alanı üç kısıma böler. Eğer bu iki byte’a tarih girilecekse, bu kısımlar ay, gün ve yıl şeklinde; eğer zaman girilecekse, saat, dakika ve saniye şeklinde ayrılır. Bir byte, sekiz hanede “1’ler ve “0 ‘lardan oluşan 256 değişik kombinasyon içerebilir.
Bu yüzden 1 byte’lik bir alanda 0’dan 255’e kadar bir değer saklanabilir. Bundan dolayı bir byte’ı parçalara bölerek daha küçük sayıları içerebilen birden fazla kısım oluşturmak mümkündür. Buna göre, iki byte’lık alan, ay için l’den 12’ye kadar veya gün için l’den 31’e kadar kısımları temsil edebilecek şekilde parçalanmıştır.
Dosya uzunluğu
Dosyanın tarih ve saati için ayrılan iki byte’a benzer bir şekilde, uzunluğu için ayrılan dört byte da karaktersel olarak değil, sayısal olarak saklanır. Bu alanlarda da oldukça yüksek, yani 1 ile 4.294.967.296 arasında bir değer saklanabilir. Ancak DOS, uzunlukları 33 milyon byte’ı aşan dosyalarla çalışamamaktadır.
Dosyanın Başlangıç Cluster'ı
Directory’lerde dosyayla ilgili olan ve DIR komutu neticesinde ekranda görülmeyen bilgiler de vardır. Gizlenen bu bilgilerden bir tanesi, dosyanın disk üzerinde hangi cluster’dan itibaren başladığını belirten bilgidir. DOS dosyaya erişmeden önce bu değeri alır ve gerekli sektör numarasına çevirir. FAT dosyayla ilgili sonraki sektörlerin bulunması için yol gösterir.
Dosyanın Attribute’u
Directory’lerde gizli olarak bulunan bilgilerin ikincisi ise, dosyanın niteliğini belirten attribute byte’ıdır. Bu byte, dosyanın, bazı karakteristik özellikleri içerip içermediğini gösterir. Özellikleri olmayan dosyalarda bu byte’ın değeri 0 olur. Bu değerin 1 olması dosyanın sadece okunabilir (read-only file) olduğunu, 2 olması ise gizli dosya (hidden file) olduğunu gösterir. Bir dosyanın taşıyabileceği altı tane attribute vardır.
Sadece Okunabilir, Gizli ve Sistem Dosyaları
Attribute’lardan sadece üç tanesi, yani “sadece okunabilir”, “gizli” ve “sistem” attribute’ları, sıradan dosyalar için kullanılırlar. Eğer “sadece okunabilir" attribute’u varsa, DOS hiçbir şekilde, hatta yazılıma bunun için emir verilmiş olsa dahi, bu dosyaya veri yazmayacaktır. “Gizli” attribute’u ise, DIR komutu neticesinde dosyayla ilgili hiçbir bilgi verilmemesini sağlar. Son olarak, “sistem” attribute’u DOS’a dosyanın işletim sistemiyle ilgili bir dosya olduğunu bildirir. “Sistem” attribute’u çok sık kullanılmaz. Genelde, “gizli”attribute’u ile beraber kullanılır. Nitelikleri bu attribute’larla verilen dosyaların sıradan dosyalar olduğu unutulmamalıdır. Attribute’lar sadece, DOS’un bu dosyaları ne şekilde kullanması gerektiğini gösterir.
Etiket Dosyaları
Geriye kalan üç attribute, dosyaları gerçek anlamda sınıflandırmazlar. Onların özel birer görevleri vardır. Bu attribute’lardan bir tanesi “etiket” dosyaları içindir. DOS hard disk veya disketlere on bir karakter uzunluğunda bir isim verir. DOS, her directory listesine ‘Volume in drive X is xxxxxxxxxxx” şeklinde bir etiket ile başlar. DOS directory’yi taradığında, attribute byte’ının yardımıyla, directory girişlerinden birinin ilk on bir byte’ının bir dosya adı değil, bir etiket olduğunu anlar.
Arşiv Attribute’u
Bu attribute da benzer bir durum sergiler. DOS bir dosyaya veri yazdığı zaman, bu attıibute’a 1 değerini koyar. Dosyalar backup programlan yardımıyla kopyalandığında, bu programlar, dosyaların “arşiv” attribute’larının 1 olup olmadığına bakarlar. Çünkü bunlar, arşiv attribute’ları 1 olan dosyaları kopyalarlar. Kopyalama işleminin ardından, bu attribute’a 0 değerini koyarlar. Eğer bir süre sonra dosyaların tekrar backup’ı alınmak istenirse, sadece, bu süre içinde değiştirilmiş olan dosyalar kopyalanır. Değiştirilmemiş olan dosyalar ise kopyalanmazlar.
Alt Directory Attribute’u
Bu fonksiyonun anlaşılabilmesi için, öncelikle DOS’un bir directory'i nasıl oluşturduğunun bilinmesi gerekir. DOS, “root directory” olarak adlandırılan ana directory’i diskin en dışına (silindir 0’a) koyar. Hard diskler, ana directory’ye 32 sektörlük yer ayırır. Her sektör en çok 16 tane directory girişi içerebildiğine göre, toplam 512 (32x 16) tane directory girişine imkan sağlanır. Ana directory, diskteki özel kısımlardan biridir. DOS, bu directory’i bulmakta zorlanmaz, çünkü bu directory’nın bulunduğu yer ve kapsadığı sektör sayısı her hard diskte aynıdır. Hard diskte tek bir dosya bulunsa dahi, ana directory için rezerve edilen 32 sektör değişmez.
Disk üzerine yerleştirilen alt directory’ler, birer dosyadan başka bir şey değildirler. Ana directory gibi, bunlar da 32 byte’lık directory girişlerinden oluşur. Aynen dosyalarda olduğu gibi, kullanılan alanlar alt directory’lerde de cluster hesabıyla belirlenir. Eğer DOS’un MKDIR (directory oluştur) komutu kullanılırsa, DOS, yaratılmak istenen alt directory’nin isminde bir dosya oluşturur ve bunun başlangıç yerini bir cluster’la belirler. Bu alt directory’ye aktarılan dosyalar cluster’ı doldurduğunda, yeni bir cluster bu alt directory’ye ilave edilir. Bu alt directory’lerin uzunluklarıyla ilgili bir sınırlama yoktur. Yani, alt directory’ler, ana directory’den farklı olarak, sınırsız sayıda directory girişi içerebilir.
\MARMARA\TEKNIK\BILG path’iyle (directory yolu) gösterilen bir alt directoıy incelenecek olursa. Ana directory, ‘MARMARA” isimli bir alt directory girişi içermektedir. “MARMARA” alt directory’si ise, “TEKNIK” isimli bir alt directory; “TEKNIK” alt directory’si de “BILG” isimli bir alt directory içermektedir. DOS, bu dosyaların normal birer dosya değil, birer alt directory olduğunu attribute byte’ları yardımıyla anlayabilir.
Nokta ve İki Nokta Girişleri
Alt directory’leri listelendiğinde, ilk iki directory girişinin nokta (“.“) ve iki nokta (“..“) isimli iki dosya tarafından işgal edildiği görülür. Nokta isimli directory girişi, alt directory’nin kendisini gösterir. Daha açık bir anlatımla, başlangıç cluster’ı bu alt directory’nın başlangıç cluster'ıyla aynı olan bir dosya gibidir. İki nokta ise, “parent” diye adlandırılır ve directory’nin bir üst directory’sınin başlangıç cluster’ını içerir. Yani alt directory’de iken CD.. dendiği taktirde, bir üst directory’ye dönülmüş olur. Ana directory’de iken ne nokta, ne de iki nokta görülür.
Silinmiş Dosyalar
Directory’lerle ilgili bilinmesi gereken son şey, DOS’un bir directory girişinin kullanılıp kullanılmadığını nasıl anladığıdır. Bir alt directory oluşturulduğunda, bu alt directory’deki boş directory girişlerinin ilk byte’larına 0 değeri yazılır. Bu boş directory girişlerinden birine bir dosya ile ilgili bilgiler girildiğinde ise, bu ilk byte'taki 0 değeri yeni oluşturulan dosyanın isminin ilk harfi tarafından silinir. Böylece DOS, bu directory girişinin kullanılmakta olduğunu anlar. Dosyanın silinmesi durumunda ise. DOS, sadece bu ilk byte’a 229 değerini yazar. Silme işleminde bu tek byte’ın haricinde hiçbir bilgi silinmez. Bu yüzden, zaman zaman silinmiş dosyaların kurtarılmasından söz edilir. Geriye kalan bilgiler, ancak üzerlerine yeni bir giriş yapılırsa silinir.
FAT DOSYA DAÐILIM TABLOSU
Directory girişlerinde, bir dosyanın disk üzerindeki dağılımıyla ilgili sadece başlangıç cluster’ı hakkında bilgi bulunmaktadır. Ancak, çoğu zaman dosyalar bir cluster’dan daha uzun olur. Bu da, “DOS geri kalan cluster’ları nasıl bulabiliyor” sorusunu akla getirebilir. DOS, formatlama işlemi esnasında dosya dağılım tablosunu (FAT -File Allocation Table oluşturur. FAT, bir diskin en önemli bölümüdür. Eğer FAT bir manyetik kafa düşmesi veya bir formatlama neticesinde hasar görürse, diskteki herhangi bir veriyi yeniden kullanılır hale getirmek son derece zorlaşır. Bu öneminden dolayı, DOS, her zaman FAT’in iki kopyasını saklar.
FAT'in Yapısı
Şekil 3 Bir Dosyanın Dosya Dağılım Tablosundaki Yeri
FAT, disk alanını temsil eden cluster numaralarının bulunduğu bir tablodan başka bir şey değildir. FAT’taki ilk saha cluster 0’ı, ikincisi cluster 1 ‘i, vs. temsil eder. Her saha belli bir veri alanının yerini gösterir. Örneğin “gütef” isimli bir dosya olsun ve Ana directory’deki girişinde bu dosyanın 100.cluster’da başladığı belirtilmiş olsun. Şimdi DOS, FAT’taki 100. sahaya gider ve burada yazılı olan değeri okur. Bu değer 105 olsun. Demek ki, 100.cluster’da başlayan dosyayla ilgili bilgiler 105.cluster’da devam etmektedir. Bunun üzerine DOS, gider 105.cluster’ın içerdiği sektörlerdeki bilgileri okur ve tekrar FAT'a geri döner. Ancak, bu sefer 105.sahaya bakar ve buradaki numarayı okur. Bu işlem, bu şekilde devam eder; ta ki DOS, daha önceden belirlenmiş özel bir değere rastlayıp dosya sonuna ulaştığını anlayana kadar.
FAT’in Büyüklüğü
FAT’in büyüklüğü iki şeye bağlı olarak değişir: Diskin kapasitesi ve cluster’ların büyüklüğü. Kapasiteleri fazla olan diskler doğal olarak daha fazla cluster içerir ve bu da FAT’in daha büyük olmasını gerektirir. Aynı şekilde, eğer sektör sayısı artarsa, cluster sayısı ve dolayısıyla FAT’taki giriş sayısı da artar. Dikkate alınması gereken bir diğer nokta ise, FAT’a yazılabilecek en büyük değerdir. Çünkü bu değer, FAT'a girilebilecek maksimum cluster sayısını sınırlar. Disketlerde bu girişler için 1.5 byte’lık yer rezervasyonları yapılmıştır. Buna göre, disketlerde bu yerlere 4096 sayısına kadar değerler girmek mümkün olur. Bu değer, disketlerde mümkün olan en büyük cluster sayısı için yeterli olmaktadır. Ancak, 20 MB’lik hard disklerde, her biri 4 sektörden oluşan 10,000 cluster mevcuttur. Bu yüzden, bu tür hard disklerde FAT’taki giriş için 2 byte’lik yer rezervasyonun yapılması gerekir. Bu 2 byte, 65,535 sayısına kadar olan değerlerin girilmesine imkan tanır.
Tek sektörlük cluster’lar disk alanının daha ekonomik bir şekilde kullanılmasına olanak tanırlar. Bu yöntemle, dosyaların en son cluster’ında ziyan olan yer bir sektörden daha az olur. Ancak, cluster’ların küçülmesi, onların sayısını artırır ve bunun sonucunda da FAT'in daha büyük olmasını gerektirir. DOS, hard disk veya disketlerle çalışırken sürekli dönüp FAT' a baktığı için, işini kolaylaştırmak amacıyla onun bir kopyasını hafızaya alır. 20 MB’lik bir hard diskte cluster’lar eğer tek sektörden oluşsaydı, FAT 84 KB uzunluğunda olurdu. Bu durumda, RAM, 84 KB’lik alanını sürekli olarak FAT 'a ayırmak zorunda kalırdı.
Hafızadan Tasarruf
IBM, ilk XT bilgisayarlarını piyasaya sürdüğünde hafıza çipleri çok pahalıydı ve çok az bilgisayar 256 KB’dan büyük bir hafızaya sahipti. Bu yüzden DOS, zaten kıt olan hafızadan tasarruf etmek için, 2.X versiyonlarında bir cluster’ı 8 sektörden oluştururdu. FAT bu şekilde oldukça küçük tutulmuştur. DOS’un daha sonraki versiyonlarında, bu sayı, RAM çiplerinin ucuzlamasıyla da bağlantılı olarak, cluster başına 4 sektöre indirilmiştir. İlginç olan bir nokta, AT sınıfı bilgisayarlar için tasarlanmış 1.2 MB kapasiteli disketlerde cluster’ların bir sektörden oluşmasıdır. Bu disketlerin kapasiteleri nispeten daha fazla olduğu için, FAT’in büyüklüğü fazla rahatsız edici olmaz. Ayrıca, bu cluster’ların küçültülmesi, disk alanından daha verimli bir şekilde faydalanılmasını sağlar. Zaten bu disketler, öncelikle backup’ların oluşturulması için düşünülmüştür.
32 MB Sınırı
DOS, 32 MB’den daha yüksek kapasiteli hard disklerle çalışamaz. Bu sınır cluster büyüklüğü veya FAT’in büyüklüğü ile ilgili değildir. Daha çok bilgisayarın 16 bit mimarisinin bir sonucudur.
PC ve AT sınıflarındaki microprocessos’ler (CPU) 16 bit ile çalışırlar. Dolayısıyla, numaralandırılabilecek sektörlerin sayısı 0 ile 65.535 arasında olabilir. DOS, ilk izin ilk sektörünü 0, ardından gelen sektörü 1, vs. şeklinde numaralandırmıştır. En içteki izin son sektörüne de 65,535 numarasını verir. DOS'un kullandığı sektör büyüklüğü 512 byte olduğu için basit bir çarpımla 32 MB sınırı hesaplanabilir:
512 byte x 65,535 sektör = 33,553,920 byte.
(Programcılar ikili sayı sistemine göre işlem yapmasını çok sevdikleri için, bu sayıya kısaca 32 MB diyorlar ve arta kalan birkaç byte’ı cömertçe göz ardı ediyorlar). Tüm bu sebeplerden dolayı, DOS, 65,535’den daha büyük bir değerle numaralandırılmış sektörlere erişemez (daha büyük sayıları saymasını bilmez).
Yüksek kapasiteli sürücüler
Diğer bir merak konusu da DOS’un 65,535 sektörden daha fazla sektör içeren yüksek kapasiteli hard disklerle nasıl çalışabildiğidir. Hard diskleri farklı işletim sistemleriyle çalışabilmek üzere partisyonlara ayırmak mümkündür. Bu partisyonlar diskin herhangi bir bölgesinden itibaren başlayabilir (örneğin, 100.000’inci sektörden). Ancak, yine de 65,535 sektörden fazlasını bir arada kullanamaz.
BOOT
Bilindiği gibi, bilgisayarın açılışında, ana program olan COMMAND.COM hafızaya yüklenir. Bu program, RAM’a yerleştikten hemen sonra kontrolü ele alır. Çünkü DOS’un aslını bu program teşkil eder. Ne var ki, bu noktada bir çelişkiyle karşılaşılır. DOS’un (disk işletim sistemi) sürücülerin çalıştırılmasıyla ilgili olan sorumluluğunu COMMAND.COM programı yüklenir. Burada "COMMAND.COM dosyası yükleme komutunu kendisi veriyorsa, hafızaya nasıl yükleniyor?" gibi bir soru akla gelebilir.
Bunun cevabını “boot” kavramı vermektedir. Boot, İngilizce’deki “to pick itself up by its bootstraps” deyiminden ortaya çıkmıştır. Bu deyim ile, kendi iplerini kendisi tutan bir kukla benzetmesi yapılmıştır. Bu sırrın arkasında yatan gerçek ise, bilgisayarın ana kartındaki ROM çipinde bulunan küçük bir programcıktır. Bu programcık. bilgisayarın açılışında faaliyete geçer ve sürücüyü harekete geçirir. Bu gerçekleştikten sonra diskin en dışında bulunan ilk sektör okunur.
Boot Sektörü
Okunan bu ilk sektöre boot sektörü adı verilir. Bu sektör; yüz 0, iz 0, sektör 1 konumunda bulunur. Boot sektöründe hard disk hakkında bilgi verilmektedir. İşletim sistemi için çok önemli olan bu bilgiler, sektör büyüklüğü, cluster’daki sektör sayısı. silindir sayısı, silindirdeki sektör sayısı ve FAT ile ana directory’lerin büyüklüklerinden meydana gelir. Boot ayrıca hata mesajları da içerir (örneğin “COMMAND.COM bulunamadı” gibi). Son olarak da, işletim sistemiyle ilgili olan dosyaların isimlerini verir.
Sistem Dosyaları
Bilgisayar, bu bilgilerin yardımıyla IBMBIO.COM (Bu PC DOS için geçerlidir. MS-DOS’da bu dosyanın adı BIO.SYS’dir.) isimli bir dosya aramaya başlar. Bu dosya. diskin en dışındaki silindirde bulunan ana directory sektörlerinin hemen arkasından gelen sektörlerden itibaren başlar. Buraya yerleşmesindeki amaç, şu ana kadar alınan sınırlı bilgilerle dosyanın aranması için ayrıca çaba harcanmamasıdır. IBMBIO.COM dosyasının yüklenmesi sonuçlandıktan sonra, sistemin harekete geçmesinden sorumlu olan programcığın görevi tamamlanmış olur. Artık, sıra sistemle ilgili diğer bir dosyanın, IBMDOS.COM (veya MSDOS.SYS) dosyasının, yüklenmesine gelmiştir. Bu dosya da ilk silindirde bulunur ve IBMBIO.COM dosyasının hemen arkasında yer alır. Bu iki dosya ile ilgili directory girişleri ana directory’de bulunmakla birlikte, attribute’larındaki “gizli” ve “sistem” bitleri 1 olduğundan, DIR komutu neticesinde listelenmezler. IBMDOS.COM dosyası da yüklendikten sonra, artık bilgisayar, sistemin COMMAND.COM dosyasını, diskin hangi bölgesinde bulunursa bulunsun yükleyebilir. Yani, işletim sistemi de bir anlamda kendi iplerini kendisi tutmuştur.
IBMBIO.COM, IBMDOS.COM ve COMMAND.COM dosyaları, genelde sistem dosyaları olarak bilinirler. Bir diski formatlarken “/S” parametresi kullanılırsa, bu dosyalar otomatik olarak diske yazılırlar. Bunlardan bir tanesi eksik olursa, bilgisayar bu diskten açılamaz. Format işlemiyle dosyalar diske aktarılmadığı ve kullanıcının bu konuya başka bir çözüm getirecek bilgiye sahip olmadığı durumlarda, ilk iki sistem dosyası için öngörülmüş, fakat başka dosyalarca işgal edilmiş olan alanlara sistem dosyalarını aktarıp, bu diski bilgisayarı açabilen bir disk haline getirmek mümkün olmaz.
DOS’un SYS Komutu
Bazen, yazılım şirketleri dağıtım disketlerinin sistemli olmasına gereksinim duyarlar. Ancak, sistem dosyalarını kopyalamak yasal olmadığı için (copyright), bunları yazılımlarıyla beraber satmaları mümkün olmaz. IBM, bu soruna format komutunun “/B” parametresiyle çare bulmuştur. Format işlemi esnasında bu parametrenin kullanılması, silindir 0'da IBMBIO.COM ve IBMDOS.COM dosyaları için gerekli alanın rezerve edilmesini sağlar. Böylece, disketlere aktarılan yazılımlar disketlerin bu alanlarını kullanmazlar. Artık kullanıcılar, yazılım disketlerini aldıktan sonra, DOS’un SYS komutu sayesinde bu sistem dosyalarını başka bir DOS disketinden bu disketlere aktarabilirler.
HARD DİSK PARTİSYONLARI
Boot sektörü hakkında verilen bilgiler aslında sadece disketler için geçerlidir. Hard diskler farklı sistemler için partisyonlara ayrılabildiklerinden, en az iki boot sektörü kullanırlar. Hard diskler bir veya daha fazla partisyona ayrılabilirler. Bunlardan her biri farklı bir işletim sisteminin kontrolü altında olurlar. Her partisyon, peş peşe gelen silindirlerden oluştuğu için, bunların hard disk üzerindeki şekilleri simite benzer.
Format işleminin ikinci aşaması. disk yüzeyinde ana directory’nin, FAT’in ve başka önemli bilgilerin oluşturulmasından sorumlu olan yüksek düzeyde (fiziksel) formatlamadır. Partisyonların oluşturulması. düşük düzey ile yüksek düzey formatlama işlemlerinin arasında gerçekleşir. Sektörler oluşturulduktan sonra partisyon programı devreye girer ve hangi partisyonun nerede başlayıp nerede bittiğini belirler. Bu bilgiler daha sonra, master (ana) boot sektöründe bulunan partisyon tablosuna aktarılır. Bu aşamadan sonra, her partisyonla ilgili ana directory’ler ve FAT’lar, o partisyonun ilk silindirine yazılır.
Ana Boot Sektörü
Disketlerdeki alışıldık boot sektörleri gibi, hard disklerin de ana boot sektörleri yüz 0, iz 1, sektör 1, konumunda bulunurlar. Bu sektörde, BIOS’a bazı temel hard disk işlemlerini yaptırabilecek kadar bilgi vardır. Buna karşılık, normal bir boot sektörüne kıyasla, herhangi bir işletim sistemiyle ilgili bilgi içermez (örneğin sistem dosyalarının isimleri gibi). Bunun yerine, hangi partisyonun nerede başlayıp nerede bittiğini belirten bir partisyon tablosu içerir. Bilgisayar açıldıktan sonra bu tabloyu okur ve hangi partisyonun kullanıldığını öğrenerek manyetik kafayı o partisyonun ilk sektörüne hareket ettirir. Gittiği bu sektörde, kullanılan DOS ile ilgili boot sektörünü bulup okuyarak. bilgisayarın kullanıma hazır hale gelmesini sağlar. Şekil 3 çalışma biçimini gösterir.
Partisyonların Kullanım Amacı
Farklı partisyonlarda farklı boot sektörlerinin kullanılmasının amacını ve ana boot sektörünün bu olayda nasıl bir rol oynadığını anlamak zor değildir. Çünkü, her işletim sisteminin; directory, FAT vs. kavramlarında kendine õzgü özellikler vardır. Bu farklardan dolayı, her işletim sisteminin dosyalara erişimde aynı yöntemi kullanması mümkün değildir. İşletim sistemleri genelde 512 byte’hk sektörler kullanır. Yine de, sektörlerin büyüklüklerini bazı yardımcı programlarla değiştirmek mümkündür
Çoğu PC kullanıcısı sadece DOS işletim sistemini kullanmaktadır. Ancak, hard disklerini, tek bir sistem kullanmalarına rağmen partisyonlara ayırmak zorunda kalırlar. Çünkü BIOS, hard disklerde ilk olarak ana boot sektörünü arar (yani doğrudan boot sektörüyle irtibata geçemez). DOS’un kullandığı partisyon programının adı FDISK’tir. Bu program tüm hard diski DOS’un kullanımına sunan bir partisyon hazırlar ve boot sektörünü de ana boot sektörünün bulunduğu izin peşinden gelen ilk izin ilk sektörüne yerleştirir.
Şekil 4: Boot Sektörünün Konumu
HIZ VE VERİMLİLİÐİN OPTİMİZASYONU
Bilgisayarla her gün çalışan kişiler, “hız özürlü” insanlar haline geliyor. Nasıl oluyorsa, bir kaç salisede görevini tamamlayan bir araç, sabırsızlık yaratıyor. Hard diski çöktürecek kadar uzun ve karmaşık programların kullanılması, daha da fazla sabır gerektiriyor. Daha önce bilgisayarla çalışmış olan kullanıcılar, mikro bilgisayarlarından kabiliyetlerini aşmalarını bekler. Kullanıcılar, hard diski performansını ne kadar ispata zorlarsa, onun yükü de o kadar artacaktır.
Bir 6MHz IBM AT, standart bir XT’den beş kat daha hızlı çalışır. Uygulamaya göre de, hızlı bir hard diskte %30’dan %50’ye kadar hız artışı kaydedilebilir. Bu durumda, hız özürlülerin, hızlı erişim sürelerinden, iz bufferlama’dan ve benzeri teknik konulardan bahsetmelerine şaşırmamak gerekir.
HIZ GELİŞTİRME
Hızın parayla satın alınabileceği, şüphesiz doğrudur. Ama, aynı şey, iyi düşünülmüş bir sistem optimizasyonu ve ayarlaması ile de elde edilebilir. Dünyanın en hızlı hard diski bile optimizasyonu zamanında yapılmazsa, hızından bir miktar kaybedecektir. Nispeten daha yavaş olan adımlamalı bir motorla donatılmış bir manyetik kafanın, diskin üzerinde rulolu sistem ile çalışan bir kafadan daha hızlı hareket etmesi sağlanabilir.
Her gün biraz daha fazla performansın talep ediliyor olması, artık en iyi donanımı bile yetersiz bırakabiliyor. Bu yüzden, sürücünün performansı optimize edilmeye çalışılmalıdır. Optimizasyon için gerekli olan bazı esaslar, formatlama esnasında yerine getirilebilir. Bazıları ise, periyodik bakımla olur. Bunun dışında, yapılacak işin türüne ve durumuna göre özel bazı teknikler (belki de utility’ler) gerekebilir.
Teknik Kabiliyetler
Bir zamanlar, hard disk teknolojisi teknik fanatiklerin kutsal alanıydı. Teknik bilgileri daha az olanlar da optimizasyon önlemlerini almaya çalışırlardı ama, sonuçta nereye varacaklarını pek kestiremezlerdi. Diske erişim, bir kronometre ile ölçülebilecek zamandan çok daha kısa olduğundan, bir hard diski en üst form düzeyine getirebilmek için olağanüstü programlama kabiliyetine sahip olmak gerekirdi. Günümüzde ise durum farklıdır. Piyasada, pek de pahalı olmayan, hard disk analizi ve optimizasyonu yapan bir sürü program bulunur.
Nispi Kazançlar
Bazı hard disk optimizasyonları, performansı gözle görülür bir şekilde arttırır. Bazılan ise, “sadece” %10’luk bir artış sağladıklarından pek göze çarpmaz. Ama, bu %10’luk artışlar üst üste toplanabilir ve yarım düzine %10’luk artış, hızı iki katına çıkarır. Bazen çok önemsiz gibi görünen bir tedbir, sistemdeki bir darboğazı açıp diğer performans faktörlerini de devreye sokar ve çok büyük gelişmelere sebep olur. Böyle bir darbogazın varlığı, hızlı olarak nitelendirilen bir hard diski frenleyebilir.
Hard disk optimizasyon stratejilerini uygulamaya koyabilmek için, hard disklerin iç yaşamının iyi bilinmesi gerekir. En başta, verilerin disk üzerindeki yük alanlanndan başlayarak, makinanın hafızasına kadar uzanan yolculuklarında hangi yoldan gittiği ve bu yolun üzerinde uygulanabilecek optimizasyon imkanlarının, bir bilgisayar sistemi üzerinde yapabileceği muhtemel etkiler de bilinmesi gereken konulardır.
Hard Disk Performansını Etkileyen Faktörler
Hard disk performansıyla ilgili 15 terim bulunmaktadır.
1. Silindir Yoğunluğu (Cylinder density)
Sektõr sayısı ne kadar yüksek olursa, manyetik kafa bir dosyanın okunmasında veya yazılmasında o kadar az hareket eder.
2. Dosya Birleştirme (File Defragmentation)
Birkaç silindirde kayıtlı olan dosyalar, disk üzerinde her yere dağılmış olan dosyalardan daha hızlı okunur.
3. Ortalama Arama Süresi (Average Seek Time)
Daha düşük bir ortalama arama süresi, manyetik kafanın okuma yazma işlemi için diske olan erişim süresini kısaltır.
4. Taşma (Interleave)
Optimal bir taşma, bir iz üzerindeki tüm sektörlerin okunabilmesi için gereken disk dönme sayısını minimuma indirir.
5. Veri Aktarım Oranı (Data Transfer Rate)
Çok hızlı makinalarda veri aktarım oranı düşürülebilirse, diske erişim daha hızlı olacaktır.
6. CPU hızı (CPU Speed)
Hızlı bir mikroprosesör DOS’u hızlandırır, veri aktarım oranını etkiler ve yazılımın dosyalan daha hızlı işlemesini sağlar.
7. İz Bufferlama (Track Buffering)
CPU, 1:1 bir taşmayla başa çıkamasa bile, bu metotla, tüm iz, tek bir disk dõnüşünde okunur.
8. RAM Disk Desteği (RAM Disk Support)
Bir hard diskin yükü, bazı dosyaların bir RAM diske aktarılmasıyla azaltılabilir.
9. DOS Buffer’larının Belirlenmesi (DOS Buffers Setting)
Doğru sayıda DOS buffer’ı, DOS’un, sık kullanılan dosyalan tekrar tekrar okunmasını önler.
10. Sektör Caching (Sector Caching)
Diske olan erişimlerin sayısı, sektõrleri bir buffer’a alarak azaltılabilir. Bu yöntem, DOS buffer’larından daha etkilidir.
11. Directory Tree Dizaynı (Directory Tree Desígn)
Bir directory tree, bir dosyanın aranması için gereken hard disk işlemlerini azaltacak şekilde düzenlenebilir.
12. Alt Directory Düzeni (Sub-directory Layout)
DOS’un, bir path’in izini sürerken harcadığı zaman, alt directory’lerin birkaç silindire yerleştirilmesiyle minimuma indirilebilir.
13. Dosya Düzeni (File Layout)
Belli dosyaları, hard diskin en dışında bulunan izlerine yerleştirmekle, performansta bir gelişme sağlanabilir.
14. PATH komutu (PATH Command)
PATH komutu, directory aramalarını hızlandırabilecek şekilde kullanılabilir.
15. FASTOPEN Komutu (FASTOPEN Command)
Versiyon 3.3’ten itibaren, DOS’un, son açtığı dosyaların disk üzerindeki konumlarını hatırlaması sağlanabiliyor.
Bu 15 faktörden dördü, hardware ile ilgilidir. Ortalama arama süresi; sürücünün kendisiyle ilgili olan bir şeydir. Ne yeni bir kontrol kartı, ne de gelişmiş bir yazılım bunu değiştirebilir: Silindir yoğunluğu ve veri aktarım oranı, sadece bazı durumlarda yeni bir kontrol kartıyla yükseltilebilir. CPU’nun hızı ise bir hızlandırıcı kartla (Accelerator Board) artırılabilir. Kalan faktörlerin çoğu, software ile ilgilidir. İstisna olarak, kontrol kartına bağlı olan caching veya iz bufferlaması gösterilebilir. Birkaç faktör de hard disk yönetimiyle bağlantılıdır.
Hard Disk Bazında Optimizasyon
Hard disk bazında optimizasyon, mekanik hareketlerle geçirilen zamanın minimizasyonuyla ilgilidir. Yüksek silindir yoğunluğu, bir dosyanın daha az sayıda silindirde yer alması ve böylece manyetik kafanın o dosyayı okurken veya yazarken daha az hareket etmesi demektir. Dosya birleştirme (file defragmentation), dosyaları mümkün olduğu kadar az sayıda silindirde toplar. Hızlı arama süreleri, kontrol ünitesinin. manyetik kafanın başka bir silindire gitmesini beklediği süreyi kısaltır. Sonunda optimum bir taşma süresi, manyetik kafanın gerekli sektörü beklediği zamanı kısaltır.
Silindir Yoğunluğu
Silindir yoğunluğu, bir ize daha fazla sektör veya bir silindire daha fazla iz sığdırmakla yükseltilebilir. Tabi ki. silindir başına düşen iz sayısı, sürücüdeki disk sayısına bağlıdır. Bu değeri yükseltebilmek. ancak daha büyük bir sürücü almakla mümkündür.
Yüksek silindir yoğunluğu ile elde edilebilecek başarı bazen önemsenmez. Pratikte; biri iki diske, diğeri dört diske sahip olan, iki sürücünün de arama süreleri eşit olabilir. Ancak, bu duruma başka bir açıdan bakmak da mümkün: Dört diskli sürücünün arama süresi, iki diskli sürücünün arama süresinin iki katıdır. Çünkü, böyle bir diskin manyetik kafası, okuma sırasında diğerinin kafasının yarısı kadar hareket ediyor. Bu avantaj, bir sürücü daha ekleyip kapasiteyi sonradan büyütmenin aleyhine; büyük kapasiteli bir sürücüyü baştan almanın lehine konuşuyor.
İz başına sektör sayısı, bazı sürücülerde bir RLL kontrol kartıyla artırılabilir Kullanılan kod şemasına bağlı olarak, iz başına sektör yoğunluğu %50 ile %100 arasında yükseltilebilir. %100’lük bir kazanç, kafa hareketlerinin yarıya inmesi demektir. Burada elde edilen sonuç disk sayısını iki katına çıkarmakla elde edilen sonucun aynısıdır.
Silindir yoğunluğunun yükseltilmesiyle elde edilen kazancın, dosyaların parçalanmasına (fragmentation) izin vermekle heba olacağı unutulmamalıdır. Farklı silindirlere serpiştirilmiş bir dosya. silindir yoğunluğu ne olursa olsun, kafa hareketlerinin sayısını muazzam bir şekilde artırır.
Dosya Sıkıştırma
Dosyaların sıkıştırılmasıyla silindir yoğunluğu suni bir şekilde yükseltilebilir. Sıkıştırılmış dosyalar daha az sektöre sığdırılabileceğinden okuma için gereken kafa hareketleri de daha az olur. Bu dosya sıkıştırma yöntemi, sadece bazı durumlarda performansın artmasına katkıda bulunur. Örneğin, bazı sıkıştırma programları hesap tablosu dosyalarındaki sıfırları kaldırıp, yerine, kaç sıfır kaldırıldığına dair bilgi veren bir kod koyuyor. Bu şekilde sıkıştırılmış dosyaların çözülmesi çok az zaman alır. Buna karşın, çok karmaşık sıkıştırma yöntemleri erişim süresinin kısaltılmasını sınırlar.
Dosya Parçalanmalarının Azaltılması
Dosyalar, yeni formatlanmış bir hard diske aktarılırsa, her biri, birbirine bağlı ve ardı sıra gelen cluster’ların üzerine yerleştirilecektir. Aslında cluster’lar sadece 1: 1 bir taşma oranı mevcutsa fiziksel olarak yan yana dururlar. DOS ideal durumda her dosyaya mümkün olduğu kadar az silindir tahsis eder. Böylece, õrneğin 35 KB uzunluğundaki bir dosya çoğu hard diskte sadece bir silindire sığabilir. Ne var ki DOS. dosyaların yerleştirilmesini hiçbir şekilde optimize etmez; onun yerine, ilk boş bulduğu sektörü kullanır ve dolayısıyla, dosya bir sonraki silindire taşabilir. Bu durumda, dosya bir defa okunur veya yazılırken, manyetik kafanın en az bir defa yer değiştirmesi gerekir. Optimum olarak yerleştirilmediği halde, bu dosya “bir arada” olarak kabul edilir.
Devamlılığın Yitirilmesi
Dosyaların “bir arada” bulunması pek uzun süreli olmaz. Dosyaya girilen yeni verilere, sektörlerin arasında boş yer olmadığı için, asıl dosyadan uzakta olan boş bir yer aranır. DOS. yer tahsisatına diskin en dışından yani silindir 0'dan başladığı için, aranan bu boş sektõrler de haliyle biraz daha içerlerde kalan izlerde bulunacaktır. Hard diskten dosya silindikçe, diskin çeşitli yerlerinde boşluklar oluşur. DOS bir dosyaya kaydedilecek verilere ek cluster ararken, önceliği dosyanın en son parçasının bulunduğu silindire vermez, dosyayı diskin en dış kenarına en yakın olan boş cluster’lara yerleştirirdi. Bu sistem, DOS 3.0’dan sonra değişti. DOS artık boş cluster’ları en dıştan en içteki silindire doğru giderek tahsis ediyor. Ancak, en içteki silindire gelindiğinde, tekrar en dıştan itibaren boş cluster’lar aranıyor. Sonuçta karışık durumlar ortaya çıkıyor. Sayısız silmeler ve yapısal değişiklikler, hard diski parçalara bölüyor (fragmentation). Sürekli büyüyen dosyaların diskte nelere yol açabileceğini düşünmek zor değildir. Büyüme sırasında eklenen veriler, aynı silindirde farklı yerlere kaydediliyor. Bu yüzden de, birkaç silindire sığabilecek dosyalar, düzinelerce silindire dağılıyor. Bir silme sonucu, dosyanın çok uzağında bir cluster boşaldığında dosyanın son bölümünün bulunduğu silindirde boş yer olmasına rağmen, dosyaya, uzakta kalan cluster tahsis ediliyor. Demek ki, büyük bir dosya çok kullanılmış bir hard diske kopyalandığında birçok parçaya bölünebilir.
Verimsizlik
Neticede hızlı bir CPU’dan, hızlı bir kontrol ünitesinden, ya da taşma optimizasyonundan elde edilen kazanç havaya gider. Veri okuma hızı düşük olduğundan, bu imkanlardan faydalanılamıyor. Bu performans zayıflığının derecesi, ele alınan dosyanın türüne bağlıdır. Büyük rasgele erişim dosyaları, zaten çoğu zaman manyetik kafanın daha çok hareket etmesini gerektiriyor. Buna karşın; program, text ve hesap tablosu dosyaları normalde düzenli okumaya imkan tanıyan dosyalardır. Dolayısıyla bu tùr dosyaların parçalanması durumunda, okuma yazma süreleri oldukça uzayacaktır.
Parçalanmış Alt Directory’ler
Parçalanmış alt directory’ler, çoğu zaman performans düşüklüğünün sebebi olarak gerektiği kadar ciddiye alınmaz. Alt directory’lerin normal dosyalardan tek farkı, directoıy girişlerinde attribute’larının “directoıy’ olarak geçmesidir. Aranılan dosya üçüncü seviyedeki bir alt directory’de, örn. \MADDE\MOLEKUL\ATOM\KARBON.ATO alt directory’sinde bulunsun. Bu durumda, DOS önce ana directory’de MADDE adlı alt directory dosyasını bulup okuyacak, sonra orada MOLEKUL adlı dosyayı arayacak ve bu böyle devam edecek. Dört sektör içeren bir cluster, 64 tane directory girişi saklayabilir. 64 girişten daha fazlasına sahip olan alt directory’ler, muhtemelen hemen birincinin ardında yer alacak bir ikinci cluster’a ihtiyaç duyarlar. Eğer alt directory’ler parçalanmış (directory’nin diğer cluster’ı başka bir yerde ise) ve üstelik de PATH komutuna dahil edilmişlerse, bir dosyayı aramak manyetik kafayı oldukça fazla yoracaktır.
Dosya Birleştirme
Bu karışıklığı önlemenin bir yolu; dosyaları mümkün olduğu kadar az sayıda ve komşu silindirlere yerleştirmek, manyetik kafanın hareketlerini azaltmaktır. Gerçek optimizasyon ise, erişilemeyecek bir idealdir. Çünkü o zaman, dosyalan bir silindirden diğerine taşmaya izin vermeyecek şekilde gruplandırmak gerekir. Dosyaların birleştirilmesi - çiçek sulamak gibi - günlük hayatın rutinlerinden biridir. Karışıklık, işin bittiği andan itibaren yaklaşmaya başlar. Çünkü DOS, parçalanmış dosyalara karşı herhangi bir önlem almaz.
Görünmeyen Avantajlar
Birleştirilmiş dosyalar görünmeyen bazı avantajlar sağlar. Õrneğin dosyalar peşi sıra gelen sektörlerde bulundukları için, dosya kurtarma programları problemsiz çalışır. Bu şekilde, toplu silmeler yapılmış olsa dahi, kullanıcının sektörleri tek tek arayıp bir araya getirmesine gerek kalmadan, otomatik olarak her şey kurtarılabilir. Diğer bir avantaj ise, dosya birleştirme sayesinde hard diskin ömrünün uzamasıdır. Daha az kafa hareketi, sürücünün eskimesini yavaşlatır. Çoğu durumda, bu belirtilen sebeplerden dolayı bile, bir dosya birleştirme programı satın almaya değer. Birleştirme. iki farklı şekilde yapılır. Ya bunun için bir utllity kullanılmalı, veya bütün hard diskin backup’ı alınıp, onu formatlayıp dosyalar tekrar geriye aktarılmalıdır. İkinci yöntem çok pratik görünmese de, temel bir mantığın sonucudur.
Dosya Birleştirme Aracı Olarak Backup
Yeni formatlanmış bir hard diskte cluster’lar dosyalara peşi sıra tahsis edildiğinden, parçalanma problemi olmaz. Aynı sonuca, tüm hard diskin backup’ı alınıp dosyalar tekrar geriye kopyalanarak da ulaşılabilir.
Aynı sebepten dolayı, bir diskete olan erişim süresi de kısaltılabilir. Bunun için, dosyaların teker teker COPY A\*.* B: komutuyla başka bir diskete alınması yeterlidir. Burada dikkat edilmesi gereken husus, DISKCOPY komutunu kullanarak dosyalan birleştirmenin mümkün olmadığıdır. Çünkü bu komut disketi sektör sektör kopyalar.
Yeniden Formatlama
Burada formatlamanın gerekliliği konusunda şüpheye düşülebilir. Bu şüphenin ürünü olarak da tüm içeriğin silinmesi aynı işi gõrüp görmediği sorusu akıllara gelebilir. İyi bir backup utility’si tüm directory tree yapısını alır ve yanlışlıkla formatlanmış bir hard diske de tekrar o yapının aynısını, dosyalarla birlikte aktarır. Bir hard diskin içindekileri silerken, directory’den directory’ye geçip hepsinin içini teker teker temizlemek gerekir. Ayrıca, alt directory’ler de aslında birer dosya olduğu için, onların da birleştirilmesi gerekir. Bu da, tüm yapıyı yeni baştan oluşturma zorunluluğunu getirir. Şu gerçektir ki, hard diski formatlayıp, gerisini backup utility’sine yaptırmak en kolay yoldur. Burada bahsedilen formatlama, elbette ki yüksek düzeyde formatlamadır
Problemler
Tabi bu teknik, global backup yapan bir teyp ünitesi kullanılıyorsa çalışmayacaktır. Bu durumda, dosyaların teker teker yedeği alınması gerekir. Günümüzde artık global backup’larla dosyalar arasındaki sınır, teyp backup ünitelerinin kullanımıyla ortadan kaldırıldı. Hatta bazı üniteler bir global backup’a bakarak dosya dosya oluşumlar sağlayabiliyor. Eğer kullanıcı böyle bir üniteye sahipse, bu şekilde dosya oluşturma pek tavsiye edilmeyen bir durumdur. Çünkü bu çok uzun sürer. Sorunun esaslı bir şekilde çözülmesi için, önce iki tane global backup alınmalıdır. Bu gerek şarttır. Sadece “bir” backup alınırsa, formatlamadan sonra ortada sadece o backup kalacak. Ve olası bir terslik olduğunda, backup’ın backup’ı alınmaması ileride pişmanlık yaratacak durumlar meydana getirebilecektir. Dosya birleştirme işlemine geçmeden önce mevcut backup programının çalışma tarzı hakkında yeteri kadar bilgi edinilmelidir.
Birleştirme Programları
Masraf yönünden biraz daha fazla olsa da bir birleştirme programı almanın işi kolaylaştıracağı düşünülebilir. Bu doğru bir düşüncedir. Çünkü backup yöntemi dosya birleştirmek için pek de rahat sayılmaz. Bu doğrultuda birleştirme programlarını biraz daha yakından tanımak gerekir. Bunlar dosyaların diskteki dağılımlarını inceleyip, her dosya bir araya gelene kadar cluster’ların içeriklerin bir ileriye bir geriye kopyalarlar. Ne var ki, oluşturdukları büyük geçici dosyalardan dolayı hard diskte boş yere ihtiyaçları olur. Bazı programlar diğerlerinden daha hızlı çalışıyor olmakla birlikte, geçen zaman, daha çok hard diskin kapasitesine ve dosyaların parçalanma derecelerine bağlıdır. 20 MB’lık bir hard diskte, bu süreç 15 dakika ile 1 saat arasında değişir. Hard disk hizmetlerine sahip bazı software paketleri, õrneğin Norton Utilities (Advanced Edition) veya Mace Utilities, bu tip dosya birleştirme programlan da içerirler. Ancak, böyle paketlere dahil olmayanlar da vardır. Örneğin SoftLoglc Solutions firmasının Disk Optimizer adlı programı, bunlardan biridir.
Tehlikeler
Bir programın, değerli dosyaları parçalayıp birleştirmesi fikri, kullanıcıyı belki biraz rahatsız edebilir. Kullanıcı bu konuda haklıdır. Çünkü bu programların yaptığı “tedavi”, dosyaların hayatına da mal olabilir. Elektrik kesintisi gibi bir durum için endişelenmeye gerek yoktur. Çünkü bu programların çoğu, çalışacakları sektörü silmeden önce bir kopyasını diske yazar. Yalnız, bir kesinti durumunda kullanıcıya düşen görev; birleştirme programının oluşturduğu geçici dosyaları bulup silmektir.
Öte yandan birleştirme programları dosyaları karıştırabilecek başka metotlara da sahiptir. Bazıları daha hızlı çalışabilmek için. DOS’u devreden çıkarıp hard disk kartıyla şahsen ilgilenir. Çok riskli olan bu uygulama, özellikle ek olarak hızlandırıcı bir karta (Accelerator Board) sahip olan makinalarda çok kötü sonuçlara yol açabilir. Yazılım şirketleri böyle bir tehli***e karşı yeteri kadar tedbirli davranmamışlardır. Birleştirici bir programı “tam güvenli” olarak tanıtan bir şirket bulmak gerçekten zordur. Çünkü zamanında bunlarda birçok kaza meydana gelmiştir. Bu yüzden, önce hard diskin bir backup’ı alınıp birleştirici program işi bitirildikten sonra da hard diskte gariplikler olup olmadığı incelenmelidir. Programın hard diskte herhangi bir tahribata yol açmadığından tam emin olana kadar da, backup disketleri olduğu gibi saklanmalıdır.
Fonksiyonlar
Günümüzde birleştirici programlarda çeşitli seçenekler bulmak mümkündür. Bazılarında, sadece birleştirilmesi kolay görünen cluster’ların birleştirilmesi ve böylece normalden daha hızlı bir birleştirme olanağı sunuluyor. Başka programlar, dosyaları mümkün olduğu kadar az silindirde yer alacak şekilde yerleştiriyor. Daha başkaları ise, dosyaların diskteki fiziksel sıralamasını directory’deki sıralarına göre değiştirebiliyor. Bir “komut dosyası” aracılığıyla diskin en dışındaki silindirlere yakın olması istenilen dosyaların adlarının verilmesine imkan tanıyan programlar da var. Böylece dosyalar FAT sektörüne ve ana directory’ye daha yakın olacakları için, erişim süreleri kısalır. Diğer bir seçenek de birleştirme işlemi esnasında, bilgisayarda acilen yapılması gereken bir iş çıktığında, işlemi durdurabilmektir. Çoğu birleştirici program, aynı zamanda bozuk sektörlere de dikkat edip, gerekli düzeltmeyi kendi yapmaktadır.
Uygun Birleştirme Zamanı
Parçalanmanın çok ileri bir safhaya ulaştığının anlaşılabilmesi için DOS’un CHKDSK komutu bu konuda bir ipucu verebilir. Komutun arkasına bir dosya ismi yazılır (örnek: CHKDSK \MARMARA\BILGISAYAR..TXT). Bunun üzerine verilecek bilgilerin içinde, dosyanın yer aldığı cluster sayısı da bulunur. Ama, bu komutla tüm hard disk analiz edildiğinden, çok sayıda dosyayı kontrol etmek çok zaman alır. Çoğu birleştirme programı, dosyaların parçalanma derecesini tespit etme imkanı da sağlar. Fakat, özellikle en sık kullanılan dosyalar hakkında ayrıca bilgi alma olanağı yoktur.
Hard disk sürücüleri, aynı disket sürücüleri gibi, kontrol ünitesi içeren bir karta gereksinim duyarlar. IBM AT’lerde hem disket, hem de hard disk sürücülerinin kontrol üniteleri tek bir slot’a takılan ortak bir kartı paylaşırlar. IBM PC ve XT’lerde ise, hard disk için ilave bir kontrol kartı gerekmektedir. Kontrol ünitesini içeren kart, verilerin hard diskten hafızaya gönderilmesi işlemine yardım eder. Kontrol kavramı; verilerin okunmasına, yazılmasına, manyetik kafanın konumlanmasına ve birçok başka sürücü işlemine ilişkin emirler yollayan bir kontrol çipinden gelmektedir.
Kontrol ünitesinin görevleri ise, elektronik olarak sürücünün hareketlerini koordine etmek, kodlanmış bit zincirini gerçek verilere dönüştürmek ve hataları ortaya çıkarmaktır. Tüm bunlar çok hızlı olarak gerçekleşir; hatta bazen bilgisayarın veri işleme hızından bile daha hızlıdır.
VERİLERİN KODLANMASI
Kontrol üniteleri, veri kodlama yöntemlerinde birbirlerinden farklılıklar gösterirler. Verilerin kodlanması, onların hafızadan alınıp disk yüzeyine bitler halinde yazılması anlamına gelir. Eğer düşünülecek olunursa kontrol ünitesinin elektronik aksamı çok karışık bir işin altından kalkmak zorundadır. Manyetik kafanın altından yaklaşık olarak 60,000 tane yükü değişmiş yük alanı içeren bir iz geçer. İz sadece birkaç inch uzunluğundadır ve manyetik kafanın altından sadece 17 milisaniyede bir tam tur yapar. Yani 512 byte’lik (4096 bitlik) bir sektör sadece saniyenin binde birkaçı kadar kısa bir sürede kafanın altında geçer. Kontrol ünitesinin manyetik kafanın altından hangi yük alanının geçtiğini nasıl bilebildiği sorusu aka gelebilir. Fakat eğer sadece bir tek yük alanı kadar bir şaşma olsaydı, tüm veriler birbirlerine karışırdı. Bu sorunun cevabı “formatlama işlemi esnasında disk yüzeyine yazılan ve sektörlerin başlangıç yerlerini belirten veriler sayesinde” dir. Manyetik kafa, bir sektördeki verilerin üzerinde dolaştığında, kontrol ünitesi formatlamayla girilen işaretlerden birine rastlamadan önce binlerce manyetik yük alanını takip eder.
FM ve MFM Kodlamalar
Bu kadar çok sayıdaki yükün takibinde kontrol ünitesinin oryantasyonu kaybetmemesi için belli kodlama yöntemleri geliştirilmiştir. İlk geliştirilen FM (frequency modulation) kodlama yönteminde. ilave bir vuruş ile (clock pulse) yeni bir yük alanı daha kullanılmıştı. Bu şekilde disk kapasitesinin yarısı harcanmaktaydı. Daha sonra ileri sürülen bir fikre göre, bir yük değişiminin ardından gelen değer öncekinin değerine bağımlı olarak değişmekteydi. Bunun neticesinde bugün çoğu diskte kullanılan MFM (modified frequency modulation) kodlama düzeni yaratılmış oldu. Bu metot, zaman aralığı bitini kaldırarak, bir diskin kapasitesini FM kodlama yöntemindekinin iki katına çıkartmıştır.
RLL Kodlama
Son zamanlarda, RLL (Run-Length Limited) kodlama olarak adlandırılan bir metot daha sık kullanılmaya başlanmıştır. Kullanılan teknoloji aslında yeni olmamakla birlikte, son zamanlara kadar çok pahalıya mal oluyordu. RLL işleminde, veriler bir dizi özel kodlara dönüştürülür. Bu kodlar belli sayısal karakteristiklerden, örneğin ardarda gelen sıfırların miktarından meydana gelir. Buradaki mantık çok karışık olsa da, neticede veri yoğunluğu artırılmış olur. RLL 2.7 kodlama yönteminde peş peşe gelen sıfırların sayısı 2 ile 7 arasında sınırlandırılmıştır. Bu, sıfırların geçme boyunun (run-length) en çok 7 ile sınırlandırılmış olduğunu gösterir. Sonuç olarak, disk kapasitesi en az %50 artırılmış olur. RLL 2.7 kodlama metodu, günümüzde mikrobilgisayarlarda en çok kullanılan metottur. Bazı üreticiler ise, kısa bir süre içinde RLL 3.9 kodlama metodunu piyasaya sürdüler. Bu metot disk kapasitelerini iki katına çıkartmıştır.
RLL iz başına düşen sektör sayısını artırırken, belli bir anda manyetik kafanın altından geçen veri miktarının artmasına da yol açar. Bu da veri aktarım oranının artmasıyla sonuçlanır. Ayrıca, bir silindirdeki veri miktarını da artırarak, manyetik kafa hareketlerini azaltır.
Dezavantajlar
RLL kodlama metodunun bazı sorunları vardır. Öncelikle, RLL’yi kullanan kontrol üniteleri MFM kullanan kontrol ünitelerinden %50-%100 arası daha pahalıdırlar. Bundan daha da önemli olan bir sorun ise, sürücünün elektronik aksamlarının da bu veri aktarım oranına ayak uydurmak zorunda olmasıdır. Piyasada sunulmakta olan hard disk sürücüleri, RLL kontrol üniteleriyle uyumlu oldukları halde, çoğu bunlarla uyum içinde çalışmazlar.
HATALARIN DÜZELTİLMESİ
Kontrol ünitesi, birçok işlevinin yanı sıra, hata düzeltme işleminden de sorumludur. Bunu yaparken CRC (Cyclic Redundancy Check) olarak adlandırılan bir yöntem kullanılır. Bu işlemde, matematiksel bir formül yardımıyla veri blokları kontrol edilir. İşlemin sonucu ise veri bloğunun, yani sektörün arkasına yazılır. Bundan sonra bu blok tekrar okunduğunda, kontrol ünitesi bu değeri yeniden hesaplar ve bloğun sonunda bulunan değer ile karşılaştırır. Değerler farklı çıkarsa kontrol ünletesi hata verir. Bu teknik, birden çok hatayı da saptayabilecek kabiliyettedir.
Mevcut hatanın ciddiliğine bağlı olarak, kontrol ünitesi çoğu hata durumunda verileri yeniden oluşturabilir. Alışıldık bir sürücüde verilerin yeniden oluşturulabilmesine olanak sağlayan bir hata (recoverable read error) 10 trilyon byte’da bir meydana gelirken, verilerin yeniden oluşturulabilmesine olanak sağlamayan bir hata (nonrecoverable read error) daha da ender olarak meydana gelir. Arama hataları (seek errors), manyetik kafanın bir işareti kaçırdığı durumlardır ve 1 milyon denemede bir meydana gelirler. Bu çok yüksek güvenirlik oranı. aslında çoğu kullanımlar için son derece yeterlidir. Mekanik ve manuel hatalar bunlardan çok daha tehlikelidir.
ARA BİRİM
Verilerin aktarım oranı, kullanılan ara birimlere bağlı olarak değişir. Ara birim, bilgisayar ile hard disk arasındaki iletişimi sağlayan bir sistemdir. Böyle bir ara birim ya sürücünün elektronik aksamında, veya kontrol ünitesinde bulunur. Genelde iki tür ara birimden söz edilir:
Cihaz ara birimleri (device-level interfaces) ve sistem ara birimleri (system-level interfaces). Bunlardan daha basit olanı, cihaz ara birimi. sürücüye erişim için gerekli olan temel elektronik aksamları içerir. Sistem ara birimi ise, cihaz ara birimi ile bilgisayar arasındaki iletişimi sağlar. İki ara birim arasındaki sınırı kesin olarak belirlemek çok zordur. Ancak, sistem ara biriminin daha kabiliyetli olduğu söylenebilir, çünkü daha yüksek bir seviyede çalışır.
ST506 Ara Birimi
IBM bilgisayarlarında iki çeşit ara birim kullanır:Normal ST506/412 standart ara birimleri ve daha hızlı olan ESDI standart ara birimleri. 506 standart ara birimi 5 Mbps’lik (saniye başına düşen megabit) bir oranda veri aktarımı gerçekleştirebilmektedir. Bu, standart 5 MB’llk bir hard diskin yüksek kapasiteli olarak görüldüğü dönemlerde çıkarılmıştır. Bu 5 Mbit’lik oran IBM XT’ler için yeterli bir orandı, çünkü bilgisayar, hard diskin kontrol ünitesi kadar hızlı bir şekilde buffer’a veya buffer’dan veri aktarımı gerçekleştiremiyordu. Sürücüler bilgisayarın kendisinden daha hızlıydı.
ESDI Ara Birimi
Değişim, daha hızlı olan 80286 veya 80386 microprocessos’lerin piyasaya sürülmesiyle gelmiştir. Daha sonra da Pentium serileri ile devam etmiştir. Artık microprocessos’ler verileri sürücülerden çok daha hızlı olarak hafızaya aktarabiliyorlar. Bunun neticesinde ise ST506’lardan daha hızlı olan ESDI ara birimleri üretilmeye başlanmıştır. ESDI ara birim’lerinin çoğu, saniyede 10 Mbit’lik veri aktarımı gerçekleştirseler de, bu hızı 20 Mbit’e çıkaran ESDI’ler de vardır. Bu kadar yüksek bir veri aktarım oranı, sadece, bir ize sığdırılan 512 byte’lık sektörlerin sayısını iki katına çıkartabilen yüksek kapasiteli sürücülerle mümkündür. ESDI ara birimleri ST506’lardan sadece daha hızlı değil, aynı zamanda daha da kabiliyetlidirler. Disket ve hard disk sürücülerinin haricinde, teyp backup üniteleri ile de çalıştırılabilirler. Ayrıca, bu aletler arasındaki veri aktarımını da bunların kullandıkları sektör büyüklükleri birbirlerinden farklı olsa dahi. gerçekleştirebilirler. Hataların belirlenmesi işleminde de, ESDI ara birimleri ST506’Iardan daha verimli çalışırlar.
Asıl Veri Aktarım Oranları
Saniyede 625,000 byte’lik bir veri aktarım oranına sahip bir sürücünün, 100 KB’lik bir dosyanın yüklenmesinde neden uzun bir süre gerektirdiği düşünülebilir. Elektronik aksamlar, bu hızlarını, sadece manyetik kafa istenen konumda bulunduğu vakit geçekleştirebilırler. 40 milisaniyelik bir erişim hızında manyetik kafanın her hareketi 25,000 byte’lık bir veri aktarımı için gerekli olan süreyi harcar. Her istenilen anda da istenilen sektörün manyetik kafanın altında bulunması gerekir. Dakikada 3,600 devirlik bir sürücü, aranan sektör eğer diskin diğer yüzündeyse, 5,000 byte’lık bir veri aktarımı için gerekli olan süreyi harcar. Başka bir husus da, elektrik aksamın da her zaman hazır olamayacağıdır. Kontrol ünitesi CPU işlemini bitirene kadar beklemelidir. Kullanılan programların da bir kısım verileri işledikten sonra diğer verilere geçtiği unutulmamalıdır. Bu ilave veri işlemi hard diskin taşma faktörünün aşılmasına ve diskin normalden fazla dönmesine sebep olabilir. Bu esnada elektronik aksamlar beklemek zorunda kalırlar.
SCSI Ara Birimi
Yaygınlaşmakta olan üçüncü bir standart ise, çok kabiliyetli olan SCSI ara birim standardıdır. Bu ara birlmlerde, kontrol ünitesinin tüm fonksiyonları sürücünün kontrol kartı tarafından gerçekleştinilir. Bunlar SCSI port’u bulunan bir bilgisayara direk bağlanabilen sistem ara birimleridir. Bu port, aynen seri ve paralel portlar gibi, bilgisayarın arkasında bulunur.
IBM, SCSI ara birimlerini bir SCSI adaptörü yardımıyla kullandırmaktadır. Böylece, tek bir bağlantı slot’u kullanarak örneğin hard disk, yüksek kapasiteli sürücü, optik sürücü, scanner ve yazıcı gibi yedi tane harici birimin bağlanabilmesine imkan tanır. Bunun sağladığı avantaj ortadadır. Birçok harici birimin bağlanması için normalde ihtiyaç duyulan ek slot’lara artık gerek kalmaz. Üretlciler. daha sonraki modelleri SCSI ara birimi ile donatılmış halde üretmeyi düşünüyorlar, SCSI ara birimleri bazı yönlerinden dolayı geleceğin ara birimleri olarak görülseler de, yüksek kapasiteli sürücülerle çalışan ESDI ara birimlerinin yerini almaları beklenmemelidir.
Tanı İz Buffer’ları
Verilere erişimi hızlandırabilmek için piyasaya sürülen kontrol kartlarına ilave bir özellik kazandırılmıştır. Bu özellik, kontrol kartlarının, diskin bir izindeki tüm verileri içerebilecek kadar büyük bir buffer’la donatılmış olmalarıdır. Bu tür buffer’lar genelde 9 KB’lik kapasitede olurlar. Eğer belli bir sektördeki verilere erişilmek istenirse. kontrol ünitesi o anda manyetik kafanın altında bulunan sektörden başlamak üzere tüm izdeki verileri okur. Bu sayede, aynı izde bulunan başka bir sektördeki verilere de erişilmek istendiğinde, bu işlem artık elektronik aksamın imkan tanıdığı hızda (bu hız RAM Diskin hızıyla kıyaslanabilir) gerçekleşir. Şekil 1 bu işlemi göstermektedir.
Normalde hard disklerde bu bufferlar 1:1 ‘ilk bir taşma faktörüne göre çalışırlar; çünkü bu şekilde, veriler mekanik açıdan mümkün olduğu kadar hızlı okunmaktadır. Ancak taşma faktörünün 1: l’den büyük olduğu durumlar da görülebilir. Bu durumlarda veriler (sektörler) şekil 4.1’dek sıralamadan farklı bir sıralamada okunurlar. Burada şu soru akla gelebilir: “Eğer veriler 1:1 ‘ilk taşma faktörüyle aktarılırlarsa, bu buffer’ın ne gibi bir yararı olur?”. Uygulamada, programlar hard diske yönelik girdi çıktı işlemlerini çok verimsiz olarak gerçekleştirirler. En optimal taşma faktörü, ancak veriler işlenmeden hafızaya aktarılırsa sağlanır. Verllerin bu aktarım esnasında işlenmesi, taşmayı keser ve diskin hariçten dönmesini gerektirir. Diskin bir dönüşü 17 milisaniyelik bir zamanda olur. Bu da, hızlı bir hard diskte manyetik kafanın veri araması için harcanan zamanın iki katıdır. Bu tür gecikmeler çok çabuk birikir ve toplamda çok zaman kaybına yol açar. Ancak ilk turda tüm veriler okunurlarsa, artık verilerin programlar tarafından talep edildikleri anda hemen hafızaya aktanlmalan mümkün olur.
Şekil 1 Tam İz Buffer'ı
Dezavantajlar
Çoğu zaman, izdeki verilerden sadece bir kısmı gerçekten gereklidir. Bu durumlarda,
hariçten okunan veriler zaman kaybına yol açar. Aslında bu buffer’lar diskte parçalanmış halde bulunan dosyalarda (random access files) ortalama erişim süresini artınr. Çünkü çoğu zaman, bu tür dosyalarda ard arda gelen veriler çok farklı alanlarda bulunur. Sonuçta, sadece bir sektörlük veri gerektiği halde, izdeki tüm sektörler okunur.
Tam İz Buffer’ları Yardımıyla Diske Veri Yazılması
Okuma işlemi haricinde izdeki bütün yerleri içeren buffer’lar yardımıyla yazma işleminde de kolayhklar sağlanabilir. Aslında bu buffer tam olarak dolmadan, diske hiçbir şey yazılmaması gerekir. Aksi taktirde, bir hamlede diskteki tüm bir izi yazma firsatı elden kaçırılmış olacaktır. Ne var ki, buffer tam olarak dolmuş olmasa dahi, DOS’un manyetik kafayı başka bir ize konumlamaya yönelik her talimatında, buffer’daki veriler diske yazılırlar. Bu, bufferın içerdiği son izi diske hiçbir zaman yazmaması anlamına gelir. En sonunda makina kapatılmak zorunda kalınacağı için, bu son iz kaybolur. Bunu engellemek amacıyla getirilen ek bir önlem, iz bufferlarının sürücünün birkaç saniye hareketsiz kaldığını fark ettikleri an, içerdikleri verileri diske yazmaları şeklindedir.
Sektörü Olmayan İzler
Tam iz buffer’larından sağlanan fayda, sektör kavramının izlerden kaldırılmasıyla üst düzeye çıkarılabilir. Bunun bir örneği, 20 MB’lik bir hard diskte, izlere hiç boşluk vermeden veri yazan ve bu şekilde diskin kapasitesini 26 MB’a çıkartan Tallgrass TG5525i kontrol ünitesidir. Bu kontrol ünitesi, okuma işlemi esnasında, izin içerdiği verilerin hepsini buffer’a koyar ve ardından verileri 512 byte’lık kısımlara bölerek kullanır. DOS hiçbir zaman bu değişikliğin farkına varmaz.
Tam iz buffer’ları, utilityler yardımıyla taklit edilebilirler. Bu programlar, sık sık kullanılan sektörlerin birer kopyalarını hafızaya yerleştirir ve bu sektörlere yönelik gerçekleşen mekanik erişim sayısını en aza indirirler. Hatta bazıları, DOS' u kandırıp bütün bir izi hafızaya yerleştirebilecek durumdadır. Bunun için, iz üzerinde buffer’lamayı gerektirecek kadar veri bulunup bulunmadığına bakarlar. Diğer bir özellikleri ise, buffer’daki bir izin diske yazılmasında görülür. Bu aşamada, sadece üzerinde değişiklik yapılmış olan sektörler diske yazılır. Oysa DOS’a kalsa izdeki tüm sektörleri diske yazardı. Ancak, bu tür metotlar yine de verimsiz sayılır. Çünkü gereksiz yere okunmuş olan veriler, bu sefer sadece kontrol ünitesine kadar değil, sistem hafızasına (RAM) kadar ulaşır. Buffer’lama işlemi biraz daha kabiliyetli bir şekilde gerçekleştirilebilseydi, daha yüksek bir verimlilik elde etmek mümkün olurdu. Yazılımların yardımıyla kontrol ünitesinin veri buffer’lama sistemini iyileştirmek ve böylece gereksiz okuma yazma işlemlerinden kurtulmak mümkündür.
DİSK FORMATI
Kontrol ünitesinin, disk yüzeyini sektör, iz ve silindir isimli kısımlara ayırır. Ancak, yazılımlar verileri bu kısımlara göre değil, dosya kavramına göre saklarlar. Yazılımların büyük bir kısım, veri yazılması ve okunması ile ilgili problemlerle hiç uğraşmazlar, çünkü bu DOS’un görevidir. DOS, disk işletim sistemi (disk operating system) anlamına gelir ve verileri okuyup yazmanın dışında, birçok özelliğe daha sahiptir. Ancak, okuma yazma işlemleri onun en önemli görevleridir. Bunların haricinde, DOS’un sadece programcılar tarafından bilinen bir yönü daha vardır. Çoğu kullanıcı DOS’u sadece COPY ve DIR gibi bir komutlar topluluğu zanneder. Oysaki, programcılar, DOS yardımıyla dosya açıp kapayabilir veya manyetik kafanın başka bir konuma hareket etmesini sağlayabilirler. DOS, programcılara belli bir sektöre erişim imkanı tanıdığı halde, yazılımlar dosyanın saklandığı disk alanını pek bilmezler. Yazılımlar sadece verileri isterler. Onların hafızaya yüklenmesi görevi DOS’a aittir. Tersinde ise, DOS, yazılım tarafından gönderilen verilerin gerekli yere yazılmasını sağlar.
Dosya Kavramı
Dosya kavramı, aslında verilerle dolu sektörlerin oluşturduğu bir zincirden başka bir şey değildir. DOS, diskte bulunan dosyaların bir listesini tutar (directory). Bu directory’lerde dosya ismi ve dosya uzantısının haricinde dosyayla ve dosyanın ilk sektörüyle ilgili bilgiler de bulunmaktadır. Directory, dosyanın ilk sektörü hakkında bilgi verir. Geri kalan sektörler hakkındaki bilgiler dosya dağılım tablosunda (File Allocation Table veya FAT) bulunmaktadır.
Cluster
Diske bir dosya kaydedildiğinde, DOS’ un bu dosyaya diskte ayırdığı yer, genelde dosyanın net uzunluğundan daha fazla olur. Sürücünün kontrol ünitesi verileri sektörlerden daha ufak parçalar halinde ele alamadığı için, DOS, yer rezervasyonunu sektör sektör yapmak zorunda kalmıştır. Eğer dosyanın uzunluğu 1 ile 512 byte arasında kalırsa, bu dosya için diskte mecburen bir sektörlük yer kullanılır. Eğer dosya uzunluğu 513 ile 1024 byte arasında kalırsa, bu sefer de dosya için 1024 byte’lık. yani iki sektörlük yer kullanılır. Bu yöntem, gereksiz disk alanı harcamalarına yol açmaktadır. Ancak uygulamada, sadece tek yüzlü, yüksek yoğunluklu 1.2 MB ve 1.44 MB’lik disketlerde tek sektörlük alan rezervasyonları söz konusu olur. Diğer çeşit disketler ve farklı kapasitelerde olan hard disklerde bu alan 2, 4 veya 8 sektör arasında değişir. Alan rezervasyonlarını bir sektörlük yapan disklerde 10 byte’lık bir bilgi için 512 byte harcanırken; 2. 3 ve 4 sektörlük alan rezervasyonu yapan disklerde bu sayı sırasıyla 1024, 2048 ve 4096 byte olur.
Cluster Numarası
DOS' un dosyalara tahsis ettiği asgari yere cluster adı verilir. DOS, cluster’ları 0’dan başlayarak numaralandırır ve bu numaraları cluster’ın içerdiği sektörlere erişmek için kullanır. 360 KB’lık standart disketler 2 sektörden meydana gelen cluster’lar kullanır. Çoğu hard diskte ise, bir cluster 4 sektörden oluşur. Bununla birlikte. cluster büyüklüğü bir disketin veya hard diskin fiziksel özelliklerinden birisi değildir. Bu, sadece DOS' un veri organizasyonuyla ilgili bir kavramdır.
Cluster’ların daha fazla sektörden oluşmasının gereksiz disk alanı harcamalarına yol açar. Örneğin. çoğu zaman dosyanın son cluster’ının son sektöründe dosyayla ilgili hiçbir veri bulunmaz. Şekil 2’de bu görülebilir.
Şekil 2: Dosyanın Son Cluster’ında Kullanılmayan Disk Alanı
DIRECTORY
Directory de, aynı bir dosya gibi. verilerle dolu sektörlerin oluşturduğu bir zincire benzetilebilir. Ancak directorylerdeki veriler, DOS tarafından hazırlanan verilerdir. Burada her directory girişi ile ilgili 32 bytelık veri bulunur. Bir sektörde 512 byte bulunduğu için, her sektörde 16 tane directory girişi yer alabilir. 32 byte, bazı önemli bilgileri içermek için oldukça yeterli bir sayıdır:
Byte 01-08 Dosya ismi
09-11 Dosya uzantısı
12 Attribute (dosya niteliği)
13-22 Şu anda kullanılmıyor
23-24 Dosyanın son kullanıldığı saat
25-26 Dosyanın son kullanıldığı tarih
27-28 Dosyanın başlangıç cluster’ı
29-32 Dosya uzunluğu (byte olarak)
Bu 32 byte’da bulunan bilgilerin büyük bir bölümü; yani dosya ismi, uzantısı, tarihi, saati ve uzunluğu, directory listelendiğinde ekrana gelirler. Dosya ismi ile uzantısının arasında görülen nokta, bu 32 byte’lık bilgilerin içinde yer almaz. DOS bunun nereye konacağını bilir. Eğer dosya adı sekiz karakterden kısa olursa, DOS bunun sağında kalan alanları sekize tamamlayana kadar boşluklarla doldurur. Aynı şey dosya uzantısı için de geçerlidir.
Dosya Tarih ve Saati
Dosyanın tarihine ve saatine ikişer byte’lık yer ayrılır. Normalde 12-07-1992 şeklinde yazılan bir tarih en az sekiz karakterden oluşur (tireler çıkartıldıktan sonra) ve 10:57:16 şeklinde yazılan bir saat de en azından altı karakterden oluşur. Ancak, DOS bu bilgileri karaktersel olarak saklamaz. Bu bilgileri saklarken öncelikle bu iki byte’lık alanı üç kısıma böler. Eğer bu iki byte’a tarih girilecekse, bu kısımlar ay, gün ve yıl şeklinde; eğer zaman girilecekse, saat, dakika ve saniye şeklinde ayrılır. Bir byte, sekiz hanede “1’ler ve “0 ‘lardan oluşan 256 değişik kombinasyon içerebilir.
Bu yüzden 1 byte’lik bir alanda 0’dan 255’e kadar bir değer saklanabilir. Bundan dolayı bir byte’ı parçalara bölerek daha küçük sayıları içerebilen birden fazla kısım oluşturmak mümkündür. Buna göre, iki byte’lık alan, ay için l’den 12’ye kadar veya gün için l’den 31’e kadar kısımları temsil edebilecek şekilde parçalanmıştır.
Dosya uzunluğu
Dosyanın tarih ve saati için ayrılan iki byte’a benzer bir şekilde, uzunluğu için ayrılan dört byte da karaktersel olarak değil, sayısal olarak saklanır. Bu alanlarda da oldukça yüksek, yani 1 ile 4.294.967.296 arasında bir değer saklanabilir. Ancak DOS, uzunlukları 33 milyon byte’ı aşan dosyalarla çalışamamaktadır.
Dosyanın Başlangıç Cluster'ı
Directory’lerde dosyayla ilgili olan ve DIR komutu neticesinde ekranda görülmeyen bilgiler de vardır. Gizlenen bu bilgilerden bir tanesi, dosyanın disk üzerinde hangi cluster’dan itibaren başladığını belirten bilgidir. DOS dosyaya erişmeden önce bu değeri alır ve gerekli sektör numarasına çevirir. FAT dosyayla ilgili sonraki sektörlerin bulunması için yol gösterir.
Dosyanın Attribute’u
Directory’lerde gizli olarak bulunan bilgilerin ikincisi ise, dosyanın niteliğini belirten attribute byte’ıdır. Bu byte, dosyanın, bazı karakteristik özellikleri içerip içermediğini gösterir. Özellikleri olmayan dosyalarda bu byte’ın değeri 0 olur. Bu değerin 1 olması dosyanın sadece okunabilir (read-only file) olduğunu, 2 olması ise gizli dosya (hidden file) olduğunu gösterir. Bir dosyanın taşıyabileceği altı tane attribute vardır.
Sadece Okunabilir, Gizli ve Sistem Dosyaları
Attribute’lardan sadece üç tanesi, yani “sadece okunabilir”, “gizli” ve “sistem” attribute’ları, sıradan dosyalar için kullanılırlar. Eğer “sadece okunabilir" attribute’u varsa, DOS hiçbir şekilde, hatta yazılıma bunun için emir verilmiş olsa dahi, bu dosyaya veri yazmayacaktır. “Gizli” attribute’u ise, DIR komutu neticesinde dosyayla ilgili hiçbir bilgi verilmemesini sağlar. Son olarak, “sistem” attribute’u DOS’a dosyanın işletim sistemiyle ilgili bir dosya olduğunu bildirir. “Sistem” attribute’u çok sık kullanılmaz. Genelde, “gizli”attribute’u ile beraber kullanılır. Nitelikleri bu attribute’larla verilen dosyaların sıradan dosyalar olduğu unutulmamalıdır. Attribute’lar sadece, DOS’un bu dosyaları ne şekilde kullanması gerektiğini gösterir.
Etiket Dosyaları
Geriye kalan üç attribute, dosyaları gerçek anlamda sınıflandırmazlar. Onların özel birer görevleri vardır. Bu attribute’lardan bir tanesi “etiket” dosyaları içindir. DOS hard disk veya disketlere on bir karakter uzunluğunda bir isim verir. DOS, her directory listesine ‘Volume in drive X is xxxxxxxxxxx” şeklinde bir etiket ile başlar. DOS directory’yi taradığında, attribute byte’ının yardımıyla, directory girişlerinden birinin ilk on bir byte’ının bir dosya adı değil, bir etiket olduğunu anlar.
Arşiv Attribute’u
Bu attribute da benzer bir durum sergiler. DOS bir dosyaya veri yazdığı zaman, bu attıibute’a 1 değerini koyar. Dosyalar backup programlan yardımıyla kopyalandığında, bu programlar, dosyaların “arşiv” attribute’larının 1 olup olmadığına bakarlar. Çünkü bunlar, arşiv attribute’ları 1 olan dosyaları kopyalarlar. Kopyalama işleminin ardından, bu attribute’a 0 değerini koyarlar. Eğer bir süre sonra dosyaların tekrar backup’ı alınmak istenirse, sadece, bu süre içinde değiştirilmiş olan dosyalar kopyalanır. Değiştirilmemiş olan dosyalar ise kopyalanmazlar.
Alt Directory Attribute’u
Bu fonksiyonun anlaşılabilmesi için, öncelikle DOS’un bir directory'i nasıl oluşturduğunun bilinmesi gerekir. DOS, “root directory” olarak adlandırılan ana directory’i diskin en dışına (silindir 0’a) koyar. Hard diskler, ana directory’ye 32 sektörlük yer ayırır. Her sektör en çok 16 tane directory girişi içerebildiğine göre, toplam 512 (32x 16) tane directory girişine imkan sağlanır. Ana directory, diskteki özel kısımlardan biridir. DOS, bu directory’i bulmakta zorlanmaz, çünkü bu directory’nın bulunduğu yer ve kapsadığı sektör sayısı her hard diskte aynıdır. Hard diskte tek bir dosya bulunsa dahi, ana directory için rezerve edilen 32 sektör değişmez.
Disk üzerine yerleştirilen alt directory’ler, birer dosyadan başka bir şey değildirler. Ana directory gibi, bunlar da 32 byte’lık directory girişlerinden oluşur. Aynen dosyalarda olduğu gibi, kullanılan alanlar alt directory’lerde de cluster hesabıyla belirlenir. Eğer DOS’un MKDIR (directory oluştur) komutu kullanılırsa, DOS, yaratılmak istenen alt directory’nin isminde bir dosya oluşturur ve bunun başlangıç yerini bir cluster’la belirler. Bu alt directory’ye aktarılan dosyalar cluster’ı doldurduğunda, yeni bir cluster bu alt directory’ye ilave edilir. Bu alt directory’lerin uzunluklarıyla ilgili bir sınırlama yoktur. Yani, alt directory’ler, ana directory’den farklı olarak, sınırsız sayıda directory girişi içerebilir.
\MARMARA\TEKNIK\BILG path’iyle (directory yolu) gösterilen bir alt directoıy incelenecek olursa. Ana directory, ‘MARMARA” isimli bir alt directory girişi içermektedir. “MARMARA” alt directory’si ise, “TEKNIK” isimli bir alt directory; “TEKNIK” alt directory’si de “BILG” isimli bir alt directory içermektedir. DOS, bu dosyaların normal birer dosya değil, birer alt directory olduğunu attribute byte’ları yardımıyla anlayabilir.
Nokta ve İki Nokta Girişleri
Alt directory’leri listelendiğinde, ilk iki directory girişinin nokta (“.“) ve iki nokta (“..“) isimli iki dosya tarafından işgal edildiği görülür. Nokta isimli directory girişi, alt directory’nin kendisini gösterir. Daha açık bir anlatımla, başlangıç cluster’ı bu alt directory’nın başlangıç cluster'ıyla aynı olan bir dosya gibidir. İki nokta ise, “parent” diye adlandırılır ve directory’nin bir üst directory’sınin başlangıç cluster’ını içerir. Yani alt directory’de iken CD.. dendiği taktirde, bir üst directory’ye dönülmüş olur. Ana directory’de iken ne nokta, ne de iki nokta görülür.
Silinmiş Dosyalar
Directory’lerle ilgili bilinmesi gereken son şey, DOS’un bir directory girişinin kullanılıp kullanılmadığını nasıl anladığıdır. Bir alt directory oluşturulduğunda, bu alt directory’deki boş directory girişlerinin ilk byte’larına 0 değeri yazılır. Bu boş directory girişlerinden birine bir dosya ile ilgili bilgiler girildiğinde ise, bu ilk byte'taki 0 değeri yeni oluşturulan dosyanın isminin ilk harfi tarafından silinir. Böylece DOS, bu directory girişinin kullanılmakta olduğunu anlar. Dosyanın silinmesi durumunda ise. DOS, sadece bu ilk byte’a 229 değerini yazar. Silme işleminde bu tek byte’ın haricinde hiçbir bilgi silinmez. Bu yüzden, zaman zaman silinmiş dosyaların kurtarılmasından söz edilir. Geriye kalan bilgiler, ancak üzerlerine yeni bir giriş yapılırsa silinir.
FAT DOSYA DAÐILIM TABLOSU
Directory girişlerinde, bir dosyanın disk üzerindeki dağılımıyla ilgili sadece başlangıç cluster’ı hakkında bilgi bulunmaktadır. Ancak, çoğu zaman dosyalar bir cluster’dan daha uzun olur. Bu da, “DOS geri kalan cluster’ları nasıl bulabiliyor” sorusunu akla getirebilir. DOS, formatlama işlemi esnasında dosya dağılım tablosunu (FAT -File Allocation Table oluşturur. FAT, bir diskin en önemli bölümüdür. Eğer FAT bir manyetik kafa düşmesi veya bir formatlama neticesinde hasar görürse, diskteki herhangi bir veriyi yeniden kullanılır hale getirmek son derece zorlaşır. Bu öneminden dolayı, DOS, her zaman FAT’in iki kopyasını saklar.
FAT'in Yapısı
Şekil 3 Bir Dosyanın Dosya Dağılım Tablosundaki Yeri
FAT, disk alanını temsil eden cluster numaralarının bulunduğu bir tablodan başka bir şey değildir. FAT’taki ilk saha cluster 0’ı, ikincisi cluster 1 ‘i, vs. temsil eder. Her saha belli bir veri alanının yerini gösterir. Örneğin “gütef” isimli bir dosya olsun ve Ana directory’deki girişinde bu dosyanın 100.cluster’da başladığı belirtilmiş olsun. Şimdi DOS, FAT’taki 100. sahaya gider ve burada yazılı olan değeri okur. Bu değer 105 olsun. Demek ki, 100.cluster’da başlayan dosyayla ilgili bilgiler 105.cluster’da devam etmektedir. Bunun üzerine DOS, gider 105.cluster’ın içerdiği sektörlerdeki bilgileri okur ve tekrar FAT'a geri döner. Ancak, bu sefer 105.sahaya bakar ve buradaki numarayı okur. Bu işlem, bu şekilde devam eder; ta ki DOS, daha önceden belirlenmiş özel bir değere rastlayıp dosya sonuna ulaştığını anlayana kadar.
FAT’in Büyüklüğü
FAT’in büyüklüğü iki şeye bağlı olarak değişir: Diskin kapasitesi ve cluster’ların büyüklüğü. Kapasiteleri fazla olan diskler doğal olarak daha fazla cluster içerir ve bu da FAT’in daha büyük olmasını gerektirir. Aynı şekilde, eğer sektör sayısı artarsa, cluster sayısı ve dolayısıyla FAT’taki giriş sayısı da artar. Dikkate alınması gereken bir diğer nokta ise, FAT’a yazılabilecek en büyük değerdir. Çünkü bu değer, FAT'a girilebilecek maksimum cluster sayısını sınırlar. Disketlerde bu girişler için 1.5 byte’lık yer rezervasyonları yapılmıştır. Buna göre, disketlerde bu yerlere 4096 sayısına kadar değerler girmek mümkün olur. Bu değer, disketlerde mümkün olan en büyük cluster sayısı için yeterli olmaktadır. Ancak, 20 MB’lik hard disklerde, her biri 4 sektörden oluşan 10,000 cluster mevcuttur. Bu yüzden, bu tür hard disklerde FAT’taki giriş için 2 byte’lik yer rezervasyonun yapılması gerekir. Bu 2 byte, 65,535 sayısına kadar olan değerlerin girilmesine imkan tanır.
Tek sektörlük cluster’lar disk alanının daha ekonomik bir şekilde kullanılmasına olanak tanırlar. Bu yöntemle, dosyaların en son cluster’ında ziyan olan yer bir sektörden daha az olur. Ancak, cluster’ların küçülmesi, onların sayısını artırır ve bunun sonucunda da FAT'in daha büyük olmasını gerektirir. DOS, hard disk veya disketlerle çalışırken sürekli dönüp FAT' a baktığı için, işini kolaylaştırmak amacıyla onun bir kopyasını hafızaya alır. 20 MB’lik bir hard diskte cluster’lar eğer tek sektörden oluşsaydı, FAT 84 KB uzunluğunda olurdu. Bu durumda, RAM, 84 KB’lik alanını sürekli olarak FAT 'a ayırmak zorunda kalırdı.
Hafızadan Tasarruf
IBM, ilk XT bilgisayarlarını piyasaya sürdüğünde hafıza çipleri çok pahalıydı ve çok az bilgisayar 256 KB’dan büyük bir hafızaya sahipti. Bu yüzden DOS, zaten kıt olan hafızadan tasarruf etmek için, 2.X versiyonlarında bir cluster’ı 8 sektörden oluştururdu. FAT bu şekilde oldukça küçük tutulmuştur. DOS’un daha sonraki versiyonlarında, bu sayı, RAM çiplerinin ucuzlamasıyla da bağlantılı olarak, cluster başına 4 sektöre indirilmiştir. İlginç olan bir nokta, AT sınıfı bilgisayarlar için tasarlanmış 1.2 MB kapasiteli disketlerde cluster’ların bir sektörden oluşmasıdır. Bu disketlerin kapasiteleri nispeten daha fazla olduğu için, FAT’in büyüklüğü fazla rahatsız edici olmaz. Ayrıca, bu cluster’ların küçültülmesi, disk alanından daha verimli bir şekilde faydalanılmasını sağlar. Zaten bu disketler, öncelikle backup’ların oluşturulması için düşünülmüştür.
32 MB Sınırı
DOS, 32 MB’den daha yüksek kapasiteli hard disklerle çalışamaz. Bu sınır cluster büyüklüğü veya FAT’in büyüklüğü ile ilgili değildir. Daha çok bilgisayarın 16 bit mimarisinin bir sonucudur.
PC ve AT sınıflarındaki microprocessos’ler (CPU) 16 bit ile çalışırlar. Dolayısıyla, numaralandırılabilecek sektörlerin sayısı 0 ile 65.535 arasında olabilir. DOS, ilk izin ilk sektörünü 0, ardından gelen sektörü 1, vs. şeklinde numaralandırmıştır. En içteki izin son sektörüne de 65,535 numarasını verir. DOS'un kullandığı sektör büyüklüğü 512 byte olduğu için basit bir çarpımla 32 MB sınırı hesaplanabilir:
512 byte x 65,535 sektör = 33,553,920 byte.
(Programcılar ikili sayı sistemine göre işlem yapmasını çok sevdikleri için, bu sayıya kısaca 32 MB diyorlar ve arta kalan birkaç byte’ı cömertçe göz ardı ediyorlar). Tüm bu sebeplerden dolayı, DOS, 65,535’den daha büyük bir değerle numaralandırılmış sektörlere erişemez (daha büyük sayıları saymasını bilmez).
Yüksek kapasiteli sürücüler
Diğer bir merak konusu da DOS’un 65,535 sektörden daha fazla sektör içeren yüksek kapasiteli hard disklerle nasıl çalışabildiğidir. Hard diskleri farklı işletim sistemleriyle çalışabilmek üzere partisyonlara ayırmak mümkündür. Bu partisyonlar diskin herhangi bir bölgesinden itibaren başlayabilir (örneğin, 100.000’inci sektörden). Ancak, yine de 65,535 sektörden fazlasını bir arada kullanamaz.
BOOT
Bilindiği gibi, bilgisayarın açılışında, ana program olan COMMAND.COM hafızaya yüklenir. Bu program, RAM’a yerleştikten hemen sonra kontrolü ele alır. Çünkü DOS’un aslını bu program teşkil eder. Ne var ki, bu noktada bir çelişkiyle karşılaşılır. DOS’un (disk işletim sistemi) sürücülerin çalıştırılmasıyla ilgili olan sorumluluğunu COMMAND.COM programı yüklenir. Burada "COMMAND.COM dosyası yükleme komutunu kendisi veriyorsa, hafızaya nasıl yükleniyor?" gibi bir soru akla gelebilir.
Bunun cevabını “boot” kavramı vermektedir. Boot, İngilizce’deki “to pick itself up by its bootstraps” deyiminden ortaya çıkmıştır. Bu deyim ile, kendi iplerini kendisi tutan bir kukla benzetmesi yapılmıştır. Bu sırrın arkasında yatan gerçek ise, bilgisayarın ana kartındaki ROM çipinde bulunan küçük bir programcıktır. Bu programcık. bilgisayarın açılışında faaliyete geçer ve sürücüyü harekete geçirir. Bu gerçekleştikten sonra diskin en dışında bulunan ilk sektör okunur.
Boot Sektörü
Okunan bu ilk sektöre boot sektörü adı verilir. Bu sektör; yüz 0, iz 0, sektör 1 konumunda bulunur. Boot sektöründe hard disk hakkında bilgi verilmektedir. İşletim sistemi için çok önemli olan bu bilgiler, sektör büyüklüğü, cluster’daki sektör sayısı. silindir sayısı, silindirdeki sektör sayısı ve FAT ile ana directory’lerin büyüklüklerinden meydana gelir. Boot ayrıca hata mesajları da içerir (örneğin “COMMAND.COM bulunamadı” gibi). Son olarak da, işletim sistemiyle ilgili olan dosyaların isimlerini verir.
Sistem Dosyaları
Bilgisayar, bu bilgilerin yardımıyla IBMBIO.COM (Bu PC DOS için geçerlidir. MS-DOS’da bu dosyanın adı BIO.SYS’dir.) isimli bir dosya aramaya başlar. Bu dosya. diskin en dışındaki silindirde bulunan ana directory sektörlerinin hemen arkasından gelen sektörlerden itibaren başlar. Buraya yerleşmesindeki amaç, şu ana kadar alınan sınırlı bilgilerle dosyanın aranması için ayrıca çaba harcanmamasıdır. IBMBIO.COM dosyasının yüklenmesi sonuçlandıktan sonra, sistemin harekete geçmesinden sorumlu olan programcığın görevi tamamlanmış olur. Artık, sıra sistemle ilgili diğer bir dosyanın, IBMDOS.COM (veya MSDOS.SYS) dosyasının, yüklenmesine gelmiştir. Bu dosya da ilk silindirde bulunur ve IBMBIO.COM dosyasının hemen arkasında yer alır. Bu iki dosya ile ilgili directory girişleri ana directory’de bulunmakla birlikte, attribute’larındaki “gizli” ve “sistem” bitleri 1 olduğundan, DIR komutu neticesinde listelenmezler. IBMDOS.COM dosyası da yüklendikten sonra, artık bilgisayar, sistemin COMMAND.COM dosyasını, diskin hangi bölgesinde bulunursa bulunsun yükleyebilir. Yani, işletim sistemi de bir anlamda kendi iplerini kendisi tutmuştur.
IBMBIO.COM, IBMDOS.COM ve COMMAND.COM dosyaları, genelde sistem dosyaları olarak bilinirler. Bir diski formatlarken “/S” parametresi kullanılırsa, bu dosyalar otomatik olarak diske yazılırlar. Bunlardan bir tanesi eksik olursa, bilgisayar bu diskten açılamaz. Format işlemiyle dosyalar diske aktarılmadığı ve kullanıcının bu konuya başka bir çözüm getirecek bilgiye sahip olmadığı durumlarda, ilk iki sistem dosyası için öngörülmüş, fakat başka dosyalarca işgal edilmiş olan alanlara sistem dosyalarını aktarıp, bu diski bilgisayarı açabilen bir disk haline getirmek mümkün olmaz.
DOS’un SYS Komutu
Bazen, yazılım şirketleri dağıtım disketlerinin sistemli olmasına gereksinim duyarlar. Ancak, sistem dosyalarını kopyalamak yasal olmadığı için (copyright), bunları yazılımlarıyla beraber satmaları mümkün olmaz. IBM, bu soruna format komutunun “/B” parametresiyle çare bulmuştur. Format işlemi esnasında bu parametrenin kullanılması, silindir 0'da IBMBIO.COM ve IBMDOS.COM dosyaları için gerekli alanın rezerve edilmesini sağlar. Böylece, disketlere aktarılan yazılımlar disketlerin bu alanlarını kullanmazlar. Artık kullanıcılar, yazılım disketlerini aldıktan sonra, DOS’un SYS komutu sayesinde bu sistem dosyalarını başka bir DOS disketinden bu disketlere aktarabilirler.
HARD DİSK PARTİSYONLARI
Boot sektörü hakkında verilen bilgiler aslında sadece disketler için geçerlidir. Hard diskler farklı sistemler için partisyonlara ayrılabildiklerinden, en az iki boot sektörü kullanırlar. Hard diskler bir veya daha fazla partisyona ayrılabilirler. Bunlardan her biri farklı bir işletim sisteminin kontrolü altında olurlar. Her partisyon, peş peşe gelen silindirlerden oluştuğu için, bunların hard disk üzerindeki şekilleri simite benzer.
Format işleminin ikinci aşaması. disk yüzeyinde ana directory’nin, FAT’in ve başka önemli bilgilerin oluşturulmasından sorumlu olan yüksek düzeyde (fiziksel) formatlamadır. Partisyonların oluşturulması. düşük düzey ile yüksek düzey formatlama işlemlerinin arasında gerçekleşir. Sektörler oluşturulduktan sonra partisyon programı devreye girer ve hangi partisyonun nerede başlayıp nerede bittiğini belirler. Bu bilgiler daha sonra, master (ana) boot sektöründe bulunan partisyon tablosuna aktarılır. Bu aşamadan sonra, her partisyonla ilgili ana directory’ler ve FAT’lar, o partisyonun ilk silindirine yazılır.
Ana Boot Sektörü
Disketlerdeki alışıldık boot sektörleri gibi, hard disklerin de ana boot sektörleri yüz 0, iz 1, sektör 1, konumunda bulunurlar. Bu sektörde, BIOS’a bazı temel hard disk işlemlerini yaptırabilecek kadar bilgi vardır. Buna karşılık, normal bir boot sektörüne kıyasla, herhangi bir işletim sistemiyle ilgili bilgi içermez (örneğin sistem dosyalarının isimleri gibi). Bunun yerine, hangi partisyonun nerede başlayıp nerede bittiğini belirten bir partisyon tablosu içerir. Bilgisayar açıldıktan sonra bu tabloyu okur ve hangi partisyonun kullanıldığını öğrenerek manyetik kafayı o partisyonun ilk sektörüne hareket ettirir. Gittiği bu sektörde, kullanılan DOS ile ilgili boot sektörünü bulup okuyarak. bilgisayarın kullanıma hazır hale gelmesini sağlar. Şekil 3 çalışma biçimini gösterir.
Partisyonların Kullanım Amacı
Farklı partisyonlarda farklı boot sektörlerinin kullanılmasının amacını ve ana boot sektörünün bu olayda nasıl bir rol oynadığını anlamak zor değildir. Çünkü, her işletim sisteminin; directory, FAT vs. kavramlarında kendine õzgü özellikler vardır. Bu farklardan dolayı, her işletim sisteminin dosyalara erişimde aynı yöntemi kullanması mümkün değildir. İşletim sistemleri genelde 512 byte’hk sektörler kullanır. Yine de, sektörlerin büyüklüklerini bazı yardımcı programlarla değiştirmek mümkündür
Çoğu PC kullanıcısı sadece DOS işletim sistemini kullanmaktadır. Ancak, hard disklerini, tek bir sistem kullanmalarına rağmen partisyonlara ayırmak zorunda kalırlar. Çünkü BIOS, hard disklerde ilk olarak ana boot sektörünü arar (yani doğrudan boot sektörüyle irtibata geçemez). DOS’un kullandığı partisyon programının adı FDISK’tir. Bu program tüm hard diski DOS’un kullanımına sunan bir partisyon hazırlar ve boot sektörünü de ana boot sektörünün bulunduğu izin peşinden gelen ilk izin ilk sektörüne yerleştirir.
Şekil 4: Boot Sektörünün Konumu
HIZ VE VERİMLİLİÐİN OPTİMİZASYONU
Bilgisayarla her gün çalışan kişiler, “hız özürlü” insanlar haline geliyor. Nasıl oluyorsa, bir kaç salisede görevini tamamlayan bir araç, sabırsızlık yaratıyor. Hard diski çöktürecek kadar uzun ve karmaşık programların kullanılması, daha da fazla sabır gerektiriyor. Daha önce bilgisayarla çalışmış olan kullanıcılar, mikro bilgisayarlarından kabiliyetlerini aşmalarını bekler. Kullanıcılar, hard diski performansını ne kadar ispata zorlarsa, onun yükü de o kadar artacaktır.
Bir 6MHz IBM AT, standart bir XT’den beş kat daha hızlı çalışır. Uygulamaya göre de, hızlı bir hard diskte %30’dan %50’ye kadar hız artışı kaydedilebilir. Bu durumda, hız özürlülerin, hızlı erişim sürelerinden, iz bufferlama’dan ve benzeri teknik konulardan bahsetmelerine şaşırmamak gerekir.
HIZ GELİŞTİRME
Hızın parayla satın alınabileceği, şüphesiz doğrudur. Ama, aynı şey, iyi düşünülmüş bir sistem optimizasyonu ve ayarlaması ile de elde edilebilir. Dünyanın en hızlı hard diski bile optimizasyonu zamanında yapılmazsa, hızından bir miktar kaybedecektir. Nispeten daha yavaş olan adımlamalı bir motorla donatılmış bir manyetik kafanın, diskin üzerinde rulolu sistem ile çalışan bir kafadan daha hızlı hareket etmesi sağlanabilir.
Her gün biraz daha fazla performansın talep ediliyor olması, artık en iyi donanımı bile yetersiz bırakabiliyor. Bu yüzden, sürücünün performansı optimize edilmeye çalışılmalıdır. Optimizasyon için gerekli olan bazı esaslar, formatlama esnasında yerine getirilebilir. Bazıları ise, periyodik bakımla olur. Bunun dışında, yapılacak işin türüne ve durumuna göre özel bazı teknikler (belki de utility’ler) gerekebilir.
Teknik Kabiliyetler
Bir zamanlar, hard disk teknolojisi teknik fanatiklerin kutsal alanıydı. Teknik bilgileri daha az olanlar da optimizasyon önlemlerini almaya çalışırlardı ama, sonuçta nereye varacaklarını pek kestiremezlerdi. Diske erişim, bir kronometre ile ölçülebilecek zamandan çok daha kısa olduğundan, bir hard diski en üst form düzeyine getirebilmek için olağanüstü programlama kabiliyetine sahip olmak gerekirdi. Günümüzde ise durum farklıdır. Piyasada, pek de pahalı olmayan, hard disk analizi ve optimizasyonu yapan bir sürü program bulunur.
Nispi Kazançlar
Bazı hard disk optimizasyonları, performansı gözle görülür bir şekilde arttırır. Bazılan ise, “sadece” %10’luk bir artış sağladıklarından pek göze çarpmaz. Ama, bu %10’luk artışlar üst üste toplanabilir ve yarım düzine %10’luk artış, hızı iki katına çıkarır. Bazen çok önemsiz gibi görünen bir tedbir, sistemdeki bir darboğazı açıp diğer performans faktörlerini de devreye sokar ve çok büyük gelişmelere sebep olur. Böyle bir darbogazın varlığı, hızlı olarak nitelendirilen bir hard diski frenleyebilir.
Hard disk optimizasyon stratejilerini uygulamaya koyabilmek için, hard disklerin iç yaşamının iyi bilinmesi gerekir. En başta, verilerin disk üzerindeki yük alanlanndan başlayarak, makinanın hafızasına kadar uzanan yolculuklarında hangi yoldan gittiği ve bu yolun üzerinde uygulanabilecek optimizasyon imkanlarının, bir bilgisayar sistemi üzerinde yapabileceği muhtemel etkiler de bilinmesi gereken konulardır.
Hard Disk Performansını Etkileyen Faktörler
Hard disk performansıyla ilgili 15 terim bulunmaktadır.
1. Silindir Yoğunluğu (Cylinder density)
Sektõr sayısı ne kadar yüksek olursa, manyetik kafa bir dosyanın okunmasında veya yazılmasında o kadar az hareket eder.
2. Dosya Birleştirme (File Defragmentation)
Birkaç silindirde kayıtlı olan dosyalar, disk üzerinde her yere dağılmış olan dosyalardan daha hızlı okunur.
3. Ortalama Arama Süresi (Average Seek Time)
Daha düşük bir ortalama arama süresi, manyetik kafanın okuma yazma işlemi için diske olan erişim süresini kısaltır.
4. Taşma (Interleave)
Optimal bir taşma, bir iz üzerindeki tüm sektörlerin okunabilmesi için gereken disk dönme sayısını minimuma indirir.
5. Veri Aktarım Oranı (Data Transfer Rate)
Çok hızlı makinalarda veri aktarım oranı düşürülebilirse, diske erişim daha hızlı olacaktır.
6. CPU hızı (CPU Speed)
Hızlı bir mikroprosesör DOS’u hızlandırır, veri aktarım oranını etkiler ve yazılımın dosyalan daha hızlı işlemesini sağlar.
7. İz Bufferlama (Track Buffering)
CPU, 1:1 bir taşmayla başa çıkamasa bile, bu metotla, tüm iz, tek bir disk dõnüşünde okunur.
8. RAM Disk Desteği (RAM Disk Support)
Bir hard diskin yükü, bazı dosyaların bir RAM diske aktarılmasıyla azaltılabilir.
9. DOS Buffer’larının Belirlenmesi (DOS Buffers Setting)
Doğru sayıda DOS buffer’ı, DOS’un, sık kullanılan dosyalan tekrar tekrar okunmasını önler.
10. Sektör Caching (Sector Caching)
Diske olan erişimlerin sayısı, sektõrleri bir buffer’a alarak azaltılabilir. Bu yöntem, DOS buffer’larından daha etkilidir.
11. Directory Tree Dizaynı (Directory Tree Desígn)
Bir directory tree, bir dosyanın aranması için gereken hard disk işlemlerini azaltacak şekilde düzenlenebilir.
12. Alt Directory Düzeni (Sub-directory Layout)
DOS’un, bir path’in izini sürerken harcadığı zaman, alt directory’lerin birkaç silindire yerleştirilmesiyle minimuma indirilebilir.
13. Dosya Düzeni (File Layout)
Belli dosyaları, hard diskin en dışında bulunan izlerine yerleştirmekle, performansta bir gelişme sağlanabilir.
14. PATH komutu (PATH Command)
PATH komutu, directory aramalarını hızlandırabilecek şekilde kullanılabilir.
15. FASTOPEN Komutu (FASTOPEN Command)
Versiyon 3.3’ten itibaren, DOS’un, son açtığı dosyaların disk üzerindeki konumlarını hatırlaması sağlanabiliyor.
Bu 15 faktörden dördü, hardware ile ilgilidir. Ortalama arama süresi; sürücünün kendisiyle ilgili olan bir şeydir. Ne yeni bir kontrol kartı, ne de gelişmiş bir yazılım bunu değiştirebilir: Silindir yoğunluğu ve veri aktarım oranı, sadece bazı durumlarda yeni bir kontrol kartıyla yükseltilebilir. CPU’nun hızı ise bir hızlandırıcı kartla (Accelerator Board) artırılabilir. Kalan faktörlerin çoğu, software ile ilgilidir. İstisna olarak, kontrol kartına bağlı olan caching veya iz bufferlaması gösterilebilir. Birkaç faktör de hard disk yönetimiyle bağlantılıdır.
Hard Disk Bazında Optimizasyon
Hard disk bazında optimizasyon, mekanik hareketlerle geçirilen zamanın minimizasyonuyla ilgilidir. Yüksek silindir yoğunluğu, bir dosyanın daha az sayıda silindirde yer alması ve böylece manyetik kafanın o dosyayı okurken veya yazarken daha az hareket etmesi demektir. Dosya birleştirme (file defragmentation), dosyaları mümkün olduğu kadar az sayıda silindirde toplar. Hızlı arama süreleri, kontrol ünitesinin. manyetik kafanın başka bir silindire gitmesini beklediği süreyi kısaltır. Sonunda optimum bir taşma süresi, manyetik kafanın gerekli sektörü beklediği zamanı kısaltır.
Silindir Yoğunluğu
Silindir yoğunluğu, bir ize daha fazla sektör veya bir silindire daha fazla iz sığdırmakla yükseltilebilir. Tabi ki. silindir başına düşen iz sayısı, sürücüdeki disk sayısına bağlıdır. Bu değeri yükseltebilmek. ancak daha büyük bir sürücü almakla mümkündür.
Yüksek silindir yoğunluğu ile elde edilebilecek başarı bazen önemsenmez. Pratikte; biri iki diske, diğeri dört diske sahip olan, iki sürücünün de arama süreleri eşit olabilir. Ancak, bu duruma başka bir açıdan bakmak da mümkün: Dört diskli sürücünün arama süresi, iki diskli sürücünün arama süresinin iki katıdır. Çünkü, böyle bir diskin manyetik kafası, okuma sırasında diğerinin kafasının yarısı kadar hareket ediyor. Bu avantaj, bir sürücü daha ekleyip kapasiteyi sonradan büyütmenin aleyhine; büyük kapasiteli bir sürücüyü baştan almanın lehine konuşuyor.
İz başına sektör sayısı, bazı sürücülerde bir RLL kontrol kartıyla artırılabilir Kullanılan kod şemasına bağlı olarak, iz başına sektör yoğunluğu %50 ile %100 arasında yükseltilebilir. %100’lük bir kazanç, kafa hareketlerinin yarıya inmesi demektir. Burada elde edilen sonuç disk sayısını iki katına çıkarmakla elde edilen sonucun aynısıdır.
Silindir yoğunluğunun yükseltilmesiyle elde edilen kazancın, dosyaların parçalanmasına (fragmentation) izin vermekle heba olacağı unutulmamalıdır. Farklı silindirlere serpiştirilmiş bir dosya. silindir yoğunluğu ne olursa olsun, kafa hareketlerinin sayısını muazzam bir şekilde artırır.
Dosya Sıkıştırma
Dosyaların sıkıştırılmasıyla silindir yoğunluğu suni bir şekilde yükseltilebilir. Sıkıştırılmış dosyalar daha az sektöre sığdırılabileceğinden okuma için gereken kafa hareketleri de daha az olur. Bu dosya sıkıştırma yöntemi, sadece bazı durumlarda performansın artmasına katkıda bulunur. Örneğin, bazı sıkıştırma programları hesap tablosu dosyalarındaki sıfırları kaldırıp, yerine, kaç sıfır kaldırıldığına dair bilgi veren bir kod koyuyor. Bu şekilde sıkıştırılmış dosyaların çözülmesi çok az zaman alır. Buna karşın, çok karmaşık sıkıştırma yöntemleri erişim süresinin kısaltılmasını sınırlar.
Dosya Parçalanmalarının Azaltılması
Dosyalar, yeni formatlanmış bir hard diske aktarılırsa, her biri, birbirine bağlı ve ardı sıra gelen cluster’ların üzerine yerleştirilecektir. Aslında cluster’lar sadece 1: 1 bir taşma oranı mevcutsa fiziksel olarak yan yana dururlar. DOS ideal durumda her dosyaya mümkün olduğu kadar az silindir tahsis eder. Böylece, õrneğin 35 KB uzunluğundaki bir dosya çoğu hard diskte sadece bir silindire sığabilir. Ne var ki DOS. dosyaların yerleştirilmesini hiçbir şekilde optimize etmez; onun yerine, ilk boş bulduğu sektörü kullanır ve dolayısıyla, dosya bir sonraki silindire taşabilir. Bu durumda, dosya bir defa okunur veya yazılırken, manyetik kafanın en az bir defa yer değiştirmesi gerekir. Optimum olarak yerleştirilmediği halde, bu dosya “bir arada” olarak kabul edilir.
Devamlılığın Yitirilmesi
Dosyaların “bir arada” bulunması pek uzun süreli olmaz. Dosyaya girilen yeni verilere, sektörlerin arasında boş yer olmadığı için, asıl dosyadan uzakta olan boş bir yer aranır. DOS. yer tahsisatına diskin en dışından yani silindir 0'dan başladığı için, aranan bu boş sektõrler de haliyle biraz daha içerlerde kalan izlerde bulunacaktır. Hard diskten dosya silindikçe, diskin çeşitli yerlerinde boşluklar oluşur. DOS bir dosyaya kaydedilecek verilere ek cluster ararken, önceliği dosyanın en son parçasının bulunduğu silindire vermez, dosyayı diskin en dış kenarına en yakın olan boş cluster’lara yerleştirirdi. Bu sistem, DOS 3.0’dan sonra değişti. DOS artık boş cluster’ları en dıştan en içteki silindire doğru giderek tahsis ediyor. Ancak, en içteki silindire gelindiğinde, tekrar en dıştan itibaren boş cluster’lar aranıyor. Sonuçta karışık durumlar ortaya çıkıyor. Sayısız silmeler ve yapısal değişiklikler, hard diski parçalara bölüyor (fragmentation). Sürekli büyüyen dosyaların diskte nelere yol açabileceğini düşünmek zor değildir. Büyüme sırasında eklenen veriler, aynı silindirde farklı yerlere kaydediliyor. Bu yüzden de, birkaç silindire sığabilecek dosyalar, düzinelerce silindire dağılıyor. Bir silme sonucu, dosyanın çok uzağında bir cluster boşaldığında dosyanın son bölümünün bulunduğu silindirde boş yer olmasına rağmen, dosyaya, uzakta kalan cluster tahsis ediliyor. Demek ki, büyük bir dosya çok kullanılmış bir hard diske kopyalandığında birçok parçaya bölünebilir.
Verimsizlik
Neticede hızlı bir CPU’dan, hızlı bir kontrol ünitesinden, ya da taşma optimizasyonundan elde edilen kazanç havaya gider. Veri okuma hızı düşük olduğundan, bu imkanlardan faydalanılamıyor. Bu performans zayıflığının derecesi, ele alınan dosyanın türüne bağlıdır. Büyük rasgele erişim dosyaları, zaten çoğu zaman manyetik kafanın daha çok hareket etmesini gerektiriyor. Buna karşın; program, text ve hesap tablosu dosyaları normalde düzenli okumaya imkan tanıyan dosyalardır. Dolayısıyla bu tùr dosyaların parçalanması durumunda, okuma yazma süreleri oldukça uzayacaktır.
Parçalanmış Alt Directory’ler
Parçalanmış alt directory’ler, çoğu zaman performans düşüklüğünün sebebi olarak gerektiği kadar ciddiye alınmaz. Alt directory’lerin normal dosyalardan tek farkı, directoıy girişlerinde attribute’larının “directoıy’ olarak geçmesidir. Aranılan dosya üçüncü seviyedeki bir alt directory’de, örn. \MADDE\MOLEKUL\ATOM\KARBON.ATO alt directory’sinde bulunsun. Bu durumda, DOS önce ana directory’de MADDE adlı alt directory dosyasını bulup okuyacak, sonra orada MOLEKUL adlı dosyayı arayacak ve bu böyle devam edecek. Dört sektör içeren bir cluster, 64 tane directory girişi saklayabilir. 64 girişten daha fazlasına sahip olan alt directory’ler, muhtemelen hemen birincinin ardında yer alacak bir ikinci cluster’a ihtiyaç duyarlar. Eğer alt directory’ler parçalanmış (directory’nin diğer cluster’ı başka bir yerde ise) ve üstelik de PATH komutuna dahil edilmişlerse, bir dosyayı aramak manyetik kafayı oldukça fazla yoracaktır.
Dosya Birleştirme
Bu karışıklığı önlemenin bir yolu; dosyaları mümkün olduğu kadar az sayıda ve komşu silindirlere yerleştirmek, manyetik kafanın hareketlerini azaltmaktır. Gerçek optimizasyon ise, erişilemeyecek bir idealdir. Çünkü o zaman, dosyalan bir silindirden diğerine taşmaya izin vermeyecek şekilde gruplandırmak gerekir. Dosyaların birleştirilmesi - çiçek sulamak gibi - günlük hayatın rutinlerinden biridir. Karışıklık, işin bittiği andan itibaren yaklaşmaya başlar. Çünkü DOS, parçalanmış dosyalara karşı herhangi bir önlem almaz.
Görünmeyen Avantajlar
Birleştirilmiş dosyalar görünmeyen bazı avantajlar sağlar. Õrneğin dosyalar peşi sıra gelen sektörlerde bulundukları için, dosya kurtarma programları problemsiz çalışır. Bu şekilde, toplu silmeler yapılmış olsa dahi, kullanıcının sektörleri tek tek arayıp bir araya getirmesine gerek kalmadan, otomatik olarak her şey kurtarılabilir. Diğer bir avantaj ise, dosya birleştirme sayesinde hard diskin ömrünün uzamasıdır. Daha az kafa hareketi, sürücünün eskimesini yavaşlatır. Çoğu durumda, bu belirtilen sebeplerden dolayı bile, bir dosya birleştirme programı satın almaya değer. Birleştirme. iki farklı şekilde yapılır. Ya bunun için bir utllity kullanılmalı, veya bütün hard diskin backup’ı alınıp, onu formatlayıp dosyalar tekrar geriye aktarılmalıdır. İkinci yöntem çok pratik görünmese de, temel bir mantığın sonucudur.
Dosya Birleştirme Aracı Olarak Backup
Yeni formatlanmış bir hard diskte cluster’lar dosyalara peşi sıra tahsis edildiğinden, parçalanma problemi olmaz. Aynı sonuca, tüm hard diskin backup’ı alınıp dosyalar tekrar geriye kopyalanarak da ulaşılabilir.
Aynı sebepten dolayı, bir diskete olan erişim süresi de kısaltılabilir. Bunun için, dosyaların teker teker COPY A\*.* B: komutuyla başka bir diskete alınması yeterlidir. Burada dikkat edilmesi gereken husus, DISKCOPY komutunu kullanarak dosyalan birleştirmenin mümkün olmadığıdır. Çünkü bu komut disketi sektör sektör kopyalar.
Yeniden Formatlama
Burada formatlamanın gerekliliği konusunda şüpheye düşülebilir. Bu şüphenin ürünü olarak da tüm içeriğin silinmesi aynı işi gõrüp görmediği sorusu akıllara gelebilir. İyi bir backup utility’si tüm directory tree yapısını alır ve yanlışlıkla formatlanmış bir hard diske de tekrar o yapının aynısını, dosyalarla birlikte aktarır. Bir hard diskin içindekileri silerken, directory’den directory’ye geçip hepsinin içini teker teker temizlemek gerekir. Ayrıca, alt directory’ler de aslında birer dosya olduğu için, onların da birleştirilmesi gerekir. Bu da, tüm yapıyı yeni baştan oluşturma zorunluluğunu getirir. Şu gerçektir ki, hard diski formatlayıp, gerisini backup utility’sine yaptırmak en kolay yoldur. Burada bahsedilen formatlama, elbette ki yüksek düzeyde formatlamadır
Problemler
Tabi bu teknik, global backup yapan bir teyp ünitesi kullanılıyorsa çalışmayacaktır. Bu durumda, dosyaların teker teker yedeği alınması gerekir. Günümüzde artık global backup’larla dosyalar arasındaki sınır, teyp backup ünitelerinin kullanımıyla ortadan kaldırıldı. Hatta bazı üniteler bir global backup’a bakarak dosya dosya oluşumlar sağlayabiliyor. Eğer kullanıcı böyle bir üniteye sahipse, bu şekilde dosya oluşturma pek tavsiye edilmeyen bir durumdur. Çünkü bu çok uzun sürer. Sorunun esaslı bir şekilde çözülmesi için, önce iki tane global backup alınmalıdır. Bu gerek şarttır. Sadece “bir” backup alınırsa, formatlamadan sonra ortada sadece o backup kalacak. Ve olası bir terslik olduğunda, backup’ın backup’ı alınmaması ileride pişmanlık yaratacak durumlar meydana getirebilecektir. Dosya birleştirme işlemine geçmeden önce mevcut backup programının çalışma tarzı hakkında yeteri kadar bilgi edinilmelidir.
Birleştirme Programları
Masraf yönünden biraz daha fazla olsa da bir birleştirme programı almanın işi kolaylaştıracağı düşünülebilir. Bu doğru bir düşüncedir. Çünkü backup yöntemi dosya birleştirmek için pek de rahat sayılmaz. Bu doğrultuda birleştirme programlarını biraz daha yakından tanımak gerekir. Bunlar dosyaların diskteki dağılımlarını inceleyip, her dosya bir araya gelene kadar cluster’ların içeriklerin bir ileriye bir geriye kopyalarlar. Ne var ki, oluşturdukları büyük geçici dosyalardan dolayı hard diskte boş yere ihtiyaçları olur. Bazı programlar diğerlerinden daha hızlı çalışıyor olmakla birlikte, geçen zaman, daha çok hard diskin kapasitesine ve dosyaların parçalanma derecelerine bağlıdır. 20 MB’lık bir hard diskte, bu süreç 15 dakika ile 1 saat arasında değişir. Hard disk hizmetlerine sahip bazı software paketleri, õrneğin Norton Utilities (Advanced Edition) veya Mace Utilities, bu tip dosya birleştirme programlan da içerirler. Ancak, böyle paketlere dahil olmayanlar da vardır. Örneğin SoftLoglc Solutions firmasının Disk Optimizer adlı programı, bunlardan biridir.
Tehlikeler
Bir programın, değerli dosyaları parçalayıp birleştirmesi fikri, kullanıcıyı belki biraz rahatsız edebilir. Kullanıcı bu konuda haklıdır. Çünkü bu programların yaptığı “tedavi”, dosyaların hayatına da mal olabilir. Elektrik kesintisi gibi bir durum için endişelenmeye gerek yoktur. Çünkü bu programların çoğu, çalışacakları sektörü silmeden önce bir kopyasını diske yazar. Yalnız, bir kesinti durumunda kullanıcıya düşen görev; birleştirme programının oluşturduğu geçici dosyaları bulup silmektir.
Öte yandan birleştirme programları dosyaları karıştırabilecek başka metotlara da sahiptir. Bazıları daha hızlı çalışabilmek için. DOS’u devreden çıkarıp hard disk kartıyla şahsen ilgilenir. Çok riskli olan bu uygulama, özellikle ek olarak hızlandırıcı bir karta (Accelerator Board) sahip olan makinalarda çok kötü sonuçlara yol açabilir. Yazılım şirketleri böyle bir tehli***e karşı yeteri kadar tedbirli davranmamışlardır. Birleştirici bir programı “tam güvenli” olarak tanıtan bir şirket bulmak gerçekten zordur. Çünkü zamanında bunlarda birçok kaza meydana gelmiştir. Bu yüzden, önce hard diskin bir backup’ı alınıp birleştirici program işi bitirildikten sonra da hard diskte gariplikler olup olmadığı incelenmelidir. Programın hard diskte herhangi bir tahribata yol açmadığından tam emin olana kadar da, backup disketleri olduğu gibi saklanmalıdır.
Fonksiyonlar
Günümüzde birleştirici programlarda çeşitli seçenekler bulmak mümkündür. Bazılarında, sadece birleştirilmesi kolay görünen cluster’ların birleştirilmesi ve böylece normalden daha hızlı bir birleştirme olanağı sunuluyor. Başka programlar, dosyaları mümkün olduğu kadar az silindirde yer alacak şekilde yerleştiriyor. Daha başkaları ise, dosyaların diskteki fiziksel sıralamasını directory’deki sıralarına göre değiştirebiliyor. Bir “komut dosyası” aracılığıyla diskin en dışındaki silindirlere yakın olması istenilen dosyaların adlarının verilmesine imkan tanıyan programlar da var. Böylece dosyalar FAT sektörüne ve ana directory’ye daha yakın olacakları için, erişim süreleri kısalır. Diğer bir seçenek de birleştirme işlemi esnasında, bilgisayarda acilen yapılması gereken bir iş çıktığında, işlemi durdurabilmektir. Çoğu birleştirici program, aynı zamanda bozuk sektörlere de dikkat edip, gerekli düzeltmeyi kendi yapmaktadır.
Uygun Birleştirme Zamanı
Parçalanmanın çok ileri bir safhaya ulaştığının anlaşılabilmesi için DOS’un CHKDSK komutu bu konuda bir ipucu verebilir. Komutun arkasına bir dosya ismi yazılır (örnek: CHKDSK \MARMARA\BILGISAYAR..TXT). Bunun üzerine verilecek bilgilerin içinde, dosyanın yer aldığı cluster sayısı da bulunur. Ama, bu komutla tüm hard disk analiz edildiğinden, çok sayıda dosyayı kontrol etmek çok zaman alır. Çoğu birleştirme programı, dosyaların parçalanma derecesini tespit etme imkanı da sağlar. Fakat, özellikle en sık kullanılan dosyalar hakkında ayrıca bilgi alma olanağı yoktur.
Yorum