Anda di halaman 1dari 34

CRITICAL BOOK REPORT SISTEM OPERASI KOMPUTER

MANAJEMEN MEMORY

Disusun Oleh:

NAMA : MIRANDA GULTOM

NIM : 5203151019

Dosen Pengampu: Ressy Dwi Tias Sari, S.T.,M.T.I

PENDIDIKAN TEKNOLOGI INFORMATIKA DAN


KOMPUTER B

FAKULTAS TEKNIK

UNIVERSITAS NEGERI MEDAN 2020


KATA PENGANTAR

Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Esa, karena penulis masih dapat
membuat tugas Critical Book Report (CBR) ini tepat pada waktunya. Makalah ini membahas
tentang “Manajemen Memory”.

Adapun tugas ini dibuat untuk memenuhi tugas CBR mata kuliah sistem operasi komputer.
Penulis berharap makalah ini bisa menjadi salah satu referensi bagi pembaca bila mana
hendak membandingkan isi dua buku yang berisi tentang materi yang berhubungan dengan
Manajemen Memory.

Kritik dan saran yang membangun dari pembaca sangat penulis harapkan supaya makalah ini
menjadi lebih baik. Akhir kata, penulis mengucapkan terimakasih kepada pembaca atas
perhatiannya.

Medan , Oktober 2020

Penulis

i
DAFTAR ISI

Kata Pengantar ....................................................................................................................i

Daftar Isi ............................................................................................................................ii

BAB I PENDAHULUAN ...................................................................................................1

1.1 Latar Belakang ..............................................................................................................1

1.2 Rumusan Masalah .........................................................................................................1

1.3 Tujuan ...........................................................................................................................1

BAB II ISI BUKU...............................................................................................................2

2.1 Identitas Buku................................................................................................................2

2.2 Ringkasan Buku II.........................................................................................................2

BAB III PEMBAHASAN..................................................................................................29

3.1 Analisis Buku .............................................................................................................29

3.2 Kelemahan dan Kelebihan Buku .................................................................................29

BAB IV PENUTUP ..........................................................................................................30

4.1 Kesimpulan .................................................................................................................30

4.2 Saran ...........................................................................................................................30

Daftar Pustaka ..................................................................................................................31

ii
BAB I
Pendahuluan
1.1 Latar Belakang

Critical Book Report adalah sebuah karya hasil dari kritikan/bandingan dari suatu topik
materi yang bertujuan untuk mengetahui isi buku, akan tetapi lebih menitikberatkan
kepada evaluasi terhadap buku yang berbeda. Penulisan Critical Book Report ini pada
dasarnya adalah untuk memenuhi tugas mata kuliah Sistem Operasi komputer

Setiap buku pasti memiliki kekurangan dan kelebihan masing-masing. Kelayakan


suatu buku dapat kita ketahui apabila kita meresensi buku itu dengan membandingkan
dengan buku lainnya. Apabila suatu buku memiliki kelebihan yang lebih banyak
dibandingkan kekurangannya maka, buku tersebut sudah layak untuk dipakai dan
dijadikan sebagai sumber referensi dalam pembuatan sebuah karya tulis.

1.2 Tujuan

1. Untuk memenuhi tugas mata kuliah Sistem Operasi Komputer


2. Untuk mengulas isi bab buku yang dikritik
3. Untuk membandingkan isi buku

1.3 Manfaat

1. Agar pembaca mengetahui hal-hal penting yang ada didalam pembahasan ini
2. Agar memahami materi yang dibahas
3. Agar penulis terlatih dalam mengkritik suatu buku

1
BAB II
ISI BUKU

2.1 Identitas Buku

2.1.1 Identitas Buku I

Judul Buku : Modern Operating Systems

Edisi : Keempat

Penulis : Andrew S. Tanenbaum, Herbert Bos

Penerbit : Pearson Education

Tahun Terbit : 2015

Jumlah halaman yang dipakai: 72 halaman

2.1.2 Identitas Buku II

Judul : Operating System Concepts

Edisi : Kesembilan

Penulis : Abraham Silberschatz, Peter Baer Galvin, Greg Gagne

Penerbit : Wiley

Tahun Terbit : 2014

Jumlah halaman yang dipakai : 116

2.2 Ringkasan Buku

2.2.1 Ringkasan Buku I

3.1 No Memori Abstraksi

Abstraksi memori yang paling sederhana adalah tidak memiliki abstraksi sama sekali. Utama
awal komputer bingkai (sebelum 1960), komputer mini awal (sebelum 1970), dan perkomputer
pribadi (sebelum 1980) tidak memiliki abstraksi memori. Setiap program sederhana melihat
memori fisik. Ketika sebuah program menjalankan instruksi seperti MOV REGISTER1, 1000
komputer baru saja memindahkan isi 1000 lokasi memori fisik ke REGISTER1. Dengan
demikian, model memori yang disajikan kepada pemrogram hanyalah fisik memori ical, satu

2
set alamat dari 0 hingga beberapa maksimum, setiap alamat sesuai genangan ke sel yang berisi
sejumlah bit, biasanya delapan.

Perangkat seperti radio, mesin cuci, dan oven microwave semuanya penuh perangkat lunak
(dalam ROM) hari ini, dan dalam banyak kasus perangkat lunak alamat absomemori kecapi. Ini
berfungsi karena semua program diketahui sebelumnya dan pengguna tidak bebas menjalankan
perangkat lunak mereka sendiri di pemanggang roti mereka. Sementara sistem tertanam kelas
atas (seperti smartphone) memiliki operasi yang rumit sistem yang lebih sederhana tidak.
Dalam beberapa kasus, ada sistem operasi, tetapi itu hanya pustaka yang terhubung dengan
program aplikasi dan menyediakan sistem panggilan untuk melakukan I / O dan tugas umum
lainnya. Sistem operasi e-Cos adalah contoh umum dari sistem operasi sebagai perpustakaan.

3.2 Memori Abstrak: Ruang Alamat

Di komputer pribadi, ini com mon untuk membuka beberapa program sekaligus (pengolah kata,
program email, file Browser web), salah satunya memiliki fokus saat ini, tetapi yang lainnya
aktif vated di klik mouse. Karena situasi ini sulit dicapai bila ada abstraksi dari ingatan fisik,
sesuatu harus dilakukan.

3.2.1 Arti dari Address Space

Sebuah alamat space adalah himpunan alamat yang dapat digunakan proses untuk
mengalamatkan memori. Setiap proses memiliki ruang alamatnya sendiri, tidak tergantung
pada alamat yang dimiliki oleh proses lain (kecuali dalam beberapa keadaan khusus di mana
proses ingin membagikan alamatnya spasi). Konsep address space sangat umum dan terjadi
dalam banyak konteks.

3.2.2 Bertukar

Saat bertukar membuat banyak lubang di memori, dimungkinkan untuk menggabungkan


semuanya menjadi satu dengan memindahkan semua proses ke bawah sejauh mungkin. Teknik
ini dikenal sebagai pemadatan memori . Biasanya tidak dilakukan karena itu membutuhkan
banyak waktu CPU. Misalnya, pada mesin 16 GB yang dapat menyalin 8 byte dalam 8 nsec,
dibutuhkan sekitar 16 detik untuk memadatkan semua memori.

3.2.3 Mengelola Memori Bebas

Secara umum, ada dua cara untuk melacak penggunaan memori: bitmap dan daftar gratis.
Dengan pemasangan yang cepat, menemukan lubang dengan ukuran yang dibutuhkan sangatlah
cepat, tetapi ia berhasil kerugian yang sama seperti semua skema yang diurutkan berdasarkan
ukuran lubang, yaitu, ketika proses berakhir atau ditukar, mencari tetangganya untuk melihat
apakah bergabung dengan mereka mungkin harganya cukup mahal. Jika penggabungan tidak
dilakukan, memori akan cepat pecah menjadi sejumlah besar lubang kecil di mana tidak ada
proses yang cocok.

3.3 Memori Virtual

3
Dalam arti tertentu, memori virtual adalah generalisasi dari base and limit register ide. 8088
memiliki register dasar yang terpisah (tetapi tidak ada register batas) untuk teks dan data.
Dengan memori virtual, alih-alih memiliki relokasi terpisah hanya untuk teks dan segmen data,
seluruh ruang alamat dapat dipetakan ke memori fisik unit yang cukup kecil. Kami akan
menunjukkan bagaimana memori virtual diimplementasikan di bawah ini.

Memori virtual berfungsi dengan baik dalam sistem multiprogramming, dengan bit dan
potongan dari banyak program di memori sekaligus. Sementara sebuah program menunggu
potongan itu sendiri untuk dibaca, CPU dapat diberikan ke proses lain.

3.3.1 Paging

Alamat yang dihasilkan program ini disebut alamat virtual dan membentuk ruang alamat virtual
. Pada komputer tanpa memori virtual, alamat virtual diletakkan langsung ke bus memori dan
menyebabkan kata memori fisik dengan alamat yang sama untuk dibaca atau ditulis. Ketika
memori virtual digunakan, iklan virtual gaun tidak langsung masuk ke bus memori. Sebagai
gantinya, mereka pergi ke MMU ( Memory Management Unit ) yang memetakan alamat virtual
ke memori fisik alamat.

3.3.2 Tabel Halaman

Tujuan dari tabel halaman adalah untuk memetakan halaman virtual ke bingkai halaman.
Secara matematis, tabel halaman adalah sebuah fungsi, dengan nomor halaman virtual sebagai
argumen dan nomor bingkai fisik sebagai hasilnya.

Memori virtual dapat diimplementasikan dengan memecah ruang alamat virtual menjadi
beberapa halaman, dan memetakannya ke setiap halaman beberapa bingkai halaman memori
fisik atau tidak dipetakan (sementara). Jadi bagian ini secara bass tentang abstraksi yang dibuat
oleh sistem operasi dan bagaimana abstraksi itu dikelola.

3.3.3 Mempercepat Paging

Sekarang saatnya untuk membahas lebih detail tentang kemungkinan penerapan. Dalam sistem
paging apa pun, dua masalah utama harus dihadapi:

1. Pemetaan dari alamat virtual ke alamat fisik harus cepat.

2. Jika ruang alamat virtual besar, tabel halaman akan menjadi besar.

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

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

4
ukuran halaman 4 KB, ruang alamat 32-bit memiliki 1 juta halaman, dan file ruang alamat 64-
bit memiliki lebih dari yang ingin Anda pikirkan.

3.3.4 Tabel Halaman untuk Memori Bebas

TLB dapat digunakan untuk mempercepat terjemahan alamat virtual-ke-fisik melalui skema
halaman-tabel-dalam-memori asli. Tapi itu bukan satu-satunya masalah yang harus kita hadapi
mengatasi. Masalah lainnya adalah bagaimana menangani ruang alamat virtual yang sangat
besar. Di bawah ini kami akan membahas dua cara untuk menghadapinya.

