Diskteki her işlem için gerçekte ne kadar mantıksal bellek ayrılır?


0

İşlemcinin 32 bit olduğunu varsayalım. Böylece bu işlemci üzerinde çalışan her işlem 2 ^ 32 bit mantıksal bellek alır.

  1. Sistem n işlem yapıyorsa, diskte n * 2 ^ 32 bit ayrılmış mı? nerede tahsis edilir? takas alanında mı?
  2. Sayfa boyutu 4KB ise, toplam sayfa sayısı 2 ^ 32/2 ^ 12 = 2 ^ 20'dir. disklerin içinde yer alan sayfaların toplamı ve RAM bu işlem için 2 ^ 20 mi? eğer değilse, bu 2 ^ 20'den kaç tanesi tahsis edildi? 3. #include <stdio.h> int main(){ printf("Hello World"); }

    Bu basit işlem aynı zamanda RAM + Disk'te 2 ^ 20 sayfa kaplar mı?

  3. #include <stdio.h> int main(){ int x; scanf("%d",&x); while(x!=0){ malloc(sizeof(int)); x--; } }

    Yükleme sırasında başlangıçta disk + RAM'e kaç sayfa atanır? Her malloc çağrısı çağrıldıkça nasıl büyürse, bu da 2 ^ 20 midir?


Sanal hafıza. Adres alanı boyutunu ve çalışan bir işlemin gerçekte ne kullandığını karıştırıyorsunuz.
Daniel B

Bu başka bir ev ödevi sorusu mu?
DavidPostill

Hoşgeldiniz Süper kullanıcı ! Lütfen bir seferde 1 soru sormaya çalışın (aksi halde sorunuz çok geniş olarak kapanacaktır). Lütfen oku Nasıl iyi bir soru sorabilirim? ve Konu üzerine .
DavidPostill

Yanıtlar:


1

OS Yürütülebilir dosyalarda tanımlanan bölümleri eşlemek için gerektiği kadar sanal sayfa ayırır.

Başka bir işlem zaten aynı çalıştırılabilir dosyaları çalıştırıyorsa, işletim sistemi salt okunur sayfaları en azından yeniden kullanır ve işletim sistemi "yazarken kopyala" özelliğini destekliyorsa, zaten eşlenmiş değiştirilmemiş okuma yazma sayfalarını yeni bir işlem için yeniden kullanır. Yığınlar, yığınlar, vb. İçin, sanal adres alanını ayırır, ancak talep üzerine, yani yığın zaten eşlenmiş alanın dışına çıktığında sayfalar istenirse, ardından işletim sistemi daha fazla sayfa ayırır

Bir takas dosyasındaki boşluk, sistem bir işlemin bazı değiştirilmiş sayfalarını RAM'den çıkarmaya karar verdiğinde tahsis edilir. Bu en uygun strateji olsa da, asıl davranış OS'den OS'ye değişebilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.