100 fiziksel bellek sayfası hatası. Eksik sayfa hatalarını işleme. Windows'ta Bellek Kullanımını İzleme

  • 07.03.2020

Önleyici/önleyici olmayan algoritmalar.

Önleyici algoritma durumunda, işletim sistemi mevcut iş parçacığının yürütülmesini istediği zaman kesebilir ve işlemciyi başka bir iş parçacığına değiştirebilir. Önleyici olmayan algoritmalarda, işlemciye verilen iş parçacığı yalnızca kontrolün işletim sistemine ne zaman aktarılacağına karar verir.

Kuantizasyonlu algoritmalar.

Her iş parçacığına, iş parçacığının işlemcide yürütülebileceği bir zaman dilimi verilir. Kuantumun süresi dolduğunda, işletim sistemi işlemciyi kuyruktaki bir sonraki iş parçacığına geçirir. Kuantum genellikle sistem zamanlayıcı aralıklarının 1 tamsayısına eşittir.

Öncelikleri olan algoritmalar.

Her iş parçacığına bir öncelik atanır; iş parçacığının ayrıcalık derecesini gösteren bir tam sayı. Çalıştırılmaya hazır birden fazla iş parçacığı varsa, işletim sistemi en yüksek önceliğe sahip iş parçacığını seçer.

Windows, niceleme ve önceliklere dayalı, önleyici, karma bir zamanlama algoritması uygular.

  1. DOS uygulaması için çoklu görev türü
  2. Servis garantileri
  3. Ön plan süreçlerini planlama
  4. Disk belleği dosyasının amacı
  5. P1, P2, P3 işlemleri 100, 20, 80 MB bellek ayırır. Sistemde 128 MB RAM bulunmaktadır. Sayfa dosyasında kullanılan belleğin boyutu nedir? Takas dosyasının boyutu nedir?
  1. "Sayfa hatası" nedir?

Kesinti 14 -Sayfa hatası (#PF): Intel386…

Sayfa motoru etkinleştirildiğinde (CR0.PG = 1) ve doğrusal bir adresi fiziksel bir adrese dönüştürürken aşağıdaki durumlardan biri meydana geldiğinde oluşturulur:

  • Adres çevirisinde kullanılan sayfa tablosunun veya sayfa dizininin öğesi, sıfır varlık bitine sahiptir, yani gerekli sayfa tablosu veya sayfa fiziksel bellekte mevcut değil;
  • prosedür yok ayrıcalık düzeyi, seçilen sayfaya erişim için yeterlidir veya geçerli ayrıcalık düzeyi için yazma korumalı bir sayfaya yazmaya çalışır.

Sayfa hatası işleyicisi, bunun nedeni hakkında iki kaynaktan bilgi alır: yığına gönderilen hata kodu ve hataya neden olan doğrusal adresi içeren CR2 kaydının içeriği. Sayfa arıza kodunun özel bir formatı vardır (Şekil 3.7.).

Kesintiye uğrayan bir program, sayfa hatasına neden olan sebepler ortadan kaldırıldıktan sonra (örneğin bir sayfanın fiziksel belleğe yüklenmesi), herhangi bir ek ayar yapılmadan devam ettirilebilir.

Sayfa güvenliği ayrıcalıklarının ihlali nedeniyle bir sayfa hatası meydana gelmişse, ilgili sayfa dizini girişindeki erişim biti (A) ayarlanır. Bu durum için ilgili sayfa tablosu elemanındaki erişim bitinin davranışı Intel işlemcilerde düzenlenmemiştir ve farklı modellerde farklılık gösterebilir.

  1. Yüksek sayfa hatası oranı şunları gösterir:

Program güvensizlikleri

RAM güvenilmezliği

Diğer: açıkla

Sütun "Bellek/saniyede eksik sayfa hataları."

"Sayfanın yetersiz bellek/sn hataları." sütununda. (Sert Arıza/sn), son dakika içinde saniye başına bellek yetersiz sayfa hatalarının ortalama sayısını gösterir. Bir işlem mevcut olandan daha fazla fiziksel bellek kullanmaya çalışırsa, sistem verilerin bir kısmını bellekten diske, sayfa dosyasına yazar. Diske kaydedilen verilere daha sonra erişime, sayfa yetersiz bellek hatası denir.

Bellek yetersiz sayfa hataları ne anlama geliyor?

Artık İşlemler tablosunda hangi bilgilerin toplandığına dair bir fikriniz olduğuna göre, bunu bellek tahsisini izlemek için nasıl kullanabileceğinizi görelim. Uygulamaları çalıştırırken ve dosyalarla çalışırken bellek yöneticisi, her işlemin çalışma kümesi boyutunu izler ve ek bellek kaynaklarına yönelik istekleri kaydeder. Bir sürecin çalışma kümesi arttıkça dağıtıcı bu istekleri çekirdeğin ve diğer süreçlerin ihtiyaçlarıyla eşleştirir. Kullanılabilir adres alanı yetersizse dağıtıcı, verileri bellekten diske depolayarak çalışma kümesi boyutunu azaltır.

Daha sonra bu veriler diskten okunurken sayfa yetersiz bellek hatası oluşuyor. Bu oldukça normaldir, ancak farklı işlemlerde aynı anda hatalar meydana gelirse, sistemin diskten veri okumak için ek süreye ihtiyacı vardır. Çok sık görülen bellek yetersiz sayfa hataları sırasıyla sistem performansını düşürür. Muhtemelen tüm uygulamalarda beklenmedik yavaşlamalar yaşamışsınızdır ve bu yavaşlamalar da aniden durmuştur. Bu yavaşlama neredeyse kesin olarak fiziksel bellek ile takas arasındaki aktif veri yeniden dağıtımından kaynaklanıyordu.

Sonuç şu şekildedir: Belirli bir işlem için sayfa yetersiz bellek hataları çok sık ve düzenli olarak ortaya çıkarsa, Bilgisayarın yeterli fiziksel belleği yok.

Sık sık bellek yetersiz sayfa hatalarına neden olan işlemleri izlemeyi daha kolay hale getirmek için bunları bayraklarla işaretleyebilirsiniz. Bu durumda, seçilen işlemler listenin en üstüne taşınacak ve eksik sayfa hataları grafiğinde turuncu bir eğri ile temsil edilecektir.

Bellek tahsisinin bir dizi başka faktöre bağlı olduğunu ve bellek yetersiz sayfa hatalarını izlemenin sorunları tanımlamanın en iyi veya tek yolu olmadığını akılda tutmakta fayda var. Ancak gözlem için iyi bir başlangıç ​​noktası olabilir.

  1. Windows'ta iş parçacığı önceliği nasıl belirlenir?

Öncelikler

Windows işletim sistemi, her bir iş parçacığına belirli bir sayısal değer (işlemcinin kendisine tahsis edildiği bir öncelik) atandığında önleyici öncelik zamanlamasını uygular. Aynı önceliklere sahip iş parçacıkları, Round Robin algoritmasına (atlıkarınca) göre planlanır. Sistemin önemli bir avantajı, çekirdek modunda çalışan iş parçacıklarını engelleme yeteneğidir - yürütme sistemi kodu tamamen yeniden girilir. Yalnızca bir döndürme kilidini tutan iş parçacıkları öncelikli değildir (bkz. "Konuları Senkronize Etme"). Bu nedenle spinlock'lar büyük bir dikkatle kullanılır ve minimum süreye ayarlanır.

Sistem 32 öncelik seviyesi sağlar. On altı öncelik değeri (16-31) gerçek zamanlı öncelik grubuna karşılık gelir, on beş değer (1-15) normal iş parçacıkları içindir ve sistem sayfası sıfırlama iş parçacığı için 0 değeri ayrılmıştır (bkz. Şekil 6.2). ).

