Sunuyu indir
Sunum yükleniyor. Lütfen bekleyiniz
1
İşletim Sistemleri (Operating Systems)
2
Bellek Yönetimi (Memory Management)
3
Cache on Chip (internal cache)
Bellek Organizasyonu Von Neumann mimarisine sahip bir bilgisayar sisteminde bellek en az üç seviyeden oluşur; en üst seviyede CPU kaydedicileri (registers), orta seviyede ana-birincil bellek (RAM) ve en alt seviyede de ikincil bellektir. Kaydedicilere CPU’nun bir saat çevriminde ulaşması mümkündür. Ana belleğe erişim ise birçok çevrim gerektirir. Ana Bellek ile CPU arasına çok daha hızlı ve CPU’ya yakın bir saklama alanı oluşturulur (cache). CPU Registers Ana Bellek Cache on Chip (internal cache) External Cache memory RAM İkincil Bellekler Hard Disk CD ROM Floppy Tape Kapasite daha büyük Erişim Daha Hızlı
4
Fiziksel Ana Bellek Yarıiletken teknolojisi olarak üretilmişlerdir.
Günümüzde DRAM bellekler nispeten ucuz oldukları için büyük bellekli sistemler oluşturmak mümkün olabilmektedir. DDR standardında üretilmektedirler. DDR5 grafik kartlarında yoğun olarak kullanılmaktadır. Bilgisayar sistemlerinde ise DDR4 bellekler kullanılmaktadır. DDR Standardı İç hızı(MHz) Yol hızı(MHz) Transfer Hızı(GB/s) Gerilim(V) DDR2 1.8 DDR3 1.35/1.5 DDR4 1.2
5
İkincil Bellek Fiziksel ana belleğin kapasitesinin tüm proseslerin fiziksel belleğe sığması için yeterli olmadığı durumlarda ikincil bellekten yararlanılır. İkincil bellek olarak kapasitesi ana belleğe göre daha fazla olan ancak daha yavaş erişim başarımına sahip mekanik diskler kullanılır. Son dönemde mekanik disklerin yerini daha pahalı ancak erişim başarımı mekanik disklere göre çok daha iyi olan katı hal (solid state) diskler almaktadır.
6
Bellek Yönetimi İşletim sisteminin birincil görevi temel sistem kaynakları olan işlemci, ana bellek ve diski kullanıcılar ve onların process’leri arasında paylaştırmaktır. Kullanıcı process’lerinin çalışabilmesi için bellekte bulunması gerekir. İşletim sisteminde fiziksel belleğin yönetiminden sorumlu olan birime bellek yöneticisi adı verilir. Bellek yöneticisi çalışan process’lerin hangi bellek bölümüne yerleşeceğine karar verir, bellek erişimini ve yerleşimini denetler, process’ler arasında bellek paylaşımını organize eder.
7
Bellek Yönetim Birimi (Memory Management Unit-MMU)
Mantıksal adres CPU tarafından oluşturulur. Kullanıcı programı, mantıksal adreslerle ilişki kurar ve hiçbir zaman gerçek fiziksel adresleri tanımaz. MMU sanalı fiziksele haritalayan donanım birimidir. MMU planında, relocation register’deki değer, kullanıcı işlemiyle, hafızaya gönderildiği anda oluşturulan her adrese eklenir.
8
Bellek Yönetimi CPU’nun process’ler arasında paylaşımı, ana bellek paylaşılmaksızın gerçekleşemez. Çok görevli sistemlerde, ana belleğin işletim sistemi kullanımı dışında olan alanı, farklı process’lerin kullanımı için değişik parçalara (bitişken alanlara) bölünür. Bir process için ayrılan alanın başlangıç adresi (base register) ve boyutu (limit register) belirlenmelidir.
9
Bellek Yönetimi Ana belleğin process’ler arasında paylaştırılmasına ana bellek yönetimi ya da bellek yönetimi (memory management) adı verilir. İşletim sisteminin bu amaçla oluşturulan kesimine de bellek yöneticisi (memory manager) adı verilir.
10
Bellek Yönetimi Bellek yöneticisinin başlıca görevleri:
Process’lere (işlemlere) bellek tahsis etmek (allocate), tahsis edilen belleği geri almak (deallocate), Belleğin hangi parçalarının kullanımda olduğunu, hangi parçalarının (bitişken alanların) kullanılmadığını izlemek, Bellek ile disk arasındaki yer değiştirme (swap) işlemlerini gerçekleştirmek.
11
Bellek Yönetimi Yer Değiştirme (Swap)
Çalışma zamanında process’ler bellek ile disk arasında sürekli yer değiştirir. Process’lerin bu şekilde disk ile bellek arasında yer değiştirilmesinin nedeni, belleğin boyutunun yetersiz olmasıdır. Sisteme sunulan process, o an sistemde işletimde olan process’lerden daha öncelikli ise hemen işletime alınması gerekir. Bu durumda, eğer ana bellekte yeterli alan yoksa, daha az öncelikli process’lerin, işletimlerini sonradan tamamlanmak üzere geçici olarak diske taşınması ve boş bellek alanı oluşturulması gerekir.
12
Bellek Yönetimi Yer Değiştirme (Swap)
Bu yolla açılan boş bellek alanları yeni process’lerin tanımlanabilmesine ve öncelikli işlerin çalışmasına olanak sağlar. Bellekte boş alan oluşturulunca process’in buraya taşınmasına belleğe taşıma (swap in) denir. İşletimi tamamlanmamış bir process’in, daha öncelikli process’lere ana bellekte yer açmak üzere geçici olarak diskteki özel alanlara (sanal bellek) taşınmasına diske taşıma (swap out) denir.
13
Bellek Yönetimi Yer Değiştirme (Swap)
14
Bellek Yönetimi Yer Değiştirme (Swap)
Yer değiştirme yöntemi kullanıldığında ve ana bellekte yer açmak gerektiğinde, hangi process’in diske taşınması gerektiğine karar verilmelidir. Bekleyen process’ler arasında, bellek alanı elinden alınacak process’i seçmek için aşağıdaki kriterleri göz önünde bulunduran değişik algoritmalar kullanılır. Görev önceliği En uzun kaynak bekleme süresi kalan Ana belleği o ana kadar en çok kullanan Bazı process’ler, yerine getirdikleri hizmetlerin önemi nedeniyle sistemden uzaklaştırılamazlar.
15
Bellek Bölümleme (Memory Partitioning)
Modern işletim sistemleri aynı anda birden fazla process’in çalışmasına olanak verir. Ana bellek, birden fazla process arasında paylaştırılmalı ve bölünmelidir. Bunu yapabilmek için kullanılan yöntemler: Değişmez Bölümlü Belek Yönetimi (Fixed partitioning) Dinamik Bölümlü Bellek Yönetimi (Dynamic partitioning) Sayfalı Bellek Yönetimi (Paging) Kesimli Bellek Yönetimi (Segmentation) Fixed partitioning ve Dynamic partitioning, artık günümüz işletim sistemlerinde kullanılmamaktadır.
16
Değişmez Bölümlü Bellek Yönetimi (Fixed partitioning)
İşletim sisteminde ana belleğin bir bölümü işletim sisteminin kendisine ayrılmıştır. Geri kalan bellek alanı ise bellek yöneticisi tarafından process’ler arasında paylaştırılır. Bu paylaşımda en basit yaklaşımlardan biri bu bellek alanının sabit uzunlukta bölümlere ayrılmasıdır. Bellek çok sayıda sabit boyutta küçük bölüme ayrılabilir ve her bölüm bir process’i içerebilir. Process’in hangi bölüme yerleştirileceği fark etmez. Multiprogramming sistemlerde eşzamanlı çalışan program sayısı ayrılan bölüm sayısına bağlıdır. Bir bölüm boşaldığında, hazır kuyruğunda bekleyen bir process seçilerek bölüme atanır.
17
Değişmez Bölümlü Bellek Yönetimi (Fixed partitioning)
Değişmez bölümlü bellek yönetiminde bölümler sabit bir büyüklükte olabilir. Toplam büyüklüğü 64M, bölüm boyutları da 8M olan bir bellek yan tarafta görünmektedir. 10M bir process istek yolladığında 2 bölüm birleştirilecek ve bu istek kaydedilince 6M’lık bir iç parçalanma (internal fragmentation) oluşacaktır.
18
Değişmez Bölümlü Bellek Yönetimi (Fixed partitioning)
Değişmez bölümlü bellek yönetiminde bölümlerin sabit bir büyüklükte olması durumunda her process ne kadar boyu küçük de olsa tam bir bölmeyi elinde tuttuğu için iç parçalanma (internal fragmentation) olayına sebebiyet vermektedir. Dolaysıyla bellek kullanımı verimli değildir. Bu durumda; eşit boyda olmayan bölümler kullanılması sorunu bir derece çözer.
19
Değişmez Bölümlü Bellek Yönetimi (Fixed partitioning)
Değişmez bölümlü bellek yönetiminde bölümler farklı büyüklükte de olabilir. Bölüm içi boş kalan yer miktarını en aza indirmek üzere her proses sığacağı en küçük bölmeye yerleştirilir. Toplam büyüklüğü 64M, bölüm boyutları da farklı olan bir ana bellek yan tarafta görünmektedir. 10M bir process istek yolladığında en az iç parçalanmanın oluşacağı bölüm bulunacak process bu bölüme konulacaktır.
20
Değişmez Bölümlü Bellek Yönetimi (Fixed partitioning)
Farklı büyüklükteki bölüm boyları olduğu durumda; Her process sığacağı en küçük bölüme yerleştirilir. Ayrılan her bölüm için bir process kuyruğu bulunur. Bir process geldiği zaman kendisini tutabilecek olan en küçük boyutlu bölümün giriş kuyruğuna eklenir. Bölüm içi boş kalan yer miktarını en aza indirmek amaçlanır. Bir process eklendiği bölümün hepsini kullanmaz ise bu kullanılmayan bellek boşuna kullanılmış ve israf edilmiş olur.
21
Değişmez Bölümlü Bellek Yönetimi (Fixed partitioning)
22
Değişmez Bölümlü Bellek Yönetimi (Fixed partitioning)
Gelen processler boyutlarına göre kuyruklara eklendiğinde, büyük boyutlu bellek bölgelerinin kuyrukları boş kalıp kullanılmaz iken, küçük boyutlu bellek bölgelerin kuyrukları dolu olabilir. Kuyruk dolu olduğunda gelen process boş yer olmasına rağmen bekler. Bunun yerine tüm processler bir kuyruğa konulur ve sıraları geldiğinde uygun bellek gözüne konulurlar.
23
Dinamik Bölümlü Bellek Yönetimi (Dynamic Partitioning)
Bu yöntemde bölme sayısı ve bölme boyları sabit değildir. Process’lere sadece gerektiği kadar bellek atanır. İşletim sistemi belleğin boş ve dolu olan bölümlerini bir tabloda tutar. Bölümlerle ilgili bölüm başlangıç adresi, boyu gibi bilgiler tutulmaktadır. Bu yöntemde process’lere atanan bölümlerin yanı sıra, bu bölümler arasında kalan boş alanların da izlenmesi gereklidir. Kullanılmayan boş yerler yine de oluşur. Dış parçalanma (external fragmentation).
24
Dinamik Bölümlü Bellek Yönetimi (Dynamic Partitioning)
Örnek: 64M ana belleğin aşağıdaki dört program için kullanılacağını varsayınız.
25
Dinamik Bölümlü Bellek Yönetimi (Dynamic Partitioning)
Başlangıçta ana belleğin işletim sistemi bölümünün haricindeki alanların boş olduğunu varsayınız. Programlar birbirleri ardına gerekli bölümleri oluşturarak ana belleğe yüklenirler.
26
Dinamik Bölümlü Bellek Yönetimi (Dynamic Partitioning)
Bu durumda P4 process’i için bellekte yeterli yer yoktur. Yer değiştirme (swap) işlemiyle bir process sanal belleğe taşınır. P2’nin yer değiştireceğini varsayalım.
27
Dinamik Bölümlü Bellek Yönetimi (Dynamic Partitioning)
P2’nin yer değiştirmesinden sonra bellekte 14M’lık bir bölüm serbest kalır. Bu bölüme P4 yüklenebilir.
28
Dinamik Bölümlü Bellek Yönetimi (Dynamic Partitioning)
P2’nin çalışması için tekrar ana belleğe yüklenmesi gerektiğini varsayalım. Bu sefer P1’in bekleme durumunda olduğunu ve yer değiştireceğini varsayalım. Yer değiştirme olayından sonra P2 tekrardan ana belleğe yüklenebilir.
29
Dinamik Bölümlü Bellek Yönetimi (Dynamic Partitioning)
Ana Belleğin Parçalanması Sorunu (dynamic storage allocation problem) : Ana belleğin parçalanması, bitişken alanların process’lere atanan bölümlerle, zaman içinde ufalanması olarak tanımlanır. Bu sorun, kullanılan bölümler arasına sıkışmış, işletim için bekleyen process’lerin gereksinimini karşılayamayan boş alanların varlığıyla ortaya çıkar. Belleğin parçalanması sonucu, bellekteki boş alanların toplamı, gerekli sığmaları karşılıyor olmasına karşın yeni process’lere yer sağlanamaz durumlarla karşılaşılır.
30
Dinamik Bölümlü Bellek Yönetimi (Dynamic Partitioning)
Process’lere sağlanan alanların konumlarının işletim sırasında değiştirilememesi parçalanma sorununun temel nedenleridir. Dinamik bölümlü bellek yönetiminde bölümler arasında boş alanlar kalmakta, yani dış parçalanma (external fragmentation) oluşmaktadır.
31
Bitiştirme (Compaction)
Dinamik bölümlü bellek yönetiminde bölümler arasında boş alanlar kalmakta, yani dış parçalanma (external fragmentation) oluşmaktadır. Process’lere sağlanan bellek konumlarının işletim sırasında değiştirilememesi bitişik alanların parçalanma sorununun temel nedenidir. Bu sakıncalı durumun yok edilebilmesi için bitiştirme işlemi (compaction) kullanılabilir. Tüm bellek alanına dağılmış durumdaki bölümleri, yerlerini değiştirerek yan yana yerleştirip tek bir bitişken boş alan oluşturma işlemine bitiştirme işlemi (compaction) denir.
32
Bitiştirme (Compaction)
Bitiştirme işlemiyle tüm kullanılmayan parçalar bir yerde toplanır. Bitiştirme işlemi, işlemciyi meşgul eden, zaman alan ve dolayısıyla bilgisayarı yavaşlatan bir işlemdir. Bitiştirme ihtiyacını azaltmak için farklı yerleştirme algoritmaları kullanılır.
33
Dinamik Bölümlü Bellek Yönetimi Yerleştirme Algoritmaları
İşletim sistemi, bellekteki boşlukların bulunduğu listeden process için en uygun boşluğu belirlemede çeşitli algoritmalar kullanır: İlk Uygun Yer Algoritması (First Fit) Sonraki Uygun Yer Algoritması (Next Fit) En Uygun Yer Algoritması (Best Fit)
34
Dinamik Bölümlü Bellek Yönetimi Yerleştirme Algoritmaları
First-fit en basit, genellikle en iyi ve en hızlı olanıdır. Next-fit, first-fit’e göre biraz daha kötüdür, daha fazla bitiştirme (compaction) gerektirir. Best-fit, isminin aksine en kötü performansa sahiptir. Process yerleştirildiğinde geriye kalan boş alan pek kullanılamayacağından çok daha sık bitiştirme (compaction) yapılmalıdır.
35
Dinamik Bölümlü Bellek Yönetimi Yerleştirme Algoritmaları
İlk Uygun Yer Algoritması (First-Fit) : Bir process bellek isteğinde bulunduğunda, bellek baştan sona taranır ve process için gerekli olan bellek boyutunu sağlayan ilk boş alana yerleştirilir. Gerçekleştirmesi kolay ve en hızlı çalışan algoritmadır.
36
Dinamik Bölümlü Bellek Yönetimi Yerleştirme Algoritmaları
Sonraki Uygun Yer Algoritması (Next-Fit) : İlk uygun yer (First Fit) algoritması ile aynı mantıkta çalışır, fakat bu algoritma en son bulduğu uygun yer bilgisini saklar. Bir sonraki aramada belleğin en başından değil de, saklamış olduğu noktadan itibaren aramaya başlar. Genellikle atamalar belleğin son kısımlarında yer alan büyük boşluklardan seçilir. Bu nedenle büyük boşluklar küçük parçalara bölünür. Bu da bitiştirme (compaction) gerektirir. İlk uygun yer (First Fit) algoritmasına göre biraz daha yavaş çalışır.
37
Dinamik Bölümlü Bellek Yönetimi Yerleştirme Algoritmaları
En Uygun Yer Algoritması (Best Fit) : Bu algoritma belleğin başından sonuna kadar tüm boş alanları tarar ve process için gerekli olan bellek boyutuna en uygun olan (en yakın boyuttaki) boş bellek alanına process’i yerleştirir. En yavaş çalışan algoritmadır. Çok küçük ve kullanışsız parçalanmalara sebep olur.
38
Dinamik Bölümlü Bellek Yönetimi Yerleştirme Algoritmaları
Örnek 1 Ana bellekteki boş ve dolu bölümlerin yan tarafta göründüğü gibi olduğunu varsayınız. 16M’lık bir yerleştirme isteğini ilk uygun (first fit), sonraki uygun (next fit) ve en uygun (best fit) yer algoritmasına göre belleğe yerleştiriniz.
39
Dinamik Bölümlü Bellek Yönetimi Yerleştirme Algoritmaları
İlk uygun yer (first fit) algoritması 22MB’lık bölümü kullanarak 8MB’lık dış parçalanma, sonraki uygun yer (next fit) algoritması son 36MB’lik bölümü kullanarak 20MB’lik dış parçalanma, en uygun yer(best fit) algoritması da tüm yerlere bakarak 18M’lık bölümü kullanarak, 2M’lık dış parçalanma oluşturur.
40
Dinamik Bölümlü Bellek Yönetimi Yerleştirme Algoritmaları
Örnek 2 Ana bellekte sırayla aşağıdaki boş bölümlerin olduğunu varsayınız. 24K, 20K ve 18K’lık bellek kullanım istekleri için sırasıyla hangi boşlukların kullanılacağını ve oluşacak parçalanmaları aşağıdaki algoritmaları kullanarak belirtiniz. İlk Uygun Yer (First Fit) Algoritması Sonraki Uygun Yer (Next Fit) Algoritması En Uygun Yer (Best Fit) Algoritması
41
Dinamik Bölümlü Bellek Yönetimi Yerleştirme Algoritmaları
İlk Uygun Yer (First Fit) Algoritması 24 K Boşluk 3 (16K parçalanma) 20 K Boşluk 1 (0K parçalanma) 18 K Boşluk 4 (18K parçalanma)
42
Dinamik Bölümlü Bellek Yönetimi Yerleştirme Algoritmaları
Sonraki Uygun Yer (Next Fit) Algoritması 24 K Boşluk 3 (16K parçalanma) 20 K Boşluk 4 (16K parçalanma) 18 K Boşluk 6 (0K parçalanma)
43
Dinamik Bölümlü Bellek Yönetimi Yerleştirme Algoritmaları
En Uygun Yer (Best Fit) Algoritması 24 K Boşluk 7 (0K parçalanma) 20 K Boşluk 1 (0K parçalanma) 18 K Boşluk 6 (0K parçalanma)
44
Parçalanma (Fragmentation)
Process’ler hafızaya yüklenirken ve atılırken hafıza alanları sürekli parçalanır (fragmentation). Bir process için yeterli alan olabilir, ancak bunlar küçük parçalar halinde dağılmış durumda olabilir. En kötü durumda her iki process arasında boş kısım olabilir. First fit ile yapılan istatistiksel analize göre, N tane kullanılmış bölüm için N/2 tane boş bölüm oluşur. Bu durumda belleğin 1/3 kısmı kullanılamaz. Buna %50 kuralı (50-percent rule) denir. Fragmentation çözümünde küçük bölümler yer değiştirilerek büyük bölüm elde edilir (fazla süre gerektirir). Sayfalama (paging) ve Segmentation yaklaşımları fragmentation çözümünde etkindir.
Benzer bir sunumlar
© 2024 SlidePlayer.biz.tr Inc.
All rights reserved.