3.4 Algoritma Penggantian Halaman

dicatat bahwa masalah '' penggantian halaman '' terjadi di area lain desain komputer juga.
Misalnya, kebanyakan komputer memiliki satu atau lebih cache terdiri dari blok memori 32-
byte atau 64-byte yang baru-baru ini digunakan. Kapan cache sudah penuh, beberapa blok
harus dipilih untuk dihapus. Masalah ini adalah pra persis sama seperti penggantian halaman
kecuali dalam skala waktu yang lebih singkat (harus dilakukan dalam beberapa nanodetik,
bukan milidetik seperti penggantian halaman). Alasan anak untuk skala waktu yang lebih
pendek adalah bahwa cache blok yang hilang dari main memori, yang tidak memiliki waktu
pencarian dan latensi rotasi.

3.4.1 Algoritma Penggantian Halaman Optimal

Untuk menghindari kemungkinan kebingungan, harus dijelaskan bahwa log halaman ini
referensi hanya mengacu pada satu program yang baru diukur dan kemudian hanya satu
masukan spesifik. Algoritme penggantian halaman yang diturunkan darinya dikhususkan untuk
program itu dan memasukkan data. Meskipun metode ini berguna untuk mengevaluasi
algoritma penggantian halaman, tidak ada gunanya dalam sistem praktis. Di bawah ini kami
akan melakukannya algoritma studi yang berada berguna pada sistem nyata.

3.4.2 Algoritma Penggantian Halaman yang Tidak Baru-baru ini Digunakan

Ketika suatu proses dimulai, semua entri tabel halamannya ditandai sebagai tidak ada dalam
memori. Sesegera mungkin halaman direferensikan, kesalahan halaman akan terjadi. Sistem
operasi kemudian menetapkan bit R, (dalam tabel internalnya), mengubah entri tabel halaman
agar mengarah ke halaman yang benar, dengan mode HANYA BACA, dan mulai ulang
instruksi. Jika halaman selanjutnya dimodifikasi, kesalahan halaman lain akan terjadi,
memungkinkan sistem operasi untuk mengatur M, bit dan ubah mode halaman menjadi
BACA / TULIS.

3.4.3 Algoritma Penggantian Halaman First In, First Out(FIFO)

Algoritma paging dengan overhead rendah lainnya adalah FIFO ( First-In, First-Out )
algoritma. Untuk menggambarkan bagaimana ini bekerja, pertimbangkan supermarket yang
memiliki cukup rak untuk display persis k produk yang berbeda. Suatu hari, beberapa
perusahaan memperkenalkan makanan praktis baru — yogurt organik instan, kering beku, yang

5
dapat direkonsiliasi tuted dalam oven microwave. Ini adalah kesuksesan langsung, jadi
supermarket terbatas kami harus membuang satu produk lama untuk menyimpannya.

3.4.4 Algoritma Penggantian Halaman Kesempatan Kedua

Modifikasi sederhana untuk FIFO yang menghindari masalah membuang-buang waktu.


Halaman yang digunakan adalah untuk memeriksa bit R dari halaman tertua. Jika 0,
halamannya adalah keduanya tua dan tidak terpakai, sehingga segera diganti. Jika bit R adalah
1, bit tersebut dihapus, halaman diletakkan di akhir daftar halaman, dan waktu muatnya
diperbarui sebagai meskipun itu baru saja diingat.

3.4.5 Algoritma Penggantian Halaman

Meskipun peluang kedua adalah algoritme yang masuk akal, ini tidak perlu karena terus-
menerus memindahkan halaman-halaman dalam daftarnya. Pendekatan yang lebih baik adalah
menyimpan semua bingkai halaman pada daftar melingkar dalam bentuk jam

3.4.6 Algoritma Penggantian Halaman LRU

Perkiraan yang baik untuk algoritma yang optimal didasarkan pada observasi bahwa halaman
yang telah banyak digunakan dalam beberapa instruksi terakhir mungkin akan digunakan
banyak digunakan lagi segera. Sebaliknya, halaman yang sudah lama tidak digunakan akan
mungkin tetap tidak digunakan untuk waktu yang lama. Ide ini menyarankan algoritme yang
dapat diwujudkan: ketika terjadi kesalahan halaman, buang halaman yang sudah lama tidak
digunakan waktu. Strategi ini disebut paging LRU ( Least recent used ).

3.4.7 Mensimulasikan LRU dalam Perangkat Lunak

Meskipun algoritme LRU sebelumnya (pada prinsipnya) dapat direalisasikan, sedikit, jika ada,
mesin memiliki perangkat keras yang diperlukan. Sebaliknya, solusi yang bisa diterapkan
dalam perangkat lunak dibutuhkan. Salah satu kemungkinannya disebut NFU ( Not Frequently
Used ) algoritma. Ini membutuhkan penghitung perangkat lunak yang terkait dengan setiap
halaman, awalnya nol.

3.4.8 Algoritma Penggantian Halaman Set Kerja

Dalam bentuk paging yang paling murni, proses dimulai tanpa halamannya dalam kenangan.
Segera setelah CPU mencoba mengambil instruksi pertama, ia mendapat halaman kesalahan,
menyebabkan sistem operasi membawa halaman yang berisi instruksi pertama . Kesalahan
halaman lain untuk variabel global dan tumpukan biasanya mengikuti dengan cepat. Setelah
beberapa saat, proses tersebut memiliki sebagian besar halaman yang dibutuhkan dan menetap
untuk dijalankan dengan kesalahan halaman yang relatif sedikit. Strategi ini disebut demand
paging karena halaman dimuat hanya berdasarkan permintaan, bukan sebelumnya.

6
3.4.9 Algoritma Penggantian Halaman WsClock

Algoritma set kerja dasar tidak praktis, karena seluruh tabel halaman memiliki untuk dipindai
di setiap kesalahan halaman sampai kandidat yang cocok ditemukan. Sebuah perbaikan
algoritma, yang didasarkan pada algoritma jam tetapi juga menggunakan set kerja informasi,
disebut WSClock (Carr dan Hennessey, 1981). Karena kesederhanaannya implementasi dan
kinerja yang baik, ini banyak digunakan dalam praktik.

3.4.10 Ringkasan Algoritma Penggantian Halaman

Algoritma set kerja memberi kinerja yang wajar, tetapi agak mahal untuk diterapkan. WSClock
adalah varian yang tidak hanya memberikan performa bagus tetapi juga efisien untuk
diterapkan. Secara keseluruhan, dua algoritma terbaik adalah penuaan dan WSClock. Mereka
didasarkan pada LRU dan set kerja, masing-masing. Keduanya memberikan performa paging
yang baik dan dapat diimplementasikan secara efisien. Ada beberapa algoritme bagus lainnya,
tetapi keduanya mungkin yang paling penting dalam praktiknya.

3.5 Isu Desain Untuk Sistem Paging

Untuk merancang sistem dan membuatnya bekerja dengan baik, Anda harus tahu banyak lebih.
Ini seperti perbedaan antara mengetahui cara memindahkan benteng, ksatria, uskup, dan bidak
catur lainnya, dan menjadi pemain yang baik. Detik berikut, kita akan melihat masalah lain
yang harus dipertimbangkan oleh perancang sistem operasi hati-hati untuk mendapatkan
kinerja yang baik dari sistem paging.

3.5.1 Kebijakan Alokasi Lokal Vs Global

Secara umum, algoritma global bekerja lebih baik, terutama ketika ukuran set yang berfungsi
dapat sangat bervariasi selama proses berlangsung. Jika algoritma lokal digunakan dan set kerja
tumbuh, meronta-ronta akan menghasilkan, bahkan jika jumlahnya cukup bingkai halaman
gratis. Jika set kerja menyusut, algoritma lokal membuang memori. Jika sebuah algoritma
global digunakan, sistem harus terus memutuskan berapa banyak halaman bingkai untuk
ditetapkan ke setiap proses. Salah satu caranya adalah dengan memantau ukuran set kerja
seperti pada ditentukan oleh bit penuaan, tetapi pendekatan ini tidak serta merta mencegah
perontokan.

3.5.2 Kontrol Beban

Bahkan dengan algoritma penggantian halaman terbaik dan alokasi global yang optimal frame
halaman ke proses, dapat terjadi sistem mengalami thrash. Faktanya, ketika bahkan set kerja
gabungan dari semua proses melebihi kapasitas memori, meronta-ronta bisa diharapkan. Salah
satu gejala dari situasi ini adalah algoritma PFF menunjukkan bahwa beberapa proses
membutuhkan lebih banyak memori tetapi tidak ada proses yang membutuhkan lebih sedikit
memori.

3.5.3 Ukuran Halaman

7
Ukuran halaman merupakan parameter yang dapat dipilih oleh sistem operasi. Bahkan jika
perangkat keras telah dirancang dengan, misalnya, halaman 4096-byte, operasi Sistem ing
dapat dengan mudah menganggap pasangan halaman 0 dan 1, 2 dan 3, 4 dan 5, dan seterusnya,
sebagai 8-KB halaman dengan selalu mengalokasikan dua frame halaman 8192-byte berturut-
turut untuk mereka.

3.5.4 Ruang Instruksi dan Data Terpisah

Masing-masing memiliki tabel halamannya sendiri, dengan peta halaman virtual ke frame
halaman fisik. Saat perangkat keras ingin mengambil file instruksi, ia tahu bahwa itu harus
menggunakan I-space dan tabel halaman I-space. Demikian pula, data harus melalui tabel
halaman D-space. Selain perbedaan ini, memiliki ruang I dan D yang terpisah tidak
menimbulkan komplikasi khusus untuk operasi sistem dan itu menggandakan ruang alamat
yang tersedia.

3.5.5 Halaman Bersama

Masalah desain lainnya adalah berbagi. Dalam sistem multiprogramming yang besar, itu umum
bagi beberapa pengguna untuk menjalankan program yang sama pada waktu yang sama.
Bahkan pengguna tunggal mungkin menjalankan beberapa program yang menggunakan
pustaka yang sama. Itu jelas lebih efisien untuk berbagi halaman, untuk menghindari dua
salinan dari halaman yang sama memori pada saat bersamaan

3.5.6 Perpustakaan Bersama

Berbagi dapat dilakukan pada perincian lain selain halaman individual. Jika sebuah program
dimulai dua kali, sebagian besar sistem operasi akan secara otomatis membagikan semua teks
halaman sehingga hanya ada satu salinan dalam memori. Halaman teks selalu hanya baca, jadi
begitulah tidak ada masalah disini. Bergantung pada sistem operasinya, setiap proses mungkin
mendapatkannya memiliki salinan pribadi dari halaman data, atau mungkin dibagikan dan
ditandai hanya baca. Jika ada proses yang mengubah halaman data, salinan pribadi akan dibuat
untuknya, yaitu, salinan saat menulis akan diterapkan.