Pirinç. 6.2. Konu Öncelikleri

Kullanıcıyı önceliklerin sayısal değerlerini hatırlama ihtiyacından kurtarmak ve zamanlayıcıyı değiştirebilmek için geliştiriciler sisteme tanıtıldı öncelikli soyutlama katmanı. Örneğin, belirli bir işlemin tüm iş parçacıklarının öncelik sınıfı, SetPriorityClass işlevinin aşağıdaki değerlere sahip olabilen bir dizi sabit parametresi kullanılarak ayarlanabilir:

  • gerçek zamanlı (REALTIME_PRIORITY_CLASS) - 24
  • yüksek (HIGH_PRIORITY_CLASS) - 13
  • normalin üzerinde (ABOVE_NORMAL_PRIORITY_CLASS) 10
  • normal (NORMAL_PRIORITY_CLASS) - 8
  • normalin altında (BELOW_NORMAL_PRIORITY_CLASS) - 6
  • ve boşta (IDLE_PRIORITY_CLASS) 4

Bir iş parçacığının göreceli önceliği, SetThreadPriority işlevinin benzer parametreleriyle ayarlanır:

Altı işlem öncelik sınıfından ve yedi iş parçacığı öncelik sınıfından oluşan bir dizi, 42 olası kombinasyon oluşturur ve temel iş parçacığı önceliğini oluşturmamıza olanak tanır.

Bir işlemin ve birincil iş parçacığının varsayılan temel önceliği, işlem öncelik aralıklarının ortasındaki değerdir ( 24, 13, 10, 8, 6 veya 4). Bir sürecin önceliğini değiştirmek, tüm iş parçacıklarının önceliklerinin değiştirilmesini gerektirirken, göreceli öncelikleri değişmeden kalır.

Windows'un yumuşak gerçek zamanlı desteği iş parçacığı zamanlaması konusunda hiçbir garanti vermediğinden, 16'dan 31'e kadar olan öncelikler gerçek zamanlı öncelikler değildir. Bunlar, sistem iş parçacıklarına ve yönetici haklarına sahip bir kullanıcı tarafından bu tür öncelik verilen iş parçacıklarına ayrılan daha yüksek önceliklerdir. Bununla birlikte, gerçek zamanlı önceliklerin varlığı, çekirdek kodunun öncelikli olması, bellek sayfalarının yerelleştirilmesi (bkz. "Bellek yöneticisinin çalışması") ve bir dizi ek özellik - tüm bunlar yazılımı gerçek zamanlı olarak çalıştırmanıza olanak tanır. Windows işletim sistemi ortamındaki multimedya uygulamaları gibi. Sıfır önceliğe sahip sistem iş parçacığı bellek sayfalarını temizlemekle meşgul. Normal kullanıcı iş parçacıklarının 1'den 15'e kadar öncelikleri olabilir.


İlgili bilgi.


Yeni bir cihaz bağladınız ancak yavaş çalışıyor veya eski cihaz çalışmayı durdurdu veya düzgün çalışmıyor. Bu durumlarda ne yapmalı? Her şey yeniden yüklensin mi? Zahmetlidir ve her zaman gerekli değildir. Sebebin ne olduğunu ve nasıl ortadan kaldırılacağını nasıl öğrenebilirim? Çok basit. Gerçek şu ki, Windows işletim sistemleri ailesinde, ve sadece belli bir şey varAygıt Yöneticisi, aslında çok gerekli ve faydalı bir yönetici, tabi ona böyle diyebilirseniz. İşte burada, sorunun nedeninin ne olduğunu bulmamıza yardım edecek ve benim kopya kağıdım sorunu çözmemize yardımcı olacak. Yani yukarıda bahsedilenAygıt Yöneticisi cihazların çalışmasındaki hataların izleri kod şeklinde kalır. Hata kodunu bilerek sorunun nedenini belirlemek zor değildir. Konuyu bilmeyenler için kodlar anlaşılmaz ve anlamsız sayılardır. Ancak bilgili bir kullanıcıya çok şey anlatabilirler. Bu konuya elimden geldiğince ışık tutmaya çalışacağım.


Cihaz hatalarını görüntülemek için öncelikle Cihaz Yöneticisine girmemiz gerekir. Bu böyle yapılır. Kayıt olmakKontrol Paneli menüdenBaşlangıç ​​( Olabilmek,Benim bilgisayar , doğru anahtar -Özellikler Aygıt Yöneticisi, veya bunu bir komut belirterek yapabilirsiniz.uygulamak , ama neden her şeyi karmaşıklaştırıyoruz). içinden girersekPanel yönetmek , o zaman yol şudur:Sistem - Ekipman - Cihaz Yöneticisi . Menüye girerek seçinaygıt Yöneticisi , ilgilendiğimiz cihazın türü (klavye, yazıcı, modem vb.), üzerine çift tıklayın, bunun sonucunda bu türe dahil olan cihazları göreceğiz. İhtiyacımız olan cihazı seçin ve üzerine çift tıklayın. Hakkında sekmesindeki sütuna bakıngenel, Cihaz durumu. Cihazın çalışmasında bir sorun varsa burada hata kodu olarak görüntülenecektir. Yani rakamları ve rakamları görüyoruz. Ne demek istiyorlar? Aşağıda hatanın kısa bir açıklaması ve olası çözümleri ile birlikte hataların tam bir listesini veriyorum. Hata kodu kırmızıyla, açıklaması maviyle ve çözümü siyahla vurgulanır.

Kod 1Cihazın kurulumunda bir sorun var, ayarlar yanlış veya sürücü eksik. Düğmeye bas Sürücüyü güncelle Sihirbazı başlatmak içinDonanım güncellemesi . Hiç sürücü yoksa yükleyin.

Kod 3Aygıt sürücüsü hasarlıdır veya aygıtın düzgün çalışması için yeterli RAM yoktur.1. Hasarlı sürücüyü kaldırıp yenisini yükleyelim. Bunu yapmak için: Özellikler - Sürücü - Sil'i seçin ve ardından sihirbazın talimatlarını izleyin. Yeniden başlat. Tekrar açalımaygıt Yöneticisi Aksiyon Donanım yapılandırmasını güncelleyin ve ustanın talimatlarını takip edin. 2. Sorun sanal bellek eksikliğinden kaynaklanıyorsa, bellekte yer açmak için çalışan uygulamaları kapatın. Bellek durumunu kontrol etmek için şuraya gitmemiz gerekiyor:Görev Yöneticisi , bunu yapmak için klavye kısayoluna basınCtrl+Üst Karakter+Esc.Sağ tıklayarak sanal bellek ayarlarını görüntüleyebilirizBenim bilgisayarım Özellikler - Gelişmiş - Performans - Ayarlar (Seçenekler) . Takas dosyasını artırmayı deneyebilirsiniz (bunun nasıl yapıldığını önceki blog makalelerimden birinde anlatmıştım), ancak bu radikal bir önlem olmaktan uzaktır. RAM'inizi arttırmanız gerekecek. Bunun nasıl yapılacağı bu yazının kapsamı dışında ayrı bir konudur.

