İşletim Sistemleri (Operating Systems)

Benzer belgeler
İşletim sistemlerinde, gerçekleştirilen işlemlerin geçici olarak saklandığı merkeze ana bellek (RAM) denir.

İşletim Sistemlerine Giriş

İşletim Sistemleri. Dr. Binnur Kurt Omega Eğitim ve Danışmanlık İşletim Sistemleri

Bölüm 8: Ana Bellek. Operating System Concepts with Java 8 th Edition

BELLEK YÖNETY NETİMİ. Bellek Yönetiminin Gerektirdikleri. Bellek Yönetimi. Bellek Yönetiminin Gerektirdikleri. Bellek Yönetimi Teknikleri

BELLEK YÖNETY. Bellek Yönetimi

İşletim Sistemleri. Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

Bölüm 8: Ana Bellek 8.1

Bilgisayar İşletim Sistemleri BLG 312

İşletim Sistemlerine Giriş

İşletim Sistemleri (Operating Systems)

BTP 205 İŞLETİM SİSTEMLERİ

YZM 3102 İşletim Sistemleri

Bilgisayarların Gelişimi

İşletim Sistemlerine Giriş

İşlem Yönetimi (Process Management)

William Stallings Computer Organization and Architecture 9 th Edition

Bölüm 8: Ana Bellek. Operating System Concepts 9 th Edition. Mehmet Demirci tarafından çevrilmiştir.

BELLEK Yönetimi. Ana Bellek Yönetimi. Ana Bellek Yönetimi

İşletim Sistemi. BTEP205 - İşletim Sistemleri

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

İŞLETİM SİSTEMLERİNE GİRİŞ - 2. Sistem, sistem kaynaklarını belli bir hiyerarşi içinde kullanıcının hizmetine

Dosya Saklama Ortamları (Sabit Diskler) Kütük Organizasyonu 1

İŞLETİM SİSTEMLERİ. (Operating Systems)

William Stallings Computer Organization and Architecture 9 th Edition

BM-311 Bilgisayar Mimarisi

Background (Arka Plan)

Düşünelim? Günlük hayatta bilgisayar hangi alanlarda kullanılmaktadır? Bilgisayarın farklı tip ve özellikte olmasının sebepleri neler olabilir?

5. HAFTA KBT104 BİLGİSAYAR DONANIMI. KBUZEM Karabük Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Windows XP: Virtual Memory / Sanal Bellek Perşembe, 07 Eylül :51 - Son Güncelleme Salı, 12 Eylül :07

Sanal Bellek (Virtual Memory)

Bilgisayar (Computer) Bilgisayarın fiziksel ve elektronik yapısını oluşturan ana birimlerin ve çevre birimlerin tümüne "donanım" denir.

Mikrobilgisayarlar ve Assembler. Bahar Dönemi. Vedat Marttin

Cache-Hızlı Hafıza Birimi. Bilgisayar Sistemi Bilgisayarların Anakart Organizasyonu

Bilgisayar Donanımı Dersi BİLGİSAYARIN MİMARI YAPISI VE ÇALIŞMA MANTIĞI

(Random-Access Memory)

İşletim Sistemleri (Operating Systems)

BELLEKLER. Kelime anlamı olarak RAM Random Access Memory yani Rastgele Erişilebilir Bellek cümlesinin kısaltılması ile oluşmuş bir tanımdır.

Görüntü Bellek. Ana Bellek. Fiziksel Adres. Belek Uzayı. Bellek hiyerarşisi. Hız Maliyet (+) Ana Bellek. Boyut (+) DISK. Görüntü Adres.

Windows Eski Sürümleri Bellek Yapısı

İşletim Sistemlerine Giriş

DONANIM KURULUMU. Öğr. Gör. Murat YAZICI. 1. Hafta.

İşletim Sistemleri. Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

İşletim Sistemlerine Giriş 2. Kaynakların Paylaşımı. Öğr.Gör. Dr. Şirin KARADENİZ

BİLGİSAYAR MİMARİSİ. << Bus Yapısı >> Özer Çelik Matematik-Bilgisayar Bölümü

İŞLETİM SİSTEMLERİNE GİRİŞ. Modern bilgisayar çalışma prensipleri, Von Neumann ın 1945 de geliştirdiği

1. Hafıza Depolama Araçları. 2. Hafıza Çeşitleri. 3. Hafıza Ölçümü. 4. Bilgisayar Performansı

İŞLETİM SİSTEMLERİNE GİRİŞ. Modern bilgisayar çalışma prensipleri, Von Neumann ın 1945 de geliştirdiği

