Sayfalama - Vikipedi
İçeriğe atla
Ana menü
Gezinti
  • Anasayfa
  • Hakkımızda
  • İçindekiler
  • Rastgele madde
  • Seçkin içerik
  • Yakınımdakiler
Katılım
  • Deneme tahtası
  • Köy çeşmesi
  • Son değişiklikler
  • Dosya yükle
  • Topluluk portalı
  • Wikimedia dükkânı
  • Yardım
  • Özel sayfalar
Vikipedi Özgür Ansiklopedi
Ara
  • Bağış yapın
  • Hesap oluştur
  • Oturum aç
  • Bağış yapın
  • Hesap oluştur
  • Oturum aç

İçindekiler

  • Giriş
  • 1 Sayfalama modları
  • 2 Sayfa ve sayfa düzeni
  • 3 Sanal adres numarasının gerçek adres numarasına dönüştürülmesi
    • 3.1 Sanal = Gerçek işlemi
  • 4 Sayfa tablosu
    • 4.1 Sayfa tablosu için gerekli depolama (saklama) boyutu ve kullanılan anabellek miktarının azaltılması
  • 5 Sayfa hatası
    • 5.1 Sayfa hatası denetimi (Paging Supervisor) ve sayfa değişimi (takas)
      • 5.1.1 Değiştirme (Takas) için kullanılabilecek diğer algoritmalar
  • 6 Kalıcı ve Yerleşik Sayfalar
  • 7 Kaynakça
  • 8 Ayrıca bakınız
  • 9 Dış bağlantılar

Sayfalama

  • العربية
  • Български
  • Català
  • Čeština
  • Deutsch
  • English
  • Español
  • Eesti
  • Euskara
  • فارسی
  • Suomi
  • עברית
  • Hrvatski
  • Magyar
  • İtaliano
  • 日本語
  • 한국어
  • Lietuvių
  • Монгол
  • Bahasa Melayu
  • Nederlands
  • Norsk bokmål
  • Polski
  • Português
  • Русский
  • Simple English
  • Slovenčina
  • Slovenščina
  • Српски / srpski
  • Svenska
  • Українська
  • 中文
Bağlantıları değiştir
  • Madde
  • Tartışma
  • Oku
  • Değiştir
  • Kaynağı değiştir
  • Geçmişi gör
Araçlar
Eylemler
  • Oku
  • Değiştir
  • Kaynağı değiştir
  • Geçmişi gör
Genel
  • Sayfaya bağlantılar
  • İlgili değişiklikler
  • Kalıcı bağlantı
  • Sayfa bilgisi
  • Bu sayfayı kaynak göster
  • Kısaltılmış URL'yi al
  • Karekodu indir
Yazdır/dışa aktar
  • Bir kitap oluştur
  • PDF olarak indir
  • Basılmaya uygun görünüm
Diğer projelerde
  • Vikiveri ögesi
Görünüm
Vikipedi, özgür ansiklopedi
Bu maddede kaynak listesi bulunmasına karşın metin içi kaynakların yetersizliği nedeniyle bazı bilgilerin hangi kaynaktan alındığı belirsizdir. Lütfen kaynakları uygun biçimde metin içine yerleştirerek maddenin geliştirilmesine yardımcı olun. (Mart 2020) (Bu şablonun nasıl ve ne zaman kaldırılması gerektiğini öğrenin)

Sayfalama ya da bellek adresleme, durgun sanal bellek sayfalarının ikincil bellekte (teker) saklanarak daha sonra ihtiyaç duyulduğunda ana belleğe yüklenmesi işlemini içerir. Bir diğer anlamı, adres uzayının belli oranlarda bloklara ayrılmasıdır. Sayfalama, bellek mahallerine ulaşımı ve adreslemeyi kolaylaştırır. 6502 mikroişlemcili bir sistemde 65536'lık adres uzayı 256 adet 256 Baytlık hayalı sayfalara ayrılır. Genelde 6502 işlemcili sitemlerde 1. sayfa yığın olarak ayrılırken 0. sayfaya bakış tabloları veya veri blokları yerleştirilir.

