Anda di halaman 1dari 11

Main Memory

Paging

Kelompok 12:
Yayang Barru Afriza (23050974041)
Febti Sofia Loren (23050974058)
Rafi Andra Firmansyah (23050974078)
Main Memory

Main memory, atau memori utama, adalah komponen dalam sistem


komputer yang digunakan untuk menyimpan data dan program yang
sedang dijalankan secara aktif. Ini termasuk RAM (Random Access
Memory), yang menyimpan data sementara yang dibutuhkan oleh
CPU selama operasi komputer.
Paging
Paging adalah suatu metode manajemen memori di mana memori fisik dibagi
menjadi blok-blok kecil yang disebut "halaman." Sementara itu, program atau
data dipecah menjadi unit serupa yang disebut "halaman" juga. Sistem operasi
menggunakan sebuah tabel (dikenal sebagai tabel halaman) untuk memetakan
halaman-halaman ini ke alamat-alamat fisik di memori utama. Ini membantu
dalam manajemen memori dan alokasi sumber daya.
1. Metode Dasar
Metode dasar untuk mengimplementasikan paging
melibatkan membagi memori fisik menjadi blok berukuran
tetap yang disebut frame, dan membagi memori logis
menjadi blok yang sama ukurannya yang disebut halaman.
Saat sebuah proses akan dieksekusi, halaman-halaman
tersebut dimuat ke dalam frame-frame memori yang
tersedia dari sumber mereka (sistem file atau backing store).
Backing store dibagi menjadi blok berukuran tetap yang
sama dengan frame memori atau kelompok beberapa frame.
Ide yang cukup sederhana ini memiliki fungsionalitas dan
dampak yang luas. Sebagai contoh, ruang alamat logis
sekarang sepenuhnya terpisah dari ruang alamat fisik,
sehingga sebuah proses dapat memiliki ruang alamat logis
64-bit meskipun sistem memiliki kurang dari 2^64 byte
memori fisik.Setiap alamat yang dihasilkan oleh CPU
dibagi menjadi dua bagian: nomor halaman (p) dan
offset halaman (d).
1. Metode Dasar
Berikut adalah langkah-langkah yang diambil oleh MMU untuk
menerjemahkan alamat logis yang dihasilkan oleh CPU ke alamat
fisik:Ekstrak nomor halaman p dan gunakan sebagai indeks ke dalam
tabel halaman.
1. Ekstrak nomor halaman p dan gunakan sebagai indeks ke dalam tabel
halaman.
2. Ekstrak nomor frame f yang sesuai dari tabel halaman.
3. Gantilah nomor halaman p dalam alamat logis dengan nomor frame f.

Ukuran halaman (seperti ukuran frame) ditentukan oleh perangkat keras.


Ukuran halaman adalah kelipatan dari 2, biasanya bervariasi antara 4 KB
dan 1 GB per halaman, tergantung pada arsitektur komputer. Pemilihan
kelipatan dari 2 sebagai ukuran halaman membuat translasi alamat logis
ke nomor halaman dan offset halaman menjadi sangat mudah. Jika
ukuran ruang alamat logis adalah 2^m, dan ukuran halaman adalah 2^n
byte, maka m bit paling tinggi dari alamat logis menunjukkan nomor
halaman, dan n bit paling rendah menunjukkan offset halaman. Dengan
demikian, alamat logisnya adalah:
2. Hardware Support
Pada dukungan perangkat keras, paging memungkinkan sistem
operasi untuk memetakan alamat virtual ke alamat fisik pada
perangkat keras. Jika pengguna melakukan panggilan system
untuk melakukan I/O dan menyediakan alamat sebagai
parameter misalnya buffer, alamat itu harus dipetakan untuk
menghasilkan alamat fisik yang benar. Sistem operasi
menyimpan salinan tabel halaman untuk setiap proses, sama
seperti ia menyimpan salinan instruksi counter dan mendaftarkan
isinya. Salinan ini digunakan untuk menerjemahkan alamat logis
alamat fisik setiap kali sistem operasi harus memetakan alamat
logis ke alamat fisik secara manual. Ini juga digunakan oleh
operator CPU untuk mendefinisikan tabel halaman perangkat
keras ketika suatu proses akan dialokasikan ke CPU. Halaman
oleh karena itu meningkatkan waktu peralihan konteks.
2. Hardware Support
Jika nomor halaman tidak ada dalam TLB (TLB miss), langkah-
langkah translasi alamat melibatkan referensi memori ke tabel
halaman. Setelah mendapatkan nomor frame, kita menggunakan
itu untuk mengakses memori. Nomor halaman dan nomor frame
ditambahkan ke TLB untuk referensi selanjutnya. Jika TLB penuh,
entri yang ada dipilih untuk penggantian sesuai dengan kebijakan
tertentu (misalnya, LRU atau round-robin). Beberapa TLB
memungkinkan entri tetap (wired down), dan beberapa menyimpan
identifier alam-alamat (ASID) untuk perlindungan dan mendukung
beberapa proses secara bersamaan. Jika TLB tidak mendukung
ASID terpisah, harus di-flush saat memilih tabel halaman baru
untuk memastikan integritas saat proses berpindah.
3. Protection

