SORU
9 EYLÜL 2009, ÇARŞAMBA


Anlayış Linux /proc/id/haritalar

Gömülü linux uygulamanın bellek kullanımını anlamaya çalışıyorum. /Proc//maps programı/dosya bilgilerini görmek için iyi bir kaynak gibi görünüyor pıd. Ne yazık ki tüm sütunlar ve girişleri anlamıyorum.

İyi kaynak/proc belgelerini//maps programı/dosya var mı?

Anonim inode 0 girişleri ne anlama geliyor? Bu büyük bellek parçaların gibi görünüyor.

CEVAP
9 EYLÜL 2009, ÇARŞAMBA


/proc/$PID/maps her satırda bir işlem veya iş parçacığı bitişik sanal bellek bölgesi açıklar. Her satır, aşağıdaki alanlar vardır:

address           perms offset  dev   inode   pathname
08048000-08056000 r-xp 00000000 03:0c 64593   /usr/sbin/gpm
  • Adres- Bu başlangıç olur ve bu süreçte bölgenin bitiş adresi Adres
  • izinleri- Bu bölgede sayfaları erişilebilir açıklamaktadır. Dört farklı izinleri vardır: okuma, yazma, çalıştırma ve paylaştı. Eğer okuma/yürütme devre dışı/yazma, bir '-' yerine görünür ''/''/''. x w r Eğer bir bölge paylaşılan değil, özel olduğunu, bu yüzden bir '' bir yerine görünür''. s Eğer işlem izin verilmeyen bir şekilde belleğe erişmeye çalışırsa, bölümleme hatası oluşturulur. İzinleri değişti mprotect sistem çağrısı kullanılarak yapılabilir.
  • ofsetEğer bölgede bir dosya eşlenen olsaydı - (mmap) kullanarak, bu haritalama başladığı dosyasında dengeleniyor. Eğer bellek bir dosyadan eşleştirilmiş değilse, sadece 0.
  • cihazEğer bölgede bir dosya eşlenen olsaydı, bu dosyayı yaşadığı büyük ve küçük aygıt numarası (onaltılık).
  • inodeEğer bölgede bir dosya eşlenen olsaydı, bu dosya numarası.
  • yolEğer bölgede bir dosya eşlenen olsaydı, bu dosyanın adıdır. Bu alan anonim eşlenen bölgeler için boştur. Ayrıca [heap], [stack] [vdso] gibi isimler ile özel bölgeler vardır. [vdso] sanal devingen paylaşımlı nesne anlamına gelir. Sistem çağrıları tarafından çekirdek moduna geçmek için kullanılır. Here's a good article about it.

Anonim bölgelerde bir çok fark edebilirsiniz. Bunlar genellikle mmap tarafından oluşturulan, ancak herhangi bir dosyaya bağlı değil. Paylaşılan bellek gibi çeşitli bir çok şey için kullanılan ya da öbek üzerinde ayrılmış arabellek değil. Örneğin, pthread Kütüphanesi için yeni bir iş parçacığı yığınları gibi anonim eşlenen bölgeleri kullanır bence.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Joe DiFeo

    Joe DiFeo

    7 AĞUSTOS 2012
  • LevelUpTuts

    LevelUpTuts

    20 Ocak 2012
  • Tech4Geeks

    Tech4Geeks

    8 Ocak 2012