Anda di halaman 1dari 15

3.

2 MEMORY ABSTRACTION: ADDRESS SPACES

Secara keseluruhan, mengekspos memori fisik ke proses memiliki beberapa


kelemahan utama. Pertama, jika program pengguna dapat menangani setiap byte memori,
mereka dapat dengan mudah membuang sistem operasi, sengaja atau tidak sengaja, membuat
sistem berhenti bekerja (kecuali ada perangkat keras khusus seperti skema kunci dan kunci
IBM 360).

3.2.1 PENGERTIAN RUANG ALAMAT

Ruang alamat adalah kumpulan alamat yang dapat digunakan oleh suatu proses untuk
mengalamati memori. Setiap proses memiliki ruang alamatnya sendiri, tidak tergantung pada
proses lainnya (kecuali dalam beberapa keadaan khusus di mana proses ingin berbagi ruang
alamatnya). Dua masalah harus dipecahkan untuk memungkinkan beberapa aplikasi berada di
memori pada saat yang sama tanpa mengganggu satu sama lain: perlindungan dan relokasi.
Kami melihat solusi primitif untuk solusi pertama yang digunakan pada IBM 360: memberi
label potongan memori dengan kunci perlindungan dan membandingkan kunci proses
eksekusi dengan kunci setiap kata memori yang diambil.

Konsep ruang alamat sangat umum dan terjadi dalam banyak konteks. Pertimbangkan
nomor telepon. Di Amerika Serikat dan banyak negara lain, nomor telepon lokal biasanya
berupa nomor 7 digit. Ruang alamat untuk nomor telepon dengan demikian berjalan dari
0.000.000 hingga 9.999.999, meskipun beberapa nomor, seperti yang dimulai dengan 000
tidak digunakan. Dengan pertumbuhan smartphone, modem, dan mesin faks, ruang ini
menjadi terlalu kecil, dalam hal ini lebih banyak digit harus digunakan.

 Register Basis dan Batas

Solusi sederhana ini menggunakan versi yang sangat sederhana dari relokasi dinamis.
Apa yang dilakukannya adalah memetakan ruang alamat setiap proses ke bagian memori fisik
yang berbeda dengan cara yang sederhana. Solusi klasik, yang digunakan pada mesin mulai
dari CDC 6600 (super komputer pertama di dunia) hingga Intel 8088 (jantung dari IBM PC
asli), adalah melengkapi setiap CPU dengan dua register perangkat keras khusus, biasanya
disebut basis dan membatasi mendaftar.

Setiap kali suatu proses mereferensikan memori, baik untuk mengambil instruksi atau
membaca atau menulis kata data, perangkat keras CPU secara otomatis menambahkan nilai
dasar ke alamat yang dihasilkan oleh proses sebelum mengirim alamat keluar pada bus
memori. Secara bersamaan, ia memeriksa apakah alamat yang ditawarkan sama dengan atau
lebih besar dari nilai dalam register batas, dalam hal ini kesalahan dihasilkan dan akses
dibatalkan.

3.2.2 Swapping

Jika memori fisik komputer cukup besar untuk menampung semua proses, skema
yang dijelaskan sejauh ini kurang lebih bisa. Namun dalam praktiknya, jumlah total RAM
yang dibutuhkan oleh semua proses seringkali jauh lebih banyak daripada yang dapat
ditampung dalam memori. Pada sistem Windows, OS X, atau Linux biasa, kira-kira 50–100
proses atau lebih dapat dimulai segera setelah komputer di-boot.

Dua pendekatan umum untuk menangani kelebihan memori telah dikembangkan selama
bertahun-tahun. Strategi paling sederhana, disebut bertukar, terdiri dari memasukkan setiap
proses secara keseluruhan, menjalankannya sebentar, lalu meletakkannya kembali di disk.

Pengoperasian sistem swapping diilustrasikan pada Gambar 3-4. Awalnya, hanya proses
sebuah ada di memori. Kemudian proses B dan Cdibuat atau ditukar dari disk.
Saat swapping menciptakan banyak lubang di memori, dimungkinkan untuk menggabungkan
semuanya menjadi satu lubang besar dengan memindahkan semua proses ke bawah sejauh
mungkin. Teknik ini dikenal sebagaipemadatan memori. Namun, jika segmen data proses
dapat tumbuh, misalnya, dengan mengalokasikan memori secara dinamis dari tumpukan,
seperti dalam banyak bahasa pemrograman, masalah terjadi setiap kali proses mencoba untuk
tumbuh.

