SISTEM PAGING
Struktur Pengendali dan Perangkat Keras Acuan memori secara dinamis ditranslasikan kedalam alamat fisik pada saat dijalankan Sebuah proses dapat dipindahkan (swap) dalam dan luar memori utama, seperti menduduki tempat yang berbeda Seebuah proses dapat pecah-pecah kedalam beberapa bagian (segmen dan page) dan potongan-potongan tidak diharuskan saling berdekatan didalam memori utama Seluruh bagian sebuah proses tidak perlu untuk diisi (load) didalam memori utama selama eksekusi
Mengeksekusi Program SO membawakan beberapa bagian program kedalam memori utama Tempat kedudukan seperangkat bagian proses berada didalam memori utama Sebuah interupsi dihasilkan ketika suatu alamat yang diperlukan tidak didalam memori So menempatkan proses didalam status blocking
Mengeksekusi Program Potongan proses yang berisi alamat logis (logical address) dibawa kedalam memori utama SO menghasilkan permintaan perintah Read I/O disk Proses lain diambil untuk menjalankan disk I/O yang berlansung Sebuah interupsi dihasilkan ketika dsik I/O telah lengkap yang mana menyebabkan sistem operasi untuk menempatkan proses yang dipengaruhi dalam status Ready
Keuntungan menghancurkan (breaking) sebuah Proses Banyak proses yang dijaga didalam memori utama Hanya memuat beberapa bagian dari tiap-tiap proses Dengan proses yang sangat banyak didalam memori utama, sangat memungkinkan proses akan berada didalam status Ready pada waktu tertentu Sebuah proses memungkinkan lebih besar dari memori utama
Jenis-jenis Memori Memori yang Nyata Memori Virtual Memori Utama Memori pada Disk Mempertimbangkan efektifitas multiprograming dan membiarkan kebebasan dari batasan meori utama
Thrashing Penukaran diluar sebagian proses hanya sebelum bagian proses tersebut dibutuhkan Prosesor banyak menghabiskan waktu penukaran (swap) dari pada mengeksekusi instruksi
Prinsip – prinsip Lokalisasi Program dan referensi data didalam suatu proses kecendrungan untuk dikelompok-kelompokkan (cluster) Hanya sedikit potongan proses akan dibutuhkan melebihi jangka waktu pendek Memungkinkan untuk membuat perkiraan yang cerdas tentang yang manan potongan-potongan akan diperlukan dimasa mendatang Saran ini yang membuat memori virtual bekerja secara efisien
Pendukung yang diperlukan untuk memori virtual Perangkat keras harus mendukung paging dan segmentasi SO harus mampu untuk mengatur pergerakan page dan/atau segmen- segmen antara memori sekunder dan memori utama
Paging Masing – masing proses memiliki page table Masing – masing page table memasukkan sejumlah frame yang saling bersesuaian page-nya didalam memori utama Sebuah bit diperlukan untuk menandai apakah page didalam meori utama atau tidak
Modifikasi Bit dalam Page Table Memodifikasi bit yang lain diperlukan untuk menandai jika page telah diubah semenjak diisikan (load) kedalam memori utama Jika tidak ada perubahan yang telah dibuat, page tidak dituliskan ke disk ketika diperlukannya untuk dipindahkan (swap) Bitmap manajemen
Page Table Entrie
Skema tingkatan Kedua untuk Alamat 32-bit Page table
Page Table Keseluruhan page table boleh mengambil terlalu banyak memori utama Page table juga disimpan didalam memori virtual Ketika sebuah proses sedang berjalan (running), bagian dari page table-nya didalam memori utama
Memory resident page table (physical page or disk address) Virtual Page Number Physical Memory Valid 1 1 1 1 1 1 Disk Storage (swap file or regular file system file) 1
Translation Lookaside Buffer Masing-masing acuan memori virtual dapat menyebabkan dua akses memori fisik satu untuk mengambil page table satu untuk mengambil data Untuk mengatasi hal tersebut sebuah cache kecepatan tinggi mengatur untuk maukkan page table disebut TLB - Translation Lookaside Buffer
Translation Lookaside Buffer Isi masukkan page table yang terakhir digunakan Fungsi yang sama sebagai cache memori
Translation Lookaside Buffer Dengan sebuah alamat virtual, prosesor menguji TLB Jika masukan page table sudah ada/hadir (hit), nomor frame diambil lagi dan alamat rill dibentuk Jika masukkan page table tidak ditemukan dalam TLB (miss), nomor page yang digunakan untuk indek dari proses page table kesalahan
Translation Lookaside Buffer Pertama, memriksa jika page table sudah siap didalam memori utama Jika tidak ada didalam memori utama sebuah kesalahan page akan ditampilkan TLB memperbaharui termasuk memasukkan page baru
Address Translation dengan TLB p p–1 virtual page number page offset virtual address valid tag physical page number TLB . . . = TLB hit physical address tag byte offset index valid tag data Cache = cache hit data
Ukuran Page Ukuran page yang lebih kecil, lebih sedikit jumlah fragmentasi internal Ukuran page lebih kecil, lebih banyak page yang dibutuhkan per proses Lebih banyak page per proses berarti lebih besar page table-nya Page table yang lebih besar berarti lebih besar bagian-bagian page table didalam memeori virtual Memori sekunder didisain secara efisien memindahkan block data yang besar menjadi suatu ukuran yang lebih baik
Ukuran Page Ukuran page kecil, sejumlah besar page akan ditemukan didalam memori utama Seperti waktu selama eksekusi, page didalam memori akan berisi semua bagian proses yang terdekat. Page kesalahan terendah. Ukuran page dinaikkan menyebabkan page berisikan lokasi lanjutan dari referensi terbaru. Page kesalahan berkembang. Besaran ukuran page
Ukuran Page Berbagai macam ukuran page menyediakan fleksibelitas, dibutuhkan secara efisien untuk TLB Page yang besar dapat digunakan untuk program – program instruksi Page yang kecil dapat digunakan untuk thread Kebanyakan sistem operasi hanya mendukung satu ukuran page
Contoh Ukuran Page
Segmentasi Ukuran dinamis dapat berbeda Menyederhanakan penenganan untuk pengembangan struktur data Mengizinkan program untuk diubah/ diganti dan di-kompilasi ulang secara bebas Mendorong kearah sharing data antar proses Mendorong kearah untuk proteksi
Tabel Segmen corresponding segmen didalam memori utama Masing-masing masukan berisikan panjang segment Bit dibutuhkan untuk menentukan jika segmen telah siap/ada didalam memori utama Bit yang lain diperlukan untuk menentukan jika segment telah dimodifikasi semenjak diisi (load) didalam memori utama
Memasukkan Tabel Segmen
Kombinasi Paging dan Segment Paging jelas/transparan untuk programer Paging mengeliminasi fragmentasi internal Segmentasi dapat dilihat programer Segmentasi mengizinkan perkembangan struktur data, modularitas, dan mendukung untuk sharing dan proteksi
Kombinasi Paging dan Segment Contoh segmentasi – paging pada pentium
Fetch Policy Fetch Policy Menentukan kapan page akan harus dibawa kedalam memori Permintaan paging hanya membawa page kedalam memori ketika referensi telah dibuat untuk menentukan lokasi page Banyak kesalahan page terjadi awal proses dimulai Prepaging membawa masuk melebihi page yang dibutuhkan Lebih efisiennya untuk membawa masuk page yang berada secara berdekatan pada disk