3.5.7 File yang Dipetakan

Shared library yang benar-benar kasus khusus dari fasilitas yang lebih umum disebut file yang
dipetakan . Idenya di sini adalah bahwa suatu proses dapat mengeluarkan panggilan sistem
untuk memetakan sebuah file ke bagian dari ruang alamat virtualnya.

3.5.8 Kebijakan Bersama

Paging berfungsi paling baik bila ada banyak persediaan bingkai halaman gratis itu dapat
diklaim saat terjadi kesalahan halaman. Jika setiap frame halaman penuh, dan selanjutnya
diubah, sebelum halaman baru dapat dibawa masuk, halaman lama harus ditulis terlebih dahulu
disk. Untuk memastikan pasokan frame halaman gratis yang berlimpah, umumnya sistem
paging memiliki proses latar belakang, yang disebut daemon paging

8
3.5.9 Antarmuka Memori Virtual

Salah satu alasan untuk memberi pemrogram kendali atas peta memori mereka adalah untuk
mengizinkan dua atau lebih proses untuk berbagi memori yang sama. terkadang dengan cara
yang canggih cara. Jika pemrogram dapat memberi nama wilayah memori mereka, itu mungkin
untuk satu proses untuk memberi proses lain nama wilayah memori sehingga proses itu juga
dapat memetakannya. Dengan dua (atau lebih) proses yang berbagi halaman yang sama, tinggi
berbagi bandwidth menjadi mungkin — satu proses menulis ke dalam memori bersama dan
yang lainnya membacanya.

3.6 Masalah Implementasi

Pelaksana sistem memori virtual harus membuat pilihan di antara file algoritma teoritis utama,
seperti kesempatan kedua versus penuaan, lokal versus global alokasi halaman bal, dan
permintaan paging versus prepaging.

3.6.1 Keterlibatan Sistem Operasi dengan Paging

Ada empat kali ketika sistem operasi memiliki pekerjaan terkait paging yang harus dilakukan:
waktu pembuatan proses, waktu eksekusi proses, waktu kesalahan halaman, dan termi- waktu
bangsa. Sekarang kita akan memeriksa secara singkat masing-masing untuk melihat apa yang
harus dilakukan.

3.6.2 Penanganan Kesalahan Halaman

3.6.3 Pencadangan Instruksi

Dengan adanya informasi ini, sistem operasi dapat urungkan secara besar-besaran semua efek
dari instruksi kesalahan sehingga dapat dimulai kembali. Jika informasi ini tidak tersedia,
sistem operasi harus melewati rintangan untuk mencari tahu apa yang terjadi dan bagaimana
memperbaikinya. Seolah-olah perangkat keras itu penandatangan tidak dapat menyelesaikan
masalah, jadi mereka mengangkat tangan dan memberi tahu penulis sistem operasi untuk
menghadapinya.

3.6.4 Mengunci Halaman dalam Memori

Meskipun kami belum banyak membahas I / O dalam bab ini, fakta bahwa perusahaan puter
memiliki memori virtual tidak berarti I / O tidak ada. Memori virtual dan I / O berinteraksi
dengan cara yang halus. Pertimbangkan proses yang baru saja mengeluarkan panggilan sistem
ke membaca dari beberapa file atau perangkat ke buffer dalam ruang alamatnya.

3.6.5 Backing Store

Halaman yang ada di memori selalu memiliki salinan bayangan pada disk, tetapi salinan ini
mungkin kedaluwarsa jika file halaman telah diubah sejak dimuat. Halaman berbayang dalam
memori menunjukkan halaman tidak ada dalam memori. Halaman berbayang pada disk (pada

9
prinsipnya) digantikan oleh salinan di memori, meskipun jika halaman memori harus ditukar
kembali ke disk dan belum pernah diubah sejak dimuat, disk (berbayang) salinan akan
digunakan.

3.6.6 Pemisahan Kebijaksanaan dan Mekanisme

Alat penting untuk mengelola kompleksitas sistem apa pun adalah membagi kebijakan dari
mekanisme. Prinsip ini dapat diterapkan pada manajemen memori dengan memiliki sebagian
besar pengelola memori dijalankan sebagai proses tingkat pengguna. Pemisahan seperti itu
pertama kali dilakukan di Mach (Young et al., 1987)

3.7 Segmentasi

Segmentasi juga memfasilitasi prosedur berbagi atau data antara beberapa proses. Contoh
umum adalah perpustakaan bersama. Stasiun kerja modern yang menjalankan iklan sistem
jendela vanced sering kali memiliki pustaka grafis yang sangat besar yang dikompilasi ke
dalam hampir setiap program. Dalam sistem tersegmentasi, perpustakaan grafis dapat
diletakkan dalam sebuah segmen dan dibagikan oleh beberapa proses, menghilangkan
kebutuhan untuk memilikinya setiap ruang alamat proses. Meskipun dimungkinkan juga untuk
berbagi perpustakaan di sistem paging murni, ini lebih rumit. Akibatnya, sistem ini
melakukannya dengan cara sederhana.

3.7.1 Penerapan Segmentasi Murni

Setelah sistem telah berjalan beberapa saat, memori akan dibagi menjadi beberapa bongkahan,
sebagian mengandung segmen dan sebagian mengandung lubang. Fenomena ini, disebut
checkerboarding atau fragmentasi eksternal , membuang-buang memori di dalam lubang. Ini
dapat ditangani dengan pemadatan,

3.7.2 Segmentasi dengan Paging: MULTICS

Sistem operasi MULTICS adalah salah satu sistem operasi yang paling berpengaruh masalah
ini, memiliki pengaruh besar pada topik yang berbeda seperti UNIX, x86 arsitektur memori,
TLB, dan komputasi awan. Ini dimulai sebagai penelitian proyek di MIT dan ditayangkan pada
tahun 1969. Sistem MULTICS terakhir ditutup pada tahun 2000, jangka waktu 31 tahun.
Beberapa sistem operasi lain bertahan lebih atau kurang tidak dimodifikasi mendekati selama
itu. Sedangkan sistem operasinya disebut Windows juga telah ada selama itu, Windows 8 sama
sekali tidak memiliki kesamaan dengan Windows 1.0 kecuali nama dan fakta bahwa itu ditulis
oleh Microsoft.

3.7.3 Segmentasi dengan Paging: Intel X86

Faktanya, semua sistem operasi saat ini untuk x86 bekerja dengan cara ini. OS / 2 adalah satu-
satunya salah satu yang menggunakan kekuatan penuh dari arsitektur MMU Intel. Jadi
mengapa Intel membunuh varian dari MULTICS model ory yang didukungnya selama hampir
tiga dekade? Mungkin alasan utamanya adalah bahwa baik UNIX maupun Windows tidak

10
pernah menggunakannya, meskipun itu cukup efisien menjadi karena itu menghilangkan
panggilan sistem, mengubahnya menjadi panggilan prosedur secepat kilat ke alamat yang
relevan dalam segmen sistem operasi yang dilindungi. Tak satupun dari pengembang sistem
UNIX atau Windows mana pun ingin mengubah memori mereka model untuk sesuatu yang
spesifik x86 karena akan merusak portabilitas platform lain.

3.8 Penelitian Manajemen Memori

Manajemen memori tradisional, terutama algoritma paging untuk uniprocesor CPUs, dulunya
merupakan area yang bermanfaat untuk penelitian, tetapi sebagian besar tampaknya memiliki
sebagian besar mati, setidaknya untuk sistem tujuan umum, meskipun ada beberapa orang yang
tidak pernah mengatakan mati (Moruz et al., 2012) atau berfokus pada beberapa aplikasi seperti
pemrosesan transaksi online, yang memiliki persyaratan khusus (Stoica dan Ailamaki, 2013)

2.1.2 Ringkasan Buku II

Bab 8 Memori Utama

8.1 Latar Belakang

Memori terdiri dari beberapa byte, dimana masing-masing byte memiliki tempat tersendiri.
CPU mengambil instruksi dari memori sesuai dengan programnya. Siklus instruksi-eksekusi
yang khas, misalnya, pertama-tama mengambil instruksi dari memori. Instruksi tersebut
kemudian diterjemahkan dan dapat menyebabkan operan untuk diambil dari memori. Setelah
instruksi dijalankan pada operan, hasil dapat disimpan kembali ke memori.

8.1.1 Dasar Perangkat Keras

Ada mesin instruksi yang menggunakan alamat memori sebagai argumen, tetapi tidak
ada yang menggunakan disk alamat. Oleh karena itu, setiap instruksi dalam eksekusi, dan data
apa pun yang digunakan sesuai petunjuknya, harus berada di salah satu perangkat penyimpanan
akses langsung ini. Jika data tidak ada dalam memori maka, mereka harus dipindahkan ke sana
sebelum CPU dapat beroperasi pada mereka.

Untuk sistem operasi yang tepat kita harus melindungi sistem operasi dari akses oleh
proses pengguna. Pada sistem multipengguna, kami juga harus melindungi proses pengguna
dari satu sama lain. Perlindungan ini harus disediakan oleh perangkat keras karena sistem
operasi biasanya tidak mengintervensi antara CPU dan memorinya akses (karena hukuman
kinerja yang dihasilkan). Implementasi perangkat keras produksi ini dalam beberapa cara
berbeda.

Pertama-tama kita perlu memastikan bahwa setiap proses memiliki ruang memori terpisah.
Ruang memori per proses yang terpisah melindungi proses dari satu sama lain dan
sangat penting untuk memiliki banyak proses yang dimuat dalam memori untuk konkurensi

11
eksekusi. Untuk memisahkan ruang memori, kita membutuhkan kemampuan untuk
menentukan berbagai alamat hukum yang dapat diakses oleh proses dan untuk memastikan
bahwa proses hanya dapat mengakses alamat resmi ini. Kami dapat memberikan perlindungan
ini dengan menggunakan dua register yaitu, basis dan batas.
Register dasar dan batas hanya dapat dimuat oleh sistem operasi,
yang menggunakan instruksi dengan hak istimewa khusus. Sejak instruksi hak istimewa bisa
dijalankan hanya dalam mode kernel, dan karena hanya sistem operasi yang dijalankan
dalam mode kernel, hanya sistem operasi yang dapat memuat register basis dan batas.

8.1.2 Tempat mengikat

Proses pada disk itu sedang menunggu untuk dibawa ke memori untuk eksekusi dari
antrian input . Prosedur normal tugas tunggal adalah memilih salah satu proses dalam antrian
masukan dan untuk memuat proses itu ke dalam memori. Sebagai prosesnya dijalankan, itu
mengakses instruksi dan data dari memori. Akhirnya, proses berakhir, dan ruang memorinya
dinyatakan tersedia.