Kod 10Kayıt defteri bölümünde cihaza karşılık gelen bir parametre varBaşarısızReasonString,bu parametrenin değeri hata verilerinde görüntülenir, yani böyle bir parametre yoksa bir hata kodu görüntülenir, yani cihaz başlatılamaz. Sürücüyü yukarıdaki gibi güncelleyin. Veya daha yeni bir tane yükleyin.

Kod 12Bu cihaz için gerekli kaynak temini yoktur. Bunu yapmak için en az bir tane olmak üzere diğer çalışan cihazları devre dışı bırakın, talimatları izlerseniz çakışan cihazı devre dışı bırakacak olan sorun giderme sihirbazını kullanın. (Kısaca hatırlatayım: Özellikler - Genel - Sorun Giderme.)

Kod 14Bu cihazın çalışması için bilgisayarın yeniden başlatılması gerekir.

Kod 16Cihazın çalışması için gerekli olan kaynakların belirlenmesi imkansızdır; cihaz tam olarak yapılandırılmamıştır. Cihaza ek kaynaklar atamanız gerekir. Ancak cihaz aitse bu sorunsuz bir şekilde yapılabilir.Tak ve oyna.

Özellikler - Kaynaklar. Kaynaklar listesinde ? işaretli bir kaynak varsa, seçilen cihaza atamak için onu seçin. Kaynak değiştirilemiyorsa tıklayınAyarları değiştir , bu işlev mevcut değilse işareti kaldırınOtomatik kurulum

Kod 18Aygıt sürücüsünü yeniden yükleyin. Sürücüyü güncellemeye veya kaldırmaya çalışıyoruz ve bunu örnekteki gibi yapıyoruz.kod 3.

Kod 19Kayıt defterinde cihaz ayarlarıyla ilgili yeterli bilgi yok veya ayarlar bozuk. KoşmakSorun Giderme Sihirbazı ve talimatlarını izleyin, işe yaramazsa yukarıda belirtildiği gibi cihazı yeniden yükleyin. (kod 3). Veya bu işe yaramazsa indirinBilinen son iyi yapılandırma. Bu işe yaramazsa, sistem kayıt defterini düzenlemeniz gerektiği gibi bir uzmanın yardımına da ihtiyacınız var. Bilginiz ve tecrübeniz olmadan tek başınıza yapacağınız hiçbir şey yoktur; bunu herhangi bir sistem yöneticisi size teyit edecektir. Bilgili ve yetenekli olan, bunu ben olmadan kendi başına nasıl yapacağını bilir. Ve deneyimsiz bir kişi için denememek daha iyidir. Kayıt defteri, işletim sisteminin kalbidir ve üzerinde yalnızca deneyimli bir uzman veya onun gözetimi altında işlem yapmalıdır. Kimseyi hiçbir şekilde gücendirmek istemem ama eğer sistem kayıt defteri ile çalışmadıysanız ve bilgisayarınıza değer veriyorsanız tavsiyem oraya giden yolu unutmanızdır. Profesyoneller için yazmıyorum, ihtiyaçları yok ama ortalama bir kullanıcı için yazıyorum. Elbette oraya nasıl ve ne yapacağımı yazabilirim ama bu manuel bir anlatım olacak ve en ufak bir hata sonucunda bilgisayarınıza zarar verirseniz suçlu ben olurum. Buna hiç ihtiyacım yok, senin de yok.

Kod 21 Cihaz sistemden kaldırılıyor yani işletim sistemi cihazı kaldırmaya çalışıyor ancak işlem henüz tamamlanmadı.


Birkaç saniye duraklayın ve tuşuna basın


Kod 22 Cihaz devre dışı bırakıldı. Cihaz açık olmalıdır.Eylem - Etkinleştir ve diğer talimatları izleyin.


Kod 24 Cihaz eksik veya yanlış kurulmuş, sürücü arızalı, cihaz çıkarılmak üzere hazırlanmış olabilir. Cihazı çıkarıp tekrar yükleyin.


Kod 28 Sürücü yok. Sürücüyü yükleyin. Bunu yapmak için sürücüyü güncellemeniz, Kod 1 talimatlarındaki adımları takip etmeniz gerekir.


Kod 29Cihaz devre dışı bırakıldı . Cihazın çalışmasına izin vermelisiniz ayarlarBIOSCihazın kullanımına ilişkin talimatları okuyun.


Kod 31Sistem bu aygıtın sürücülerini yükleyemedi . Sürücüleri yukarıda açıklandığı gibi güncelleyin.


Kod 32Bu aygıtın sürücüsü sistem kayıt defterinde devre dışı bırakıldı . Sürücüyü kaldırın ve yeniden yükleyin (yukarıda açıklanmıştır)


Kod 33İşletim sistemi bunun için kaynakları belirleyemiyor cihazlar . Cihazı kurun veya değiştirin.


Kod 34İşletim sistemi ayarları algılayamıyor cihazlar . Ekipmanla birlikte verilen belgeleri inceleyin ve yapılandırmayı Kaynaklar sekmesinde manuel olarak yapılandırın.


Kod 35PC donanım yazılımı, doğru kullanım için gerekli bilgilere sahip değildir. cihazın çalışması . Güncellemeniz gerekiyorBIOS.Bunun nasıl yapılacağına ilişkin talimatlar için tedarikçinizle iletişime geçin veya daha iyisi deneyimli bir teknisyenin hizmetlerinden yararlanın.


Kod 36Cihazın çalışması için bir kesinti gerekiyor.PCIve cihaz kesintiye uğrayacak şekilde yapılandırılmıştırISA,ya da tam tersi . Ayarların değiştirilmesi gerekiyorBIOSdeneyimli bir teknisyene başvurun.


Kod 37İşletim sistemi bu aygıtın sürücüsünü tanımıyor . Sürücüyü yeniden yükleyin (yukarıda açıklanmıştır).


Kod 38İşletim sistemi aygıtın sürücüsünü yükleyemiyor çünkü: sürücünün önceki sürümü bellekte kalır . PC'nizi yeniden başlatmanız gerekiyor. Başlamazsa Sorun Giderme Sihirbazını çalıştırın (Özellikler - Genel - Sorun Giderme) ve sihirbazın talimatlarını izleyin. Daha sonra zorunlu bir yeniden başlatma var.


Kod 39İşletim sistemi aygıt sürücüsünü yükleyemiyor. Sürücü hasar gördü ya da hiç yok . Sürücüyü yukarıda anlatıldığı gibi yeniden yükleyin.


Kod 40Sistem kayıt defterinde bilgi bulunmadığından veya bilgilerde hata bulunduğundan ekipmana erişim sağlanamıyor . Sürücüyü yeniden yükleyin.


Kod 41Cihaz algılanmadı . Sorun Giderme Sihirbazı'nı (yukarıda açıklanmıştır) çalıştırın, bu işe yaramazsa donanım yapılandırmasını güncelleyin (yukarıya bakın) veya sürücüyü güncelleyin. Değilse, sürücünün daha yeni bir sürümünü yükleyin.


Kod 42Sistemin zaten böyle bir sürücüsü var. Yani, muhtemelen bir hatadan dolayı aynı isimde iki farklı cihaz var . PC'nizi yeniden başlatın.