Jika diharapkan bahwa sebagian besar proses akan tumbuh saat berjalan, mungkin ide
yang baik untuk mengalokasikan sedikit memori ekstra setiap kali suatu proses ditukar atau
dipindahkan, untuk mengurangi overhead yang terkait dengan proses pemindahan atau
pertukaran yang tidak lagi sesuai dengan prosesnya.
Jika proses dapat memiliki dua segmen yang berkembang—misalnya, segmen data yang
digunakan sebagai tumpukan untuk variabel yang dialokasikan dan dirilis secara dinamis dan
segmen tumpukan untuk variabel lokal normal dan alamat pengirim— pengaturan alternatif
menyarankan dirinya sendiri, yaitu dari Gambar 3-5(b).

3.2.3 Mengelola Memori Gratis

 Manajemen Memori dengan Bitmap

Dengan bitmap, memori dibagi menjadi unit alokasi sekecil beberapa kata dan sebesar
beberapa kilobyte.

Ukuran unit alokasi merupakan masalah desain yang penting. Semakin kecil unit alokasi,
semakin besar bitmap. Namun, bahkan dengan unit alokasi sekecil 4 byte, memori 32 bit
hanya akan membutuhkan 1 bit peta. Memori 32n bit akan digunakannbit peta, sehingga
bitmap hanya akan memakan 1/32 memori.

 Manajemen Memori dengan Daftar Tertaut

Cara lain untuk melacak memori adalah dengan memelihara daftar tertaut dari segmen
memori yang dialokasikan dan bebas, di mana segmen berisi proses atau lubang kosong di
antara dua proses. Memori Gambar 3-6(a) direpresentasikan pada Gambar 3-6(c) sebagai
daftar segmen yang terhubung. Setiap entri dalam daftar menentukan lubang (H) atau proses
(P), alamat di mana itu dimulai, panjangnya, dan penunjuk ke item berikutnya.
Ketika proses dan lubang disimpan pada daftar yang diurutkan berdasarkan alamat, beberapa
algoritma dapat digunakan untuk mengalokasikan memori untuk proses yang dibuat (atau
proses yang ada ditukar dari disk). Kami berasumsi bahwa manajer memori tahu berapa
banyak memori yang harus dialokasikan. Algoritma yang paling sederhana adalah cocok
pertama

Algoritma lain yang terkenal dan banyak digunakan adalahpaling cocok. Paling cocok
mencari seluruh daftar, dari awal sampai akhir, dan mengambil lubang terkecil yang
memadai. Daripada memecah lubang besar yang mungkin diperlukan nanti, best fit mencoba
menemukan lubang yang mendekati ukuran sebenarnya yang dibutuhkan, agar sesuai dengan
permintaan dan lubang yang tersedia. Sebagai contoh kecocokan pertama dan kecocokan
terbaik, perhatikan kembali Gambar 3-6

Jika daftar yang berbeda dipertahankan untuk proses dan lubang, daftar lubang dapat
disimpan diurutkan berdasarkan ukuran, untuk membuatnya lebih cepat sesuai. Ketika best fit
mencari daftar lubang dari yang terkecil sampai yang terbesar, segera setelah menemukan
lubang yang cocok, ia tahu bahwa lubang itu adalah lubang terkecil yang akan melakukan
pekerjaan itu, karenanya yang paling cocok. Tidak diperlukan pencarian lebih lanjut, seperti
halnya dengan skema daftar tunggal. Dengan daftar lubang yang diurutkan berdasarkan
ukuran, kecocokan pertama dan kecocokan terbaik sama cepatnya, dan kecocokan berikutnya
tidak ada gunanya.

3.3 MEMORI VIRTUAL

Sementara register dasar dan batas dapat digunakan untuk membuat abstraksi ruang
alamat, ada masalah lain yang harus dipecahkan: mengelola bloatware. Sementara ukuran
memori meningkat dengan cepat, ukuran perangkat lunak meningkat jauh lebih cepat. Pada
1980-an, banyak universitas menjalankan sistem pembagian waktu dengan lusinan (kurang
lebih puas) pengguna yang berjalan secara bersamaan pada VAX 4-MB.
Masalah program yang lebih besar dari memori telah ada sejak awal komputasi, meskipun di
area terbatas, seperti sains dan teknik (mensimulasikan penciptaan alam semesta atau bahkan
mensimulasikan pesawat baru membutuhkan banyak memori). Sebuah solusi yang diadopsi
pada tahun 1960-an adalah untuk membagi program menjadi bagian-bagian kecil, yang

