Struktur Tabel Halaman

5.4. Struktur Tabel Halaman

Sebagian besar komputer modern memiliki perangkat keras istimewa yaitu unit managemen memori (MMU). Unit tersebut berada diantara CPU dan unit memori. Jika CPU ingin mengakses memori (misalnya untuk memanggil suatu instruksi atau memanggil dan menyimpan suatu data), maka CPU mengirimkan alamat memori yang bersangkutan ke MMU, yang akan menerjemahkannya ke alamat lain sebelum melanjutkannya ke unit memori. Alamat yang dihasilkan oleh CPU, setelah adanya pemberian indeks atau aritmatik ragam pengalamatan lainnya disebut alamat logis (virtual address). Sedangkan alamat yang didapatkan setelah diterjemahkan oleh CPU disebut alamat fisik (physical address).

Biasanya, penterjemahan dilakukan di granularitas dari suatu halaman. Setiap halaman mempunyai pangkat 2 bytes, diantara 1024 dan 8192 bytes. Jika alamat logis p dipetakan ke alamat fisik f (dimana p adalah kelipatan dari ukuran halaman), maka alamat p+o dipetakan ke alamat fisik f+o untuk setiap ofset o kurang dari ukuran halaman. Dengan kata lain, setiap halaman dipetakan ke contigous region di alamat fisik yang disebut frame.

MMU yang mengizinkan contigous region dari alamat logis dipetakan ke frame yang tersebar disekitar alamat fisik membuat sistem operasi lebih mudah pekerjaannya saat mengalokasikan memori. Lebih penting lagi, MMU juga mengizinkan halaman yang tidak sering digunakan bisa disimpan di disk. Cara kerjanya adalah sbb: Tabel yang digunakan oleh MMU mempunyai bit sahih untuk setiap halaman di bagian alamat logis. Jika bit tersebut di set, maka penterjemahan oleh alamat logis di halaman itu berjalan normal. Akan tetapi jika dihapus, adanya usaha dari CPU untuk mengakses suatu alamat di halaman tersebut menghasilkan suatu interupsi yang disebut page fault trap . Sistem operasi telah mempunyai interrupt handler untuk kesalahan halaman, juga bisa digunakan untuk mengatasi interupsi jenis yang lain. Handler inilah yang akan bekerja untuk mendapatkan halaman yang diminta ke memori.

Untuk lebih jelasnya, saat kesalahan halaman dihasilkan untuk halaman p1, interrupt handler melakukan hal-hal berikut ini:

• Mencari dimana isi dari halaman p1 disimpan di disk. Sistem operasi menyimpan informasi ini di dalam tabel. Ada kemungkinan bahwa halaman tersebut tidak ada dimana-mana, misalnya pada kasus saat referensi memori adalah bug. Pada kasus tersebut , sistem operasi mengambil beberapa langkah kerja seperti mematikan prosesnya. Dan jika diasumsikan halamannya berada dalam disk:

• Mencari halaman lain yaitu p2 yang dipetakan ke frame lain f dari alamat fisik yang tidak banyak dipergunakan.

• Menyalin isi dari frame f keluar dari disk. • Menghapus bit sahih dari halaman p2 sehingga sebagian referensi dari halaman p2 akan menyebabkan

kesalahan halaman. • Menyalin data halaman p1 dari disk ke frame f . • Update tabel MMU sehingga halaman p1 dipetakan ke frame f . • Kembali dari interupsi dan mengizinkan CPU mengulang instruksi yang menyebabkan interupsi tersebut.

Gambar 5-5. Struktur MMU

Sumber: Operating System karya Avi Silberschatz, Peter Galvin, dan Greg Gagne, 2000

5.4.1. Tabel Halaman

Pada dasarnya MMU terdiri dari tabel halaman yang merupakan sebuah rangkaian array dari masukan-masukan (entries) yang mempunyai indeks berupa nomor halaman (p). Setiap masukan terdiri dari flags (contohnya bit sahih dan nomor frame). Alamat fisik dibentuk dengan menggabungkan nomor frame dengan ofset, yaitu bit paling rendah dari alamat logis.