Kod 43Çalışmasındaki sorunlar nedeniyle cihazın durdurulması . Sorun Giderme Sihirbazını çalıştırın ve talimatlarını izleyin.


Kod 44Bir uygulama veya hizmet cihazınızı durdurdu . PC'nizi yeniden başlatın.


Kod 45Cihaz bağlı değil . Cihazınızı bağlayın.


Kod 46Bu hata, işletim sistemi kapatıldığında ortaya çıkar. Hiçbir şey yapmanıza gerek yok, işletim sistemini bir sonraki başlatışınızda her şey işe yarayacaktır.


Kod 47 Cihaz güvenli bir şekilde kaldırılmak üzere hazırlanmıştır ancak henüz çıkarılmamıştır (örneğin bir flash sürücü) . Cihazı çıkarın, ardından tekrar bağlayın ve bilgisayarınızı yeniden başlatın.


Kod 48Cihaz veya daha doğrusu yazılımı engellendi . Sürücüyü güncelleyin veya yeni bir tane yükleyin.


Kod 49Cihaz, kabul edilebilir kayıt defteri parametrelerini aşan büyük bir sistem kayıt defteri kovanına sahip olduğundan başlatılamıyor . Kullanılmayan cihazları kayıt defterinden kaldırın. Bunu yapabilirsiniz: Aygıt Yöneticisi - Görünüm - Gizli aygıtları göster. Burada bilgisayarınıza bağlı olmayan gizli cihazları göreceksiniz. Kaldırmak istediğiniz cihazları seçin, cihaz için Özellikler - Sürücü - Kaldır'a tıklayın, ardından sihirbazın talimatlarını izleyin ve son olarak bilgisayarı yeniden başlatın.


Bir bilgisayardaki virüsleri kendi ellerinizle temizlemeye yönelik bir kılavuz. Virüsleri temizlemeye yönelik gerçekten işe yarayan ve pratikte test edilen tüm yöntemler, resimlerle adım adım talimatlar - bir okul çocuğu için bile basit ve erişilebilir + video eğitimleri + ultraiso programı indiriciler + virüslere karşı mücadelede araçlara faydalı bağlantılar oluşturmak. Arşivi indir

Windows'ta bir işlem başlatıldığında, EXE ve DLL görüntülerini görüntüleyen sayfaların çoğu, başka işlemler tarafından kullanıldıkları için zaten bellekte olabilir. Yazılabilir görüntü sayfaları, değiştirilmeleri gerekene kadar paylaşılabilmeleri için "yazıldığında kopyala" olarak işaretlenir. İşletim sistemi zaten yürütülmüş bir EXE'yi tanırsa, sayfa bağlantı modelini kaydedebilir (Microsoft'un Super-Fetch adını verdiği bir teknolojiyi kullanarak). Bu teknoloji, gerekli sayfaların çoğunu önceden doldurmaya çalışır (süreç henüz sayfa hataları almamış olsa bile). Bu, uygulamanın başlatılmasındaki gecikmeyi azaltır (görüntülerin başlatma kodunun yürütülmesiyle disk çakışmalarından sayfaların okunması). Bu teknoloji disk çıkış performansını artırır çünkü disk sürücüleri okuma işlemlerini daha kolay organize edebilir (gerekli arama süresini azaltmak için). Bu önleyici sayfalama işlemi, sistem önyüklemesi sırasında, ayrıca bir arka plan uygulaması ön plana çıktığında ve sistem hazırda bekletme modundan uyandığında kullanılır.

Önceden getirme disk belleği bellek yöneticisi tarafından desteklenir, ancak ayrı bir sistem bileşeni olarak uygulanır. Sayfalanan sayfalar sürecin sayfa tablosuna eklenmez; bunun yerine, sürece hızla eklenebilecekleri bir bekleme listesine eklenirler (diske erişmeden).

Eşlenmemiş sayfalar biraz farklıdır; bir dosyadan okunarak başlatılmazlar. Bunun yerine, eşlenmemiş bir sayfaya ilk kez erişildiğinde, bellek yöneticisi yeni bir fiziksel sayfa sağlar (güvenlik nedeniyle içeriğinin sıfırlarla doldurulduğundan emin olun). Sonraki sayfa hatalarında eşlenmemiş sayfanın bellekte bulunması veya sayfa dosyasından okunması gerekebilir.

Bellek yöneticisindeki isteğe bağlı sayfalama, sayfa hataları tarafından kontrol edilir. Her hata çekirdeğin kesintiye uğramasına neden olur. Çekirdek daha sonra makineden bağımsız bir tanımlayıcı (ne olduğunu bildiren) oluşturur ve bunu yönetici bellek yöneticisine iletir. Bellek yöneticisi daha sonra erişimin geçerliliğini kontrol eder. Başarısız olan sayfa taahhüt edilen bölge dahilindeyse, VAD listesindeki adresi arar ve sürecin sayfa tablosu girişini bulur (veya oluşturur). Paylaşılan bir sayfa durumunda, bellek yöneticisi, sürecin yeni sayfa tablosu girişini doldurmak için prototip sayfa tablosu girişini (segment nesnesiyle ilişkili) kullanır.

Sayfa tablosu öğesinin formatı işlemci mimarisine bağlı olarak değişir. X86 ve x64 işlemciler için görüntülenen sayfanın öğeleri Şekil 1'de gösterilmektedir. 11.17. Bir öğe geçerli olarak işaretlenirse içeriği donanım tarafından yorumlanır (böylece sanal adres doğru fiziksel sayfaya çevrilebilir). Eşlenmemiş sayfaların da kendi öğeleri vardır, ancak bunlar geçersiz olarak işaretlenir ve donanım, öğenin geri kalanını yok sayar. Yazılım formatı donanım formatından biraz farklıdır ve bellek yöneticisi tarafından belirlenir. Örneğin, işlenmemiş bir sayfa için (kullanımdan önce konumlandırılması ve sıfırlanması gerekir), bu durum sayfa tablosu öğesinde belirtilir.


Sayfa tablosu girişinin iki önemli biti doğrudan donanım tarafından güncellenir. Bunlar erişim biti (A) ve değiştirilmiş bittir (D). Bu bitler, sayfaya erişmek için belirli bir sayfa eşlemesinin kullanımını ve sayfanın bu erişim tarafından değiştirilip değiştirilemeyeceğini izler. Bu aslında sistem performansını artırır çünkü bellek yöneticisi, En Son Kullanılan (LRU) sayfalamayı uygulamak için erişim bitini kullanabilir. LRU'nun ilkesi, en uzun süre kullanılmayan sayfaların yakın gelecekte yeniden kullanılma olasılığının en düşük olmasıdır. Erişim biti, bellek yöneticisinin sayfaya erişildiğini belirlemesini sağlar. "Değiştirilmiş" biti bellek yöneticisine sayfanın değiştirilmiş olabileceğini (veya daha da önemlisi değiştirilmemiş olduğunu) bildirir. Sayfa diskten okunduğundan beri değiştirilmemişse, bellek yöneticisinin içeriğini diske yazmasına gerek yoktur (başka bir şey için kullanmadan önce).

Hem x86 hem de x64 mimarileri 64 bitlik sayfa tablosu girişi kullanır (bkz. Şekil 11.17).

Her sayfa hatası beş kategoriden birine sınıflandırılabilir:

1. Sayfa sabit değil.

2. İzin ihlali içeren bir sayfaya erişme girişimi.

3. Yazıldığında kopyalanan sayfayı değiştirme girişimi.

1. Yığını artırmak gerekir.

2. Sayfa donmuş ancak şu anda görüntülenmiyor.

Birinci ve ikinci durumlar programlama hatalarıdır. Bir program geçerli bir eşleşmeye sahip olmayan bir adresi kullanmaya çalışırsa veya yasa dışı bir işlem gerçekleştirmeye çalışırsa (salt okunur bir sayfaya yazmaya çalışmak gibi), buna erişim ihlali denir ve genellikle işlemin sonlandırılmasına neden olur . Erişim ihlali genellikle, tahsisi kaldırılmış ve süreçten ayrılmış belleğe erişim de dahil olmak üzere geçersiz işaretçi değerlerinin sonucudur.

Üçüncü vakada ikinci vakayla aynı belirtiler vardır (salt okunur bir sayfaya yazmaya çalışmak), ancak işlenmesi farklıdır. Sayfa yazarken kopyala olarak işaretlendiğinden bellek yöneticisi bir erişim ihlali bildirmez. Bunun yerine, geçerli işlem için sayfanın özel bir kopyasını oluşturur ve ardından kontrolü, sayfaya yazmaya çalışan iş parçacığına geri verir. İş parçacığı, artık sayfa hatası olmadan tamamlanacak olan yazma işlemini tekrarlar.

Dördüncü durum, bir iş parçacığının yığınına bir değer göndermesi ve henüz tahsis edilmemiş bir sayfaya ulaşması durumunda ortaya çıkar. Bellek yöneticisi bunu özel bir durum olarak kabul eder. Yığın için ayrılan sanal sayfalarda yer olduğu sürece bellek yöneticisi yeni sayfalar sağlayacak, bunları sıfırlayacak ve bunları süreçle eşleyecektir. İş parçacığı yürütmeye devam ettiğinde tekrar erişmeye çalışacak ve bu sefer başarılı olacak.

Ve son olarak beşinci durum normal sayfa hatasıdır. Ancak bunun birçok alt seçeneği bulunmaktadır. Bir sayfa bir dosyaya eşlenmişse, bellek yöneticisinin, bellekte hiçbir kopyasının olmadığından emin olmak için veri yapılarına (segment nesnesiyle ilişkili prototip sayfa tablosu gibi) bakması gerekir. Bir kopya varsa (örneğin, başka bir işlemde, bekleme listesinde veya değiştirilen sayfalar listesinde), o zaman bunu yalnızca paylaştıracaktır (yazıldığında kopyalanan sayfa olarak işaretlemesi gerekebilir). Değişikliklerin paylaşılmaması durumunda bunu yapın). Henüz bir kopya yoksa, bellek yöneticisi boş bir fiziksel sayfa tahsis edecek ve o anda diskten başka bir sayfa aktarılmadığı sürece dosya sayfasını diskten bu sayfaya kopyalamak için hazırlayacaktır (bu durumda sadece aktarım tamamlandı).

