İşletim Sistemlerine Giriş



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

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

İşletim Sistemlerine Giriş

İşletim Sistemlerine Giriş

İşletim Sistemleri (Operating Systems)

İşletim Sistemlerine Giriş

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

İşletim Sistemlerine Giriş

Sanal Bellek (Virtual Memory)

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

İşletim Sistemlerine Giriş

Bölüm 8: Ana Bellek 8.1

Bilgisayar İşletim Sistemleri BLG 312

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

Dosyalarda Farklı Yaklaşımlar. Kütük Organizasyonu 1

BELLEK YÖNETY. Bellek Yönetimi

İşletim Sistemlerine Giriş

İşlem Yönetimi (Process Management)

Bilgisayarların Gelişimi

İşletim Sistemlerine Giriş

İşletim Sistemleri (Operating Systems)

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

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

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

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

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

Bilgisayar İşletim Sistemleri BLG 312

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

Background (Arka Plan)

BİT in Temel Bileşenleri (Yazılım-1)

BLM 112- Programlama Dilleri II. Hafta 5 İşaretçiler (Pointers)

1. Mutabakat.zip dosyası açılır. 2. Mutabakat klasörü içindeki Mutabakat.exe dosyası çalıştırılır.

Özyineleme (Recursion)

En yaygın kullanılan işletim sistemlerine örnek olarak; Microsoft Windows, Mac OS X, Linux, Android ve ios örnek verilebilir.

Bilgisayar İşletim Sistemleri BLG 312

İşletim Sistemi. BTEP205 - İşletim Sistemleri

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

Bilgisayar Programı Nedir?

YZM 3102 İşletim Sistemleri

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

ÖĞRENCİ LABORATUARLARI İÇİN OPTİMUM ÇÖZÜMLER

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, Kabuk ve diğer temel kavramlar) Öğr.Gör. Dr. Dr. Şirin KARADENİZ

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

{\} /\ Suhap SAHIN Onur GÖK

İşletim Sistemlerine Giriş

Üst Düzey Programlama

BM-311 Bilgisayar Mimarisi

& WIN 32 DEN BAKIŞ AÇISI İSMAİL YALÇIN

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

Bilgisayarım My Computer

Yazılım Çeşitleri. Uygulama Yazılımları. İşletim Sistemleri. Donanım

Çanakkale Onsekiz Mart Üniversitesi. Bilgisayar Mühendisliği Bölümü

Bu işleçlerin dışında, aşağıda belirtilen karşılaştırma işleçlerinden de yararlanılır.

Bilgisayarım My Computer. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

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

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

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

Mikrobilgisayarlar ve Assembler. Bahar Dönemi. Vedat Marttin

Merkezi İşlem Birimi (CPU)

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

Ünite-3 Bilgisayar Yazılımı.

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

PROGRAMLAMAYA GİRİŞ DERS 2

Proses. Prosesler 2. İşletim Sistemleri

PROSESLER. Proses. Proses

Bilgisayar İşletim Sistemleri BLG 312

Linux Dosya ve Dizin Yapısı

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

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

(Random-Access Memory)

HSancak Nesne Tabanlı Programlama I Ders Notları

Yrd. Doç. Dr. Caner ÖZCAN

İşletim Sistemleri (Operating Systems)

Algoritmalar ve Programlama. Algoritma

TEMEL BİLGİSAYAR BİLİMLERİ. Programcılık, problem çözme ve algoritma oluşturma

İşletim Sistemlerine Giriş

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

Göstericiler (Pointers)

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

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ı

BİL1002 Bilgisayar Programlama PROF.DR.TOLGA ELBİR

Linux Kurulumu. Bilgisayar Mühendisliği. 11 Mayıs 2011

Sistem Programlama. (*)Dersimizin amaçları Kullanılan programlama dili: C. Giriş/Cıkış( I/O) Sürücülerinin programlaması

İşletim Sistemlerine Giriş

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

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

1. HAFTA. Öğr. Gör. KORAY AKİ

MapCodeX MapLand Kullanım Kılavuzu

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#2: ALGORİTMA ANALİZİ

Bölüm Bazı Temel Konseptler

İşletim Sistemleri. Discovering Computers Living in a Digital World

Linux işletim sistemlerinde dosya hiyerarşisinde en üstte bulunan dizindir. Diğer bütün dizinler kök dizinin altında bulunur.

Java, Python ve Ruby Dillerinin Performans Karşılaştırması

Dersin Konusu ve Amaçları: Ders P lanı: Bölüm 1: Bilgi Teknolojilerinde Temel Kavramlar

William Stallings Computer Organization and Architecture 9 th Edition

