MS-DOS 6.22 Bellek Yönetimi: 640 KB Temel Bellek Sınırı, HIMEM.SYS ve EMM386.EXE ile Yüksek Bellek Optimizasyonu ve MEMMAKER

Ana sayfa › Forumlar › Genel Teknoloji Soruları › MS-DOS 6.22 Bellek Yönetimi: 640 KB Temel Bellek Sınırı, HIMEM.SYS ve EMM386.EXE ile Yüksek Bellek Optimizasyonu ve MEMMAKER

2 yazı görüntüleniyor - 1 ile 2 arası (toplam 2)
  • Yazar
    Yazılar
  • #74571
    User AvatarSentinel_34
    Katılımcı

    Selam arkadaşlar, uzun süredir takıldığım bir konu var da onu danışmadan geçemeyeceğim. MS-DOS 6.22 kurduğum eski bir 486 makinede 640 KB temel bellekle uğraşıyorum ama işler pek iç açıcı gitmiyor. CONFIG.SYS dosyasına HIMEM.SYS ve EMM386.EXE’yi ekledim, XMS ve EMS belleği açmaya çalışıyorum ama programların çoğu yine “out of memory” hatası veriyor. MEMMAKER ile optimize ettiğimde RAM’in nasıl dağıldığını görebiliyorum ama ADRIVE.DOS, XCOPY ve benzeri driver’ları upper memory bloklarına (UMB) yerleştirdiğimde bazen sistemin açılışta takıldığını görüyorum.

    Sorum şurada toplanıyor aslında: 640 KB sınırı aşmak için OBB’leri doğru doldururken hangi sırayı izlemeliyim? Önce HIMEM.SYS mi EMM386.EXE mi gelmeli, UMB’leri kullanmak için /E parametresiyle fast UModa geçince XMS sürücülerinin karışmaması için nelere dikkat etmeliyim? MEMMAKER’ın önerdiği yapıyla gerçek oyunlarda/derleyicilerde (Turbo C, QuickBench gibi) en iyi free memory değerini nasıl yakalıyorsunuz? Yoksa manuel CONFIG.SYS kurulumu mı her zaman daha stabil oluyor? Deneyim geçen var mı, byte’ın nerede koptuğunu çözemiyorum.

    "İşlemci: Ryzen 7 7800X3D"
    "Ekran Kartı: RX 7800 XT"
    "Bellek: 16GB DDR4 3600MHz"
    "Depolama: 2TB Samsung 990 Pro"
    #76255
    User AvatarKutayX
    Katılımcı

    640 KB sınırı aslında 8086 mimarisinin kalıtı; gerçek modda adresleme yaparken A20 hattının açık olmaması 1 MB’ın üstüne çıkmanı engelliyor ve MS-DOS’un çekirdeği + sürücüleri + buffer’ları için ayrılan o klasik alanı oluşturuyor. Mantıklı bir config.sys deneyimim şuydu: önce DEVICE=HIMEM.SYS ile XMS sürücüsünü yükleyip 1 MB üstü belleği aktive etmek, ardından DEVICE=EMM386.EXE NOEMS ile OOB (over-1MB) bölgesini UMB’lere bölmek. NOEMS parametresi önemli, çünkü EMS emülasyonu RAM israfına yol açar, sadece gerekliyse RAM anahtarını kullanırım. DOS=HIGH,UMB satırı işletim sistemini High Memory Area’ya (640 KB’ın hemen üstündeki ~20 KB alan) alır, DOSX ise 386+ işlemcilerde DOS’yu protect mode’a alarak ekstra ~30-40 KB kurtarır. Bunları yaptıktan sonra LH (load high

    "────────────────────────────────────────"
    "Doğa acele etmez, yine de her şey başarılır."
2 yazı görüntüleniyor - 1 ile 2 arası (toplam 2)
  • Bu konuyu yanıtlamak için giriş yapmış olmalısınız.

Neyi merak ediyorsun?

En az 3 karakter yazın.

Keşfet