CPU bellekte okuma veya yazma yapacağı zaman ilk önce sadece tek bir bellek alanı veya G/Ç elemanı seçmek için ilgili adresi adres yoluna koyar. Çoğu 8-bitlik işlemciler 16-bitlik adres yoluna sahip olduğundan, 65536 değişik adresi tanımlayabilirler. Bu adres sahası 0000H ile FFFFH arasında olup, işlemcinin adresleme uzayını gösterir.

Sistemde 0000H ile FFFFH arasındaki 1KB'lık alan, kullanıcının ve sistem programının kullandığı RAM bölgesidir. 0400H ile 04FFH alanı sistemde olabilecek 256 değişik (PIA ve ACIA) giriş/çıkış elemanının adreslenmesine ayrılmıştır. Adres uzayının en üst kısımları, F800H ile FFFFH arasındaki alanı kaplayan 2KB ise, monitör programının bulunduğu ROM bölgesidir. Adres uzayındaki geri kalan alanlar boş tutulur.

Sayfalama modları

[değiştir | kaynağı değiştir]

Başlıca adresleme modları şunlardır:

  • Doğal adresleme (lnherent addressing)
  • Hemen adresleme (Immediate addressing)
  • Direkt adresleme (Direct Addressing)
  • Endirekt (Dolaylı) adresleme (lndirect Addressing)
  • Sıralı adresleme (Indexed addressing)
  • Bağımlı (izafi) adresleme (Relative addressing)

Sayfa ve sayfa düzeni

[değiştir | kaynağı değiştir]
sayfa ve sayfa düzeni

Günümüzde kullanılan sanal bellek sistemleri alanda yerellikten yararlanabilmek için programları belirli boyutlarda blok kümeleri şeklinde yerleştirirler. Bu belirli boyutlardaki blok kümeleri (öbekleri) “sayfa” olarak adlandırılır. Ana belleğin sayfalarla aynı boyutlarda bloklardan oluştuğu varsayılır. Bu varsayım “sayfa çerçevesi” (page frame) olarak nitelendirilir.

Sanal adres numarasının gerçek adres numarasına dönüştürülmesi

[değiştir | kaynağı değiştir]
Sanal bellekte, adreslerin yapısı “sanal sayfa numarası”(virtual page number) ve “sayfa eklemesi”(page offset) olmak üzere iki kısma ayrılmıştır.

Ana bellekte kullanılan gerçek adres numarası, gerçek adresin üst bölümünü, sayfa eklemesi ise gerçek adresin alt bölümünü oluşturur. Sayfa eklemesindeki bitlerin sayısı sayfanın boyutunu belirler ve değişim göstermez. Sanal adreslerle adreslenebilen sayfa sayısı gerçek adreslerle adreslenen sayfa sayısı ile örtüşmek zorunda değildir; sanal sayfa sayısının gerçek sayfa sayısının üzerinde olması sınırsız boyuttaki bellek izlenimini yaratmada esas alınan noktadır.

Herhangi bir hatayla karşılaşılmadıkça olağan sanal adres dönüştürme işlemi şu şekilde yapılır:

if (ADÖ && önbellek) { veriyi işlemciye ilet; } else if (!önbellek && ADÖ) { işlemciye = Ana_Bellek[ADÖ’ den gelen Gerçek Adres]; } else { olağan dönüştürme işlemini gerçekleştir; }

Sanal = Gerçek işlemi

[değiştir | kaynağı değiştir]