8.1.3 Ruang Tempat Logis Vs Fisik

Sebuah alamat yang dihasilkan oleh CPU biasanya disebut sebagai alamat logis ,
sedangkan alamat dilihat oleh unit memori — yaitu, yang dimuat ke dalamnya yang memori-
register alamat memori-sering disebut sebagai alamat fisik . Metode pengikatan alamat waktu
kompilasi dan waktu muat menghasilkan alamat logis dan fisik tical. Namun, alamat waktu
eksekusi skema pengikatan menghasilkan alamat logis dan fisik yang berbeda. Di dalam kasus,
kami biasanya merujuk ke alamat logis sebagai alamat virtual.

Kumpulan semua alamat logis yang dihasilkan oleh suatu program adalah ruang alamat
logis . Set dari semua alamat fisik yang sesuai dengan alamat logis ini adalah alamat fisik ruang
alamat . Jadi, dalam skema pengikatan alamat waktu-eksekusi, logis dan ruang alamat fisik
berbeda.

8.1.4 Pembebanan Dinamis

Untuk memperoleh pemanfaatan ruang memori yang lebih baik, kita dapat
menggunakan pemuatan dinamis . Dengan dinamis memuat, rutin tidak dimuat sampai
dipanggil. Semua rutinitas disimpan di disk dalam format pemuatan yang dapat direlokasi.
Program utama dimuat ke dalam memori dan dieksekusi. Ketika rutinitas perlu memanggil
rutinitas lain, rutinitas menelepon cek pertama untuk melihat apakah rutinitas lain telah dimuat.

Keuntungan dari pembebanan dinamis adalah rutinitas dimuat hanya saat itu
dibutuhkan. Metode ini sangat berguna ketika kode dalam jumlah besar diperlukan untuk
menangani kasus yang jarang terjadi, seperti rutinitas kesalahan.

8.1.5 Tautan Dinamis & Perpustakaan Bersama

12
Pustaka yang ditautkan secara dinamis adalah pustaka sistem yang ditautkan ke
pengguna program ketika program dijalankan. Fitur ini biasanya digunakan dengan pustaka
sistem, seperti subrutin bahasa perpustakaan. Tanpa fasilitas ini, setiap program di sistem harus
menyertakan salinannya perpustakaan bahasanya.

Dengan penautan dinamis, sebuah rintisan disertakan dalam gambar untuk setiap
perpustakaan referensi rutin. Rintisan adalah potongan kecil kode yang menunjukkan cara
mencari lokasi rutinitas pustaka penghuni memori yang sesuai atau cara memuat pustaka jika
rutinitas belum ada.

Jika proses dalam memori satu sama lain dilindungi, maka sistem operasi adalah satu-
satunya entitas yang dapat periksa untuk melihat apakah rutinitas yang dibutuhkan ada di ruang
memori proses lain atau yang memungkinkan banyak proses untuk mengakses alamat memori
yang sama.

8.2 bertukar

Suatu proses, bagaimanapun, bisa jadi menukar sementara dari memori ke penyimpanan
pendukung dan kemudian dibawa kembali ke dalam memori untuk eksekusi lanjutan.

8.2.1 Pertukaran Standar

Pertukaran standar melibatkan proses pemindahan antara memori utama dan toko pendukung.
Penyimpanan pendukung biasanya berupa disk cepat. Itu pasti cukup besar untuk menampung
salinan dari semua gambar memori untuk semua pengguna, dan itu harus menyediakan akses
langsung ke gambar memori ini. Waktu pengalihan konteks dalam sistem pertukaran seperti
itu cukup tinggi.

Waktu swap adalah 200 milidetik. Karena kita harus menukar keduanya keluar dan masuk, file
total waktu swap sekitar 4.000 milidetik. bagian utama dari waktu swap adalah waktu transfer.
Jumlah seluruhnya waktu transfer berbanding lurus dengan jumlah memori yang ditukar. Jika
kita memiliki sistem komputer dengan memori utama 4 GB dan residen sistem operasi
mengambil 1 GB , ukuran maksimum proses pengguna adalah 3 GB . Namun, banyak proses
pengguna mungkin jauh lebih kecil dari ini — katakanlah, 100 MB . Proses 100-MB dapat
ditukar dalam 2 detik, dibandingkan dengan 60 detik yang diperlukan untuk menukar 3 GB .

8.2.2 Bertukar pada Sistem Standar

Perangkat seluler umumnya menggunakan memori flash daripada yang lebih luas hard
disk sebagai penyimpanan persisten mereka. Batasan ruang yang dihasilkan adalah satu alasan
mengapa perancang sistem operasi seluler menghindari pertukaran. Alasan lain termasuk
jumlah penulisan terbatas yang dapat ditoleransi oleh memori flash sebelumnya menjadi tidak
dapat diandalkan dan throughput yang buruk antara memori utama dan flash memori di
perangkat ini.

13
Android tidak mendukung swapping dan mengadopsi strategi yang mirip dengan itu
digunakan oleh i OS . Ini dapat menghentikan proses jika tersedia memori bebas yang tidak
mencukupi. Namun, sebelum menghentikan suatu proses, Android menulis status aplikasinya
ke memori flash sehingga dapat dimulai ulang dengan cepat. Karena batasan ini, pengembang
untuk sistem seluler harus berhati-hati mengalokasikan dan melepaskan memori untuk
memastikan bahwa aplikasi mereka tidak digunakan juga banyak memori atau mengalami
kebocoran memori.

8.3 Alokasi Memori Bersebelahan

Memori utama harus mengakomodasi sistem operasi dan file berbagai proses pengguna.
Memori biasanya dibagi menjadi dua partisi: satu untuk residen sistem operasi dan satu untuk
proses pengguna. Faktor utama yang mempengaruhinya keputusan adalah lokasi vektor
interupsi. Karena vektor interupsi adalah sering kali dalam memori rendah, pemrogram
biasanya menempatkan sistem operasi di tempat rendah memori juga. Jadi, dalam teks ini,
kami hanya membahas situasi di mana sistem operasi berada dalam memori rendah.

8.3.1 Perlindungan Memori

Register relokasi berisi nilai alamat fisik terkecil; register batas berisi kisaran logika alamat
(misalnya, relokasi = 100040 dan batas = 74600). Masing-masing logis alamat harus berada
dalam kisaran yang ditentukan oleh register batas. The MMU memetakan alamat logis secara
dinamis dengan menambahkan nilai di relokasi daftar. Alamat yang dipetakan ini dikirim ke
memori.

Ketika penjadwal CPU memilih proses untuk dieksekusi, dispatcher memuat relokasi dan
register batas dengan nilai yang benar sebagai bagian dari sakelar konteks. Karena setiap
alamat yang dihasilkan oleh CPU akan diperiksa register ini, kami dapat melindungi sistem
operasi dan pengguna lain program dan data yang dimodifikasi oleh proses yang sedang
berjalan ini.

8.3.2 Alokasi Memori

Salah satu yang paling sederhana metode untuk mengalokasikan memori adalah dengan
membagi memori menjadi beberapa yang berukuran tetap partisi . Setiap partisi dapat berisi
satu proses. Jadi, derajatnya multiprogramming dibatasi oleh jumlah partisi.

Memori dialokasikan untuk proses sampai, akhirnya, persyaratan memori untuk proses
selanjutnya tidak dapat dipenuhi — yaitu tidak tersedia blok memori (atau lubang) yang cukup
besar untuk menampung proses itu. Itu sistem operasi kemudian dapat menunggu hingga blok
yang cukup besar tersedia, atau bisa juga lewati antrian input untuk melihat apakah kebutuhan
memori yang lebih kecil dari beberapa proses lain dapat dipenuhi.

Secara umum, seperti yang disebutkan, blok memori yang tersedia terdiri set dari lubang
dengan berbagai ukuran tersebar di seluruh memori. Saat suatu proses tiba dan membutuhkan

14
memori, sistem mencari set lubang yang cukup besar untuk proses ini. Jika lubangnya terlalu
besar, maka dibelah menjadi dua bagian. Satu bagian adalah dialokasikan untuk proses
kedatangan; yang lainnya dikembalikan ke set lubang. Kapan suatu proses berakhir, ia
melepaskan blok memorinya, yang kemudian ditempatkan kembali di set lubang. Jika lubang
baru bersebelahan dengan lubang lain, ini lubang yang berdekatan digabung untuk membentuk
satu lubang yang lebih besar.

8.3.3 Fragmentasi

Kedua strategi first-fit dan best-fit untuk alokasi memori menderita fragmentasi
eksternal . Saat proses dimuat dan dihapus dari memori, ruang memori bebas dipecah menjadi
potongan-potongan kecil. Fragmentasi eksternal ada ketika ada ruang memori total yang cukup
untuk memenuhi permintaan tetapi tersedia ruang tidak bersebelahan: penyimpanan
terfragmentasi menjadi sejumlah besar kecil lubang.

Fragmentasi memori bisa internal maupun eksternal. Pertimbangkan sebuah skema


alokasi multi-partisi dengan lubang 18.464 byte. Seandainya proses selanjutnya meminta
18.462 byte. Jika kita mengalokasikan blok yang diminta dengan tepat, kita tersisa dengan
lubang 2 byte. Overhead untuk melacak lubang ini akan menjadi jauh lebih besar dari lubang
itu sendiri.

Solusi lain yang mungkin untuk masalah fragmentasi eksternal adalah dengan
mengizinkan ruang alamat logis dari proses menjadi tidak bersebelahan, dengan demikian
memungkinkan proses untuk dialokasikan memori fisik dimanapun memori tersebut berada
tersedia. Fragmentasi adalah masalah umum dalam komputasi yang dapat terjadi di mana saja
kita harus mengelola blok data.

8.4 Segmentasi

8.4.1 Metode Dasar

Saat menulis program, seorang programmer menganggapnya sebagai program utama


dengan seperangkat metode, prosedur, atau fungsi. Ini juga dapat mencakup berbagai data
struktur: objek, larik, tumpukan, variabel, dan sebagainya.

Segmentasi adalah skema manajemen memori yang mendukung pro tampilan


grammer dari memori. Ruang alamat logis adalah kumpulan segmen.

8.4.2 Perangkat Keras Segmentasi

Pemetaan ini dilakukan dengan tabel segmen . Setiap entri ditabel segmen memiliki basis
segmen dan batas segmen . Basis segmen berisi alamat fisik awal tempat segmen berada di
memori, dan batas segmen menentukan panjang segmen tersebut.

