ScholarGate
Asistan

Bellek Yönetimi (İşletim Sistemleri)

İşletim sistemi bellek yönetimi, fiziksel belleği süreçlere tahsis eder, sayfalama ve bölümlemeyi uygular, hangi sayfaların bellekte kalacağını seçer ve belleği geri kazanır; bu süreçte programların talepleri ile sınırlı fiziksel RAM arasında arabuluculuk yapar.

PaperMind ile konu bulYakındaMakale ve konu bul
Tools & resources
Slaytları indir
Learn & explore
VideoYakında

Tanım

İşletim sistemi bellek yönetimi, işletim sisteminin fiziksel belleği süreçlere atadığı, adres alanlarını sayfalama veya bölümleme yoluyla düzenlediği ve hangi verilerin bellekte kalacağına veya yedek depolamada tutulacağına karar verdiği politika ve mekanizmalar bütünüdür.

Kapsam

Bu kapsam, işletim sisteminin ana belleği yönetmedeki rolünü ele almaktadır: adres alanı düzeni, bitişik tahsis ve parçalanma, sayfalama ve bölümleme, sayfa değiştirme algoritmaları (FIFO, LRU, clock, optimal), çerçeve tahsisi ve tıkanmayı (thrashing) önleyen politikalar. Sanal belleğin donanım odaklı görünümünü tamamlayarak işletim sistemi politikalarına odaklanmaktadır. Donanım çeviri yapılarını (sanal bellek ve sayfalama) ve disk üzerindeki dosya depolamasını (dosya sistemleri) içermemektedir.

Temel sorular

  • İşletim sistemi, fiziksel belleği süreçlere nasıl tahsis eder ve parçalanmayı nasıl sınırlar?
  • Sayfalama ve bölümleme bir adres alanını nasıl düzenler?
  • Hangi sayfa değiştirme algoritması, yakın zamanda kullanılma olasılığı en düşük olan sayfayı çıkarmayı en iyi şekilde yaklaşık olarak tahmin eder?
  • Çalışma kümelerini bellekte tutmak ve tıkanmayı (thrashing) önlemek için çerçeveler süreçler arasında nasıl tahsis edilir?

Anahtar kavramlar

  • adres alanı düzeni
  • bitişik tahsis ve parçalanma
  • sayfalama ve bölümleme
  • sayfa değiştirme algoritmaları (FIFO, LRU, clock, optimal)
  • çerçeve tahsisi
  • isteğe bağlı sayfalama
  • tıkanma (thrashing) ve çalışma kümesi
  • bellek geri kazanımı

Temel kuramlar

Sayfa değiştirme ve yerellik
Gelecekte en uzak zamanda kullanılacak sayfayı çıkarma ideal politikası gerçekleştirilemez olduğundan, pratik algoritmalar (LRU, clock) bunu yakın zamandaki kullanım bilgilerini kullanarak yaklaşık olarak tahmin eder; etkinlikleri, çalışma kümesi modeli tarafından yakalanan yerelliğe bağlıdır.

Mekanizmalar

İşletim sistemi, boş ve tahsis edilmiş belleği takip eder ve her sürecin adres alanını, genellikle belleği sabit boyutlu çerçevelere bölen sayfalama yoluyla eşler. Bir sayfa hatası durumunda, ihtiyaç duyulan sayfayı getirir ve clock veya LRU gibi bir değiştirme algoritması tarafından seçilen yerleşik bir sayfayı çıkarır. Çalışma kümelerini bellekte tutmak için süreçler arasında çerçeveler tahsis eder; talep kapasiteyi aştığında, çalışma kümesi ve sayfa hatası sıklığı politikaları, tıkanmayı (thrashing) önlemek için çoklu programlamayı azaltır.

Klinik önem

Etkili bellek yönetimi, birçok programın sınırlı RAM'i sorunsuz bir şekilde paylaşmasını sağlar ve sistem verimi ile yanıt verme hızı açısından kritik öneme sahiptir. Kötü değiştirme veya aşırı taahhüt, tıkanmaya (thrashing) ve ciddi yavaşlamalara neden olurken, bellek aşırı taahhüdü (memory overcommit), sıkıştırma ve yazma anında kopyalama (copy-on-write) gibi özellikler modern sunucuların, konteynerlerin ve sanal makinelerin verimliliğini desteklemektedir.

Tarihçe

Bellek yönetimi, 1960'lı ve 1970'li yıllarda sanal belleğin olgunlaşmasıyla basit bitişik tahsis ve bindirmelerden (overlays) sayfalama ve bölümlemeye doğru evrilmiştir. Denning'in çalışma kümesi kuramı, çerçevelerin nasıl tahsis edileceğini ve tıkanmanın (thrashing) nasıl önleneceğini açıklığa kavuşturmuş, clock yaklaşımı gibi değiştirme algoritmaları üretim işletim sistemlerinde standart hale gelmiştir.

Öne çıkan isimler

  • Peter J. Denning
  • Abraham Silberschatz
  • Andrew S. Tanenbaum

İlgili konular

Temel eserler

  • silberschatz2018
  • denning1968
  • tanenbaum2014os

Sıkça sorulan sorular

Sayfalama ve bölümleme arasındaki fark nedir?
Sayfalama, belleği sabit boyutlu sayfalara ve çerçevelere bölerek tahsisi basitleştirir ve harici parçalanmayı ortadan kaldırır. Bölümleme ise bir adres alanını değişken boyutlu, mantıksal olarak anlamlı bölümlere (kod, yığın, öbek gibi) ayırır. Bazı sistemler bunları birleştirerek bölümler içinde sayfalama yapmaktadır.
İşletim sistemi neden her zaman optimal sayfa değiştirme politikasını kullanamaz?
Optimal politika, en uzun süre kullanılmayacak sayfayı çıkarır ki bu da geleceği bilmeyi gerektirir. İşletim sistemi gelecekteki referansları bilemediği için, en az yakın zamanda kullanılan (least-recently-used) veya clock algoritması gibi, yakın geçmişteki kullanımdan olası gelecekteki kullanımı çıkarsayan yaklaşımları kullanır.

Bu kavram için yöntemler

İlgili kavramlar