MVS, z/OS ve benzeri işletim sistemlerinde bazı kısımlar sanal=gerçek biçimine (virtual=real mode)sahiptirler; yani her sanal adres gerçek bir adrese karşılık gelmektedir.Bu kısımlar:

  • Kesme düzenekleri
  • Sayfa hatası denetimi ve sayfa tabloları
  • Giriş/ çıkış kanalları (I/O channels) tarafından erişilen veri arabellekleri (data buffers)
  • Giriş /çıkışların yönetiminde genelgeçer yöntemler uygulamayıp kendi arabelleklerine sahip olan ve çevre birimleri ile doğrudan iletişim kuran izlenceler (program)

Sayfa tablosu

[değiştir | kaynağı değiştir]
Bir sayfa tablosunun ana bellekteki yerini belirtmek için, donanımda sayfa tablosunun başlangıcını işaret eden bir yazmaç (register) bulunur. Bu yazmaç “sayfa tablosu yazmacı” olarak tanımlanır.

Sanal bellekte sayfalar, belleği dizinleyen bir tablo kullanılarak yerleştirilirler. Bu yapı “sayfa tablosu (page table)” olarak adlandırılır. Bellekte tutulan sayfa tablosu sanal bellek adresinin numarasına göre dizinlenmiştir ve ona karşılık gelen gerçek sayfa numarasını içerir. Her program, sanal adres uzayını, ana bellekteki bellek uzayına dönüştüren kendine ait bir sayfa tablosuna sahiptir. Sayfa tablosu, ana bellekte mevcut olmayan sayfaların kayıtlarını da tutabilir. Her sayfa tablosunda geçerli bit (1 veya 0) tutulur. Eğer bu bit mantıksal sıfıra eşit ise sayfa ana bellekte mevcut değil demektir ve “sayfa hatası (page fault)” oluşur. Eğer bit mantıksal bire işaret ediyorsa sayfa ana bellekte mevcut ve geçerli bir fiziksel adrese sahip demektir.

Sayfa tablosu için gerekli depolama (saklama) boyutu ve kullanılan anabellek miktarının azaltılması

[değiştir | kaynağı değiştir]
  1. Sayfa tablosunun boyutlarını sınırlayan bir sınır kaydı tutmak. Eğer sanal sayfa numarası sınır kaydının sınırını aşarsa kayıtlar sayfa tablosuna eklenmelidir. Bu teknik, bir işlem daha fazla alana ihtiyaç duyduğunda sayfa tablosuna büyüme yeteneği kazandırır. Sonuç olarak sanal adres uzayı yalnızca ihtiyaç duyulduğunda büyük tutulacaktır.
  2. Bölmelere ayırmak (segmentation): Çoğu dil iki boyutları büyüyebilen iki ayrı alan gerektirdiği için tek boyutta büyümenin yetersiz olduğu durumlarda sayfa tablosu ikiye bölünür. İki ayrı sayfanın farklı sınırlara sahip olması desteklenir. İki sayfa tablosu kullanımı adres uzayını da ikiye parçaya (segment) böler. Sınır kaydı her iki parça için de tutulur. MIPS mimarisi de bu tekniği desteklemektedir.
  3. Sanal adrese bir hesaba dayalı adresleme (hashing) işlevi eklenerek sayfa tablosu veri yapısının sadece gerçek sayfa sayısı kadar boyutta olması sağlanabilir.Bu yapıya ters çevrilmiş(inverted) sayfa tablosu adı verilir.
  4. Birden fazla seviyeli sayfa tabloları kullanılabilir.
  5. Sayfa tabloları kullanımı için gerekli ana bellek miktarının azaltılması sayfa tablolarının tekrar sayfalanması ile sağlanabilir.

Sayfa hatası

[değiştir | kaynağı değiştir]

Eğer başvurulan veri o anda ana bellekte bulunamıyorsa sayfa ana bellekte mevcut değil demektir ve “sayfa hatası (page fault)” oluşur. Sayfa hatası çok yüksek bulamama gecikmesine neden olur. Sanal bellek sistemleri tasarlanırken bu durumun yaratacağı yükü engellemek için bazı önlemler alınabilir.

  • Sayfalar yüksek erişim zamanını karşılayacak kadar büyük olmalıdır.
  • Sayfa hatası denetimi sağlanmalıdır.
  • Oluşan hatalar donanım yerine yazılımla çözülebilir.
  • Tümüne yazma (write-through) yöntemi çok masraflı olduğu için geri yazma(write-back) metodu kullanılır.

