Bellek Ynetimi Bellek Ynetimi Bellein birden fazla prosese
Bellek Yönetimi
Bellek Yönetimi • Belleğin birden fazla prosese yer verilebilecek şekilde alt birimlere ayrılması işlemidir.
Nasıl olmalı? • Bellekteki herhangi bir işlemi başka bir yere aktarabilmelidir. (Relocation) • Birden fazla işlem veya kullanıcı olduğunda bir kullanıcının diğer kullanıcını alanlarına girmeleri önlenmelidir. (Koruma) • Kullanıcılar arası kaynak paylaşımını sağlamalıdır. (Paylaşma) • Belleğin mantıksal alanlara bölünmesini sağlayarak bilgiye erişimi kolaylaştırmalıdır. • Belleğin yetmediği durumlarda fiziksel başka bellek alanlarını yani hard diskleri/flash bellekleri kullanabilmelidir.
Adres Türleri • Fiziksel Adres: Bellek üzerindeki gerçek adres • Mantıksal Adres: İşlemci üretir • Göreceli Adres: Adres bir referans noktasına göre ifade edilir. (Genelde proses başlangıç adresi+değer) Bellek Yönetim Birimi: Mantıksal adres->Fiziksel adres
Bellek Yönetim Birimi
Proses Yükleme Türleri • Mutlak Yükleme: Her zaman aynı sabit adres • Yeniden Yerleşebilir Yükleme: Adres=başlangıç noktası+sabit adres • Dinamik Yükleme: Adres yükleme aşamasında dinamik olarak atanır
Yeniden Yerleştirme • Takas (Swap) İşlemi: önce RAM->ROM sonra ROM->RAM • Bitiştirme (DEFRAG/Sıkıştırma) İşlemi: Kaydırarak boşlukları doldur. Bu işlemler sonrası fiziksel adres değişir; ama mantıksal adresler değişmeyebilir
Bellek Adres Kayıtlıkları (Registerler) • Taban Kayıtlığı – prosesin başlangıç adresi • Sınır Kayıtlığı – prosesin son adresi • Bu değerler saklayıcılara proses belleğe yüklendiğinde yazılır
Bellek Bölümleme (Tahsisi) • Bölmeleme (Partitioning) – Sabit – Dinamik • Basit sayfalama (Paging) • Basit segmanlama (Segmentation) • Sayfalamalı görüntü bellek (Virtual Memory) • Segmanlamalı görüntü bellek
Sabit Bölümleme • Eşit Parçalara Bölme – boş bölmeye, boyu bölme boyundan küçük ya da eşit prosesler yüklenebilir – tüm bölmeler doluysa proseslerden biri bellekten atılır – program bölmeye sığmayabilir ⇒ Program kod dosyalarına bölünür, çalışacak kısım çalışanın üzerine yazılır (overlay)
Sabit Bölmeleme (2) • Bellek kullanımı etkin değil: – Her program ne kadar boyu küçük de olsa tam bir bölmeyi elinde tutar ⇒ iç parçalanma (internal fragmentation) – Eşit boyda olmayan bölmeler kullanılması sorunu bir derece çözer • Maksimum aktif proses sayısı sınırlı • İşletim sistemi tarafından gerçeklenmesi kolay • Getirdiği ek yük az.
Yerleştirme Algoritmaları (Sabit Bölümleme) • Bölme boyları eşit – prosesin hangi bölmeye yerleştirileceği fark etmez • Bölme boyları eşit değil – her prosesi sığacağı en küçük bölmeye – her bölme için kuyruk – bölme içi boş kalan yer miktarını en aza indirmek
Dinamik Bölmeleme (1) • Bölme sayısı ve bölme boyları sabit değil • Proseslere sadece gerektiği kadar bellek atanır • Kullanılmayan boş yerler yine de oluşur (dış parçalanma) • Tüm boş alanın bir blok halinde olması için sıkıştırma kullanılır • Hangi boş bloğa hangi prosese atanacağına işletim sistemi karar verir
Yerleştirme Algoritmaları (Dinamik Bölmeleme (1) 1. En-İyi-Sığan Algoritması (Best-Fit) – Boyu istenene en yakın olan boşluk seçilir – Olası en küçük bölme bulunduğundan artan boş alan az ⇒ sıkıştırmanın daha sık yapılanması gerekir
Yerleştirme Algoritmaları (2) 2. İlk-Sığan Algoritması (First-fit) – En hızlı – Prosesler baş bölgelere yığılır ⇒ boş yer ararken üste taranır
Yerleştirme Algoritmaları (3) 3. Bir-Sonraki-Sığan Algoritması (Next-fit) – Son yerleştirilen yerden itibaren ilk sığan yeri bulur – Genellikle atamalar belleğin son kısımlarında yer alan büyük boşluklardan olur – En büyük boşluklar küçük parçalara bölünmüş olur – Sıkıştırma gerekir
Yerleştirme Algoritmaları (4) 4. En Kötü Uyan Algoritması (Worst-fit) – Listeden araştırma yapıldıktan sonra en büyük boşluğun seçilerek işlemin yerleştirilmesidir.
5. “Buddy” Yöntemi • Tüm boş alan 2 U boyutunda tek bir alan olarak ele alınır – s boyutundaki bir istek eğer 2 U-1 < s <= 2 U ise tüm blok atanır – Aksi halde blok 2 U-1 boyutunda iki eş bloğa bölünür (buddy) – s’den büyük veya eşit en küçük birim blok oluşturulana kadar işlem devam eder
Buddy Sistem Örneği
Buddy Yönteminin Ağaç ile Temsili
- Slides: 21