disebutoverlay. Meskipun pekerjaan menukar overlay masuk dan keluar sebenarnya


dilakukan oleh sistem operasi, pekerjaan memecah program menjadi beberapa bagian harus
dilakukan secara manual oleh programmer

Metode yang dirancang (Fotheringham, 1961) kemudian dikenal sebagai: memori


maya. Ide dasar di balik memori virtual adalah bahwa setiap program memiliki ruang
alamatnya sendiri, yang dipecah menjadi beberapa bagian yang disebut halaman. Dalam arti,
memori virtual adalah generalisasi dari ide dasar-dan-batas-register. 8088 memiliki register
dasar yang terpisah (tetapi tidak ada register batas) untuk teks dan data. Memori virtual
bekerja dengan baik dalam sistem multiprogramming, dengan potonganpotongan banyak
program dalam memori sekaligus

3.3.1 Halaman

Sebagian besar sistem memori virtual menggunakan teknik yang disebuthalaman,


yang sekarang akan kami jelaskan. Di komputer mana pun, program mereferensikan satu set
alamat memori

Contoh yang sangat sederhana tentang cara kerja pemetaan ini ditunjukkan pada Gambar 3-9.
Dalam contoh ini, kami memiliki komputer yang menghasilkan alamat 16-bit, dari 0 hingga
64K 1.
Ruang alamat virtual terdiri dari unit ukuran tetap yang disebut halaman. Unit yang sesuai
dalam memori fisik disebutbingkai halaman. Halaman dan bingkai halaman umumnya
berukuran sama. Dalam contoh ini ukurannya 4 KB, tetapi ukuran halaman dari 512 byte
hingga gigabyte telah digunakan dalam sistem nyata.

Karena alamat virtual 8192 (dalam halaman virtual 2) dipetakan ke 24576 (dalam bingkai
halaman fisik 6). Sebagai contoh ketiga, alamat virtual 20500 adalah 20 byte dari awal
halaman virtual 5 (alamat virtual 20480 hingga 24575) dan dipetakan ke alamat fisik 12288
20 = 12308. Sekarang mari kita lihat ke dalam MMU untuk melihat cara kerjanya dan
mengapa kita memilih untuk menggunakan ukuran halaman yang dipangkatkan 2. Pada
Gambar 3-10 kita melihat contoh alamat virtual, 8196 (0010000000000100 dalam biner) ,
dipetakan menggunakan peta MMU pada Gambar 3-9.

3.3.2 Tabel Halaman

Dalam implementasi sederhana, pemetaan alamat virtual ke alamat fisik dapat


diringkas sebagai berikut: alamat virtual dibagi menjadi nomor halaman virtual (bit orde
tinggi) dan offset (bit orde rendah). Misalnya, dengan alamat 16-bit dan ukuran halaman 4-
KB, 4 bit atas dapat menentukan salah satu dari 16 halaman virtual dan 12 bit yang lebih
rendah kemudian akan menentukan offset byte (0 hingga 4095) dalam halaman yang dipilih.
Jadi, tujuan dari tabel halaman adalah untuk memetakan halaman virtual ke dalam bingkai
halaman. Secara matematis, tabel halaman adalah sebuah fungsi, dengan nomor halaman
virtual sebagai argumen dan nomor bingkai fisik sebagai hasilnya

3.3.3 Mempercepat Paging

Poin pertama adalah konsekuensi dari kenyataan bahwa pemetaan virtual-ke-fisik harus
dilakukan pada setiap referensi memori. Semua instruksi pada akhirnya harus berasal dari
memori dan banyak dari mereka mereferensikan operan dalam memori juga.

Poin kedua mengikuti fakta bahwa semua komputer modern menggunakan alamat virtual
setidaknya 32 bit, dengan 64 bit menjadi norma untuk desktop dan laptop.

Kebutuhan untuk pemetaan halaman yang besar dan cepat merupakan kendala yang sangat
signifikan dalam cara komputer dibangun. Desain paling sederhana (setidaknya secara
konseptual) adalah memiliki tabel halaman tunggal yang terdiri dari array register perangkat
keras cepat, dengan satu entri untuk setiap halaman virtual, diindeks oleh nomor halaman
virtual, seperti yang ditunjukkan pada Gambar 3-10

