Ana Sayfa

DOS Bellek Yönetimi: Basitliğin Ardındaki Detaylar

1 dk okuma

DOS'un bellek yönetimi, ilk bakışta basit görünse de, programlama dokümantasyonlarında sıklıkla göz ardı edilen ilginç detaylar barındırır. DOS 1.x (1981), esasen 64K veya daha az RAM'e sahip makineler için tasarlandığından, belirgin bir bellek yönetimi desteği sunmuyordu. COM programları yüklenirken neredeyse 64K belleğe erişebiliyor, hatta çoğu program bu kadar belleğe bile ihtiyaç duymuyordu. Ancak, bilgisayar teknolojisinin hızla gelişmesiyle birlikte bu durum değişti.

Mart 1983'te piyasaya sürülen IBM PC/XT'yi desteklemek üzere geliştirilen DOS 2.0, standart olarak 128K RAM ile geldi ve kısa sürede 256K'lık modeller de ortaya çıktı. Bu artan bellek kapasitesini yönetmek için DOS'un yeni mekanizmalara ihtiyacı vardı. Bu bağlamda, DOS 2.0 ile birlikte ALLOC (bellek tahsis etme), DEALLOC (belleği serbest bırakma) ve SETBLOCK (bellek bloğunu yeniden boyutlandırma) olmak üzere üç temel bellek yönetimi fonksiyonu tanıtıldı. Bu fonksiyonlar, yeni eklenen süreç yönetimi (EXEC/EXIT/WAIT) işlevleriyle entegre çalışarak, tahsis edilen belleğin mevcut süreç tarafından sahiplenilmesini ve süreç sonlandığında serbest bırakılmasını sağlıyordu.

DOS tarafından yönetilen bellek, "bellek alanı" (memory arena) olarak adlandırılır ve başlangıçta tek, bitişik bir blok olarak bulunur. Bu alan, tahsis işlemleriyle daha küçük bloklara ayrılabilir. Her bellek bloğu, DOS kaynak kodunda "arena başlığı" olarak geçen, ancak üçüncü taraf literatürde genellikle "bellek kontrol bloğu" (MCB) olarak bilinen bir başlıkla başlar. DOS, belleği tek tek baytlar yerine 16 baytlık "paragraf" birimlerinde yönetir. Bu yaklaşım, 8086 mimarisinin segment yapısından türemiştir ve hem başlangıç adresini hem de bloğun boyutunu 16-bit değerlerle kaydetmeye olanak tanır. Paragraf birimlerinde boyut takibi sayesinde, DOS bellek blokları 64K sınırıyla kısıtlı kalmaz.

İçgörü

DOS'un basit görünen bellek yönetiminin, zamanın kısıtlı donanım imkanlarına rağmen nasıl evrildiğini ve programlama için temel yapı taşlarını nasıl sunduğunu gösteriyor.

Kaynak