Bellek yöneticisi bir sayfa hatasını, sayfayı bellekte bularak (diskten okumak yerine) halledebiliyorsa, hataya yazılım hatası denir. Diskten bir kopyaya ihtiyacınız varsa, bu ciddi bir hatadır. Yumuşak hatalar çok daha ucuzdur ve uygulama performansı üzerinde çok az etkiye sahiptir (sert hatalarla karşılaştırıldığında). Paylaşılan sayfanın zaten başka bir işlemle eşlenmiş olması veya yalnızca yeni bir sıfırlanmış sayfaya ihtiyaç duyması veya istenen sayfanın işlemin çalışma kümesinden kaldırılması ancak yeniden kullanılmadan önce yeniden talep edilmesi nedeniyle geçici hatalar meydana gelebilir. Sayfalar fiziksel belleğin boyutunu etkili bir şekilde artırmak için sıkıştırıldığından da yumuşak hatalar meydana gelebilir. Çoğu CPU yapılandırması için, diskten bir sayfanın okunmasını gerektiren pahalı G/Ç (performans ve güç açısından) yerine mevcut sistemlerde belleği ve G/Ç'yi sıkıştırmak daha verimlidir.

Fiziksel bir sayfa artık herhangi bir işlemin sayfa tablosuyla eşlenmediğinde üç listeden birine girer: ücretsiz, değiştirilmiş veya ayrılmış. Bir daha asla ihtiyaç duyulmayan sayfalar (sonlandırma işleminin yığın sayfaları gibi) hemen serbest bırakılır. Tekrar sayfa hatası vermesi muhtemel sayfalar ya değiştirilmiş listede ya da bekleme listesinde son bulur (diskten son okunduğundan bu yana o sayfayı görüntüleyen herhangi bir sayfa tablosu girişi için "değiştirilmiş" bitin ayarlanıp ayarlanmadığına bağlı olarak) . Değiştirilen listedeki sayfalar sonunda diske yazılacak ve ardından yedek listeye taşınacaktır.

Bellek yöneticisi sayfaları gerektiği gibi tahsis edebilir (boş veya yedek sayfaların bir listesini kullanarak). Bir sayfayı ayırmadan ve onu diskten kopyalamadan önce bellek yöneticisi, sayfanın zaten bellekte olup olmadığını görmek için her zaman yedek ve değiştirilmiş sayfaların listesini kontrol eder. Windows'taki ileri sayfalama şeması, gelecekteki sabit hataları yazılım hatalarına dönüştürür (gerekli olabilecek sayfaları okuyarak ve bunları bekleme sayfa listesine yerleştirerek). Bellek yöneticisinin kendisi küçük miktarda sayfalama işlemini gerçekleştirir; sıralı sayfa gruplarına (tek tek sayfalar yerine) erişir. Ek sayfalar hemen bekleme sayfa listesine yerleştirilir. Bu israf değildir çünkü bellek yöneticisinin yükü, G/Ç işlemlerini gerçekleştirme maliyetinden çok daha azdır. Bir sayfa kümesinin tamamını okumak, tek bir sayfayı okumaktan biraz daha pahalıdır.

Şekil 2'deki sayfa tablosunun elemanları. 11.17, fiziksel (sanal değil) sayfa numaralarına bakın. Bir sayfa tablosu girişini (ve sayfa dizinini) güncellemek için çekirdeğin sanal adresleri kullanması gerekir. Windows, sayfa dizinindeki öz harita öğesini kullanarak geçerli işlem için sayfa tablolarını ve sayfa dizinlerini çekirdeğin sanal adres alanına eşler (Şekil 11.18). Bir sayfa dizini öğesini bir sayfa dizinine (kendi kendine harita) eşleyerek, sayfa dizini öğelerine (Şekil 11.18, a) ve sayfa tablosu öğelerine (Şekil 11.18, b) referans vermek için kullanılabilecek sanal adresler elde ederiz. Kendi kendine harita, her işlem için (x86 işlemcilerde) 8 MB çekirdek sanal adresini kaplar. Basitlik açısından, şekilde 32 bitlik PTE girişleri (Sayfa-Tablo Girişleri) için bir x86 öz harita öğesi gösterilmektedir. Aslında Windows 64 bit PTE kayıtlarını kullanır, böylece sistem 4 GB'tan fazla fiziksel belleğin avantajından yararlanabilir. 32 bit PTE girişleriyle, kendi kendine harita öğesi sayfa dizininde yalnızca bir PDE (Sayfa Dizini Girişi) girişi kullanır ve bu nedenle 8 MB yerine yalnızca 4 MB adres kaplar.