3.3.4 Tabel Halaman untuk Memori Besar

Sebagai pendekatan pertama, pertimbangkan penggunaan atabel halaman bertingkat.


Contoh sederhana ditunjukkan pada Gambar 3-13. Pada Gambar 3-13(a) kita memiliki alamat
virtual 32-bit yang dipartisi menjadi 10-bitPT1lapangan, 10-bitPT2bidang, dan 12-
bitMengimbangi bidang. Entri yang terletak dengan mengindeks ke tabel halaman tingkat
atas menghasilkan alamat atau nomor bingkai halaman dari tabel halaman tingkat kedua.

Sebagai contoh, pertimbangkan alamat virtual 32-bit 0x00403004 (4.206.596 desimal), yaitu
12.292 byte ke dalam data. Alamat virtual ini sesuai dengan PT1=1,PT2=3, dan
Mengimbangi=4. MMU pertama kali menggunakanPT1untuk mengindeks ke atas tabel
halaman level dan dapatkan entri 1, yang sesuai dengan alamat 4M hingga 8M 1.
3.4 ALGORITMA PENGGANTIAN HALAMAN

Ketika kesalahan halaman terjadi, sistem operasi harus memilih halaman yang akan
dikeluarkan (dihapus dari memori) untuk memberi ruang bagi halaman yang masuk.
Meskipun dimungkinkan untuk memilih halaman acak untuk dihapus pada setiap kesalahan
halaman, kinerja sistem jauh lebih baik jika halaman yang tidak banyak digunakan dipilih.

3.4.1 Algoritma Penggantian Halaman yang Optimal

Algoritme penggantian halaman terbaik mudah untuk dijelaskan tetapi tidak mungkin untuk
benar-benar diterapkan. Ini berjalan seperti ini. Pada saat kesalahan halaman terjadi, beberapa
set halaman ada di memori.

3.4.2 Algoritma Penggantian Halaman yang Tidak Baru Digunakan

Untuk memungkinkan sistem operasi mengumpulkan statistik penggunaan halaman yang


berguna, kebanyakan komputer dengan memori virtual memiliki dua bit status,RdanM,
terkait dengan setiap halaman.Rdiatur setiap kali halaman direferensikan (dibaca atau
ditulis).Mdiatur ketika halaman ditulis (yaitu, dimodifikasi). Jika perangkat keras tidak memiliki
bit ini, bit tersebut dapat disimulasikan menggunakan mekanisme page fault dan clock interrupt
sistem operasi. Ketika sebuah proses dijalankan, semua entri tabel halamannya ditandai sebagai tidak
ada di memori.

3.4.3 Algoritma Pengganti Halaman First-In, First-Out (FIFO)

Algoritma paging low-overhead lainnya adalahFIFO(Pertama masuk pertama keluar)


algoritma. Untuk mengilustrasikan cara kerjanya, pertimbangkan supermarket yang memiliki
rak yang cukup untuk dipajang dengan tepatkproduk yang berbeda. Salah satu
kemungkinannya adalah menemukan produk yang paling lama disimpan supermarket (yaitu,
sesuatu yang mulai dijual 120 tahun yang lalu) dan membuangnya dengan alasan tidak ada
yang tertarik lagi.

3.4.4 Algoritma Penggantian Halaman Kesempatan Kedua

Modifikasi sederhana untuk FIFO yang menghindari masalah membuang halaman


yang banyak digunakan adalah dengan memeriksaRsedikit halaman tertua. Operasi dari
algoritma ini disebut kesempatan kedua, ditunjukkan pada Gambar.

3.5 MASALAH DESAIN UNTUK SISTEM PAGE

Di bagian sebelumnya kami telah menjelaskan cara kerja paging dan telah memberikan
beberapa algoritme penggantian halaman dasar. Tetapi mengetahui mekanika telanjang saja
tidak cukup.

3.5.1 Kebijakan Alokasi Lokal versus Global

Jika halaman dengan nilai usia terendah dihapus tanpa memperhatikan halaman siapa itu,
halamanB3akan dipilih dan kita akan mendapatkan situasi Gambar 3-22(c). Secara umum,
algoritme global bekerja lebih baik, terutama ketika ukuran set kerja dapat sangat bervariasi
selama masa proses. Jika algoritme lokal digunakan dan set kerja bertambah, thrashing akan
terjadi, meskipun ada cukup banyak bingkai halaman gratis.