CUMHURİYET MESLEKİ VE TEKNİK ANADOLU LİSESİ BİLİŞİM TEKNOLOJİLERİNİN TEMELLERİ DERSİ DERS NOTLARI BELLEKLER

Bilişim Teknolojilerine Giriş

HAFTA 1 KALICI OLMAYAN HAFIZA RAM SRAM DRAM DDRAM KALICI HAFIZA ROM PROM EPROM EEPROM FLASH HARDDISK

İŞ SIRALAMA. İş Sıralamanın Amaçları. İş Sıralama Türleri - 1. İş Sıralama. İş Sıralama Türleri - 2

İŞLEMCİLER (CPU) İşlemciler bir cihazdaki tüm girdilerin tabii tutulduğu ve çıkış bilgilerinin üretildiği bölümdür.

DOSYA NEDİR? Verilerin HDD de saklanması. Verilerin HDD de saklanması DOSYA SİSTEMİ NEDİR?

Yrd.Doç.Dr. Celal Murat KANDEMİR

Embedded(Gömülü)Sistem Nedir?

Bilgisayar Programcılığı Ön Lisans Programı BİLGİSAYAR DONANIMI. Öğr. Gör. Rıza ALTUNAY

PROSESLER. Proses. Proses

BİL 423 Bilgisayar Mimarisi 1. Ara Sınavı

Fiziksel Tasarım Konuları. Dosya Organizasyon Teknikleri Kayıt Erişim Yöntemleri Veri Yapıları

Dosya, disk üzerinde depolanmış verilerin bütününe verilen isimdir. İşletim sistemi genel olarak iki çeşit dosya içerir.

Donanımlar Hafta 1 Donanım

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 7. LINUX OS (Sistem Yapısı) BİLGİ & İLETİŞİM TEKNOLOJİLERİ. LINUX Yapısı

İşletim Sistemlerine Giriş

İŞLETİM SİSTEMLERİ DERS 9 BELLEK YONETİMİ

BM-311 Bilgisayar Mimarisi

Bilgisayar İşletim Sistemleri BLG 312

BM-311 Bilgisayar Mimarisi. Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

Süreç Yönetimi. Logo

PARDUS TOPLULUK SÜRÜMÜ 3.0 KDE KURULUMU

Merkezi İşlem Birimi (CPU)

Proses. Prosesler 2. İşletim Sistemleri

DERS 3 MİKROİŞLEMCİ SİSTEM MİMARİSİ. İçerik

Von Neumann Mimarisi. Mikroişlemciler ve Mikrobilgisayarlar 1

Bellekler. Mikroişlemciler ve Mikrobilgisayarlar

Şekil. 64 Kelimelik Yığıtın Blok Şeması

Yrd. Doç. Dr. Caner ÖZCAN

DONANIM VE YAZILIM. Bilişim Teknolojileri ve Yazılım Dersi

Sistem Programlama. Kesmeler(Interrupts): Kesme mikro işlemcinin üzerinde çalıştığı koda ara vererek başka bir kodu çalıştırması işlemidir.

BLG 312 Bilgisayar İşletim Sistemleri 2006 BLG 312. Bilgilerin Uzun Vadeli Saklanması. Dosya Sistemi Görevleri. Dosya Sistemi Özellikleri

MONĐTÖRLER

VERİ TABANI YÖNETİM SİSTEMLERİ

BİLGİSAYAR KULLANMA KURSU

BM-311 Bilgisayar Mimarisi

Bilgisayar Mimarisi ve Organizasyonu Giriş

Temel Kavramlar-2. Aşağıda depolama aygıtlarının kapasitelerini inceleyebilirsiniz.

İşletim Sistemlerine Giriş

William Stallings Computer Organization and Architecture 9 th Edition

Ünite-2 Bilgisayar Organizasyonu.

DİSK DEPOLAMA ALANLARI

BİLGİSAYAR MİMARİSİ. Bilgisayar Bileşenleri Ve Programların Yürütülmesi. Özer Çelik Matematik-Bilgisayar Bölümü

İşletim Sistemlerine Giriş

Yrd. Doç. Dr. Caner ÖZCAN

Optik Sürücüler CD/CD-ROM DVD HD-DVD/BLU-RAY DİSK Disket Monitör LCD LED Projeksiyon Klavye Mouse Mikrofon Tarayıcı

Temel Bilgisayar Bilgisi

Bilgilerin Uzun Vadeli Saklanması

Fiziksel Veritabanı Modelleme

İŞ İSTASYONU SEÇİM REHBERİ

SORULAR (37-66) Aşağıdakilerden hangisi günümüz anakartlarının en çok kullanılan veriyoludur?