Son yazımda "" Windows 7 Kaynak Monitörü'nün (Kaynak Monitörü) yeteneklerinden bahsettim, sistem kaynaklarının işlemler ve hizmetler arasındaki dağılımını izlemek için nasıl kullanılacağını anlattım ve ayrıca belirli sorunları çözmek için kullanılabileceğinden bahsettim. sorunları - örneğin bellek tüketimini analiz etmek için. Bu makalenin tartışacağı şey tam olarak budur.

Bellek hakkında biraz

Analize başlamadan önce kısaca hafızanın nasıl kontrol edildiğinden bahsedeceğim. Bu, Windows 7 Kaynak İzleyicisi'nde hangi bilgilerin sunulduğunu anlamanızı kolaylaştıracaktır.

Windows 7 Bellek Yöneticisi, kullanılabilir fiziksel RAM ve sabit sürücüdeki bir sayfa dosyasından oluşan bir sanal bellek sistemi oluşturur. Bu, işletim sisteminin fiziksel ve sanal bellekte sıralı adreslere sahip sabit uzunlukta bellek blokları (sayfalar) tahsis etmesine olanak tanır.

Windows 7 Kaynak Monitörünü Başlatma

Windows 7 Kaynak İzleyicisi'ni başlatmak için Başlat menüsünü açın, arama çubuğuna "Resmon.exe" yazın ve öğesine tıklayın. Açılan pencerede “Bellek” sekmesini seçin (Şek. A).

Şekil A: Windows 7 Kaynak İzleyicisi'ndeki Bellek sekmesi, ayrıntılı bellek ayırma bilgileri sağlar.

Süreçler tablosu

Bellek sekmesinde, çalışan tüm işlemleri listeleyen ve bellek kullanımını çeşitli kategorilere ayıran bir İşlemler tablosu (Şekil B) bulunur.


Şekil B: Her işlemin bellek kullanım bilgileri çeşitli kategorilere ayrılmıştır.

Sütun "Resim"

“Resim” sütunu, işlemin yürütülebilir dosyasının adını gösterir. Uygulamalar tarafından yürütülen işlemlerin tanınması çok kolaydır - örneğin, "notepad.exe" işlemi açıkça Not Defteri'ne aittir. "svchost.exe" adlı işlemler çeşitli işletim sistemi hizmetlerini temsil eder. Hizmet adı, işlem adının yanında parantez içinde görünür.

İşlem Kimliği sütunu

İşlem Kimliği (PID) sütunu, çalışan işlemi tanımlamanıza olanak tanıyan benzersiz bir sayı kombinasyonu olan işlem numarasını gösterir.

"Tamamlandı" sütunu

Taahhüt sütunu, sistemin bu işlem için ayırdığı sanal bellek miktarını kilobayt cinsinden gösterir. Buna hem kullanılan fiziksel bellek hem de disk belleği dosyasında saklanan sayfalar dahildir.

Sütun "Çalışma Seti"

Çalışma Kümesi sütunu, belirli bir zamanda işlem tarafından kullanılan kilobayt cinsinden fiziksel bellek miktarını gösterir. Çalışma seti kamusal ve özel hafızadan oluşmaktadır.

Sütun "Genel"

Paylaşılabilir sütunu, bu işlemin başkalarıyla paylaştığı kilobayt cinsinden fiziksel bellek miktarını gösterir. İlgili işlemler için tek bir bellek segmentinin veya takas sayfasının paylaşılması, bellek alanından tasarruf sağlayabilir. Bu, sayfanın yalnızca bir kopyasını fiziksel olarak saklar ve bu kopya daha sonra ona erişen diğer süreçlerin sanal adres alanıyla eşleştirilir. Örneğin, sistem DLL'leri (Ntdll, Kernel32, Gdi32 ve User32) tarafından başlatılan tüm işlemler, paylaşılan belleği kullanır.

Sütun "Özel"

Özel sütunu, yalnızca bu işlem tarafından kullanılan kilobayt cinsinden fiziksel bellek miktarını gösterir. Belirli bir uygulamanın ne kadar hafızanın çalışması gerektiğini belirlemenizi sağlayan bu değerdir.

Sütun "Bellek/saniyede eksik sayfa hataları."

"Sayfanın yetersiz bellek/sn hataları." sütununda. (Sert Arıza/sn), son dakika içinde saniye başına bellek yetersiz sayfa hatalarının ortalama sayısını gösterir. Bir işlem mevcut olandan daha fazla fiziksel bellek kullanmaya çalışırsa, sistem verilerin bir kısmını bellekten diske, sayfa dosyasına yazar. Diske kaydedilen verilere daha sonra erişime, sayfa yetersiz bellek hatası denir.

Bellek yetersiz sayfa hataları ne anlama geliyor?

Artık İşlemler tablosunda hangi bilgilerin toplandığına dair bir fikriniz olduğuna göre, bunu bellek tahsisini izlemek için nasıl kullanabileceğinizi görelim. Uygulamaları çalıştırırken ve dosyalarla çalışırken bellek yöneticisi, her işlemin çalışma kümesi boyutunu izler ve ek bellek kaynaklarına yönelik istekleri kaydeder. Bir sürecin çalışma kümesi arttıkça dağıtıcı bu istekleri çekirdeğin ve diğer süreçlerin ihtiyaçlarıyla eşleştirir. Kullanılabilir adres alanı yetersizse dağıtıcı, verileri bellekten diske depolayarak çalışma kümesi boyutunu azaltır.

Daha sonra bu veriler diskten okunurken sayfa yetersiz bellek hatası oluşuyor. Bu oldukça normaldir, ancak farklı işlemlerde aynı anda hatalar meydana gelirse, sistemin diskten veri okumak için ek süreye ihtiyacı vardır. Çok sık görülen bellek dışı sayfa hataları sonuç olarak sistem performansını düşürür. Muhtemelen tüm uygulamalarda beklenmedik yavaşlamalar yaşamışsınızdır ve bu yavaşlamalar da aniden durmuştur. Bu yavaşlama neredeyse kesin olarak fiziksel bellek ile takas arasındaki aktif veri yeniden dağıtımından kaynaklanıyordu.

Sonuç şu şekildedir: Belirli bir işlem için bellek yetersiz sayfa hataları çok sık ve düzenli olarak meydana geliyorsa, bilgisayarda yeterli fiziksel bellek yoktur.

Sık sık bellek yetersiz sayfa hatalarına neden olan işlemleri izlemeyi daha kolay hale getirmek için bunları bayraklarla işaretleyebilirsiniz. Bu durumda, seçilen işlemler listenin en üstüne taşınacak ve eksik sayfa hataları grafiğinde turuncu bir eğri ile temsil edilecektir.

Bellek tahsisinin bir dizi başka faktöre bağlı olduğunu ve bellek yetersiz sayfa hatalarını izlemenin sorunları tanımlamanın en iyi veya tek yolu olmadığını akılda tutmakta fayda var. Ancak gözlem için iyi bir başlangıç ​​noktası olabilir.

Tablo "Fiziksel Bellek"

İşlemler tablosu, bireysel işlemler arasındaki bellek tahsisi hakkında ayrıntılı bilgi sağlar ve Fiziksel Bellek tablosu, RAM kullanımının genel bir resmini verir. Anahtar bileşeni, Şekil 2'de gösterilen benzersiz histogramdır. C.