Setiap sistem operasi mempunyai metodenya sendiri untuk menyimpan tabel halaman. Sebagian besar mengalokasikan tabel halaman untuk setiap proses. Penunjuk ke tabel halaman disimpan dengan nilai register yang lain (seperti pencacah instruksi) di blok kontrol proses. Ketika pelaksana dispatcher mengatakan untuk memulai proses, maka harus disimpan kembali register-register pengguna dan mendefinisikan nilai tabel halaman perangkat keras yang benar dari tempat penyimpanan tabel halaman dari pengguna.

Gambar 5-6. Skema Tabel Halaman Dua tingkat

http://www.cs.wisc.edu/~solomon/cs537/paging.html

5.4.2. Pemberian Page Secara Multilevel

Idenya adalah dengan menambahkan tingkatan secara tidak langsung dan memiliki tabel halaman yang terdiri dari pointer-pointer ke tabel halaman.

• Bayangkan suatu tabel halaman yang besar. • Panggil tabel halaman dua tingkat dan potong menjadi bagian-bagian untuk setiap ukuran dari halaman

tersebut. • Sebagai catatan bahwa anda bisa mendapatkan banyak PTE-PTE dalam satu halaman maka anda akan

mempunyai jauh lebih sedikit dari halaman tersebut daripada yang dimiliki oleh PTE. • Sekarang buatlah tabel halaman satu tingkat yang terdiri dari PTE-PTE yang memiliki pointer ke halaman

tersebut. • Tabel halaman satu tingkat ini cukup kecil untuk disimpan di memori.

• Jika kita telah memiliki tabel halaman dua tingkat maka pekerjaan akan jauh lebih mudah. • Jangan menyimpan semua reference PTE ke memori yang tidak terpakai dalam memori tabel halaman dua

tingkat. Hal tersebut menggunakan permintaan halaman pada tabel halaman dua tingkat. • Untuk tabel halaman dua tingkat, alamat logis dibagi menjadi tiga bagian yaitu P#1, P#2, dan Ofset • P#1 menunjukkan indeks menuju tabel halaman satu tingkat. • Ikuti penunjuk pada PTE yang berkaitan untuk meraih frame yang terdiri dari tabel halaman dua tingkat yang

relevan. • P#2 menunjukkan indeks menuju tabel halaman dua tingkat. • Ikuti pointer pada PTE yang berkaitan untuk meraih frame yang terdiri dari frame asli yang diminta. • Ofset menunjukkan ofset dari frame dimana terdapat lokasi adanya permintaan kata. Banyak sistem komputer modern mendukung ruang alamat logis yang sangat luas (2 pangkat 32 sampai 2

pangkat 64). Pada lingkungan seperti itu tabel halamannya sendiri menjadi besar sekali. Untuk contoh, misalkan suatu sistem dengan ruang alamat logis 32-bit. Jika ukuran halaman di sistem seperti itu adalah 4K byte (2 pangkat 12), maka tabel halaman mungkin berisi sampai 1 juta masukan ((2^32)/(2^12)). Karena masing-masing masukan terdiri atas 4 byte, tiap-tiap proses mungkin perlu ruang alamat fisik sampai 4 megabyte hanya untuk tabel halamannya saja. Jelasnya, kita tidak akan mau mengalokasi tabel halaman secara berdekatan di dalam memori. Satu solusi sederhananya adalah dengan membagi tabel halaman menjadi potongan-potongan yang lebih kecil lagi. Ada beberapa cara yang berbeda untuk menyelesaikan ini.

Gambar 5-7. Tabel Halaman secara Multilevel

Sumber: allan.ultra.nyu.edu/~gottlieb/courses/1999-00-spring/ os/lecture-11.html

5.4.3. Tabel Halaman secara Inverted

