Anda di halaman 1dari 51

CRITICAL BOOK REVIEW (CBR)

SISTEM OPERASI KOMPUTER

“ MEMORY MANAGEMENT”
(Andrew S. Tanenbaum – Herbert Bos. 2015)

Disusun Oleh:
VERINA LUTFIYAH DALIMUNTHE
( 5213351031 )
`PTIK C

DOSEN PENGAMPU :
Bagoes Maulana, S.Kom., M.Kom.

PENDIDIKAN TEKNOLOGI INFORATIKA DAN KOMPUTER


FAKULTAS TEKNIK
UNIVERSITAS NEGERI MEDAN
2021
1
KATA PENGANTAR

Puji syukur senantiasa kita panjatkan ke hadirat Tuhan yang maha Esa,
yang berkuasa atas seluruh alam semesta, karena berkat rahmat, taufik serta
hidayah-Nya jugalah maka Critical BookReview (CBR) mata kuliah system
operasi computer ini dapat diselesaikan tepat pada waktunya.

Saya menyadari bahwa dalam penyusunan tugas CBR ini tidak terlepas
dari kesalahan dan sangat jauh dari sempurna. Oleh sebab itu, kami sangat
mengharapkan kritik dan saran yang sifatnya membangun demi sempurna
nyalaporan ini.

Kami berharap semoga laporan ini dapat digunakan sebagaimana mestinya


dan bisa memberikan manfaat bagi kita semua.Semoga Tuhan yang maha Esa
mencurahkan rahmat dan karunia-Nya kepada kita semua.

Medan, 27 September 2021

Penulis

2
DAFTAR ISI

KATA PENGANTAR................................................................................................1
DAFTAR ISI..............................................................................................................2
BAB I PENDAHULUAN.....................................................................................3
A. Latar BelakangPentingnya CBR...........................................................3
B. Tujuan Penulisan CBR..........................................................................3
C. Manfaat CBRR.....................................................................................3
D. Identitas Buku.......................................................................................3
BAB II ISI BUKU..................................................................................................5
BAB III PEMBAHASAN........................................................................................45
A. Analisis Isi Buku...................................................................................46
B. Kelebihan dan KekuranganIsi Buku.....................................................46
BAB IV PENUTUP.................................................................................................48
A. Kesimpulan...........................................................................................48
B. Saran.....................................................................................................48
BAB I
PENDAHULUAN

A. Latar Belakang Pentingnya CBR


CriticalBookReview(CBR) merupakan salah satu instrument yang dapat
mendukung keberhasilan dalam proses pembelajaran dibangku perkuliahan
melalui CriticalBook Review (CJR) mahasiswa diajak untuk menguji pemikiran
dari pengarang maupun penulis berdasarkan sudut pandang yang akan di bangun
oleh setiap mahasiswa berdasarkan pengetahuan & pengalaman yang mereka
miliki.

A. Tujuan Penulisan CBR


Adapun tujuan penulisan CBR ini yaitu untuk menyelesaikan kewajiban tugas
pada Mata Kuliah sistem operasi komputer sekaligus untuk untuk meningkatkan
pengetahuan tentang sistem operasi komputer.

B. Manfaat CBR
 Bagi Penulis :
o Memenuhi tugas mata kuliah sistem operasi komputer.
o Melatih kemampuan penulis dalam mengkritisi isi buku.
o Menumbuhkan pola piker kreatif setelah mereview buku.
 Bagi Pembaca:
o Untuk menambah pengetahuan dan wawasan mengenai sistem
operasi komputer.
o Untuk mengaplikasikannya dalam kehidupan sehari–hari.
C. Identitas Buku

REFERENSI 1

judul buku : modern operatin systems


penulis : Andrew S. Tanenbaum and Herbert Bos
Penerbit : Pearson Edition
ISBN-10 : 0-13-359162-X
ISBN-13 : 978-0-13-359162-0
Tahun Terbit : 2015
Pembahasan : BAB III
Jumlah Halaman : 72

REFERENSI 2

Judul buku : Operating System Concepts


Penulis : Abraham Silberschatz, Peter B
Galvin, and Greg Gagne
Penerbit : Wiley
ISBN : 978-1-118-06333-0
Tahun terbit : 2014
Pembahasan : PART II CAPTHER 8
Jumlah halaman : 116
BAB II
RINGKASAN ISI BUKU

RINGKASAN REFERENSI 1
BAB 3 MANAJEMEN MEMORI

Memori utama (RAM) adalah sumber daya penting yang harus sangat hati-
hati dikelola. Sementara komputer rumah rata-rata saat ini memiliki 10.000 kali
lebih banyak memori dari IBM 7094, komputer terbesar di dunia pada awal 1960-
an, program menjadi lebih besar lebih cepat daripada memori.

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
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

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, 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 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.

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

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

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

Kami akhirnya berada dalam posisi untuk menjelaskan secara rinci apa
yang terjadi pada kesalahan halaman. Urutan acaranya adalah sebagai berikut:

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


tumpukan. Pada sebagian besar mesin, beberapa informasi tentang keadaan
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 dari kehancuran ing itu. Rutin ini
memanggil sistem operasi sebagai prosedur.

3. Sistem operasi menemukan bahwa telah terjadi kesalahan halaman, dan


mencoba menemukan halaman virtual mana yang dibutuhkan. Seringkali salah
satu yang sulit- ware register 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, system


memeriksa untuk melihat apakah alamat ini valid dan perlindungannya konsisten
dengan akses. Jika tidak, proses dikirimi sinyal atau dimatikan. Jika iklan-iklan
pakaian valid dan tidak ada kesalahan perlindungan yang terjadi, sistem
memeriksa untuk melihat apakah bingkai halaman gratis. Jika tidak ada bingkai
yang bebas, halaman akan kembali algoritma penempatan dijalankan untuk
memilih korban.

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

6. Segera setelah bingkai halaman bersih (baik segera atau setelah itu ditulis ke
disk), sistem operasi mencari alamat disk di mana halaman yang dibutuhkan, dan
menjadwalkan operasi disk untuk membawanya.Saat halaman sedang dimuat,
proses kesalahan masih ditangguhkan dan proses pengguna lain dijalankan, jika
tersedia.
7. Ketika interupsi disk menunjukkan bahwa halaman telah tiba, halaman tabel
diperbarui untuk mencerminkan posisinya, dan bingkai ditandai sebagai berada
dalam keadaan normal.

8. Instruksi kesalahan dicadangkan ke keadaan saat itu dimulai dan penghitung


program diatur ulang untuk menunjuk ke instruksi itu.

9. Proses kesalahan dijadwalkan, dan sistem operasi kembali ke rutinitas (bahasa-


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

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 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 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)
RINGKASAN REFERENSI 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 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

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.

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 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

Seperti yang telah kita lihat, tampilan memori pengguna tidak sama
dengan yang sebenarnya ingatan fisik. Hal ini juga berlaku untuk pandangan
programmer tentang memori. Memang, berurusan dengan memori dalam hal sifat
fisiknya tidak nyaman baik untuk sistem operasi maupun programmer. Bagaimana
jika perangkat kerasnya bisa? menyediakan mekanisme memori yang memetakan
pandangan programmer ke
memori fisik yang sebenarnya? Sistem akan memiliki lebih banyak kebebasan
untuk mengelola memori, sedangkan programmer akan memiliki pemrograman
yang lebih alami lingkungan. Segmentasi menyediakan mekanisme seperti itu.

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 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 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

Di bagian ini, kami mengeksplorasi beberapa teknik yang paling umum


untuk penataan tabel halaman, termasuk paging hierarkis, tabel halaman hash, dan
inverted 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.

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, 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 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 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.

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 ) 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.

• ini 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.

• ini 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

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 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. 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

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


Keputusan utama yang kami buat untuk sistem paging adalah pemilihan
algoritma penggantian dan kebijakan alokasi, yang telah kita bahas sebelumnya
dalam bab ini. Ada banyak pertimbangan lain juga, dan kami membahas beberapa
dari mereka di sini

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


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

Di bagian ini, kami menjelaskan bagaimana Windows dan Solaris


mengimplementasikan virtual Penyimpanan

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.

.
BAB III
PEMBAHASAN

A. Analisis Isi buku


Tujuan utama dari sistem komputer adalah untuk mengeksekusi program. Ini
program, bersama dengan data yang mereka akses, setidaknya harus sebagian di
memori utama selama eksekusi. Untuk meningkatkan penggunaan CPU dan
kecepatannya menanggapi pengguna, komputer tujuan umum harus menyimpan
beberapa pro-cess dalam memori. Banyak skema manajemen memori yang ada,
mencerminkan menggunakan berbagai pendekatan, dan efektivitas setiap
algoritma tergantung pada pada situasi. Pemilihan skema manajemen memori
untuk sistemtem tergantung pada banyak faktor, terutama pada desain
perangkat keras dari sistem. Sebagian besar algoritma memerlukan dukungan
perangkat keras
Dalam Bab ini, kami menunjukkan bagaimana CPU dapat digunakan bersama
oleh serangkaian proses. Sebagai hasil dari penjadwalan CPU , kami dapat
meningkatkan pemanfaatan CPU dan kecepatan respon komputer terhadap
penggunanya. Untuk merealisasikan peningkatan ini kinerja, bagaimanapun, kita
harus menyimpan beberapa proses dalam memori-yaitu, kita harus berbagi
memori. Dalam bab ini, kita membahas berbagai cara untuk mengelola
memori. Ingatan- algoritma manajemen bervariasi dari pendekatan mesin
telanjang primitif ke strategi paging dan segmentasi. Setiap pendekatan memiliki
kelebihannya sendiri
dan kerugian. Pemilihan metode manajemen memori untuk spesifik sistem
tergantung pada banyak faktor, terutama pada desain perangkat keras
sistem. Seperti yang akan kita lihat, banyak algoritme memerlukan dukungan
perangkat keras banyak sistem yang memiliki perangkat keras dan sistem operasi
yang terintegrasi erat manajemen memori.
Tujuan bab ini :
• Untuk memberikan deskripsi rinci tentang berbagai cara mengatur memori
perangkat keras.
• Untuk mengeksplorasi berbagai teknik pengalokasian memori ke proses.
• Untuk membahas secara rinci bagaimana paging bekerja dalam sistem komputer
kontemporer

B. Kelebihan dan KekuranganIsi 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.
Materi yang dicantumkan juga sederhana dan dapat dipahami.

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

Buku II (Operating System Concept)

 Kelebihan Buku II
Menurut saya, kelebihan dari buku ini hamper sma dengan buku referensi
1. 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 sama dengan buku referensi 1 yaitu
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.
BAB IV
PENUTUP

A. 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.

B. 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.

Anda mungkin juga menyukai