Sayfa hatası denetimi (Paging Supervisor) ve sayfa değişimi (takas)

[değiştir | kaynağı değiştir]

Sayfa hatası meydana geldiğinde, yönetim işletim sistemine bırakılır. Bu devir kural dışı durum (hata) işleyişi (exception mechanism) ile gerçekleştirilir. Yönetim işletim sistemine geçtiğinde, sayfayı bir sonraki sıradüzende (genelde teker) bulmalı ve istenen sayfayı ana bellekte nereye koyacağına karar vermelidir. Sanal adres tek başına sayfanın tekerin neresinde olduğunu belirtmek için yeterli olmadığından, sanal adres uzayında bulunan her sayfanın tekerde izini sürmek gerekir. İşletim sistemi bu işlem için her sanal sayfanın tekerde nerede saklandığını kaydeden veri yapıları yaratır. Bu veri yapısı sayfa tablosunda veya ayrı bir tabloda tutulabilir. İşletim sistemi aynı zamanda her gerçek sayfanın hangi uygulamalar ve hangi sanal sayfalar tarafından kullanıldığını takip etmek üzere ayrı bir veri yapısı daha oluşturur. Ana bellekteki tüm sayfalar kullanımdayken sayfa hatası oluşması durumunda, işletim sistemi bir sayfayı değiştirmek(takas yapmak) üzere seçmelidir. Sayfa hatalarının en aza indirilmesi amaçlandığından çoğu işletim sistemi yakın bir zamanda kullanılmayacağını varsaydığı bir sayfayı seçer. İşletim sistemlerin bu varsayımları geçmiş durum değerlendirmelerine dayanarak gelecek durumun tahmin edilmesine dayanır. Bu tahminlerde kullanılan algoritmaların başında en uzun zamandır kullanılmayanla değiştirme (least recently used (LRU)) gelir. İşletim sistemi en uzun zamandır kullanılmayan sayfanın daha yakın bir zamanda kullanılan sayfadan daha az gerekli olduğu varsayımı yaparak uzun zamandır kullanılmayan sayfayı istenen sayfayla değiştirmek üzere seçer.

En uzun zamandır kullanılmayan yönteminin kusursuz ve eksiksiz olarak uygulanması veri yapısının her bellek başvurusunda güncellenmesini gerektireceğinden oldukça masraflıdır. Bunun yerine birçok işletim sisteminde hangi sayfaların yakın zamanda kullanılıp hangilerinin kullanılmadığına dair iz sürülür. İşletim sisteminin yükünü hafifletmek için donanımda başvuru biti (reference/use bit) tutulabilir. Bu bit sayfanın her kullanımında kurulur. İşletim sistemi belirli aralıklarla bu bitleri temizler ve hangi sayfaların kullanılıp kullanılmadığı bilgisinin kaydını tutar. Bu bilgi ışığında, işletim sistemi bir sayfa değiştireceği zaman en uzun zamandır kullanılmayan; yani başvuru bitleri mantıksal sıfıra eşit olan sayfalar arasından bir seçim yapar.

Değiştirme (Takas) için kullanılabilecek diğer algoritmalar

[değiştir | kaynağı değiştir]

İlk Giren İlk Çıkar (First In First Out (FIFO)) Değiştirilmek üzere seçilen sayfa bellekte en uzun zamandır tutulan; belleğe diğerlerinden önce yüklenen sayfadır.

Son Giren İlk Çıkar (Last In First Out (LIFO)): Değiştirilmek üzere seçilen sayfa bellekte en kısa zamandır tutulan; belleğe en yakın zamanda yüklenen sayfadır.

