Bilgisayar İşletim Sistemleri BLG 312

Benzer belgeler
BELLEK YÖNETY. Bellek Yönetimi

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

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

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

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

Bilgilerin Uzun Vadeli Saklanması

Bölüm 8: Ana Bellek 8.1

Dosyaların Özellikleri (Attribute) Dosya İşlemleri. İki Seviyeli Katalog Sistemleri. Tek Seviyeli Katalog Sistemleri. Hiyerarşik Katalog Sistemleri

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

Programlama Dilleri 1. Ders 12: Belirleyiciler ve Niteleyiciler

Bilgisayar İşletim Sistemleri BLG 312

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

Merkezi İşlem Birimi MİKROİŞLEMCİ SİSTEMLERİ. MİB Yapısı. MİB in İç Yapısı. MİB Altbirimleri. MİB in İç Yapısı

İşletim Sistemlerine Giriş

İşletim Sistemlerine Giriş

Bilgisayar İşletim Sistemleri BLG 312

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

Giriş. geleneksel işletim sistemlerinde her prosesin. aynı adres uzayında birden fazla akış kontrolü gerekebilir

Sanal Bellek (Virtual Memory)

Proses. Prosesler 2. İşletim Sistemleri

PROSESLER. Proses. Proses

Merkezi İşlem Birimi MİKROİŞLEMCİ SİSTEMLERİ. MİB Yapısı. MİB Altbirimleri. Durum Kütüğü. Yardımcı Kütükler

İşletim Sistemlerine Giriş

İşletim Sistemlerine Giriş

Bilgisayar İşletim Sistemleri BLG 312

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

YZM 3102 İşletim Sistemleri

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

Bilgisayar İşletim Sistemleri BLG 312

Giriş. İplik Modeli. geleneksel işletim sistemlerinde her prosesin özel adres uzayı ve tek akış kontrolü var.

SPARC v8 İŞLEMCİ SİMÜLASYONU

Yrd. Doç. Dr. Caner ÖZCAN

İşletim Sistemleri (Operating Systems)

Yrd. Doç. Dr. Caner ÖZCAN

BM-311 Bilgisayar Mimarisi

Excel Nedir? Microsoft Excell. Excel de Çalışma sayfası-tablo

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

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

İşletim Sistemlerine Giriş

Bilgisayarda Programlama. Temel Kavramlar

2011 Bahar Dönemi. Öğr.Gör. Vedat MARTTİN

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

Mikrobilgisayarlar ve Assembler. Bahar Dönemi. Vedat Marttin

DigiPara Liftdesigner Sayfa Şablonları Geliştirici Eğitime Hoş Geldiniz

x86 Ailesi Mikroişlemciler ve Mikrobilgisayarlar

Java Temel Özellikleri

BM-311 Bilgisayar Mimarisi

Yazılım Mühendisliğine Giriş 2018 GÜZ

Dr. Fatih AY Tel: fatihay@fatihay.net

Dr. Feza BUZLUCA İstanbul Teknik Üniversitesi Bilgisayar Mühendisliği Bölümü

Background (Arka Plan)

Bölüm 9: Sanal Bellek

Öğr. Gör. Ümit ATİLA

TBİL-405 Mikroişlemci Sistemleri Bölüm 2 1- % %01010 işleminin sonucu hangisidir? % %11000 %10001 %10101 %00011

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

PROGRAMLAMAYA GİRİŞ DERS 2

Program Nedir? Program, bir problemin çözümü için herhangi bir programlama dilinin kuralları ile oluşturulmuş komut kümesidir.

Fiziksel Veritabanı Modelleme

Önemli noktalar. Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance

ALGORİTMA VE PROGRAMLAMA II

TEMEL BİLGİ TEKNOLOJİLERİ KULLANIMI

BİLGİSAYAR ORGANİZASYONU

BM-311 Bilgisayar Mimarisi

OSI REFERANS MODELI-II

Veri ve Dosya Yapıları. Kütük Organizasyonu 1

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

Bilgi ve iletişim teknolojileri Dersi Ders Notlarıdır?

Bölüm 10. Altprogramların gerçeklenmesi ISBN

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

İŞ SIRALAMA. İş Sıralama 6. İşletim Sistemleri

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

DERS 12 PIC 16F84 ile KESME (INTERRUPT) KULLANIMI İÇERİK

Komutların Yürütülmesi

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

Programlama Dilleri. C Dili. Programlama Dilleri-ders02/ 1

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

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

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