Şekil C: Fiziksel Bellek tablosundaki histogram, Windows 7'deki bellek dağıtımına genel bir bakış sağlar.

Histogramın her bölümü kendi rengiyle gösterilir ve belirli bir bellek sayfası grubunu temsil eder. Sistem kullanıldıkça bellek yöneticisi verileri arka planda bu gruplar arasında taşır ve tüm uygulamaların verimli bir şekilde çalışmasını sağlamak için fiziksel ve sanal bellek arasında hassas bir denge sağlar. Histograma daha yakından bakalım.

“Ayrılmış ekipman” bölümü

Sol tarafta gri renkle gösterilen “Ayrılmış Donanım” bölümü bulunur: bu, işletim sistemiyle etkileşimde bulunmak için kullandığı, bağlı donanımın ihtiyaçlarına ayrılan bellektir. Donanım için ayrılan bellek kilitlidir ve bellek yöneticisi tarafından bu belleğe erişilemez.

Tipik olarak, ekipmana ayrılan bellek miktarı 10 ila 70 MB arasında değişir, ancak bu rakam belirli sistem yapılandırmasına bağlıdır ve bazı durumlarda birkaç yüz megabayta ulaşabilir. Ayrılmış bellek miktarını etkileyen bileşenler şunları içerir:

;
Gelişmiş Programlanabilir G/Ç Kesinti Denetleyicisi (APIC) gibi anakart bileşenleri;
bellek eşlemeli giriş/çıkış gerçekleştiren ses kartları ve diğer cihazlar;
PCI Express (PCIe) veri yolu;
video kartları;
çeşitli yonga setleri;
flash sürücüler.

Bazı kullanıcılar, sistemlerinin donanımları için anormal miktarda bellek ayırdığından şikayetçidir. Böyle bir durumla hiç karşılaşmadım ve bu nedenle önerilen çözümün etkinliğini garanti edemiyorum, ancak çoğu kişi BIOS sürümünü güncellemenin sorunu çözebileceğini belirtiyor.

“Kullanımda” bölümü

Yeşil renkle gösterilen Kullanımda bölümü sistem, sürücüler ve çalışan işlemler tarafından kullanılan bellek miktarını temsil eder. Kullanılan bellek miktarı, "Toplam" değerinden "Değiştirildi", "Bekleme" ve "Serbest" göstergelerinin toplamı çıkarılarak hesaplanır. Buna karşılık, "Toplam" değeri, "Kurulu RAM" göstergesi eksi "Ayrılmış Ekipman" göstergesidir.

"Değiştirildi" Bölümü

"Değiştirildi" bölümü, değiştirilmiş ancak kullanılmayan belleği temsil eden turuncu renkle vurgulanmıştır. Aslında kullanılmamaktadır ancak ihtiyaç duyulması halinde istenildiği zaman tekrar kullanılabilir. Bellek uzun süre kullanılmamışsa veriler sayfa dosyasına aktarılır ve bellek "Bekleme" kategorisine girer.

"Bekleme" bölümü

Mavi renkle gösterilen Beklemede bölümü, çalışma kümelerinden kaldırılmış ancak hâlâ bunlarla ilişkili olan bellek sayfalarını temsil eder. Yani "Bekliyor" kategorisi aslında bir önbellektir. Bu kategorideki hafıza sayfalarına 0'dan 7'ye kadar (maksimum) bir öncelik atanır. Yüksek öncelikli işlemlerle ilişkili sayfalar maksimum önceliğe sahiptir. Örneğin, paylaşılan işlemler yüksek önceliğe sahiptir, dolayısıyla bunlarla ilişkili sayfalara Beklemede kategorisinde en yüksek öncelik verilir.

Bir işlem bekleyen bir sayfadan veri gerektiriyorsa, bellek yöneticisi o sayfayı hemen çalışma kümesine döndürür. Ancak Beklemede kategorisindeki tüm sayfalar diğer işlemlere ait verilerin kaydedilmesi için kullanılabilir. Bir işlem ek bellek gerektirdiğinde ve yeterli boş bellek bulunmadığında, bellek yöneticisi en düşük önceliğe sahip bekleyen sayfayı seçer, başlatır ve istekte bulunan işleme tahsis eder.

"Ücretsiz" Bölümü

Mavi renkle gösterilen Serbest kategorisi, henüz herhangi bir işleme ayrılmamış veya bir işlem sona erdiğinde serbest bırakılan bellek sayfalarını temsil eder. Bu bölüm hem kullanılmayan hem de serbest bırakılan belleği gösterir, ancak aslında kullanılmayan bellek başka bir kategoriye aittir - "Sıfır Sayfalar" olarak adlandırılan bu sayfalar sıfır olarak başlatılmış ve kullanıma hazırdır.

Boş hafıza sorunu hakkında

Artık bellek yöneticisinin nasıl çalıştığına dair temel bir anlayışa sahip olduğunuza göre, Windows 7'deki bellek yönetimi sistemi hakkındaki yaygın yanlış kanıya değinmek için biraz zaman ayıralım. Şekil 1'de görebileceğiniz gibi. C, Boş hafıza bölümü histogramdaki en küçüklerden biridir. Ancak bu temelde Windows 7'nin çok fazla bellek tükettiğini ve bu kadar az boş bellek varsa sistemin düzgün çalışamayacağını varsaymak bir hatadır.

Aslında durum tam tersi. Windows 7'nin bellek yönetimine yaklaşımı bağlamında boş bellek işe yaramaz. Ne kadar çok bellek kullanılırsa o kadar iyidir. Windows 7, belleği en üst düzeye çıkararak ve sayfaları öncelik sistemi kullanarak sürekli olarak bir kategoriden diğerine taşıyarak verimliliği artırır ve verilerin sayfa dosyasına girmesini önleyerek sayfa dışı hataların performansı yavaşlatmasını önler.

Bellek izleme

Windows 7'nin bellek yönetim sistemini çalışırken görmek ister misiniz? Bilgisayarınızı yeniden başlatın ve başlattıktan hemen sonra Windows 7 Kaynak İzleyicisi'ni açın ve Bellek sekmesine gidin ve fiziksel bellek histogramındaki bölümlerin oranına dikkat edin.

Daha sonra uygulamaları başlatmaya başlayın. Koşarken histogramın değişimini izleyin. Mümkün olduğu kadar çok uygulamayı başlattıktan sonra, bunları birer birer kapatmaya başlayın ve fiziksel bellek histogramındaki bölümlerin oranının nasıl değiştiğini izleyin.

Bu olağanüstü deneyi yaparak, Windows 7'nin kendi bilgisayarınızda belleği nasıl yönettiğini anlayacaksınız ve normal günlük çalışma koşulları altında bellek tahsisini izlemek için Windows 7 Kaynak İzleyicisi'ni kullanabileceksiniz.

Ne düşünüyorsun?

Bellek tahsisini izlemek için Windows 7 Kaynak İzleyicisi'ni kullanma fikri hoşunuza gitti mi? Görüşlerinizi yorumlarda paylaşın!