Qlik Sense için sistem gereksinimleri. Qlik Sense 3.1 Copyright QlikTech International AB. Tüm hakları saklıdır.

Transkript:

İşletim Sistemleri (Operating Systems) 1

Bellek Yönetimi (Memory Management) 2

Bellek Yönetimi (Memory Management) Bilgisayar sistemlerinde sınırlı miktarda bellek bulunmakta ve çalışan her program bir miktar belleğe ihtiyaç duymaktadır. İşletim sistemi (operating system) bu belleği ne kadar verimli kullanırsa ve process leri ne kadar düzgün yerleştirirse belleğin içerisine sığabilen process miktarı o kadar fazla olur. Bellek verimli ve dikkatli bir şekilde yönetilmesi gereken önemli bir kaynaktır. Yazılım teknolojileri, bellek teknolojilerinden daha hızlı büyüyor, bu nedenle verimli bellek yönetimi her zaman gerekli olacak. 3

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 saat çevrimi gerektirir. Ana bellek ile CPU arasına çok daha hızlı ve CPU ya yakın bir saklama alanı oluşturulur (cache). Erişim Daha Hızlı 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 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. Günümüzde DDR(Double Data Rate) standardında üretilmektedirler. DDR5 grafik kartlarında yoğun olarak kullanılmaktadır. Bilgisayar sistemlerinde ise DDR4 bellekler kullanılmaktadır. DDR İç hızı(mhz) Yol hızı(mhz) Transfer Hızı(GB/s) Gerilim(V) Standardı DDR2 133-200 266-400 4.2-6.4 1.8 DDR3 133-200 533-800 8.5-14.9 1.35/1.5 DDR4 133-200 1066-1600 17-21.3 1.2 5

İkincil Bellek Fiziksel ana belleğin kapasitesinin tüm process lerin 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önetim Gereksinimleri (Memory Management Requirements) Herhangi bir bellek yönetim sisteminin aşağıdaki beş gereksinimi karşılaması beklenir: Yeniden yerleşim (Relocation) Koruma (Protection) Paylaşım (Sharing) Mantıksal organizasyon (Logical organization) Fiziksel organizasyon (Physical organization) 7

Yeniden yerleşim (Relocation) Yazılım geliştirici, çalışan programının bellekte fiziksel olarak nereye yerleşeceği ile ilgilenmeden uygulama geliştirilmelidir. Uygulama çalışma zamanında farklı kapasiteli ve farklı fiziksel yerleşime sahip bellek parçalarının yer aldığı sistemlerde çalıştırılabilir. Geliştirici sanki tüm bellek uzayını sadece kendisine aitmiş gibi kod yazar. Üretilen bellek adresleri sanaldır. Bellek yöneticisinin görevlerinden biri de bellek referans adreslerini fiziksel adres değerlerine dönüştürmektir. Koşan yazılımların fiziksel belleğe sığmayan bölümleri ikincil bellekte saklanır. Daha sonra ihtiyaç duyulduğunda, ikincil bellekten alınıp tekrar fiziksel belleğe muhtemelen farklı bir bölmeye yüklenir. 8

Koruma (Protection) İzni olmadan bir process bir başka process in bellek alanına erişememelidir. Programın yeri değişebileceğinden kontrol için programdaki gerçek adresler kullanılamaz. Bu kontrolün çalışma zamanında yapılması gerekir. Bellek koruma gereksiniminin, işletim sistemi (yazılım) yerine işlemci (donanım) tarafından karşılanması gerektiği unutulmamalıdır. Bunun nedeni, işletim sisteminin bir programın yapacağı tüm bellek başvurularını tahmin edememesidir. 9

Paylaşım (Sharing) Bazen birden fazla process in aynı bellek bölgesine erişmesi istenebilir. Bazı görevlerde işbirliği yapılan process ler, aynı veri yapısına erişimi paylaşmak zorunda kalabilir. Process ler biri birlerinin program kodunu ya da verilerini paylaşabilmelidir. Bellek yönetimi sistemi, bu nedenle, temel korumadan ödün vermeden paylaşılan bellek alanlarına kontrollü erişime izin verecek esneklikte olması gerekir. 10

Mantıksal organizasyon (Logical organization) Bellek doğrusal olarak düzenlenir (genellikle) Aksine, programlar modüller halinde düzenlenir. Modüller bağımsız olarak yazılabilir ve derlenebilir. Gerektiğinde modüller belleğe dinamik olarak yüklenebilir. Farklı modüllere farklı derecelerde koruma verilebilir (salt okunur, sadece yürütme) Modüllerin kopyaları process ler arasında paylaşılabilir. Kesimli bellek yönetimi (Segmentasyon) burada yardımcı olur. 11