Ders Notlarının Creative Commons lisansı Feza BUZLUCA ya aittir. Lisans:

Yazılım Mühendisliğine Giriş 4. Hafta 2016 GÜZ

HSancak Nesne Tabanlı Programlama I Ders Notları

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

Bilgisayarım My Computer

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

Bölüm 5. Adlar(Names), Bağlamalar(Binding s),tip Kontrolleri (Type Checking), ve Etki Alanları ( Scopes) ISBN

Günümüz bilgi toplumunda bilgisayar, her alanda kendine yer edinmiş ve insana, bir çok işlemde yardımcı olarak büyük kolaylık sağlamaktadır.

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

William Stallings Computer Organization and Architecture 9 th Edition

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

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

C Programlama Dilininin Basit Yapıları

BM-311 Bilgisayar Mimarisi

NETWORK BÖLÜM-5 OSI KATMANLARI. Öğr. Gör. MEHMET CAN HANAYLI CELAL BAYAR ÜNİVERSİTESİ AKHİSAR MESLEK YÜKSEKOKULU 1/27

İşletim Sistemi. BTEP205 - İşletim Sistemleri

MİKROBİLGİSAYAR SİSTEMLERİ VE ASSEMBLER

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

Sabit ve Taşınabilir Diskler BÖLÜM-2 Pata Diskler İçin Master-Slave Ayarları Disk Biçimlendirme Harici Diskler Olası Sabit Disk Arızaları RAID

Bilgisayar Yapısı MİKROİŞLEMCİ SİSTEMLERİ. Bilgisayar Temel Birimleri. MİB Yapısı. Kütükler. Kütükler

BM-311 Bilgisayar Mimarisi

5. PROGRAMLA DİLLERİ. 5.1 Giriş

Transkript:

Bellek Yönetim Birimi Bilgisayar İşletim Sistemleri BLG 312 Bellek Yönetimi - 1 bellek kritik bir kaynaktır etkin kullanılmalı paylaşılmalı bellek yönetim birimi var Bellek Yönetim Biriminin Temel Amaçları yeniden yerleştirme (relocation) prosese ayrılan fiziksel bellek her çalışmada farklı olabilir fiziksel ve mutlak adresler kullanılmaz koruma (protection) prosesler birbirlerinin bellek bölgelerine erişemez paylaşma (sharing) prosesler bazı bellek alanlarını paylaşmak isteyebilir (örn. kod / veri paylaşımı) Bellek Yönetim Biriminin Temel Amaçları mantıksal organizasyon (logical organization) geleneksel sistemlerde tek boyulu lineer adres uzayı (0 max) programlar modüller / prosedürler şeklindedir programın mantıksal bölümleri adres yönetimine yansırsa daha etkin olur fiziksel organizasyon ana bellek ve ikincil bellek arası aktarım konuları Bellek Yönetim Fonksyonları adlandırma fonksyonu (naming) (N) kullanıcının tanımladığı değişken referansın yapıldığı birim ilişkilendirmesi bellek fonksyonu (memory) (M) değişkenler fiziksel adres dönüşümü içerik fonksyonu (contents) (C) bellek adresinden taşıdığı değerin üretilmesi N M C kullanıcı değişkeni sistem değişkeni bellek adresi değer (sembol tablosu) Bellek Yönetim Fonksyonları fonksyonların zamanları var M bağlanma (link) aşamasında N yüklenme (load) aşamasında C bellek atamasıyla değişikliğe uğrar bağdaştırma (binding) bağdaştırma zamanı M ve N sistem açısından önemli erken/geç bağdaştırma (early/late binding) 1