Biasanya, setiap proses mempunyai tabel halaman yang diasosiasikan dengannya. Tabel halaman hanya punya satu masukan untuk setiap halaman proses tersebut sedang digunakan (atau satu slot untuk setiap alamat maya, tanpa meperhatikan validitas terakhir). Semenjak halaman referensi proses melalui alamat maya halaman, maka representasi tabel ini adalah alami. Sistem operasi harus menterjemahkan referensi ini ke alamat memori fisik. Semenjak tabel diurutkan berdasarkan alamat maya, sistem operasi dapat menghitung dimana pada tabel yang diasosiasikan dengan masukan alamat fisik, dan untuk menggunakan nilai tersebut secara langsung. Satu kekurangan dari skema ini adalah masing-masing halaman mungkin mengandung jutaan masukan. Tabel ini mungkin memakan memori fisik dalam jumlah yang besar, yang mana dibutukan untuk tetap menjaga bagaimana memori fisik lain sedang digunakan.

Gambar 5-8. Tabel Halaman secara Inverted

Sumber: Operating System karya Avi Silberschatz, Peter Galvin, dan Greg Gagne, 2000

5.4.4. Berbagi Halaman

Keuntungan lain dari pemberian halaman adalah kemungkinannya untuk berbagi kode yang sama. Pertimbangan ini terutama sekali penting pada lingkungan yang berbagi waktu. Pertimbangkan sebuah sistem yang mendukung

40 pengguna, yang masing-masing menjalankan aplikasi pengedit teks. Jika editor teks tadi terdiri atas 150K kode dan 50K ruang data, kita akan membutuhkan 8000K untuk mendukung 40 pengguna. Jika kodenya dimasukan ulang, bagaimana pun juga dapat dibagi-bagi, seperti pada gambar. Disini kita lihat bahwa tiga halaman editor (masing-masing berukuran 50K; halaman ukuran besar digunakan untuk menyederhanakan gambar) sedang dibagi-bagi diantara tiga proses. Masing-masing proses mempunyai halaman datanya sendiri.

Dokumen yang terkait

ANALISIS EFISIENSI PEMASARAN DAN PENDAPATAN USAHATANI ANGGUR (Studi Kasus di Kecamatan Wonoasih Kotamadya Probolinggo)

52 472 17

Studi Kualitas Air Sungai Konto Kabupaten Malang Berdasarkan Keanekaragaman Makroinvertebrata Sebagai Sumber Belajar Biologi

23 176 28

ANALISIS KOMPARATIF PENDAPATAN DAN EFISIENSI ANTARA BERAS POLES MEDIUM DENGAN BERAS POLES SUPER DI UD. PUTRA TEMU REJEKI (Studi Kasus di Desa Belung Kecamatan Poncokusumo Kabupaten Malang)

23 307 16

PENILAIAN MASYARAKAT TENTANG FILM LASKAR PELANGI Studi Pada Penonton Film Laskar Pelangi Di Studio 21 Malang Town Squere

17 165 2

Analisis Sistem Pengendalian Mutu dan Perencanaan Penugasan Audit pada Kantor Akuntan Publik. (Suatu Studi Kasus pada Kantor Akuntan Publik Jamaludin, Aria, Sukimto dan Rekan)

136 695 18

DOMESTIFIKASI PEREMPUAN DALAM IKLAN Studi Semiotika pada Iklan "Mama Suka", "Mama Lemon", dan "BuKrim"

133 700 21

PEMAKNAAN MAHASISWA TENTANG DAKWAH USTADZ FELIX SIAUW MELALUI TWITTER ( Studi Resepsi Pada Mahasiswa Jurusan Tarbiyah Universitas Muhammadiyah Malang Angkatan 2011)

59 326 21

STRATEGI KOMUNIKASI POLITIK PARTAI POLITIK PADA PEMILIHAN KEPALA DAERAH TAHUN 2012 DI KOTA BATU (Studi Kasus Tim Pemenangan Pemilu Eddy Rumpoko-Punjul Santoso)

119 459 25

STRATEGI PUBLIC RELATIONS DALAM MENANGANI KELUHAN PELANGGAN SPEEDY ( Studi Pada Public Relations PT Telkom Madiun)

32 284 52

FAKTOR-FAKTOR PENYEBAB ORANG TUA MENIKAHKAN ANAK PEREMPUANYA PADA USIA DINI ( Studi Deskriptif di Desa Tempurejo, Kecamatan Tempurejo, Kabupaten Jember)

12 105 72