220 likes | 535 Views
Bellek Yönetimi. Bellek Yönetimi. B elleğin b irden 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 )
E N D
Bellek Yönetimi • Belleğinbirden 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
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 (internalfragmentation) – 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) • 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) • İlk-Sığan Algoritması (First-fit) – En hızlı – Prosesler baş bölgelere yığılır ⇒ boş yer ararken üst üste taranır
Yerleştirme Algoritmaları (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) • 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 2U boyutunda tek bir alan olarak ele alınır • s boyutundaki bir istek eğer 2U-1 < s <= 2U ise tüm blok atanır • Aksi halde blok 2U-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