İşletim Sistemi - Sanal Bellek

Bir bilgisayar, sisteme fiziksel olarak yüklü miktardan daha fazla belleği adresleyebilir. Bu fazladan bellek aslındavirtual memory ve bilgisayarın RAM'ini taklit etmek için ayarlanmış bir sabit diskin bölümüdür.

Bu şemanın ana görünür avantajı, programların fiziksel bellekten daha büyük olabilmesidir. Sanal bellek iki amaca hizmet eder. Birincisi, disk kullanarak fiziksel bellek kullanımını genişletmemize izin verir. İkincisi, bellek korumasına sahip olmamızı sağlar çünkü her sanal adres fiziksel bir adrese çevrilir.

Aşağıda, tüm programın ana belleğe tam olarak yüklenmesi gerekmediği durumlar verilmiştir.

  • Kullanıcı tarafından yazılan hata işleme rutinleri, yalnızca veri veya hesaplamada bir hata oluştuğunda kullanılır.

  • Bir programın belirli seçenekleri ve özellikleri nadiren kullanılabilir.

  • Aslında tablonun sadece küçük bir miktarı kullanılsa bile, birçok tabloya sabit miktarda adres alanı atanır.

  • Yalnızca kısmen bellekte olan bir programı yürütme yeteneği, birçok faydayı ortadan kaldırır.

  • Her kullanıcı programını belleğe yüklemek veya takas etmek için daha az sayıda G / Ç gerekli olacaktır.

  • Bir program artık mevcut fiziksel bellek miktarıyla kısıtlanmayacaktır.

  • Her kullanıcı programı daha az fiziksel bellek alabilir, aynı anda daha fazla program çalıştırılabilir ve CPU kullanımında ve veriminde buna karşılık gelen bir artış sağlanabilir.

Genel amaçlı kullanım için tasarlanmış modern mikroişlemciler, bir bellek yönetim birimi veya MMU, donanıma yerleştirilmiştir. MMU'nun görevi, sanal adresleri fiziksel adreslere çevirmektir. Aşağıda temel bir örnek verilmiştir -

Sanal bellek genellikle talep sayfalama ile uygulanır. Bir segmentasyon sisteminde de uygulanabilir. Talep segmentasyonu, sanal bellek sağlamak için de kullanılabilir.

Talep Çağrı

Talep sayfalama sistemi, işlemlerin ikincil bellekte bulunduğu ve sayfaların önceden değil, yalnızca talep üzerine yüklendiği takaslı bir sayfalama sistemine oldukça benzer. Bir bağlam anahtarı oluştuğunda, işletim sistemi eski programın sayfalarından herhangi birini diske veya yeni programın sayfalarından herhangi birini ana belleğe kopyalamaz. Bunun yerine, ilk sayfayı yükledikten sonra yeni programı çalıştırmaya başlar ve onu getirir. programın sayfalarına başvurulduğu gibi.

Bir programı çalıştırırken, program kısa bir süre önce değiştirildiği için ana bellekte bulunmayan bir sayfaya başvurursa, işlemci bu geçersiz bellek referansını bir page fault ve sayfayı belleğe geri istemek için denetimi programdan işletim sistemine aktarır.

Avantajlar

Aşağıda, Talep Sayfalandırmanın avantajları verilmiştir -

  • Büyük sanal bellek.
  • Belleğin daha verimli kullanımı.
  • Çoklu programlamanın derecesi konusunda bir sınır yoktur.

Dezavantajları

  • Sayfa kesintilerini ele almak için tablo sayısı ve işlemci ek yükü miktarı, basit sayfalı yönetim tekniklerindekinden daha fazladır.

Sayfa Değiştirme Algoritması

Sayfa değiştirme algoritmaları, bir İşletim Sisteminin hangi bellek sayfalarının değiştirileceğine, bir bellek sayfasının tahsis edilmesi gerektiğinde diske yazılacağına karar verdiği tekniklerdir. Sayfalandırma, bir sayfa hatası meydana geldiğinde ve sayfaların mevcut olmaması veya boş sayfaların sayısının gerekli sayfalardan daha az olması nedeniyle tahsis amaçlı hesaplama için boş bir sayfa kullanılamadığında gerçekleşir.