MOBİL UYGULAMA GELİŞTİRME

Yrd. Doç. Dr. Caner ÖZCAN

Yazılım Kurulumu ve Yönetimi -2010

PARDUS TOPLULUK SÜRÜMÜ 3.0 KDE KURULUMU

Transkript:

İşletim Sistemlerine Giriş Bellek Yönetimi (Memory Management) İşletim Sistemlerine Giriş - Ders08 1

Bellek Yönetimi Bellek önemli bir kaynaktır ve dikkatli yönetilmelidir. İşletim sistemlerinde bellek hiyerarşisini yöneten parçaya bellek yöneticisi(memory manager) denilir. Bellek yöneticisinin görevi, bellein hangi parçalarının kullanımda olduğunu, hangi parçalarının kullanılmadığını izlemek, süreçlere bellek tahsis etme(allocate), tahsis edilen belleği geri almak ve bellek ile disk arasındaki takas işlemlerini gerçekleştirmektir. İşletim Sistemlerine Giriş - Ders08 2

Basit Bellek Yönetimi Bellek yönetim sistemleri iki temel sınıfa ayrılabilir: * Çalışma zamanında süreçleri bellek ile disk arasında yer sürekli yer değiştirenler. (takaslama, sayfalama). Süreçlerin bu şekilde disk ile bellek arasında yer değiştirilmesinin nedeni, belleğin boyutunun yetersiz olmasıdır. * Değiştirme işlemi yapmayanlar. İşletim Sistemlerine Giriş - Ders08 3

Sayfalama ve Takaslama olmadan Tekdüze programlama En kolay bellek yönetim şeması aynı anda sadece tek bir programın çalıştırılmasıdır. Belleği bu program ve işletim sistemi arasında paylaştırmaktır. Bu modelin 3 değişik sürümü vardır. İşletim Sistemlerine Giriş - Ders08 4

Sayfalama ve Takaslama olmadan Tekdüze programlama a) modeli mainframe sistemlerde ve minicomputer lerde kullanıldı. b) modeli gömülü(embedded) sistemlerde kullanılır. Palm c) modeli ilk kişisel bilgisayarlarda kullanılmıştır, sistemin ROM daki kısmına BIOS denilir. Bu şekildeki sistemde aynı anda tek bir süreç çalışır. Belleğe yüklenir ve çalıştırılır.yeni program gelirse eskisinin üzerine yazılır ve yenisi çalıştırılır. İşletim Sistemlerine Giriş - Ders08 5

Sabit Bölümler ile Çoklu Programlama (multi programming with Fixed Partitions) Çok basit gömülü sistemler haricinde tekdüze programlama artık kullanılmaz. Modern işletim sistemleri aynı anda birden fazla sürecin çalışmasına olanak verir. Bir süreç bloklandığında başka bir süreç çalışmaya başlar. Bu şekilde işlemci kullanımı artar. İşletim Sistemlerine Giriş - Ders08 6

Sabit Bölümler ile Çoklu Programlama (multi programming with Fixed Partitions) Çoklu programlamayı sağlamanın en kolay yolu belleği n adet bölüme ayırmaktır. Bu bölümler eşit ya da mümkünse farklı boyutta olmalıdır. Ayrılan her bölüm için bir süreç kuyruğu bulunur. Bir iş geldiği zaman kendisini tutabilecek olan en küçük boyutlu bölümün girdi kuyruğuna eklenir. Bir süreç eklendiği bölümün hepsini kullanmaz ise bu kullanılmayan bellek boşuna kullanılmış ve israf edilmiş olur. İşletim Sistemlerine Giriş - Ders08 7

Sabit Bölümler ile Çoklu Programlama (multi programming with Fixed Partitions) İşletim Sistemlerine Giriş - Ders08 8

Sabit Bölümler ile Çoklu Programlama (multi programming with Fixed Partitions) İşletim Sistemlerine Giriş - Ders08 9

Sabit Bölümler ile Çoklu Programlama (multi programming with Fixed Partitions) Gelen işleri bu şekilde boyutlarına göre kuyruklara eklediğimizde, 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 iş boş yer olmasına rağmen bekler. İşletim Sistemlerine Giriş - Ders08 10

Sabit Bölümler ile Çoklu Programlama (multi programming with Fixed Partitions) İşletim Sistemlerine Giriş - Ders08 11

Sabit Bölümler ile Çoklu Programlama (multi programming with Fixed Partitions) Bunun yerine tüm süreçler bir kuyruğa konulur ve sıraları geldiğinde uygun bellek gözüne konulurlar. Bu yöntem OS/360 larda kullanılmıştır. İşletim Sistemlerine Giriş - Ders08 12