Proteksi memori dalam paging menggunakan bit proteksi pada setiap frame dalam tabel
halaman. Bit ini menentukan apakah halaman dapat dibaca-tulis atau hanya dibaca. Setiap
referensi memori melibatkan tabel halaman untuk menemukan nomor frame yang benar,
dan bit proteksi memastikan kepatuhan aturan proteksi. Proteksi dapat diperluas dengan
tingkat halus seperti hanya-baca, baca-tulis, atau hanya-eksekusi, dengan bit proteksi
terpisah untuk setiap jenis akses. Upaya yang melanggar aturan proteksi akan ditangkap
oleh sistem operasi melalui hardware trap. Setiap entri dalam tabel halaman memiliki bit
valid-tidak valid, menunjukkan apakah halaman tersebut sah dalam ruang alamat logis
proses atau tidak. Sistem operasi mengatur bit ini untuk mengizinkan atau melarang akses
ke halaman.
3. Protection

Contoh penerapan adalah pada sistem dengan ruang alamat


14 bit dan program yang hanya menggunakan alamat 0
hingga 10468. Penggunaan ukuran halaman 2 KB
menciptakan masalah fragmentasi internal, yang dapat
diatasi dengan menggunakan perangkat keras seperti
register panjang tabel halaman (PTLR) untuk mengontrol
ukuran tabel halaman. Secara keseluruhan, pendekatan ini
menyediakan perlindungan yang halus dan efisien terhadap
akses memori yang tidak sah dalam lingkungan paging.
4. Shared Pages
Keuntungan paging adalah kemungkinan berbagi kode umum dalam
lingkungan dengan banyak proses. Contohnya, pustaka C standar seperti
libc dapat dibagikan di antara beberapa proses. Jika kode tersebut bersifat
reentrant (tidak mengubah dirinya sendiri selama eksekusi), proses-
proses tersebut dapat menjalankan kode yang sama secara bersamaan.
Setiap proses memiliki salinan dari register dan penyimpanan data
sendiri. Dengan cara ini, hanya perlu satu salinan pustaka dalam memori
fisik, dan tabel halaman memetakan setiap proses ke salinan tersebut.
Dibandingkan dengan memuat salinan libc ke setiap proses (yang
membutuhkan banyak memori), berbagi kode dapat menghemat ruang
memori secara signifikan. Pendekatan serupa dapat diterapkan pada
program-program lain yang banyak digunakan, seperti kompilator, sistem
jendela, dan sistem basis data, dengan menggunakan pustaka bersama
yang diimplementasikan melalui halaman bersama. Keberlanjutan kode
bersama bergantung pada sifat reentrant, dan sistem operasi harus
menegakkan sifat baca-saja untuk memastikan keakuratan dan keamanan.
TERIMA KASIH

Anda mungkin juga menyukai