Adlandırma aynı değişken adı farklı bağlamlarda farklı yerlere işaret edebilir örnek: aynı isimli yerel değişkenler isimleri farkli birimlerle bağdaştırma problemini derleyici çözer örnek program: kullanıcı ve sistem (derleyici) tarafında tanımlı veri yapıları ve prosedürler var programın ayrı ayrı derlenen parçaları: modül her biri 0 adresine göre kodlanmış modüller birbirlerinin veri ve prosedürlerine erişir sadece veri ve prosedür adlarını bilir (taban adresi belli değil) bağlanma aşaması: program belleğe yüklenirken adres bilgisinin sağlanması gerek bağlanma 3 şekilde: tüm prosedürler derleme öncesi belli; bağlanmayı derleyici gerçekleştirir yüksek düzeyli diller destekler derleyicinin ürettiği kod doğrudan belleğe yüklenir veya sistem rutinleri ile bir bağlanma aşaması geçirir önceden derlenmiş modüller belleğe yüklenirken bağlanır bağlanma derleme ve yüklemeden ayrı bir adım linking loader iki adımı birleştirir 0 adresine göre kodlanmış adresleri düzenlenmesi (relocation) bağlanma yürütme anına ertelenir (late-binding) rutinler çağrıldıkça bağlanır bağlanma yöntemleri donanıma bağımlı modüller 0 adresine göre göreceli derlenir (relocatable module) modül belleğe yüklenirken başlangıç adresi taban saklayıcısına yüklenir diğer adresler toplanarak hesaplanır Bağlayıcı Yükleyici (Linking Loader) tek geçişli yükleme sırasında bağlama da gerçekleşir her modül şu bilgileri yükleyiciye bildirir: modül içi tanımlı ve diğer modüllerin çağırabildiği isimler dışarıda tanımlı olan ama modül içinde kullanılan isimler bağlanmış modül içinde diğerleri ile bağlandıktan sonra yeniden hesaplanacak adresler 2

Bağlayıcı Yükleyici (Linking Loader) yükleyici dışarıda tanımlı isimler için tablo oluşturur isim önceden yüklenmiş bir modülde ise tabloda isme karşılık bağlanmış modülün başına göre göreceli adresi isim yüklenmemiş bir modülde ise adres belli olunca hesaplanacaklar listesine eklenir Bağlayıcı Yükleyici (Linking Loader) modüller belleğe birbirini izler şekilde yüklenir adres referansları önceki modüle göre ötelenmeli İki Aşamalı Yöntem bağlanma ve yüklenme ayrı adımlar önce bağlanma sonucunda bağlı tek bir modül (load module) tüm bağlanma işlemleri yapılmış yükleyici ayrı çalışır Yöntemlerin Karşılaştırılması ayrı iki adım olmasının avantajları programın her koşturulmasında bağlanma gerekmez sadece yükleyici bellekte daha az yer kaplar problem: bağlanma sonrası modüller dış ortama yazılır; yükleyici okumak zorunda G/Ç için zaman kaybı sık değişen veya az koşturulan programlar için tek aşamalı yöntem daha iyi çözüm Bellek Ayırma Yöntemleri bellek ayırma: programın bellek ihtiyacının karşılanması programın tamamının bellekte olması gerekli değil gerektikçe yüklenir daha etkin bellek kullanımı daha yüksek maliyetli Statik Dinamik Bellek Ayırma bağlanma zamanı göz önüne alınırsa: mutlak adresli programlama program yazılırken mutlak adresler verilir simgesel programlama derleyici / birleştirici simgesel isimlerden bellek adresleri üretir 3

Statik Dinamik Bellek Ayırma statik: adresler belleğe yüklenirken belli dinamik bu adreslere bellek şu şekillerde ayrılabilir: sabit mutlak adresler üretilir bağlanma ve yüklenme derleyici içinde hızlı) yeniden yerleştirilebilir (relocatable) adresler mutlak adresleri yükleyici belirler yürütme sırasında adresler değişmez ilk yüklemeden sonra kod bellekte değişmez yeniden yerleştirilebilir adresler referans anında mutlak değer alır Örtüşme (Overlay) iki modül aynı bellek alanına yerleştirilebilir: her ikisinin de aynı anda bellekte olması gerekli değilse, bağlam saklanabiliyorsa gerçek bellek kapasitesinden daha çok bellek isteyen programlar koşturulabilir bağlayıcı ve yükleyicinin işi daha karışık örtüşme tabloları: istenen modül yoksa yüklenmeli modül örtüşme yapılacak alana sığmayabilir! örtüşme tabloları programcı tarafından yapılmalı Modern işletim sistemlerinde sayfalama + segmanlama + görüntü bellek kullanılıyor. programlar mantıksal bölümlerden oluşur segmanlama programın adreslemesinin lojik yapısını yansıtır program segmanlara ayrılır segman boyu farklı olabilir örneğin segman veri alanı veya prosedür olabilir adres = segman başl. adresi + segman içi konum programın segmanları bellekte ayrı yerlerde olabilir diskte de olabilir; gerekince yüklenir adres hesabı özel donanım gerektirir adres: (s,d) s: segman adı d: kayıklık her proses için segman tablosu segman bellekte mi? bayrağı segmanın taban adresi segmanın uzunluğu (limit) erişim hakları bitleri segman tablosu başı bir saklayıcıda tutulur segman tablosu saklayıcısı + s (s,d) segman tablosu bayrak koruma bitleri limit taban + d Bellek (sekizli) segman başı limit (sekizli sayısı) adres hesabı öncesi bayrak kontrol edilir bellekte yoksa segman hatası kesme olur segman belleğe yüklenir yer yoksa bir segman bellekten atılır segman boyları eşit olmayabilir bellekte parçalanma segman tablosu saklayıcısı koşan prosesin segman tablosunu gösterir segman tablosu başı saklanır 4