3.5.2 Kontrol Beban

Bahkan dengan algoritme penggantian halaman terbaik dan alokasi global bingkai halaman
yang optimal untuk proses, dapat terjadi bahwa sistem rusak. Faktanya, setiap kali kumpulan
kerja gabungan dari semua proses melebihi kapasitas memori, thrashing dapat diharapkan.
Cara yang baik untuk mengurangi jumlah proses yang bersaing untuk mendapatkan memori adalah
dengan menukar beberapa dari mereka ke disk dan membebaskan semua halaman yang mereka
pegang.

3.5.4 Ruang Instruksi dan Data Terpisah

Sebagian besar komputer memiliki ruang alamat tunggal yang menampung program
dan data, seperti ditunjukkan pada Gambar 3-24(a). Salah satu solusi, yang dipelopori pada (16-
bit) PDP-11, adalah memiliki ruang alamat terpisah untuk instruksi (teks program) dan data, yang
disebutruang-akudanruang-D, masing-masing, seperti yang diilustrasikan pada Gambar.

Di komputer dengan desain seperti ini, kedua ruang alamat dapat di-page, secara
independen satu sama lain. Masing-masing memiliki tabel halamannya sendiri, dengan
pemetaan halaman virtualnya sendiri ke bingkai halaman fisik.
3.6 MASALAH IMPLEMENTASI

Pelaksana sistem memori virtual harus membuat pilihan di antara algoritme teoretis
utama, seperti peluang kedua versus penuaan, alokasi halaman lokal versus global, dan
permintaan paging versus pra-halaman.

3.6.1 Keterlibatan Sistem Operasi dengan Paging

Ada empat waktu ketika sistem operasi memiliki pekerjaan terkait paging yang harus
dilakukan: waktu pembuatan proses, waktu eksekusi proses, waktu kesalahan halaman, dan
waktu penghentian proses. Ketika proses baru dibuat dalam sistem paging, sistem operasi
harus menentukan seberapa besar program dan data (awalnya) dan membuat tabel halaman
untuk mereka. Ruang harus dialokasikan dalam memori untuk tabel halaman dan harus
diinisialisasi.

3.6.2 Penanganan Kesalahan Halaman

Kami akhirnya berada dalam posisi untuk menjelaskan secara rinci apa yang terjadi pada
kesalahan halaman.

1. Perangkat keras menjebak ke kernel, menyimpan penghitung program di tumpukan. Pada


kebanyakan mesin, beberapa informasi tentang status instruksi saat ini disimpan dalam
register CPU khusus.

2. Rutin kode perakitan dimulai untuk menyimpan register umum dan informasi volatil
lainnya, untuk menjaga sistem operasi agar tidak merusaknya. Rutin ini memanggil sistem
operasi sebagai prosedur.
3. Sistem operasi menemukan bahwa kesalahan halaman telah terjadi, dan mencoba
menemukan halaman virtual mana yang diperlukan. Seringkali salah satu register perangkat
keras berisi informasi ini. Jika tidak, sistem operasi harus mengambil penghitung program,
mengambil instruksi, dan menguraikannya dalam perangkat lunak untuk mencari tahu apa
yang dilakukannya ketika kesalahan terjadi

4. Setelah alamat virtual yang menyebabkan kesalahan diketahui, sistem akan memeriksa
apakah alamat ini valid dan proteksinya konsisten dengan akses. Jika tidak, proses dikirimi
sinyal atau dimatikan. Jika alamatnya valid dan tidak ada kesalahan perlindungan yang
terjadi, sistem akan memeriksa untuk melihat apakah bingkai halaman kosong. Jika tidak ada
frame yang bebas, algoritma penggantian halaman dijalankan untuk memilih korban.

5. Jika bingkai halaman yang dipilih kotor, halaman dijadwalkan untuk ditransfer ke disk, dan
sakelar konteks terjadi, menangguhkan proses kesalahan dan membiarkan yang lain berjalan
sampai transfer disk selesai. Bagaimanapun, bingkai ditandai sebagai sibuk untuk
mencegahnya digunakan untuk tujuan lain.

6. Segera setelah bingkai halaman bersih (baik segera atau setelah ditulis ke disk), sistem
operasi mencari alamat disk di mana halaman yang dibutuhkan berada, dan menjadwalkan
operasi disk untuk membawanyamasuk. sedang dimuat, proses kesalahan masih
ditangguhkan dan proses pengguna lain dijalankan, jika tersedia.