Sabit Bölümler ile Çoklu Programlama (multi programming with Fixed Partitions) İşletim Sistemlerine Giriş - Ders08 13

Yerdeğiştirme (relocation) ve Koruma (protection) Çoklu programlamada yerdeğiştirme ve koruma birer problemdir. Farklı süreçler bellekte farklı adreslerde çalıştıralacaktır. Programın bağlama işlemi yapıldığında, bağlayıcının programdaki kullanıcı prosedürlerinin, kütüphane prosedürlerinin, ana programın adreslerini bilmesi gerekmektedir. Bu bilgileri bilebilmesi için ve program kodlarını bu adreslere göre düzenleyebilmesi için programın bellekte hangi adrese konulduğunu bilmesi gereklidir. İşletim Sistemlerine Giriş - Ders08 14

Yerdeğiştirme (relocation) ve Koruma (protection) Bu bilgi süreç belleğe yüklendiğinde belirli olduğu için, bağlayıcı sürecin her zaman 0 adresine konulduğunu varsayar. Örneğin, bağlayıcının oluşturduğu ikili(binary) programın ilk komutu 100 numaralı bellekteki bir prosedürü çalıştırsın. Eğer bu program 100 numaralı adresten itibaren konulmuşsa program doğru çalışmayacaktır. 100 numaralı adreste işletim sistemi bulunmaktadır ve işletim sisteminin olduğu bellek bölgesine geçilir. Bu hatalıdır. Asıl çalıştırılması gerekli olan prosedür 100+100. bellek gözündedir. İşletim Sistemlerine Giriş - Ders08 15

Yerdeğiştirme (relocation) ve Koruma (protection) Bu probleme yer değiştirme problemi denilmektedir. *Birinci çözüm; program belleğe yüklenirken tüm adres değerlerine programın başlangıç bellek adresi eklenir. Bu işlemin yapılabilmesi için, programdaki hangi kelimelerin (word) adres, hangilerinin işleç olduğunu bağlayıcının bilmesi gereklidir bu işlem bir liste veya bitmap ile çözülmüştür. Belleğin korunmasıda son derece önemlidir. Bu işlem için IBM belleği 2Kb lık parçalara ayırmış ve bu parçalara Koruma kodları konulur. İşletim Sistemlerine Giriş - Ders08 16

Yerdeğiştirme (relocation) ve Koruma (protection) *İkinci çözüm; taban yazmacı(base register) ve sınır yazmacı (limit register) adı verilen donanım yazmacı ile çözümdür. Bir süreç belleğe aktarıldığında, bellekteki başlangıç adresi taban yazmacına, bitiş adresi de sınır yazmacına yazılırlar. Bir adres istenildiğinde, bu adrese taban yazmacının'ın değeri eklenir; bulunan bellek adresinin sınır yazmacı değerini geçip geçmediği kontrol edilir. Bu iki yazmaç değeri kullanıcı programları tarafından değiştirilemez. İşletim Sistemlerine Giriş - Ders08 17

TAKASLAMA(SWAPPING) Tüm aktif süreçler bazen bellekte yer olmadığı için bellekte aynı anda bulunamazlar. Bu süreçlerden bir kısmı diskte bulunmalıdır. Diskte bulunanan süreçler dinamik olarak belleğe yüklenirler. Sürecin tümü çalışırken belleğe getirilir, biraz çalışır ve sonra diske kaydedilir. Bu işleme takaslama(swapping) denilir. İşletim Sistemlerine Giriş - Ders08 18

TAKASLAMA(SWAPPING) İşletim Sistemlerine Giriş - Ders08 19

TAKASLAMA(SWAPPING) Diğer bir strateji sanal bellek(virtual memory) dir. Programlara, sadece bir kısmı bellekte olmasına rağmen tamamı bellekteymiş gibi çalışmasına olanak sağlar. Sayfalama işlemi bellekte delikler oluşturabilir. Tüm süreçleri mümkün olan en aşağıya itmek bellekte kullanılabilir bölümler açar. Bu işleme disk sıkıştırma (disk compaction) denilir. İşletim Sistemlerine Giriş - Ders08 20

TAKASLAMA(SWAPPING) Bir süreç oluşturulduğunda ya da takas ile belleğe geldiğinde ne kadar bellek tahsis edilmelidir? Eğer tüm süreçler sabit boyutlu olsalardı bu işlem kolay bir şekilde yapılırdır. İşletim sistemi belirli boyutta bir belek alanı tahsis eder. Bununla birlikte bir sürecin veri bölgesi(heap) ve/veya yığın bölgesi(stack) büyür. İşletim Sistemlerine Giriş - Ders08 21