En Az Sıklıkta Kullanılan (Least Frequently Used (LFU)): Değiştirilmek üzere seçilen sayfa o an için bellekte en az sıklıkta kullanıldığı belirlenen sayfadır.

En Uygun (İdeal) (Optimal (OPT / MIN)): Değiştirilmek üzere seçilen sayfa uzun bir süreliğine kullanılmayacak olan sayfadır. Bu sayfanın belirlenmesi için algoritmanın gelecekteki başvuru (istek) durumları hakkında bilgi sahibi olması gerekmektedir ki genellikle bu bilgi mevcut değildir.

Kalıcı ve Yerleşik Sayfalar

[değiştir | kaynağı değiştir]

Tüm sanal bellek sistemleri hareketsiz kılınmış; yani burada bulunan sayfaların sayfa değişimi için seçilip ikincil belleğe gönderilemeyeceği alanlara sahiptir.

  • Kesme düzenekleri genellikle çeşitli kesmeleri(örneğin giriş/çıkış tamamlanmaları, zamanlayıcı, izlence (program) hataları, sayfa hataları vb.) işleyen bir dizi göstergelere (pointer) dayanırlar. Kesmelerin sayfa değişimi olmadan işlenmesi kullanışlıdır.
  • Genellikle sayfa tabloları sayfalanmaz. (bazı özel yöntemler hariç)
  • Merkezi şilem biriminin dışından ulaşılan veri arabellekleri (data buffers) (doğrudan erişimli bellek(direct memory Access) ve giriş/çıkış kanalları (I/O channels) gibi.) Genellikle bu aygıtlar ve bağlandıkları yollar sanal adresler yerine doğrudan fiziksel adresler kullanırlar.
  • İşlemleri zamanlamaya bağımlı ve sayfalamanın yol açacağı tepki süresi değişimine izin veremeyecek kadar katı olan çekirdek (kernel) veya uygulama alanları hareketsiz kılınmıştır.

Kaynakça

[değiştir | kaynağı değiştir]
  • http://oergin.etu.edu.tr/bil361/sanalbellek.pdf[ölü/kırık bağlantı] Oğuz ERGİN BİL 361 – Bilgisayar Mimarisi ve Organizasyonu, Sanal Bellek
  • John L. Hennessy, David A. Patterson, Computer Architecture, A Quantitative Approach (ISBN 1-55860-724-2)
  • https://web.archive.org/web/20100806135317/http://computer-refuge.org/bitsavers/pdf/burroughs/B5000_5500_5700/5000-21005_B5000_operChar.pdf Operational Characteristics for the Processors for Burroughs
  • http://www.multicians.org/multics-vm.html18 Ocak 2010 tarihinde Wayback Machine sitesinde arşivlendi. The Multics Virtual Memory: Concepts and Design

Ayrıca bakınız

[değiştir | kaynağı değiştir]
  • Sanal bellek

Dış bağlantılar

[değiştir | kaynağı değiştir]
  • howstuffworks: virtual memory
  • www.cs.gmu.edu/cne :virual memory
  • courses.cs.vt.edu : virtual memory tutorial
  • belgeler.org: sanal bellek[ölü/kırık bağlantı]
  • g
  • t
  • d
Bellek yönetimi
Manuel bellek yönetimi
Delete (C++) · C devingen bellek ayırma · new (C++) · Durağan bellek ayırma
Sanal bellek
Sayfa tablosu · Sayfalama · Sayfalama istemi
Donanım
Etkin sayfalar ön belleği · Bellek yönetim birimi
Çöp toplama
Çöp · Güçlü referans · Referans sayımı · Sonlandırıcı · Zayıf referans
Uygulamalar
Boehm çöp toplayıcı · Çöp öncelikli toplayıcı
Bellek segmentasyonu
Gerçek kip · Korumalı kip · Sanal 8086 kip · x86 bellek segmentasyonu
Bellek güvenliği
Arabellek aşımı · Sarkan işaretçi · Yığın taşması
Konular
Bellek sızıntısı · Erişilemez bellek · Parçalanma
Diğer
Bölge tabanlı bellek yönetimi · International Symposium on Memory Management · Otomatik değişken
  • g
  • t
  • d
