Mantıksal ve sanal bellek arasındaki fark ve ilişkilerin ne olduğunu merak ediyordum? Amaçları nasıl farklı?
İlişkiler ve farklılıklar mantıksal ve sanal adresler için aynı mıdır?
Mantıksal ve sanal bellek arasındaki fark ve ilişkilerin ne olduğunu merak ediyordum? Amaçları nasıl farklı?
İlişkiler ve farklılıklar mantıksal ve sanal adresler için aynı mıdır?
Yanıtlar:
Önce sanal ve mantıksal adresleme arasındaki farkı gözden geçirelim. Buradaki ayrımın “mantıksal adres” in, programın gördüğü adresin RAM’de depolanan verinin fiziksel adresinden farklı olduğu anlamına geldiğine inanıyorum.
Sanal belleğiniz varsa, saklanan veriler diske aktarılabileceği için hiçbir fiziksel adres olmayabilir. Bununla birlikte, mantıksal adreslerin fiziksel adreslerden farklı olduğu sanal belleğe sahip olmayan bir sisteme sahip olmak mümkündür, ancak her mantıksal adres fiziksel bir adresle eşleştirilir. Bu, birbirlerine basmadan çoklu programları çalıştırmayı kolaylaştıracak, ancak programların sistemde mevcut fiziksel bellekten daha fazla bellek kullanmasına izin vermeyecektir.
Dolayısıyla, bilgisayarda ayrı bir "mantıksal bellek" yoktur, bununla birlikte, mantıksal adresleri olan ancak sanal bellek sistemi olmayan bir bilgisayarın mantıksal bir bellek sistemine sahip olduğunu söyleyebilirim. Mantıksal hafızanın bazı dolaylı yöntemlerle ele alınan hafıza olduğunu söyleyebilirim. Aklınızda bulundurduğunuz belirli bir bilgisayar sistemi var mı?
-
Yorumlarınızı dikkate alarak:
Aynı fiziksel belleğin mantıksal adresleri aynı veya farklı olabilir. Genellikle iki işlem aynı belleğe erişemez, çünkü o zaman biri diğerini bozabilir. Ancak, bir tür paylaşılan hafıza kullanacaklarsa, genellikle paylaşılan hafızayı farklı adreslere eşlerler. Sanal adresler aşağı yukarı bir mantıksal adres türüdür, bu nedenle VM'yi destekleyen bir işletim sisteminiz varsa ve iki harita paylaşılan hafızayı işlerse, bu hafızanın sanal olmadığı gibi aynı adreslerde olduğu gibi genellikle farklı adreslerde olduğunu görürler. hafıza.
Mantıksal vs sanal amacı anladığınıza gelince, sanal bellek, programlarda kullanabileceğiniz belleği genişletmek için HD'yi kullanmak içindir. Mantıksal adresleme, işlem ayrılmasından daha fazlası için kullanılabilir, ancak bu büyük bir kullanım olacaktır.
"Mantıksal" bellek adresleri bir işlem tarafından koduna ve verilerine referans vermek için kullanılır. Mantıksal bir adresden fiziksel bir adrese çeviri, bellek modeline bağlıdır.
Hafıza doğrudan eşlendiğinde (yani gerçek mod), mantıksal hafıza adresi fiziksel hafıza adresi ile aynıdır.
Fiziksel bellek, işlemcinin adres alanından (16 bit işlemcideki gibi) daha büyükse, kullanılabilir fiziksel belleğin miktarını genişletmek için genellikle bellek bankası donanımı kullanılır. Intel 8086/8088 işlemciler , sabit bir banka planı yerine esnek segment kayıtları kullandı. (16-bit) bir mantıksal adresin (20-bit) bir fiziksel adrese çevrilmesi, banka haritası tablolarını kullanır. X86 için mantıksal adres muhtemelen bir bölüm kaydının belirtimini içerecektir.
Fiziksel adres aralığı tipik fiziksel bellekten daha büyükse (on yıl önce 32 bit işlemciler gibi), tam adres aralığının kullanılmasını sağlamak için sanal bellek donanımı kullanılır. Mantıksal adresler talep üzerine fiziksel hafıza ile desteklenir. Tam sanal / mantıksal adres alanını barındırmak ve / veya her bir işleme kendi adres alanını sağlamak için, sanal belleğin değiştirilmiş kopyalarını saklamak için bir destek deposuna ihtiyaç vardır. Değiştirilen hafıza bölümlere veya sayfalara veya bölümlere ayrılmış sayfalara göre düzenlenebilir.
BTW Unix çekirdeği hack ettiğim yıllarda nadiren "mantıksal (bellek) adres" ifadesini duydum ya da kullandım. Fiziksel bellek adresine atıfta bulunmadıysanız, sanal adresdi. Yani, "mantıksal adres" == "sanal adres" (MMU’da sanal bellek etkinleştirildiğinde).