Nomor segmen digunakan sebagai indeks pada tabel segmen. Offset d dari alamat logis
harus antara 0 dan batas segmen. Jika tidak, kami menjebak ke sistem operasi (upaya

15
pengalamatan logis di luar akhir segmen). Jika offset legal, offset ditambahkan ke basis segmen
untuk menghasilkan alamat dalam memori fisik dari byte yang diinginkan. Tabel segmen pada
dasarnya larik pasangan register basa-batas.

8.5 Paging

. Paging adalah skema manajemen memori lain yang menawarkan ini keuntungan. Namun,
paging menghindari fragmentasi eksternal dan kebutuhan akan pemadatan, sedangkan
segmentasi tidak.

Penyimpanan pendukung memiliki masalah fragmentasi yang sama dibahas sehubungan


dengan memori utama, tetapi aksesnya jauh lebih lambat, jadi pemadatan tidak mungkin.
Karena kelebihannya dibandingkan metode sebelumnya, paging dalam berbagai bentuknya
digunakan di sebagian besar sistem operasi, dari yang untuk mainframe melalui itu untuk
smartphone. Paging diimplementasikan melalui kerjasama antara sistem operasi dan perangkat
keras komputer.

8.5.1 Metode Dasar

Metode dasar untuk menerapkan paging melibatkan pemutusan memori fisik. Mem ori
menjadi blok berukuran tetap yang disebut frame dan memecah memori logis menjadi blok
dengan ukuran yang sama disebut halaman.

Aspek penting dari paging adalah pemisahan yang jelas antara program pandangan
programmer tentang memori dan memori fisik yang sebenarnya. Pandangan
programmermemori sebagai satu ruang tunggal, hanya berisi satu program ini. Faktanya,
pengguna. Program tersebar di seluruh memori fisik, yang juga memegang lainnya program.
Perbedaan antara pandangan pemrogram tentang memori dan memori fisik aktual direkonsiliasi
dengan perangkat keras terjemahan alamat.

8.5.2 Dukungan Perangkat Keras

Setiap sistem operasi memiliki metode sendiri untuk menyimpan tabel halaman. Saat
petugas operator diberitahu untuk memulai proses, itu harus memuat ulang pengguna
mendaftar dan menentukan nilai tabel halaman perangkat keras yang benar dari pengguna yang
disimpan tabel halaman. Sistem operasi lain menyediakan satu atau paling banyak beberapa
tabel halaman, yang mengurangi overhead yang terlibat saat proses dialihkan konteksnya.
Implementasi perangkat keras dari tabel halaman dapat dilakukan di beberapa cara.

Analisis kinerja lengkap dari overhead paging dalam sistem semacam itu akan memerlukan
informasi kesalahan tarif tentang setiap tingkatan TLB . TLB adalah fitur perangkat keras dan
oleh karena itu tampaknya menjadi perhatian kecil ke sistem operasi dan perancangnya. Namun
desainer perlu memahami fungsi dan fitur TLB , yang bervariasi menurut platform perangkat
keras. Untuk operasi yang optimal, desain sistem operasi untuk platform tertentu harus
menerapkan paging sesuai dengan desain TLB platform . Demikian juga dengan perubahan

16
yang TLB desain (misalnya, antara generasi Intel CPU s) mungkin memerlukan perubahan
implementasi paging dari sistem operasi yang menggunakannya.

8.5.3 Perlindungan

Perlindungan memori dalam lingkungan halaman dicapai dengan bit perlindungan terkait
dengan setiap frame. Biasanya, bit ini disimpan di tabel halaman. Satu bit dapat menentukan
halaman menjadi baca-tulis atau hanya-baca. Setiap referensi ke memori melewati tabel
halaman untuk menemukan nomor bingkai yang benar. Dibersamaan dengan penghitungan
alamat fisik, bit perlindungan dapat diperiksa untuk memverifikasi bahwa tidak ada penulisan
yang dilakukan pada halaman hanya baca.

8.5.4 Halaman Bersama

Keuntungan paging adalah kemungkinan berbagi kode umum. Setiap proses memiliki
halaman datanya sendiri. Kode reentrant adalah kode non-modifikasi diri: tidak pernah berubah
selama eksekusition. Dengan demikian, dua atau lebih proses dapat menjalankan kode yang
sama pada waktu yang sama.

Setiap proses memiliki salinan register dan penyimpanan data sendiri untuk menampung
data eksekusi proses. Data untuk dua proses yang berbeda, tentu saja, akan menjadi berbeda.
Hanya satu salinan editor yang perlu disimpan dalam memori fisik. Setiap pengguna tabel
halaman memetakan ke salinan fisik yang sama dari editor, tetapi halaman data dipetakan ke
bingkai yang berbeda. Jadi, untuk mendukung 40 pengguna, kami hanya membutuhkan satu
salinan editor (150 KB ), ditambah 40 salinan dari ruang data 50 KB per pengguna. Total ruang
yang dibutuhkan sekarang 2.150 KB, bukan 8.000 KB — signifikan tabungan.

Mengatur memori menurut halaman memberikan banyak manfaat dalam selain


memungkinkan beberapa proses untuk berbagi halaman fisik yang sama

8.6 Struktur Tabel Halaman

8.6.1 Hierarki Paging

Dengan asumsi bahwa setiap entri terdiri dari 4 byte, setiap proses mungkin memerlukan
hingga 4 MB ruang alamat fisik untuk tabel halaman sendirian. Jelas, kami tidak ingin
mengalokasikan tabel halaman secara berdekatan di memori utama. Salah satu solusi sederhana
untuk masalah ini adalah membagi tabel halaman menjadi potongan-potongan kecil. Salah satu
caranya adalah dengan menggunakan algoritma paging dua tingkat, di mana tabel halaman itu
sendiri. Misalnya, pertimbangkan kembali sistem dengan ruang alamat logis 32-bit dan ukuran
halaman 4 KB . Alamat logisnya adalah dibagi menjadi nomor halaman yang terdiri dari 20 bit
dan offset halaman terdiri dari 12 bit. Karena kita halaman tabel halaman, nomor halaman
dibagi lagi.

17
Langkah selanjutnya adalah skema halaman empat tingkat, di mana tingkat kedua tabel
halaman luar itu sendiri juga paged, dan sebagainya. Ultra SPARC 64-bit akan melakukannya
memerlukan tujuh tingkat paging jumlah akses memori yang sangat tinggi untuk
menerjemahkan setiap alamat logis.

8.6.2 Tabel Halaman yang di-Hash

Pendekatan umum untuk menangani ruang alamat yang lebih besar dari 32 bit adalah
dengan menggunakan sebuah tabel halaman hash , dengan nilai hash menjadi nomor halaman
virtual. Setiap entri dalam tabel hash berisi daftar terkait dari elemen yang memiliki hash yang
sama lokasi (untuk menangani tabrakan). Setiap elemen terdiri dari tiga bidang: (1)nomor
halaman virtual, (2) nilai bingkai halaman yang dipetakan, dan (3) penunjuk ke elemen
berikutnya dalam daftar tertaut.

Oleh karena itu, tabel halaman tunggal entri dapat menyimpan pemetaan untuk beberapa
bingkai halaman fisik. Berkelompok tabel halaman sangat berguna untuk ruang alamat yang
jarang , di mana memori referensi tidak bersebelahan dan tersebar di seluruh ruang alamat.

8.6.3 Tabel Halaman Terbalik

Tabel halaman memiliki satu entri untuk setiap halaman yang digunakan proses (atau satu
slot untuk setiap virtual alamat, terlepas dari validitas yang terakhir). Representasi tabel ini
wajar satu, karena memproses halaman referensi melalui alamat virtual halaman. Itu sistem
operasi kemudian harus menerjemahkan referensi ini ke dalam memori fisik alamat. Karena
tabel diurutkan berdasarkan alamat virtual, sistem operasinya adalah dapat menghitung di mana
dalam tabel entri alamat fisik terkait terletak dan menggunakan nilai itu secara langsung. Salah
satu kekurangan dari metode ini adalah bahwa setiap tabel halaman dapat terdiri dari jutaan
entri. Tabel ini mungkin mengkonsumsi sejumlah besar memori fisik hanya untuk melacak cara
lainnya memori fisik sedang digunakan. . Contoh sistem yang menggunakan halaman terbalik
tabel termasuk Ultra SPARC 64-bit dan Power PC

8.6.4 Oracle SPARC Solaris

Sebagai contoh terakhir CPU 64-bit modern dan sistem operasi terintegrasi erat untuk
menyediakan memori virtual dengan overhead rendah. Solaris berlari pada SPARC CPU adalah
sistem operasi 64-bit sepenuhnya dan dengan demikian harus diselesaikan masalah memori
virtual tanpa menggunakan semua memori fisiknya dengan mempertahankan beberapa tingkat
tabel halaman. Pendekatannya agak rumit tetapi memecahkan masalah secara efisien
menggunakan tabel halaman berciri. Ada dua hash tabel — satu untuk kernel dan satu untuk
semua proses pengguna. Setiap memori peta alamat dari memori virtual ke fisik.

Jika kecocokan ditemukan di TSB , CPU menyalin entri TSB ke TLB , dan terjemahan
memori selesai. Jika tidak ditemukan kecocokan di TSB , kernel terputus untuk mencari tabel
hash. Kernel kemudian membuat TTE dari file tabel hash yang sesuai dan menyimpannya di
TSB untuk pemuatan otomatis ke TLB oleh unit manajemen memori CPU . Akhirnya,

18
penangan interupsi kembali kontrol ke MMU , yang menyelesaikan terjemahan alamat dan
mengambil file byte atau kata yang diminta dari memori utama.

8.7 Contoh Arsitektur Intel 32 dan 64 bit

Baru-baru ini, Intel telah menghasilkan serangkaian chip 64-bit berdasarkan arsitektur
x86-64. Saat ini, semua sistem operasi PC terpopuler berjalan pada chip Intel, termasuk
Windows, Mac OS X , dan Linux (walaupun Linux, tentu saja, berjalan pada beberapa
arsitektur lain juga). Terutama, bagaimanapun, dominasi Intel belum menyebar ke sistem
seluler, yang saat ini dinikmati oleh arsitektur ARM sukses besar.

8.7.1 Arsitektur IA-32

Manajemen memori dalam sistem IA -32 dibagi menjadi dua komponen segmentasi dan
paging — dan berfungsi sebagai berikut: CPU menghasilkan logika alamat, yang diberikan ke
unit segmentasi.

8.7.1.1 Segmentasi IA-32