segmanlama faydaları örtüşme işini sistem yapar bağlanma: modüller segmanlar olarak yazılır yüklenme segman tablosu doldurulmasıyla olur paylaşılabilir kodların paylaşımı daha kolay segman bilgileri biren fazla tabloya konur adresleme donanım ile yapılıyor ama bellek disk akışı düzenlemeli (Paging) bellek sabit uzunluklu fiziksel bloklara ayrılır sayfa çerçevesi program ve veri alanları da aynı sabit uzunluklu lojik sayfalara ayrılır sayfa her çerçeveye bir sayfa yüklenir adres: (p,d) p: sayfa adı d: sayfa içindeki kayıklık her prosesin sayfalarına ilişkin bilgiler sayfa tablosunda sayfa tablosundaki bilgiler: sayfa bellekte mi? bayrağı sayfanın yeri (bellek/ikincil bellek adresi) erişim hakları için koruma bitleri sayfa tablosu saklayıcısı koşan prosesin sayfa tablosuna işaret eder sayfa tablosu saklayıcısı + (p,d) sayfa tablosu bayrak koruma bitleri Mantıksal Adres sayfa adresi d Bellek (istenen göz) sayfa başı adres hesabı öncesi bayrak kontrol edilir bellekte yoksa: sayfa hatası kesmesi (page fault) sayfa ikincil saklama alanından ana belleğe taşınır koruma bitleri kontrol edilir boş çerçeveler bilgisini işletim sistemi tutar ana bellek ikincil bellek sayfa aktarımı = sayfa trafiği nın yararları: segmantasyonun sağladığı yararlar aynen var adres hesabı donanım ile (hızlı) ve kullanıcıya saydam bellek ayırma daha basit (sayfa boyu sabit) Sorunlar sayfa boyu programın mantıksal biriminin tamamını içerecek büyüklükte olmayabilir parçalanma (fragmentation) : bellekte kullanılmayan alanlar oluşur 5

dış parçalanma (external fragmentation) bloklar arasında boşluklar oluşması iç parçalanma (internal fragmentation) blok içinde boşluk oluşması sayfalama varsa dış parçalanma oluşamaz sayfa boyu belirlemede dikkat edilecekler: sayfa trafiği iç parçalanma büyük sayfa boyu ana bellek ikincil bellek aktarımlarında bir büyük sayfa aktarmak daha kolay proses daha az sayfadan oluşur sayfa trafiği azalır iç parçalanma artar küçük sayfa boyu sayfa trafiği artar iç parçalanma azalır Sonuç: iç parçalanma ve sayfa trafiği maliyetleri arası denge kurulmalı Örnek (iç parçalanma): prosesin boyu 1545 sözcük sayfa boyu 1500 sözcük ise: proses toplam 2 sayfa 1500 sözcük sayfa boyu 500 sözcük ise: proses toplam 4 sayfa 500 sözcük boş alan 45 sözcük 1455 sözcük 45 sözcük 455 sözcük lı segmanlar sayfalara bölünür her segmanın sayfa tablosu var adres: (s,p,d) s: segman numarası p: segman içindeki sayfa tablosuna erişim için bilgi d: sayfa içi kayıklık segman tablosu saklayıcısı (s,p,d) Bellek lı s segman tablosu p sayfa tablosu adres hesabı üç aşamalı donanım ile gerçeklense bile uzun sürer asosyatif saklayıcılar kullanılır TLB B K sayfa adresi limit d sayfa sayfa limit tablosu taban adresi istenen göz 6

lı hem sayfalamanın hem de segmantasyonun faydaları aynen var segmanlama olduğundan paylaşım ve bağlanma daha kolay sayfalama olduğundan bellek ayırma daha kolay dış parçalanma yok TLB kullanımı ile adres hesabı kabul edilebilir sürelere gelir 7