İşletim sistemi
Genel
  • Savunucu
  • Karşılaştırma
  • Adli Bilişim
  • Tarihçe
  • Geliştirme
  • Liste
  • Kronoloji
  • Kullanım oranları
Çekirdek
Mimari
  • Ekzoçekirdek
  • Hibrit çekirdek
  • Mikro çekirdek
  • Monolitik çekirdek
  • vkernel
  • Rump kernel
  • Unikernel
Bileşenler
  • Aygıt sürücüsü
  • Yüklenebilir çekirdek modülü
  • Kullanıcı alanı
İşlem yönetimi
Kavramlar
  • İçerik Değiştirme
  • Kesme
  • IPC
  • İşlem
  • İşlem kontrol bloğu
  • RTOS
  • İş parçacığı
  • Zaman paylaşımı
Zamanlama
algoritmaları
  • Çoklu işleme
  • Sabit öncelikli kesintili zamanlama
  • Çok düzeyli geri besleme kuyruğu
  • Kesintili
  • Round-robin
  • En kısa iş sonra
Bellek yönetimi ve
kaynak koruma
  • Veri yolu hatası
  • Genel koruma hatası
  • Bellek koruma
  • Sayfalama
  • Güvenlik halkaları
  • Segmentasyon hatası
  • Sanal bellek
Depolama erişimi ve
dosya sistemi
  • Önyükleyici
  • Defragmentasyon
  • Aygıt dosyası
  • Dosya özniteliği
  • Düğüm
  • Günlük
  • Bölümlendirme
  • Sanal dosya sistemi
  • Sanal teyp kütüphanesi
Liste
  • AmigaOS
  • Android
  • BeOS
  • BSD
  • DOS
  • GNU Hurd
  • iOS
  • Linux
  • Mac OS
  • MorphOS
  • OpenVMS
  • OS/2
  • OSv
  • QNX
  • ReactOS
  • RISC OS
  • Solaris
  • Pardus
  • TPF
  • UNIX
  • VM/CMS
  • Windows
  • z/OS
Çeşitli kavramlar
  • API
  • Bilgisayar ağı
  • HAL
  • Canlı CD/DVD
  • Canlı USB
  • İS kabuğu
    • CLI
    • GUI
    • 3D GUI
    • NUI
    • TUI
    • VUI
    • ZUI
  • PXE
"https://tr.wikipedia.org/w/index.php?title=Sayfalama&oldid=34135313" sayfasından alınmıştır
Kategori:
  • Sanal bellek
Gizli kategoriler:
  • Metin içi kaynakları olmayan maddeler Mart 2020
  • Metin içi kaynakları olmayan tüm maddeler
  • Ölü dış bağlantıları olan maddeler
  • Webarşiv şablonu wayback bağlantıları
  • ISBN sihirli bağlantısını kullanan sayfalar
  • Sayfa en son 10.21, 27 Ekim 2024 tarihinde değiştirildi.
  • Metin Creative Commons Atıf-AynıLisanslaPaylaş Lisansı altındadır ve ek koşullar uygulanabilir. Bu siteyi kullanarak Kullanım Şartlarını ve Gizlilik Politikasını kabul etmiş olursunuz.
    Vikipedi® (ve Wikipedia®) kâr amacı gütmeyen kuruluş olan Wikimedia Foundation, Inc. tescilli markasıdır.
  • Gizlilik politikası
  • Vikipedi hakkında
  • Sorumluluk reddi
  • Davranış Kuralları
  • Geliştiriciler
  • İstatistikler
  • Çerez politikası
  • Mobil görünüm
  • Wikimedia Foundation
  • Powered by MediaWiki
Sayfalama
Konu ekle