The IA -32 arsitektur memungkinkan segmen untuk menjadi besar seperti 4 GB , dan
maksimal jumlah segmen per proses adalah 16 K . Ruang alamat logis dari suatu proses adalah
dibagi menjadi dua partisi. Partisi pertama terdiri hingga 8 K segmen itu bersifat pribadi untuk
proses itu. Partisi kedua terdiri hingga 8 K segmen yang dibagikan di antara semua proses.
Informasi tentang partisi pertama adalah disimpan dalam tabel deskriptor lokal ( LDT ) ;
informasi tentang partisi kedua disimpan dalam tabel deskriptor global ( GDT ) .

8.7.1.2 IA-32 Paging

IA -32 arsitektur memungkinkan ukuran halaman baik 4 KB atau 4 MB . Untuk


halaman 4- KB ,IA -32 menggunakan skema paging dua tingkat dimana pembagian 32-bit
linier. Sebagai pengembang perangkat lunak mulai menemukan batasan memori 4 GB dari
arsitektur 32-bit, Intel mengadopsi ekstensi alamat halaman ( PAE ) , yang memungkinkan
prosesor 32-bit mengakses ruang alamat fisik yang lebih besar dari 4 GB . Itu perbedaan
mendasar yang diperkenalkan oleh dukungan PAE adalah asal mula paging skema dua tingkat
(seperti yang ditunjukkan pada Gambar 8.23) ke skema tiga tingkat, di mana dua bit teratas
mengacu pada tabel penunjuk direktori halaman.

Penting untuk dicatat bahwa dukungan sistem operasi adalah diperlukan untuk
menggunakan PAE . Baik Linux dan Intel Mac OS X mendukung PAE . Namun, Versi 32-bit
dari sistem operasi desktop Windows masih memberikan dukungan hanya untuk memori fisik 4
GB , meskipun PAE diaktifkan.

8.7.2 X86-64

Intel memiliki sejarah yang menarik dalam mengembangkan arsitektur 64-bit. Ini
awalnya entri adalah arsitektur IA -64 (kemudian dinamai Itanium ), tetapi arsitektur itu tidak

19
diadopsi secara luas. Sementara itu, produsen chip lain AMD mulai mengembangkan
arsitektur 64-bit yang dikenal sebagai x86-64 yang didasarkan pada memperluas set instruksi
IA -32 yang ada . X86-64 mendukung lebih besar ruang alamat logis dan fisik, serta beberapa
arsitektur lainnya.

Dalam membahas arsitektur ini, daripada menggunakan komersial beri nama AMD 64
dan Intel 64 , kami akan menggunakan istilah yang lebih umum x86-64 .Dukungan untuk ruang
alamat 64-bit menghasilkan 2 64 byte yang menakjubkan memori yang dapat dialamatkan —
angka yang lebih besar dari 16 quintillion (atau 16 exabytes). Arsitektur x86-64 saat ini
menyediakan virtual 48-bit alamat dengan dukungan untuk ukuran halaman 4 KB , 2 MB , atau
1 GB menggunakan empat tingkat hierarki halaman.

8.8 Contoh: Arsitektur ARM

Meskipun chip Intel telah mendominasi pasar komputer pribadi selama lebih dari 30
tahun bertahun-tahun, sering kali chip untuk perangkat seluler seperti ponsel cerdas dan
komputer tablet sebagai gantinya dijalankan pada prosesor ARM 32-bit .

Bab 9 Penyimpanan Virtual

9.1 Latar Belakang

Memori virtual melibatkan pemisahan memori logis seperti yang dirasakan oleh pengguna dari
memori fisik. Pemisahan ini memungkinkan terjadinya sangat besar memori virtual akan
disediakan untuk programmer bila fisiknya lebih kecil memori tersedia (Gambar 9.1). Memori
virtual membuat tugas program lebih mudah ming, karena programmer tidak perlu lagi
khawatir jumlah memori fisik yang tersedia; dia bisa berkonsentrasi padamasalah yang akan
diprogram. Ruang alamat virtual dari suatu proses mengacu pada tampilan logis (atau virtual)
tentang bagaimana suatu proses disimpan dalam memori.

9.2 Demand Paging

Memori virtual melibatkan pemisahan memori logis seperti yang dirasakan oleh pengguna dari
memori fisik. Pemisahan ini memungkinkan terjadinya sangat besar memori virtual akan
disediakan untuk programmer bila fisiknya lebih kecil memori tersedia (Gambar 9.1). Memori
virtual membuat tugas program lebih mudah ming, karena programmer tidak perlu lagi
khawatir jumlah memori fisik yang tersedia; dia bisa berkonsentrasi pada masalah yang akan
diprogram. Ruang alamat virtual dari suatu proses mengacu pada tampilan logis (atau virtual)
tentang bagaimana suatu proses disimpan dalam memori.

9.2.1 Konsep Dasar

Secara teoritis, beberapa program dapat mengakses beberapa halaman memori baru dengan
setiap eksekusi instruksi (satu halaman untuk instruksi dan banyak untuk data), mungkin

20
menyebabkan beberapa kesalahan halaman per instruksi. Situasi ini akan menghasilkan kinerja
sistem yang tidak dapat diterima. Untungnya, analisis proses yang berjalan menunjukkan
bahwa perilaku ini sangat tidak mungkin. Program cenderung memiliki lokalitas referensi yang
menghasilkan kinerja yang wajar dari paging permintaan.

Persyaratan penting untuk permintaan paging adalah kemampuan untuk memulai kembali
instruksi setelah kesalahan halaman. Karena kami menyimpan negara (register, kondisi kode,
penghitung instruksi) dari proses yang terputus ketika kesalahan halaman terjadi, kita harus
dapat memulai kembali proses di tempat yang persis sama dan status, kecuali bahwa halaman
yang diinginkan sekarang ada dalam memori dan dapat diakses.

9.2.2 Performa Paging Permintaan

Paging permintaan secara signifikan dapat mempengaruhi kinerja sistem komputer.


Untuk kebanyakan sistem komputer, waktu akses memori, dilambangkan dengan ma, waktu
akses efektif sama dengan waktu akses memori. Namun, jika halaman terjadi kesalahan,
pertama kita harus membaca halaman yang relevan dari disk dan kemudian mengakses file kata
yang diinginkan.

9.3 Copy-on-Write

Secara tradisional, fork () bekerja dengan membuat salinan dari induknya ruang alamat untuk
anak, menggandakan halaman milik orang tua. Namun, mengingat bahwa banyak anak proses
memanggil exec () system panggilan segera setelah pembuatan, penyalinan ruang alamat orang
tua mungkin menjadi tidak perlu. Sebagai gantinya, kita dapat menggunakan teknik yang
dikenal sebagai salin-saat-tulis , yang berfungsi dengan mengizinkan proses induk dan anak
pada awalnya untuk membagikan file halaman yang sama. Halaman-halaman bersama ini
ditandai sebagai halaman salin-saat-menulis, artinya bahwa jika salah satu proses menulis ke
halaman bersama, salinan halaman bersama tersebut adalah dibuat.

. Copy-on-write adalah teknik umum yang digunakan oleh beberapa orang sistem operasi,
termasuk Windows XP , Linux, dan Solaris. Ketika ditentukan bahwa halaman akan diduplikasi
menggunakan copy pada saat menulis, penting untuk mencatat lokasi dari mana halaman gratis
akan dialokasikan. Banyak sistem operasi menyediakan kumpulan halaman gratis untuk itu
permintaan. Halaman gratis ini biasanya dialokasikan saat tumpukan atau heap untuk proses
harus berkembang atau ketika ada halaman copy-on-write untuk dikelola.

9.4 Penggantian Halaman

kesalahan paling banyak, saat pertama kali direferensikan. Representasi ini tidak ketat akurat,
bagaimanapun. Jika proses sepuluh halaman benar-benar hanya menggunakan setengah dari
mereka, maka permintaan paging menyimpan I / O yang diperlukan untuk memuat lima
halaman yang tidak pernah bekas.

21
. Beberapa sistem mengalokasikan persentase memori tetap untuk buffer I / O , sedangkan yang
lain mengizinkan proses pengguna dan subsistem I / O untuk bersaing untuk semua memori
sistem. Alokasi memori yang berlebihan memanifestasikan dirinya sebagai berikut. Saat proses
pengguna sedang dijalankan, terjadi kesalahan halaman. Sistem operasi menentukan di mana
file halaman yang diinginkan berada pada disk tetapi kemudian menemukan bahwa tidak ada
bingkai bebas pada daftar bingkai bebas; semua memori sedang digunakan.

9.4.1 Penggantian Halaman Dasar

Penggantian halaman adalah dasar dari permintaan paging. Itu melengkapi pemisahan
antara memori logis dan memori fisik. Dengan mekanisme ini, sebuah memori virtual yang
sangat besar dapat disediakan untuk pemrogram yang lebih kecil ingatan fisik. Tanpa paging
permintaan, alamat pengguna dipetakan ke alamat fisik, dan dua kumpulan alamat bisa
berbeda. Semua halaman proses masih harus dalam memori fisik, bagaimanapun. Dengan
permintaanpaging, ukuran ruang alamat logis tidak lagi dibatasi oleh fisik penyimpanan.

9.4.2 Penggantian Halaman FIFO

Algoritme penggantian halaman yang paling sederhana adalah algoritme masuk


pertama, keluar pertama ( FIFO ). Sebuah FIFO algoritma penggantian rekan dengan setiap
halaman waktu ketika itu halaman dibawa ke dalam memori. Ketika sebuah halaman harus
diganti, yang terlama halaman dipilih.

9.4.3 Penggantian Halaman Optimal

Salah satu hasil penemuan anomali Belady adalah pencarian yang optimal algoritma
penggantian halaman — algoritme yang memiliki kesalahan halaman terendah menilai semua
algoritme dan tidak akan pernah menderita anomali Belady. Seperti algoritma memang ada dan
disebut OPT atau MIN . Ini sederhananya: Ganti halaman yang tidak akan digunakan untuk
jangka waktu yang lama. Penggunaan algoritme penggantian halaman ini menjamin halaman
tingkat kesalahan untuk sejumlah frame tetap.

9.4.4 Penggantian Halaman LRU

Perbedaan utama antara FIFO dan OPT algoritma (selain melihat ke belakang versus
ke depan dalam waktu) adalah bahwa algoritma FIFO menggunakan waktu ketika sebuah
halaman dibawa ke memori, sedangkan yang OPT algoritma menggunakan waktu saat halaman
yang akan digunakan. Jika kita menggunakan recent masa lalu sebagai perkiraan dalam waktu
dekat, maka kita bisa mengganti halaman itu tidak digunakan untuk jangka waktu yang lama.
Pendekatan ini paling sedikit algoritma baru-baru ini digunakan ( LRU ) .

9.4.5 Penggantian Halaman Perkiraan LRU