TAKASLAMA(SWAPPING) Bu dinamik büyümelerde eğer büyümenin gerçekleştiği yönde başka süreç varsa mevcut süreç ya başka bir bellek bölgesine taşınacak ya da takaslama işlemi gerçekleştirilecektir. İşletim Sistemlerine Giriş - Ders08 22

BitMap ler ile Bellek Yönetimi Bellek dinamik olarak tahsis ediliyorsa, işletim sistemi bu işi yönetmelidir. Bellek kullanımını inceleyebilmek için iki yöntem bulunur: 1. Bitmap ler 2. Boş elemanlar listesi (free list) İşletim Sistemlerine Giriş - Ders08 23

BitMap ler ile Bellek Yönetimi Bitmap lerde, bellek tahsis edilecek minumum birimlere parçalanır. Her birimin sabit boyutu vardır. Her birim birkaç 8lik(word) kelime olabileceği gibi Kb. larda olabilir. Bitmap de bellekte bulunanan ve tahsis edilecek olan her birim için 1 bit olur. Bu bit 0 ise bellek birimi boş, 1 ise bu bellek birimi doludur. İşletim Sistemlerine Giriş - Ders08 24

BitMap ler ile Bellek Yönetimi Tahsis edilecek olan bellek biriminin boyutu son derece önemlidir. Küçük seçilirse bitmap büyür. Diğer problem, k boyutunda bir süreç belleğe konulmak istendiğinde tüm bitmap taranarak arka arkaya gelen k adet boş alan(0) bulmaktır. Bu işlem uzun sürer. İşletim Sistemlerine Giriş - Ders08 25

Bağlı Listeler ile Bellek Yönetimi Diğer yöntem bellekteki dolu ve boş alanların bağlı liste yapısı şeklinde gösterilmesidir. İşletim Sistemlerine Giriş - Ders08 26

Bağlı Listeler ile Bellek Yönetimi Süreç sonlandığında ya da takaslandığında bu algoritma boş alanların birleştirilmesine olanak verdiği için yararlıdır. İşletim Sistemlerine Giriş - Ders08 27

Bağlı Listeler ile Bellek Yönetiminde Bellek tahsis etme yöntemleri Bellek yöneticisinin ne kadar bellek tahsis etmesi gerektiğini bildiğini varsayarak, birkaç algoritmaya bakalım. 1. İlk Uygun Yer Algoritması (First Fit) Bellek yöneticisi bağlı listeyi başından sonuna doğru tarar. Süreç için gerekli olan bellek boyutunu sağlayan ilk bulduğu boş bellek bölümünü sürece tahsis eder. Eğer bellek bölgesi sürecin istediğinden daha büyük ise belleği ikiye ayırır. Birinci parça sürecin istediği miktar, ikinci parça kalan kısımdır. İşletim Sistemlerine Giriş - Ders08 28

Bağlı Listeler ile Bellek Yönetiminde Bellek tahsis etme yöntemleri 2. Sonraki Uygun Yer Algoritması (Next Fit) İlk uygun yer algoritması ile aynı şekilde çalışır. Ancak bu algoritma en son bulduğu uygun yer bilgisini saklar. Bir sonraki aramada bağlı listenin başından değil, saklamış olduğu düğümden sona doğru aramaya başlar. İşletim Sistemlerine Giriş - Ders08 29

Bağlı Listeler ile Bellek Yönetiminde Bellek tahsis etme yöntemleri 3. En Uygun Yer Algoritması (Best Fit) Bu algoritma başından sonuna kadar tüm listeyi tarar. Süreç için gerekli olan bellek boyutuna en uygun olan en küçük hacimli boş bellek alanını listeden bulur. Bulmuş olduğu alanı sürece tahsis eder. En uygun yer algoritması, ilk uygun yer algoritmasına göre yavaştır ve geride bıraktığı boş bellek bölgeleri ilk uygun yer algoritmasına göre daha kullanışsızdır. İşletim Sistemlerine Giriş - Ders08 30

Bağlı Listeler ile Bellek Yönetiminde Bellek tahsis etme yöntemleri 4. Hızlı Uygun Yer Algoritması (Quick Fit) Bu algoritma en fazla istenilen bellek boyutları için ayrı ayrı bağlı listeler tutar. Örneğin, bir tabloda 1..n arası girdi vardır. 1. girdi 4KB lık boşlukların listesini göstersin, 2. girdi 8 KB lık, 3. girdi 12 KB lık,... İşletim Sistemlerine Giriş - Ders08 31

İşletim Sistemlerine Giriş Bellek Yönetimi (Memory Management) İşletim Sistemlerine Giriş - Ders08 32