7. Ketika interupsi disk menunjukkan bahwa halaman telah tiba, tabel halaman diperbarui
untuk mencerminkan posisinya, dan bingkai ditandai sebagai dalam keadaan normal.

8. Instruksi kesalahan di-backup ke keadaan saat dimulai dan penghitung program direset
untuk menunjuk ke instruksi tersebut.

9. Proses kesalahan dijadwalkan, dan sistem operasi kembali ke rutinitas (bahasa rakitan)
yang memanggilnya.

10. Rutin ini memuat ulang register dan informasi status lainnya dan kembali ke ruang
pengguna untuk melanjutkan eksekusi, seolah-olah tidak ada kesalahan yang terjadi.

3.6.3 Instruksi Pencadangan

Ketika sebuah program mereferensikan halaman yang tidak ada dalam memori, instruksi
yang menyebabkan kesalahan dihentikan di tengah jalan dan jebakan ke sistem operasi
terjadi. Pada Gambar 3-27, kita memiliki instruksi yang dimulai dari alamat 1000 yang membuat tiga
referensi memori: kata instruksi dan dua offset untuk operan. Tergantung pada mana dari tiga
referensi memori ini yang menyebabkan kesalahan halaman, penghitung program mungkin 1000,
1002, atau 1004 pada saat kesalahan.

3.6.4 Mengunci Halaman di Memori

Meskipun kita belum banyak membahas I/O dalam bab ini, fakta bahwa komputer memiliki
memori virtual tidak berarti bahwa I/O tidak ada. Jika algoritme paging bersifat global, ada
kemungkinan kecil, tetapi bukan nol, bahwa halaman yang berisi buffer I/O akan dipilih untuk
dihapus dari memori. Jika perangkat I/O saat ini sedang dalam proses melakukan transfer DMA ke
halaman itu, menghapusnya akan menyebabkan sebagian data ditulis di buffer tempatnya berada, dan
sebagian data ditulis di atas just- halaman yang dimuat.

3.6.5 Toko Pendukung

Algoritma paling sederhana untuk mengalokasikan ruang halaman pada disk adalah memiliki
partisi swap khusus pada disk atau, bahkan lebih baik, pada disk terpisah dari sistem file
(untuk menyeimbangkan beban I/O). Terkait dengan setiap proses adalah alamat disk dari area
swap-nya, yaitu, di mana pada partisi swap image-nya disimpan. Informasi ini disimpan dalam tabel
proses.

3.6.6 Pemisahan Kebijakan dan Mekanisme

Alat penting untuk mengelola kompleksitas sistem apa pun adalah memisahkan
kebijakan dari mekanisme. Prinsip ini dapat diterapkan pada manajemen memori dengan
menjalankan sebagian besar manajer memori sebagai proses tingkat pengguna.

Di sini sistem manajemen memori dibagi menjadi tiga bagian:

1. Pengendali MMU tingkat rendah.

2. Penanganan kesalahan halaman yang merupakan bagian dari kernel.


3. Sebuah pager eksternal berjalan di ruang pengguna

Semua detail tentang cara kerja MMU dienkapsulasi dalam pengendali MMU, yang
merupakan kode yang bergantung pada mesin dan harus ditulis ulang untuk setiap platform
baru yang menjadi tujuan porting sistem operasi. Ketika sebuah proses dimulai, pager eksternal
diberitahukan untuk mengatur peta halaman proses dan mengalokasikan backing store yang
diperlukan pada disk jika perlu.

Setelah proses mulai berjalan, mungkin ada kesalahan halaman. Penangan kesalahan mencari
tahu halaman virtual mana yang diperlukan dan mengirim pesan ke pager eksternal,
memberitahukan masalahnya.

Implementasi ini membuka tempat algoritma penggantian halaman diletakkan. Akan lebih
baik untuk memilikinya di pager eksternal, tetapi ada beberapa masalah dengan pendekatan
ini. Prinsip di antaranya adalah bahwa pager eksternal tidak memiliki akses keR danMbit dari
semua halaman. Keuntungan utama dari implementasi ini adalah kode yang lebih modular dan
fleksibilitas yang lebih besar. Kerugian utama adalah overhead ekstra melintasi batas kernel pengguna
beberapa kali dan overhead dari berbagai pesan yang dikirim di antara bagian-bagian sistem.

Anda mungkin juga menyukai