Fiziksel organizasyon (Physical organization) Process lerin birincil bellek ve ikincil bellek arasında taşınması (Swapping). 12

Monoprogramming ve Bellek Yönetimi (Swapping veya Paging olmadan) En basit bellek yönetimi şeması, bir program ve işletim sistemi arasında belleği paylaştırarak bir kerede yalnızca bir programı çalıştırmaktır. Sistem bu şekilde düzenlendiğinde, aynı anda yalnızca bir process çalışıyor olabilir. İlk model (a), daha önce ana bilgisayarlarda (mainframes) ve mini bilgisayarlarda (minicomputers) kullanılmıştır. İkinci model (b), bazı palmtop bilgisayarlarda ve gömülü sistemlerde kullanılır. Üçüncü model (c), ROM'daki sistem bölümünün BIOS (Temel Giriş Çıkış Sistemi) olarak adlandırıldığı erken kişisel bilgisayarlar (ör., MS-DOS işletim sistemi) tarafından kullanılmıştır. 13

Monoprogramming ve Bellek Yönetimi (Swapping veya Paging olmadan) Monoprogramming özelliğindeki bu en basit bellek yönetim planları günümüz masaüstü ve dizüstü bilgisayarlardaki işletim sistemlerinde artık kullanılmamasına karşın, bu yöntemler bazı avuçiçi sistemler (palmtop), gömülü (embedded) sistemler ve akıllı kart (smart card) sistemlerinde hala kullanılmaktadır. 14

Multiprogramming ve Bellek Yönetimi Basit gömülü sistemler dışında, monoprogramlama artık pek kullanılmıyor. Çoğu modern sistem, aynı anda birden fazla process i çalıştırmaya izin verir. Birden çok process in aynı anda çalıştırılması, bir process in G/Ç işleminin bitmesini bekleyerek bloke edildiğinde, CPU'yu başka bir process in kullanabileceği anlamına gelir. Böylece çoklu programlama CPU kullanımını arttırır. 15

Bellek Yönetimi (Memory management) İşletim sisteminin birincil görevi temel sistem kaynakları olan işlemci, ana bellek ve diski, process ler arasında paylaştırmaktır. Process lerinin çalışabilmesi için bellekte bulunması gerekir. Belleğin process ler arasında paylaştırılmasına bellek yönetimi (memory management) adı verilir. İşletim sisteminde fiziksel bellek hiyerarşisinin yönetiminden sorumlu olan birime de bellek yöneticisi (memory manager) 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. 16

Bellek Yönetimi (Memory management) Bellek yöneticisinin başlıca görevleri: Process lere bellek tahsis etmek (allocate), tahsis edilen belleği geri almak (deallocate), Belleğin hangi bölümlerinin kullanımda olduğunu, hangi bölümlerinin (bitişken alanların) kullanılmadığını izlemek, Bellek ile disk arasındaki yer değiştirme (swap) işlemlerini gerçekleştirmek. 17

Bellek Yönetimi (Memory management) CPU nun process ler arasında paylaşımı, ana bellek paylaşılmaksızın gerçekleşemez. Çok process li 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 ve son adresi belirlenmelidir. Belleğe process lerin yerleşimi Tavan (Limit) ve Taban (Base) kaydedicileriyle donanımsal olarak sağlanır. Tavan kaydedicisi uzunluğu belirtmektedir ve taban ve tavan kaydedicisi toplanarak process in bittiği adres bulunabilir. 18

Bellek Yönetimi (Memory management) 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.

Bellek Yönetimi (Memory management) 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.

Bellek Yönetimi (Memory management) Yer Değiştirme (Swap)

Bellek Yönetimi (Memory management) Yer Değiştirme (Swap) Bir process in swap out yapılabilmesi için tüm işlemlerini bitirmesi zorunludur. Bir process I/O kuyruğunda bekliyorsa veya başka bir işlem sonucunu bekliyorsa swap out yapılamaz. Modern işletim sistemleri hafıza eşik değerin altına düşmeden swapping yapmaz. 22

Bellek Yönetimi (Memory management) 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.

Bellek Yönetimi (Memory management) Yer Değiştirme (Swap) 24