Birçok bilgi işlem sistemi, çok görevli bir işletim sisteminin her göreve bellek ayırdığı ve kullanıcı programlarından koruma sağladığı bir bellek yöneticisinin bir veya başka bir sürümünü (başka bir ad, bir bellek yönetim birimi - MMU) içerir. Örneğin, bir uygulama programı bir adresi hesaplarken hata yaptığında, belki de çok büyük veya çok küçük bir dizin değeri kullandığında tipik bir sorun ortaya çıkar. Sistem korunmuyorsa, bu tür bir hata, işletim sistemi programlarında bulunan kodlarda değişikliklere veya cihaz tablolarında değişikliklere yol açabilir ve hatta cihazın plansız bir şekilde başlatılmasına ve veri dosyasına yetkisiz yazma gibi ölümcül sonuçlara yol açabilir. .

Bellek yöneticisi, işletim sistemini kasıtsız yıkıma karşı korumanın yanı sıra, programın otomatik olarak yeniden konumlandırılmasını da sağlar. Bellek yöneticisi yardımıyla kullanıcı programlarının mantıksal veya yazılım adresleri, fiziksel veya donanım adreslerine dönüştürülür. Bu adresler, mantıksal adreslerin işaret ettiği yerden tamamen farklı bir bellekte bulunabilir. Adres çevirisi, işletim sisteminin ve korumalı G/Ç cihazlarının kullanıcının adres alanından tamamen kaldırılmasına neden olur. Kullanıcıya ayrılan adres alanı dışında herhangi bir bellek okuma veya yazma girişimi, işlemcinin kullanıcı programının çökmesine neden olur.

Bilgi genellikle sabit sayıda bitten oluşan parçalar halinde iletilir; 80386 MP, yığın boyutunu 16 bit'e düşürme talimatı verilmediği sürece 32 bitlik parçalar kullanır. Bu kısımlara kelimelerin isimleri verilmiştir. Bir kelimenin hafıza sistemine yazılması işlemine ne ad verilir? hafızaya kaydetme hafızadan bir kelimeyi alma süreci - hafızadan okuma.

Belleğe erişmenin iki yöntemi vardır: rastgele ve sıralı. Sıralı erişim, kelimelere önceden belirlenmiş bir sırayla erişilen depolama sistemlerinde kullanılır. Rastgele erişim ise bir depolama sistemindeki kelimelere herhangi bir sırayla ve yaklaşık olarak aynı anda erişme yeteneğini içerir.

Bellek ne kadar mükemmel olursa olsun, cihazlar arasında bir sinyal geçtiğinde yayılımında gecikmeler ortaya çıkar. Yayılma gecikmesi, mantıksal bir sinyalin, mantıksal bir zincir oluşturan bir cihaz veya cihaz dizisi boyunca ilerlemesi için gereken süre olarak tanımlanır. Bu gecikme aynı zamanda sinyalin çipler arasındaki tüm bağlantı hatları boyunca geçişini de hesaba katar.

Doğrudan Bellek Erişimi (DAM)

Doğrudan Bellek Erişimi, harici cihazların ve belleğin, program müdahalesi olmadan doğrudan veri alışverişinde bulunmasına olanak tanır. DDP, maksimum G/Ç hızı ve maksimum işlem paralelliği sağlar. Kesintiye dayalı G/Ç ve yazılım kontrollü G/Ç verileri işlemci üzerinden aktarırken, DMA verileri doğrudan G/Ç cihazı ile bellek arasında aktarır.

Veri yolu sayısını en aza indirmek için, DMA için geleneksel bir omurganın kullanılmasına izin veren özel önlemler alınır. Bu önlemler, işlemcinin otoyolu serbest bırakması ve harici cihazın onu yakalayıp veri iletmek için kullanması gerçeğinden oluşur.

DAP sırasında programın yürütülmesi genellikle askıya alınır. DMA istek kontrol hattı uyarıldığında trunk serbest bırakılır. İşlemci mevcut işlemi sonlandırır, adres ve veri hatlarını serbest bırakır ve tanımlanmamış kontrol sinyallerinin kasıtsız kodunun çözülmesini önlemek için kontrol hatlarından birine bir sinyal gönderir.

G/Ç arayüzü, verileri özel bir kayıt kullanarak doğrudan belleğe aktarır. Veri aktarımına ihtiyaç duyulduğunda arayüz, işlemciden bir bellek döngüsü talep eder. Onaylandıktan sonra arayüz, işlemci bir bellek döngüsü boyunca duraklarken verileri doğrudan belleğe aktarır. Bu aktarımı gerçekleştiren mantığa denir. kanal.

Kanal, verinin aktarıldığı veya aktarıldığı bellek hücresinin adresini saklayacak bir kayıt içerir. Çoğu durumda kanal, gerçekleştirilen doğrudan aktarımların sayısını saymak için bir sözcük sayacı da içerir. Ek olarak kanal, kontrol sinyallerinin değişimini, senkronizasyonu ve diğer yardımcı işlemleri sağlayan devreleri içermelidir. İncirde. Şekil 13.4 CPU ile DMA denetleyici arasındaki mantıksal bağlantıları göstermektedir.

RAP bileşenleri. DMA'nın ana bileşenleri, çevresel aygıt tarafından kullanılan bir istek tetikleyicisi, bir adres kaydı, bir sayaç ve bir veri kaydıdır. Bir DMA kanalı üzerinden veri göndermek birkaç aşamayı içerir: 1) tekrarlanan veri yolu yakalama döngüleri sırasında DMA'yı gerçekleştirmek için DMA mantığının başlatılması; 2) PDP'nin program işlemleriyle ilgili olarak eşzamansız olarak etkinleştirilmesi; 3) transferlerin sonunun bildirilmesi (sayaçtan gelen bir sinyalle veya cihazın durumundaki bir değişiklik sonucunda); 4) transferlerin sonunda “temizlik” programının çağrılması; 5) kontrolü ana programa döndüren bir kesme servis programı kullanılarak DDP'nin tamamlanması.

Veri iletmeyi engelle. Yüksek hızlı cihazlara yönelik DMA prosedürü, verilerin blok aktarımını kullanır. Mevcut programın çalıştırılması sırasında işlemci bir veri bloğunun aktarımını başlatır ve bloğu oluşturan kelime sayısını belirler. Bununla birlikte, kelimelerin gerçek aktarımı ayrı bir cihazın (DMA denetleyicisi) kontrolü altında gerçekleştirilir. DMA kanalı üzerinden maksimum blok aktarım hızı yalnızca bellek döngüsünün süresi (okuma veya yazma) ve DMA denetleyicisinin çalışma hızıyla sınırlıdır.

Bellek döngüsü işgaline sahip DDP. Program, başlangıç ​​adresini adres sayacına ve kelime sayısını da kelime sayacına yerleştirerek blok aktarımını başlatır. ve çalıştırma komutunu veriyoruz. Bu tür DDP'ye genellikle DDP adı verilir. hafıza döngüsünü işgal eden,çünkü program yürütmeyi her seferinde yaklaşık bir makine döngüsü boyunca duraklatır.

Bellek döngüsü tarafından kullanılan DMA kullanıldığında, veri aktarımı CPU üzerinde çalışan diğer işlemlere paralel olarak gerçekleşir. Buradaki eylem sırası, DMA denetleyicisinin işlemciden bellek döngülerini alması ve dolayısıyla çalışmasını yavaşlatması dışında blok aktarımıyla aynıdır (DMA kanalı üzerinden veri aktarımını da bloke edin). almak DMA ayrı bir veri yolunda kullanılmadığı sürece bellek döngüleri).