Beberapa sistem komputer menyediakan dukungan perangkat keras yang cukup untuk
halaman LRU yang sebenarnya penggantian. Faktanya, beberapa sistem tidak memberikan
dukungan perangkat keras, dan lainnya algoritma penggantian halaman (seperti algoritma FIFO

22
) harus digunakan. Banyak sistem memberikan bantuan, bagaimanapun, dalam bentuk bit
referensi.

9.4.5.1 Algoritma Bit Referensi Tambahan

Pada interval reguler (katakanlah, setiap 100 milidetik), interupsi pengatur waktu
ditransfer kontrol ke sistem operasi. Sistem operasi menggeser bit referensi untuk setiap
halaman ke bit orde tinggi dari byte 8-bitnya, menggeser bit lainnya ke kanan dengan 1 bit dan
membuang bit orde rendah. Register geser 8-bit ini berisi sejarah penggunaan halaman selama
delapan periode waktu terakhir.

9.4.5.2 Algoritma Kesempatan Kedua

Algoritme dasar penggantian kesempatan kedua adalah pengganti FIFO algoritma. Namun,
ketika sebuah halaman telah dipilih, kami memeriksa referensinya sedikit. Jika nilainya 0, kami
melanjutkan untuk mengganti halaman ini; tetapi jika referensi sedikit diatur ke 1, kami
memberikan halaman kesempatan kedua dan melanjutkan untuk memilih berikutnya Halaman
FIFO.

9.4.5.3 Algoritma Kesempatan Kedua yang Ditingkatkan

Perbedaan utama antara algoritma ini dan algo- jam yang lebih sederhana rithm adalah
bahwa di sini kami memberikan preferensi ke halaman-halaman yang telah dimodifikasi untuk
mengurangi jumlah I / Os yang dibutuhkan.

9.4.6 Penggantian Halaman Berbasis Penghitungan

Misalnya, kita dapat menyimpan penghitung dari jumlah referensi yang telah ada
dibuat untuk setiap halaman dan kembangkan dua skema berikut.

• The setidaknya sering digunakan ( LFU ) algoritma page-pengganti mengharuskan


halaman dengan jumlah terkecil diganti. Alasan pemilihan ini adalah bahwa halaman yang
digunakan secara aktif harus memiliki jumlah referensi yang besar.

• The paling sering digunakan ( MFU ) algoritma page-pengganti didasarkan pada


argumen bahwa halaman dengan jumlah terkecil mungkin saja adil dibawa masuk dan belum
digunakan.

9.4.7 Algoritma Page-Buffering

Beberapa versi sistem UNIX menggunakan metode ini bersama dengan algoritma
kesempatan kedua. Ini bisa menjadi augmentasi yang berguna untuk halaman apa pun
algoritma pengganti, untuk mengurangi penalti yang ditimbulkan jika salah korban halaman
dipilih.

9.4.8 Aplikasi dan Penggantian Halaman

23
Dalam kasus tertentu, aplikasi mengakses data melalui sistem operasi memori virtual
bekerja lebih buruk daripada jika sistem operasi tidak disediakan buffering sama sekali. Contoh
tipikal adalah database, yang menyediakannya sendiri manajemen memori dan buffering I / O.
Aplikasi seperti ini mengerti penggunaan memori dan penggunaan disk mereka lebih baik
daripada sistem operasi menerapkan algoritma untuk penggunaan tujuan umum. Jika sistem
operasinya adalah buffering I / O dan aplikasi melakukannya juga, namun, dua kali lipat
memori yang digunakan untuk satu set I / O .

9.5 Alokasi Bintang

Sistem operasi mungkin membutuhkan 35 KB , menyisakan 93 frame untuk pengguna proses.


Di bawah halaman permintaan murni, semua 93 frame awalnya akan dipasang daftar bingkai
bebas. Ketika proses pengguna memulai eksekusi, itu akan menghasilkan file urutan kesalahan
halaman. Kesalahan 93 halaman pertama semuanya akan mendapatkan bingkai gratis dari
daftar bingkai bebas. Saat daftar bingkai bebas habis, halaman diganti algoritma akan
digunakan untuk memilih salah satu dari 93 halaman dalam memori yang akan diganti dengan
ke-94, dan seterusnya. Saat proses dihentikan, 93 frame akan sekali lagi ditempatkan di daftar
bingkai bebas. Ada banyak variasi dalam strategi sederhana ini. Kami dapat meminta itu sistem
operasi mengalokasikan semua buffer dan ruang tabelnya dari daftar bingkai bebas.

9.5.1 Jumlah Minimum Frame

Jumlah minimum frame ditentukan oleh arsitektur komputer. Misalnya, instruksi pemindahan
untuk PDP -11 mencakup lebih dari satu kata untuk beberapa mode pengalamatan, dan dengan
demikian instruksinya sendiri dapat mengangkangi dua halaman. Selain itu, masing-masing
dari dua operannya dapat menjadi referensi tidak langsung, untuk a total enam frame. Contoh
lain adalah instruksi IBM 370 MVC .

9.5.2 Algoritma Alokasi

Cara termudah untuk membagi m frame di antara n proses adalah dengan memberikan file
bagian yang sama, m / n bingkai (mengabaikan bingkai yang dibutuhkan oleh sistem operasi
untuk saat ini). Salah satu solusinya adalah dengan menggunakan skema alokasi proporsional
dimana rasio frame tidak bergantung ukuran relatif dari proses tetapi lebih pada prioritas proses
atau pada sebuah kombinasi ukuran dan prioritas.

9.5.3 Alokasi Global Vs Lokal

Faktor penting lainnya dalam cara frame dialokasikan ke berbagai proses adalah penggantian
halaman. Dengan banyak proses yang bersaing untuk bingkai, kita dapat mengklasifikasikan
algoritme penggantian halaman menjadi dua kategori besar: global penggantian dan
penggantian lokal . Penggantian global memungkinkan proses untuk pilih bingkai pengganti
dari kumpulan semua bingkai, bahkan jika bingkai itu adalah saat ini dialokasikan untuk

24
beberapa proses lain; artinya, satu proses dapat mengambil kerangka dari yang lain.
Penggantian lokal mengharuskan setiap proses memilih hanya dari prosesnya set sendiri dari
frame yang dialokasikan.

9.5.4 Akses Memori Non-Seragam

Perbedaan kinerja ini disebabkan oleh bagaimana caranya CPU dan memori saling
berhubungan dalam sistem. Seringkali, sistem seperti itu terdiri dari beberapa papan sistem,
masing-masing berisi beberapa CPU dan beberapa penyimpanan. Papan sistem saling
berhubungan dengan berbagai cara, mulai dari bus sistem ke koneksi jaringan berkecepatan
tinggi seperti InfiniBand.

9.6 Meronta-ronta

Faktanya, lihat proses apa pun yang tidak memiliki bingkai "cukup". Jika proses tidak memiliki
jumlah frame yang dibutuhkan untuk mendukung halaman penggunaan aktif, itu akan dengan
cepat kesalahan halaman. Pada titik ini, beberapa halaman harus diganti. Namun, karena semua
halamannya aktif digunakan, halaman tersebut harus menggantikan halaman yang akan
digunakan dibutuhkan lagi segera. Akibatnya, itu dengan cepat membuat kesalahan lagi, dan
lagi, dan sekali lagi, mengganti halaman yang harus segera dibuka kembali.

9.6.1 Penyebab Perontokan

Sistem operasi memantau penggunaan CPU . Jika pemakaian CPU terlalu rendah, kami
meningkatkan derajat multiprogramming dengan memperkenalkan proses baru ke sistem.
Algoritme penggantian halaman global digunakan; itu menggantikan halaman tanpa
memperhatikan proses di mana mereka berasal.

Proses ini membutuhkan halaman tersebut, bagaimanapun, dan mereka juga melakukan
kesalahan, mengambil frame dari proses lain. Ini proses kesalahan harus menggunakan
perangkat paging untuk menukar halaman masuk dan keluar. Sebagai mereka mengantri untuk
perangkat paging, antrian siap kosong. Sebagai proses tunggu perangkat paging, pemakaian
CPU berkurang.

9.6.2 Model Perangkat Keras

Model perangkat kerja didasarkan pada asumsi lokalitas. Model ini menggunakan parameter,,
untuk menentukan jendela set kerja . Ide adalah untuk memeriksa yang terbaru referensi
halaman. Kumpulan halaman paling banyak baru referensi halaman adalah set kerja.

9.6.3 Frekuensi Kesalahan Halaman

Strategi yang menggunakan frekuensi kesalahan halaman ( PFF ) membutuhkan lebih banyak
pendekatan langsung. Masalah spesifiknya adalah bagaimana mencegah meronta-ronta.

25
Meronta-ronta memiliki sifat yang tinggi tingkat kesalahan halaman. Jadi, kami ingin
mengontrol tingkat kesalahan halaman. Saat itu juga tinggi, kami tahu bahwa proses tersebut
membutuhkan lebih banyak bingkai. Sebaliknya, jika halaman bermasalah rate terlalu rendah,
maka prosesnya mungkin memiliki terlalu banyak frame.

9.6.4 Penutup

Praktik terbaik saat ini dalam menerapkan sebuah fasilitas komputer harus menyertakan
memori fisik yang cukup, bila memungkinkan, untuk menghindari meronta-ronta dan bertukar.

9.7 File yang Dipetakan Memori

Setiap akses file membutuhkan panggilan sistem dan disk mengakses. Alternatifnya, kita dapat
menggunakan teknik memori virtual yang dibahas sejauh ini memperlakukan file I / O sebagai
akses memori rutin. Pendekatan ini dikenal sebagai pemetaan memori file, memungkinkan
bagian dari ruang alamat virtual secara logis terkait dengan file tersebut.

9.7.1 Mekanisme Dasar

Pemetaan memori file dilakukan dengan memetakan blok disk ke halaman (atau halaman)
dalam memori. Akses awal ke file berlangsung melalui permintaan biasa paging,
mengakibatkan kesalahan halaman.

9.7.2 Memori Bersama di Windows API

Garis besar umum untuk membuat wilayah memori bersama menggunakan memori file yang
dipetakan di Windows API melibatkan pembuatan pemetaan file untuk file yang akan
dipetakan dan kemudian membuat tampilan file yang dipetakan dalam proses ruang alamat
virtual. Proses kedua kemudian dapat membuka dan membuat tampilan file yang dipetakan di
ruang alamat virtualnya. File yang dipetakan mewakili objek memori bersama yang
memungkinkan terjadinya komunikasi antara proses.

9.7.3 I/O yang Dipetakan Memori

Biasanya, I / O khusus instruksi memungkinkan transfer data antara register ini dan memori
sistem. Untuk memungkinkan akses yang lebih nyaman ke perangkat I / O , banyak arsitektur
komputer menyediakan I / O yang dipetakan memori . Dalam kasus ini, rentang alamat memori
adalah sisihkan dan dipetakan ke register perangkat. Membaca dan menulis ini alamat memori
menyebabkan data ditransfer ke dan dari perangkat register. Metode ini cocok untuk perangkat
yang memiliki waktu respons cepat, seperti pengontrol video.

