Paging adalah suatu sistem manajemen pada sistem operasi dalam mengatur program yang sedang berjalan di memori utama.. Ada dua metode dalam sistem paging yaitu frame dan page.
- frame dengan memecah memori fisik menjadi blok-blok yang berukuran tertentu
- page memecah memori logika menjadi bok-blok yang berukuran sama dengan frame
Pada Sistem operasi, paging digunakan untuk mengatasi apabila suatu program lebih besar dari pada memori utama dengan dua konsep yaitu :
- Overlay,yaitu dimana program yang di jalankan dipecah menjadi beberapa bagian yang dapat dimuat oleh memory, sedangkan yang belum dieksekusi akan disimpan di dalam disk, yang nantinya akan dimuat ke memori begitu diperlukan dalam ekekusi.
- Virtual memori, yaitu kemampuan untuk mengalamati ruang memori melebihi memori utama yang tersedia. Virtual memori dapat Memisahkan antara alamat memori logis dengan memori fisik
Implementasi Sistem Paging Pada Sistem Operasi
Ketika ada suatu program yang melebihi memori utama, maka paging akan memecahnya menjadi beberapa bagian, sehingga program dapat di eksekusi. Pada saat memori logika di pecah-pecah maka ia akan diterjemah dan dieksekusi dengan menggunakan tabel page.
Setiap sistem operasi mempunyai metode sendiri untuk menyimpan tabel page. Beberapa sistem operasi mengalokasikan sebuah tabel page untuk setiap proses. Pointer ke tabel page disimpan dengan nilai register lainnya dari PCB.
Setiap alamat dibangkitkan oleh CPU, terdiri mejadi 2 bagian yaitu :
- Page number (p) digunakan sebagai indeks ke dalam table page (page table). Page table berisi alamat basis dari setiap page pada memori fisik.
- Page offset (d) mengkombinasikan alamat basis dengan page offset untuk mendefinisikan alamat memori fisik yang dikirim ke unit memori.
Pada dasarnya terdapat 3 metode yang berbeda untuk implementasi tabel page :
1. Tabel page diimplementasikan sebagai kumpulan dari “dedicated” register. Register berupa rangkaian logika berkecepatan sangat tinggi untuk efisiensi translasi alamat paging.
2. Page table base register (PTBR), tabel page disimpan pada main memori menggunakan PTBR untuk menunjuk ke tabel page yang disimpan di main memori. Penggunakan memori untuk mengimplementasikan tabel page akan memungkinkan tabel page sangat besar (sekitar 1 juta entry). Perubahan tabel page hanya mengubah PTBR dan menurunkan waktu context-switch.
3. Translation look-aside buffers (TLBs), Menggunakan perangkat keras cache yang khusus, kecil dan cepat yang disebut associative register atau TLBs. Merupakan solusi standar untuk permasalahan penggunaan memori untuk implementasi tabel page. Sekumpulan associative register berupa memori kecepatan tinggi.
Algoritma Pemindahan Page/Halaman
1. FIFO (First In First Out)
Mengasosiasikan waktu pada saat halaman dibawa kedalam memori dengan masing-masing halaman. Pada saat halaman harus dipindahkan, halaman yang paling tua yang dipilih.
2. Secara Optimal
Algoritma ini tidak akan mengalami anomaly Belady. Konsep utama dari algoritma ini adalah mengganti halaman yang tidak akan digunakan untuk jangka waktu yang paling lama. Algoritma ini menjamin kemungkinan tingkat kesalahan terendah untuk jumlah frame yang tetap.
3. LRU (Least Recently Used)
Algoritma LRU akan mengasosiasikan dengan masing-masing halaman waktu dari halaman yang terakhir digunakan. Ketika halaman harus dipindahkan, LRU memilih halaman yang paling lama tidak digunakan pada waktu yang lalu. Algoritma LRU, melihat waktu yang telah lalu, bukan waktu yang akan datang.
4. Additional-Reference-Bit
Kita bisa mendapatkan informasi tambahan mengenai urutan dengan cara mencatat bit-bit acuan pada suatu interval yang tetap. Pada interval tertentu, pencatat waktu (timer) melakukan interupsi dengan mentransfer kontrol kepada sistem operasi. Setelah itu sistem operasi akan mengubah bit acuan untuk masing-masing halaman kedalam bit high-order dari 8-bit byte ini dan membuang bit low-order. Register pengganti 8-bit ini berisi sejarah penggunaan halaman dalam periode 8 waktu terakhir.
5. Second-Chance
Algoritma ini didasari oleh algoritma FIFO. Pada saat suatu halaman ditunjuk, maka kita akan menginspeksi bit acuannya. Apabila bit acuan tersebut bernilai 0, maka kita dapat memproses untuk membuang halaman ini.
Jika bit acuan tersebut bernilai 1, kita berikan kesempatan kedua untuk halaman ini dan menyeleksi halaman FIFO selanjutnya. Pada saat suatu halaman mendapatkan kesempatan kedua, bit acuannya akan dikosongkan dan waktu tibanya direset menjadi saat ini. Karena itu, halaman yang mendapatkan kesempatan kedua tidak akan berpindah sampai seluruh halaman dipindahkan.
Begitulah pembahasan mengenai paging pada sistem operasi, Semoga bermanfaat..