Değiştirilmek üzere seçilen ve sayfadan çıkarılmış olan sayfaya tekrar referans verildiğinde, diskten okuması gerekir ve bu, G / Ç'nin tamamlanmasını gerektirir. Bu işlem, sayfa değiştirme algoritmasının kalitesini belirler: sayfa girişleri için bekleme süresi ne kadar azsa, algoritma o kadar iyidir.

Bir sayfa değiştirme algoritması, donanım tarafından sağlanan sayfalara erişimle ilgili sınırlı bilgilere bakar ve toplam sayfa kaçırma sayısını en aza indirgemek için hangi sayfaların değiştirilmesi gerektiğini seçmeye çalışır ve bunu algoritmanın birincil depolama ve işlemci süresi maliyetleri ile dengeler. kendisi. Birçok farklı sayfa değiştirme algoritması vardır. Bir algoritmayı belirli bir bellek referansı dizisinde çalıştırarak ve sayfa hatası sayısını hesaplayarak değerlendiririz,

Referans Dizesi

Bellek referansları dizisine referans dizesi denir. Referans dizgileri yapay olarak veya belirli bir sistemi izleyerek ve her bellek referansının adresini kaydederek oluşturulur. İkinci seçenek, iki şeyi not ettiğimiz çok sayıda veri üretir.

  • Belirli bir sayfa boyutu için, adresin tamamını değil, yalnızca sayfa numarasını dikkate almamız gerekir.

  • Bir sayfaya referansımız varsa p, ardından sayfaya yapılan referansların hemen ardından phiçbir zaman sayfa hatasına neden olmaz. Sayfa p ilk referanstan sonra bellekte olacaktır; hemen takip eden referanslarda hata olmayacaktır.

  • Örneğin, şu adres sırasını düşünün - 123,215,600,1234,76,96

  • Sayfa boyutu 100 ise, referans dizesi 1,2,6,12,0,0 olur

İlk Giren İlk Çıkar (FIFO) algoritması

  • Ana bellekteki en eski sayfa, değiştirilmek üzere seçilecek olan sayfadır.

  • Uygulaması kolaydır, bir liste tutun, sayfaları kuyruktan değiştirin ve başa yeni sayfalar ekleyin.

Optimal Sayfa algoritması

  • Optimal bir sayfa değiştirme algoritması, tüm algoritmalar arasında en düşük sayfa hatası oranına sahiptir. Optimal bir sayfa değiştirme algoritması mevcuttur ve OPT veya MIN olarak adlandırılmıştır.

  • En uzun süre kullanılmayacak olan sayfayı değiştirin. Bir sayfanın kullanılacağı zamanı kullanın.

En Son Kullanılan (LRU) algoritması

  • Ana bellekte en uzun süre kullanılmayan sayfa, değiştirilmek üzere seçilecek sayfadır.

  • Uygulaması kolaydır, bir liste tutun, sayfaları geçmişe bakarak değiştirin.

Sayfa Tamponlama algoritması

  • Bir süreci hızlı bir şekilde başlatmak için, bir boş çerçeve havuzu bulundurun.
  • Sayfa arızasında değiştirilecek bir sayfa seçin.
  • Yeni sayfayı boş havuz çerçevesine yazın, sayfa tablosunu işaretleyin ve işlemi yeniden başlatın.
  • Şimdi kirli sayfayı diskten yazın ve çerçeve tutan değiştirilen sayfayı boş havuza yerleştirin.

En az sıklıkla kullanılan (LFU) algoritma

  • En küçük sayıya sahip sayfa, değiştirme için seçilecek olan sayfadır.

  • Bu algoritma, bir sürecin ilk aşamasında bir sayfanın yoğun olarak kullanıldığı, ancak daha sonra asla kullanılmadığı durumdan muzdariptir.

En sık Kullanılan (MFU) algoritması

  • Bu algoritma, en az sayıya sahip sayfanın muhtemelen yeni getirildiği ve henüz kullanılmadığı argümanına dayanmaktadır.