Bilgisayar biliminde, çöp Aynı sayfalar, onları bellekte tutacak ana belleğin bulunmaması nedeniyle tekrar tekrar yüklendiğinde sanal bellek (veya sayfalama) sisteminin düşük performansıdır. Konfigürasyona ve algoritmaya bağlı olarak, bir sistemin gerçek verimi birkaç kat azalabilir.
Bilgisayar biliminde, dayak atmak Bir bilgisayarın sanal bellek kaynakları aşırı kullanıldığında meydana gelir, bu da sürekli bir sayfalama durumuna ve sayfa hatalarına yol açarak uygulama düzeyindeki işlemlerin çoğunu engeller. Bilgisayarın performansının düşmesine veya çökmesine neden olur. Bu durum, kullanıcı çalışan bazı uygulamaları kapatana veya etkin işlemler ek sanal bellek kaynaklarını serbest bırakıncaya kadar süresiz olarak devam edebilir.
Trashing hakkında daha net bilgi edinmek için öncelikle sayfa hatası ve takas hakkında bilgi sahibi olmamız gerekir.
Dövülüyor sayfa hatası ve değiştirmenin çok sık ve daha yüksek oranda gerçekleşmesi ve işletim sisteminin bu sayfaları değiştirmek için daha fazla zaman harcaması gerektiği durumdur. İşletim sistemindeki bu duruma 'thrashing' adı verilir. Trashing nedeniyle CPU kullanımı azalacak veya ihmal edilebilir hale gelecektir.
İlgili temel kavram, eğer bir işleme çok az çerçeve tahsis edilirse, o zaman çok fazla ve çok sık sayfa hatası olacağıdır. Sonuç olarak, CPU tarafından hiçbir değerli iş yapılmayacak ve CPU kullanımı büyük ölçüde düşecektir.
Uzun vadeli zamanlayıcı daha sonra belleğe daha fazla işlem yükleyerek CPU kullanımını iyileştirmeye çalışacak ve böylece çoklu programlamanın derecesini artıracaktır. Ne yazık ki bu, CPU kullanımında daha fazla azalmaya neden olacak ve daha yüksek sayfa hatalarından oluşan zincirleme bir reaksiyonu tetikleyerek ardından çoklu programlama derecesinde bir artışı tetikleyecektir.
Thrashing sırasındaki algoritmalar
Çöp atma başladığında, işletim sistemi Global sayfa değiştirme Algoritmasını veya Yerel sayfa değiştirme algoritmasını uygulamaya çalışır.
1. Genel Sayfa Değiştirme
Genel sayfa değiştirme herhangi bir sayfayı getirebildiğinden, her çöp atma tespit edildiğinde daha fazla sayfa getirmeye çalışır. Ancak gerçekte olacak olan şu ki, hiçbir süreç yeterli sayıda kare alamayacak ve bunun sonucunda da darbeler giderek artacak. Bu nedenle, global sayfa değiştirme algoritması, thrashing gerçekleştiğinde uygun değildir.
2. Yerel Sayfanın Değiştirilmesi
Global sayfa değiştirme algoritmasından farklı olarak, yerel sayfa değiştirmede yalnızca o işleme ait olan sayfalar seçilecektir. Yani darbeyi azaltma şansı var. Ancak yerel sayfa değiştirmeyi kullanırsak birçok dezavantajın olduğu kanıtlanmıştır. Bu nedenle, yerel sayfa değişimi, bu zorlu senaryoda global sayfa değişimine yalnızca bir alternatiftir.
Travmanın Nedenleri
Programlar veya iş yükleri veri kaybına neden olabilir ve aşağıdakiler gibi ciddi performans sorunlarına yol açabilir:
- CPU kullanımı çok düşükse yeni bir sistem sunarak çoklu programlamanın derecesini arttırıyoruz. Global bir sayfa değiştirme algoritması kullanılır. CPU zamanlayıcı, azalan CPU kullanımını görür ve çoklu programlamanın derecesini artırır.
- CPU kullanımı çoklu programlama derecesine göre çizilir.
- Çoklu programlama derecesi arttıkça CPU kullanımı da artar.
- Çoklu programlamanın derecesi daha da artırılırsa, harmanlama başlar ve CPU kullanımı keskin bir şekilde düşer.
- Dolayısıyla bu noktada CPU kullanımını artırmak ve çöpe atmayı durdurmak için çoklu programlamanın derecesini azaltmalıyız.
Travma Nasıl Ortadan Kaldırılır?
Thrashing'in sabit disk sağlığı ve sistem performansı üzerinde bazı olumsuz etkileri vardır. Bu nedenle bundan kaçınmak için bazı önlemlerin alınması gerekir. Çarpma sorununu çözmek için aşağıdaki yöntemler şunlardır:
Travmayı Önleme Teknikleri
Yerel Sayfa değişimi, Global Sayfa değişiminden daha iyidir ancak yerel sayfa değişiminin birçok dezavantajı vardır ve bu nedenle bazen yararlı olmaz. Bu nedenle aşağıda, dövme işlemini gerçekleştirmek için kullanılan diğer bazı teknikler verilmiştir:
1. Yerellik Modeli
Yerellik, aktif olarak birlikte kullanılan bir dizi sayfadır. Yerellik modeli, bir sürecin yürütülürken bir bölgeden diğerine hareket ettiğini belirtir. Bu nedenle, bir program genellikle birbiriyle örtüşebilen birkaç farklı yerden oluşur.
Örneğin, bir işlev çağrıldığında, işlev çağrısı talimatlarına, yerel ve genel değişkenlere vb. bellek referanslarının yapıldığı yeni bir konum tanımlar. Benzer şekilde, fonksiyondan çıkıldığında süreç bu konumdan ayrılır.
2. Çalışma Seti Modeli
Bu model, yukarıda belirtilen Yerellik Modeli kavramına dayanmaktadır.
Temel prensip, eğer bir sürece mevcut yerelliğine uyum sağlayacak kadar yeterli çerçeve ayırırsak, yalnızca yeni bir konuma taşındığında hata vereceğini belirtir. Ancak tahsis edilen çerçeveler mevcut konumun boyutundan küçükse, sürecin çökmesi kaçınılmazdır.
Bu modele göre, A parametresine dayalı olarak çalışma kümesi, en son 'A' sayfa referanslarındaki sayfalar kümesi olarak tanımlanır. Dolayısıyla aktif olarak kullanılan tüm sayfalar her zaman çalışma setinin bir parçası haline gelecektir.
java bir diziye ekleme
Çalışma kümesinin doğruluğu A parametresinin değerine bağlıdır. A çok büyükse çalışma kümeleri çakışabilir. Öte yandan, A'nın daha küçük değerleri için yerellik tamamen kapsanmayabilir.
D, çerçeveler ve WSS için toplam talep iseBeni süreci için çalışma kümesi boyutudur,
D = ⅀ WSSBen
Şimdi, 'm' bellekteki mevcut çerçeve sayısı ise iki olasılık vardır:
- D>m, yani toplam talep çerçeve sayısını aşıyorsa, bazı işlemler yeterli çerçeve alamayacağı için çarpma meydana gelecektir.
- D<=m, then there would be no thrashing.< li> =m,>
Yeterli ekstra çerçeve varsa, belleğe birkaç işlem daha yüklenebilir. Öte yandan, çalışma kümesi boyutlarının toplamı çerçevelerin kullanılabilirliğini aşarsa, bazı işlemlerin askıya alınması (belleğin değiştirilmesi) gerekir.
Bu teknik, mümkün olan en yüksek düzeyde çoklu programlamayı sağlamanın yanı sıra, harmanlamayı da önler. Böylece CPU kullanımını optimize eder.
3. Sayfa Arıza Frekansı
Çöpe atmanın üstesinden gelmek için daha doğrudan bir yaklaşım, Sayfa Arızası Frekansı kavramını kullanan yaklaşımdır.
Trashing ile ilgili sorun, yüksek sayfa hata oranıdır ve dolayısıyla buradaki kavram, sayfa hata oranının kontrol edilmesidir.
Sayfa hata oranının çok yüksek olması, işleme çok az çerçevenin tahsis edildiğini gösterir. Aksine, sayfa hata oranının düşük olması, işlemin çok fazla çerçeveye sahip olduğunu gösterir.
Diyagramda görüldüğü gibi istenilen sayfa hata oranına göre üst ve alt limitler belirlenebilir.
Sayfa hata oranının alt sınırın altına düşmesi durumunda çerçeveler işlemden çıkarılabilir. Benzer şekilde sayfa hata oranının üst sınırı aşması durumunda işleme daha fazla çerçeve tahsis edilebilir.
Yani sistemin grafiksel durumu verilen diyagramda oluşturulan dikdörtgen bölge ile sınırlı tutulmalıdır.
Boş çerçevelerin olmadığı ve sayfa hata oranının yüksek olduğu durumlarda bazı işlemler askıya alınabilir ve bunlara tahsis edilerek diğer işlemlere yeniden tahsis edilebilir. Askıya alınan işlemler daha sonra yeniden başlatılabilir.