9.8 Mengalokasikan Memori Kernel

Ketika proses yang berjalan dalam mode pengguna meminta memori tambahan, halaman
dialokasikan dari daftar bingkai halaman gratis yang dikelola oleh kernel.

9.8.1 Sistem Buddy

26
Sistem buddy mengalokasikan memori dari segmen berukuran tetap yang terdiri dari halaman
yang berdekatan secara fisik. Memori dialokasikan dari segmen ini menggunakan sebuah
pengalokasi daya 2 , yang memenuhi permintaan dalam unit berukuran sebagai pangkat 2 (4
KB , 8 KB , 16 KB , dan lain sebagainya). Permintaan dalam unit berukuran tidak tepat
dibulatkan ke pangkat tertinggi berikutnya 2. Misalnya, permintaan 11 KB adalah puas dengan
segmen 16 KB .

9.8.2 Alokasi Slab

Strategi kedua untuk mengalokasikan memori kernel dikenal sebagai alokasi slab. Sebuah slab
terdiri dari satu atau lebih halaman yang berdekatan secara fisik. Sebuah Cache terdiri dari satu
atau lebih lempengan. Ada satu cache untuk setiap struktur data kernel yang unik. Misalnya,
cache terpisah untuk struktur data yang merepresentasikan proses deskriptor, cache terpisah
untuk objek file, cache terpisah untuk semaphore. Dan seterusnya. Setiap cache diisi dengan
objek yang merupakan contoh dari struktur data kernel yang diwakili oleh cache.

9.9 Pertimbangan Lainnya

9.9.1 Mempersiapkan

Properti yang jelas dari paging permintaan murni adalah banyaknya kesalahan halaman yang
terjadi saat proses dimulai. Situasi ini diakibatkan oleh upaya untuk mendapatkan lokalitas
awal ke dalam memori. Situasi yang sama mungkin muncul di lain waktu.

Mempersiapkan adalah upaya untuk mencegah paging awal tingkat tinggi ini. Strateginya
adalah mengingat pada satu kali semua halaman yang akan dibutuhkan. Beberapa sistem
operasi khususnya solaris mempersiapkan bingkai halaman untuk file kecil.

9.9.2 Ukuran Halaman

Para perancang sistem operasi untuk mesin yang ada jarang memilikinya pilihan tentang
ukuran halaman. Namun, saat mesin baru sedang dibuat dirancang, keputusan mengenai ukuran
halaman terbaik harus dibuat. Seperti yang Anda bisa berharap, tidak ada satu pun ukuran
halaman terbaik. Sebaliknya, ada sekumpulan faktor itu mendukung berbagai ukuran. Ukuran
halaman selalu pangkat 2, umumnya berkisar dari 4.096 (2 12 ) menjadi 4.194.304 (2 22 ) byte.

9.9.3 Jangkauan TLB

Mengelola TLB dalam perangkat lunak dan bukan perangkat keras berdampak buruk pada
kinerja. Namun, peningkatan rasio hit dan jangkauan TLB mengimbangi biaya kinerja.
Memang, tren terbaru menunjukkan pergerakan menuju TLB yang dikelola perangkat lunak
dan dukungan sistem operasi untuk berbagai ukuran halaman.

9.9.4 Tabel Halaman Terbalik

27
Tujuan bentuk manajemen halaman ini adalah untuk mengurangi jumlah memori fisik
diperlukan untuk melacak terjemahan alamat virtual-ke-fisik. Sejak tabel ini direferensikan
hanya ketika terjadi kesalahan halaman, mereka tidak perlu melakukannya tersedia dengan
cepat. Sebaliknya, mereka sendiri masuk dan keluar dari memori seperlunya. Sayangnya,
kesalahan halaman sekarang dapat menyebabkan memori virtual manajer untuk menghasilkan
kesalahan halaman lain seperti halaman di tabel halaman eksternal itu perlu menemukan
halaman virtual di penyimpanan pendukung. Kasus khusus ini membutuhkan penanganan yang
hati-hati di kernel dan penundaan dalam pemrosesan pencarian halaman.

9.9.5 Struktur Program

Paging permintaan dirancang agar transparan terhadap program pengguna. Di banyakkasus,


pengguna sama sekali tidak menyadari sifat paged dari memori. Di lain kasus, bagaimanapun,
kinerja sistem dapat ditingkatkan jika pengguna (atau kompiler) memiliki kesadaran akan
paging permintaan yang mendasarinya.

9.9.6 I/O Interlock dan Page Locking

Saat permintaan paging digunakan, terkadang kami perlu mengizinkan beberapa halaman untuk
dikunci dalam memori. Satu situasi seperti itu terjadi ketika I / O dilakukan ke atau dari
memori pengguna (virtual). I / O sering diimplementasikan oleh prosesor I / O terpisah .
Misalnya, pengontrol untuk perangkat penyimpanan USB biasanya diberi nomor byte untuk
mentransfer dan alamat memori untuk buffer.

9.10 Contoh Sistem Operasi

9.10.1 Windows

Windows mengimplementasikan memori virtual menggunakan permintaan paging dengan


pengelompokan . Clustering menangani kesalahan halaman dengan membawa tidak hanya
halaman kesalahan tetapi juga beberapa halaman setelah halaman kesalahan. Ketika suatu
proses pertama kali dibuat, itu adalah menetapkan set kerja minimum dan maksimum. The
kerja-set minimum adalah jumlah minimum halaman yang dijamin prosesnya ada di memori.
Jika tersedia memori yang cukup, suatu proses dapat ditetapkan sebanyak halaman itu bekerja-
set maksimum.

9.10.2 Solaris

Secara umum, kernel mencari proses yang telah menganggur jangka waktu yang lama. Jika
sistem tidak dapat mempertahankan jumlah gratis memori di minfree , proses halaman keluar
dipanggil untuk setiap permintaan baru halaman. Rilis terbaru dari kernel Solaris telah
menyediakan penyempurnaan algoritma paging. Salah satu peningkatan tersebut melibatkan
pengenalan halaman dari perpustakaan bersama. Halaman milik perpustakaan yang sedang
dibagikan oleh beberapa proses bahkan jika memenuhi syarat untuk diklaim oleh pemindai
dilewati selama proses pemindaian halaman.

28
BAB III
PEMBAHASAN

3.1 Analisis Buku Kelebihan dan Kelemahan Buku

Buku I ( Modern Operating Systems)

 Kelebihan Buku I
Menurut saya, kelebihan dari buku ini adalah berisi informasi yang bermanfaat
yang dibahas didalam buku menegenai materi “Manajeman Memori”. Bagi
pecinta komputer atau yang bekerja dibidang komputer sangat membutuhkan
buku ini untuk menambah wawasannya. Buku ini juga terstruktur dengan baik.

 Kekurangan Buku I
Menurut saya, kekurangan dari buku ini adalah menggunakan bahasa Inggris.
Orang-orang yang tidak mengerti bahasa Inggris seperti saya akan sulit untuk
memahami dan mengerti isi buku ini.

Buku II (Operating System Concept)

 Kelebihan Buku II
Menurut saya, kelebihan dari buku I adalah memiliki banyak informasi
bermanfaat yang diambil dari materi yang dibahas didalam buku terutama
materi tentang “ Manajemen Memory”. Buku ini sangat diperlukan oleh
seseorang yang bekerja/menyukai bidang komputer. Buku ini cukup menarik
karena pemberian warna biru pada kata-kata yang sangat penting. Sehingga,
mempermudah para pembaca untuk memahami isi buku tersebut. Buku ini juga
memiliki struktur yang lengkap bahkan memiliki ringkasan juga.

 Kekurangan Buku II
Menurut saya, kekurangan dari buku I adalah menggunakan bahasa Inggris,
sehingga yang tidak mengerti bahasa Inggris akan kesulitan untuk memahami
buku ini. Dan setelah diterjemahkan banyak penggunaan kata yang sulit untuk
dimengerti. Dan beberapa penjelasan materinya ada yang bertele-tele.

29
BAB IV
PENUTUP

4.1 Kesimpulan

Algoritme manajemen memori untuk sistem operasi multiprogram berkisar dari


pendekatan sistem pengguna tunggal sederhana hingga segmentasi dan paging. Penentu
terpenting dari metode yang digunakan pada suatu tertentu sistem adalah perangkat
keras yang disediakan. Setiap alamat memori yang dihasilkan oleh CPU harus diperiksa
legalitasnya dan kemungkinan dipetakan ke alamat fisik. Pemeriksaan tidak dapat
diterapkan (secara efisien) dalam perangkat lunak. Karenanya, kami adalah dibatasi
oleh perangkat keras yang tersedia. Berbagai algoritma manajemen memori (alokasi
bersebelahan, halaman, segmentasi, dan kombinasi paging dan segmentasi) berbeda
banyak aspek.

Sangat diharapkan untuk dapat menjalankan proses yang ruang alamat logisnya lebih
besar dari ruang alamat fisik yang tersedia. Memori virtual adalah sebuah teknik yang
memungkinkan kami untuk memetakan ruang alamat logis yang besar ke fisik yang
lebih kecil penyimpanan. Memori virtual memungkinkan kita menjalankan proses yang
sangat besar dan meningkatkan derajat multiprogramming, meningkatkan penggunaan
CPU . Selanjutnya, itu membebaskan pemrogram aplikasi dari kekhawatiran tentang
ketersediaan memori. Selain itu, dengan memori virtual, beberapa proses dapat berbagi
pustaka sistem dan memori. Dengan memori virtual, kita juga dapat menggunakan jenis
proses yang efisien pembuatan yang dikenal sebagai copy-on-write, di mana proses
induk dan anak berbagi halaman memori yang sebenarnya.

4.2 Saran

Memahami cara kerja sistem operasi beserta bagian-bagiannya pada komputer dapat
membuat kita lebih mudah memahami dan membuat program yang diinginkan. Oleh
karena itu, menambah wawasan mengenai sistem operasi pada komputer merupakan
salah satu cara agar kita bisa lebih mudah memahami komputer dan kedepannya bisa
lebih bermanfaat lagi bagi orang banyak di era globalisasi saat ini.

30
DAFTAR PUSTAKA

Tanenbaum,Andrew S dan Herbert Bos.2015.”Modern Operating Systems Fourth


Edition”. Inggris:Pearson Education.

Silberschatz,Abraham. Peter Baer Gavin dan Greg Gagne.2014.”Operating System


Concepts”.Danvers,MA:Wiley.

31

Anda mungkin juga menyukai