Bellek Yönetimi (Memory management) Yer Değiştirme (Swap) Mobil sistemlerde swapping : Mobil sistemler swapping işlemini desteklemez. Mobil cihazlar kalıcı saklama birimi olarak hard disk yerine flash bellek kullanır. Flash belleklerde yazma sayısı limiti vardır. Apple ios işletim sistemi, uygulamalardan hafızayı boşaltmasını ister. Read-only veri sistemden atılır ve sonra flash bellekten tekrar yüklenir. Değişebilen veriler (stack) hafızadan atılmaz. Android işletim sistemi, yeterli hafıza alanı yoksa bir process i sonlandırır ve durum bilgisini flash belleğe kaydeder. 25

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(Memory Management Unit) mantıksal adresleri fiziksel adreslere haritalayan donanım birimidir. MMU planında, relocation register deki değer, kullanıcı işlemiyle belleğe gönderildiği anda oluşturulan her mantıksal adrese (logical address) eklenir. Fiziksel Adres: Bellek üzerindeki gerçek adres Mantıksal Adres: İşlemci üretir Bellek Yönetim Birimi: Mantıksal adres->fiziksel adres 26

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ü Bellek 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 gibi basit bellek yönetim planları günümüz masaüstü ve dizüstü bilgisayarlardaki işletim sistemlerinde artık kullanılmamaktadır. 27

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. Bellek alanı eşit (equal-size partitioning) veya eşit olmayan (unequal-size partitioning) uzunlukta bölümlere ayrılabilir. 28

Değişmez Bölümlü Bellek Yönetimi (Fixed partitioning) Bellek çok sayıda eşit veya eşit olmayan boyutta 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 process 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. 29

Değişmez Bölümlü Bellek Yönetimi (Fixed partitioning) Equal-size partitioning : Değişmez bölümlü bellek yönetiminde bölümler sabit bir büyüklükte (equal-size) olabilir. Her bölüm bir process i içerebilir ve process in hangi bölüme yerleştirileceği fark etmez. 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. 30

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. 31

Değişmez Bölümlü Bellek Yönetimi (Fixed partitioning) Unequal-size partitioning : Değişmez bölümlü bellek yönetiminde bölümler farklı büyüklükte (Unequal-size) de olabilir. Bölüm içi boş kalan yer miktarını en aza indirmek üzere her process 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. 32

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 veya tüm bölümler için tekbir 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. 33

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. 34

Değişmez Bölümlü Bellek Yönetimi (Fixed partitioning) Bellek kullanımı etkin değil: Her process 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 process sayısı sınırlı. İşletim sistemi tarafından gerçeklenmesi kolay. Getirdiği ek yük az. 35

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 alanı 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, bölüm 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). 36

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. 37

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. 38

Dinamik Bölümlü Bellek Yönetimi (Dynamic Partitioning) Bu durumda P4 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. 39

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. 40

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. 41

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. 42

Dinamik Bölümlü Bellek Yönetimi (Dynamic Partitioning) 43

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 nedenidir. Dinamik bölümlü bellek yönetiminde bölümler arasında boş alanlar kalmakta, yani dış parçalanma (external fragmentation) oluşmaktadır. 44

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. 45

Bitiştirme (Compaction) 46

Bitiştirme (Compaction) Bitiştirme işlemiyle tüm kullanılmayan bölümler 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. 47

Dinamik Bölümlü Bellek YönetimiYerleş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 Algorithm) Sonraki Uygun Yer Algoritması (Next Fit Algorithm) En Uygun Yer Algoritması (Best Fit Algorithm) Buddy Yöntemi 48

Dinamik Bölümlü Bellek YönetimiYerleş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. 49

Dinamik Bölümlü Bellek YönetimiYerleş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. 50

Dinamik Bölümlü Bellek YönetimiYerleş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. 51

Dinamik Bölümlü Bellek YönetimiYerleş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. 52

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. 53

Dinamik Bölümlü Bellek Yönetimi Yerleştirme Algoritmaları İlk uygun yer (first fit) algoritması 22MB lık bölümü kullanarak 6MB 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. 54

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ı 55

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) 56

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) 57

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) 58

Buddy Yöntemi Tüm boş alan 2 U boyutunda tek bir alan olarak ele alınır. Buddy sistem bellek bölümlerini 2 i kb olarak ayırır. i=0,1,2,3,. Bellek bölümleri örneğin, 256K, 64K, 32K şeklinde olabilir. 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. 59

Buddy Yöntemi Başlangıç 1 Mbyte ilk blok. İlk istek A, 100 Kbyte'dır ve 128K bloğa ihtiyaç var. İlk blok iki 512K bölüme ayrılır. Bunların birincisi iki 256K bölüme ayrılır ve bunların ilki, biri A'ya atanmak üzere iki 128K bölüme ayrılır. Bir sonraki B talebi, 256K blok gerektirir. Böyle bir blok zaten mevcut ve tahsis edilmiştir. Süreç, gerektiğinde meydana gelen bölme ve kaynaşma ile devam eder. 60

Buddy Yöntemi 61

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. 62