Kel om po k 6
Anggota :
1.Elsa Vania (19082010027)
Fragmentasi Eksternal. Fragmentasi yang terjadi apabila jumlah keseluruhan memori kosong
yang tersedia memang mencukupi untuk menampung permintaan tempat dari proses, tetapi
letaknya tidak berkesinambungan atau terpecah menjadi beberapa bagian kecil sehingga proses
tidak dapat masuk.
Solusi Fragmentasi
Fragmentasi Internal Fragmentasi Eksternal
• Memecah memori fisik menjadi • Compaction
berukuran tetap. Menempatkan semua isi memori
• Memblokir dan mengalokasikan pada satu lokasi.
memori dalam satuan Hanya dapat dilakukan bila
berdasarkan ukuran blok. relokasi memori bersifat dinamis.
• Pengalamatan menggunakan paging.
Mengizinkan ruang alamat logis
proses menjadi tidak bersebelahan.
Paging
Paging atau pemberian halaman adalah skema manajemen memori yang
memungkinkan ruang alamat fisik proses menjadi tidak bersebelahan (tidak
berurutan).
dimana p1 adalah indeks ke dalam tabel halaman luar, dan p2 adalah perpindahan
dalam halaman dari tabel halaman dalam .
Translasi Alamat pada Two-Level Paging
Dengan metode ini, isi pada indeks page table pertama akan menunjuk pada page
table kedua yang indeksnya bersesuaian dengan isi dari page table pertama tersebut.
Sedangkan isi dari page table kedua menunjukkan tempat dimana page table ketiga
bermula, sedang segmen alamat logika kedua adalah indeks ke-n setelah starting
point page table ketiga dan seterusnya sampai dengan segmen terakhir.
Hashed Page Tables
Satu cara untuk menangani ruang alamat yang lebih besar dari 32 bit menggunakan.
Hashed page table menggunakan tabel hash sebagai page table-nya dengan ukuran
yang terbatas untuk menghemat ruang memori dan sebuah hash function untuk
mengalokasikan alamat virtual pada page table tersebut. Setiap entri/blok pada page
table berisi linked list yang menghubungkan elemen-elemen yang di- hash ke lokasi
yang sama.
Setiap elemen terdiri dari tiga field:
1. Virtual page number
2. Nomor frame dimana alamat virtual tersebut dipetakan
3. Pointer yang menunjukkan elemen berikutnya dalam linked list.
Mekanisme paging pada metode ini yaitu:
Arsitektur chip Intel telah mendominasi lanskap komputer pribadi selama beberapa dekade. Intel
8086 16-bit muncul pada akhir 1970-an dan segera diikuti oleh chip 16-bit lainnya. Intel
kemudian memproduksi seri 32-bit chip — itu IA-32 — termasuk keluarga prosesor Pentium 32-
bit. Saat ini Intel telah memproduksi serangkaian chip 64-bit berdasarkan x86-64 Arsitektur.
IA-32 Architecture
Manajemen memori dalam IA-32 sistem dibagi menjadi dua komponen— segmentasi dan
paging — dan berfungsi sebagai berikut: CPU menghasilkan alamat logika, yang diberikan ke
unit segmentasi. Unit segmentasi menghasilkan alamat linier untuk setiap alamat logis.
Kemudian alamat liniernya diberikan ke unit paging, yang pada gilirannya menghasilkan alamat
fisik main memory. Jadi, unit segmentasi dan halaman membentuk ekuivalen dari unit
manajemen memori (MMU).
IA-32 Segmentation
IA-32 Arsitektur memungkinkan segmen menjadi sebesar 4
GB, dan maksimal jumlah segmen per-proses adalah 16 K.
Ruang alamat logis dari sebuah proses dibagi menjadi dua
partisi. Partisi pertama terdiri dari hingga 8 K segmen yang
bersifat pribadi untuk proses itu. Partisi kedua terdiri hingga 8
K segmen yang dibagi di antara semua proses. Informasi
tentang partisi pertama disimpan di local descriptor table
(LDT); informasi tentang partisi kedua disimpan di global
descriptor table(GDT). Setiap entri di LDT dan GDT terdiri
dari segmen 8-byte descriptor dengan informasi terperinci
tentang segmen tertentu, termasuk lokasi dasar dan batas
segmen tersebut.
Alamat logisnya adalah sepasang (selektor, offset), di mana
selektornya adalah 16-bit jumlah:
IA-32 Paging
IA -32 Arsitektur memungkinkan ukuran halaman 4
KB atau 4 MB. Untuk 4-KB halaman, IA-32
menggunakan skema two level paging dimana
pembagian 32-bit linier alamatnya adalah sebagai
berikut:
x86-64
Intel memiliki sejarah yang menarik dalam mengembangkan arsitektur 64-bit.
Awalnya entri adalah IA-64 arsitektur, tetapi arsitektur itu tidak diadopsi secara
luas. Sementara itu, produsen chip lain—AMD - mulai mengembangkan arsitektur
64-bit yang dikenal sebagai x86-64 yang berbasis tentang memperluas yang ada IA-
32. X86-64 mendukung banyak hal ruang alamat fisik dan logis yang lebih besar,
serta beberapa arsitektur lainnya.
Dukungan untuk ruang alamat 64-bit menghasilkan 64 byte dari memori yang dapat
dialamatkan — angka yang lebih dari 16 triliun (atau 16 exabytes). Namun, meskipun
sistem 64-bit berpotensi dapat mengatasi memori sebanyak ini, dalam praktiknya, jauh
kurang dari 64 bit digunakan untuk representasi alamat di desain saat ini. Arsitektur
x86-64 saat ini menyediakan alamat virtual 48-bit dengan dukungan untuk ukuran
halaman 4 KB, 2 MB, atau 1 GB menggunakan empat tingkatan dari Hierarchical
Paging. Karena skema pengalamatan ini bisa menggunakan page address
extension(PAE), alamat virtual adalah 48 bit dalam ukuran tetapi mendukung alamat
fisik 52-bit (4.096 terabyte).
Contoh: ARMv8 Architecture
Meskipun chip Intel telah mendominasi pasar komputer pribadi lebih lebih dari 30 tahun, Chip
untuk perangkat seluler seperti smartphone dan computer tablet sering dimenggunakan ARM
prosesor. Menariknya, Intel mendesain dan memproduksi chip, sedangkan ARM hanya
mendesainnya. Apple telah melisensikan ARM desain untuk perangkat seluler iPhone dan iPad,
dan sebagian besar ponsel cerdas berbasis Android menggunakan ARM prosesor. Selain perangkat
seluler, ARM juga menyediakan desain arsitektur untuk embedded system secara real-time.
ARMv8 memiliki tiga perbedaan translation granules : 4 KB, 16 KB, dan 64 KB.
Setiap translation granules memberikan ukuran halaman yang berbeda, serta lebih
besar bagian dari memori yang berdekatan, yang dikenal sebagai regions. Ukuran
page dan region untuk translation granules yang berbeda ditunjukkan di bawah ini:
Untuk 4-KB dan 16-KB granules, four level paging dapat digunakan, three level
paging digunakan untuk 64-KB granules.
Virtual Memory
Virtual memory adalah teknik yang memungkinkan pelaksanaan proses yang tidak
sepenuhnya dalam memori.
Virtual memory pada dasarnya, memetakan ruang alamat virtual ke ruang alamat fisik
(baik pada RAM atau perangkat keras). Setiap kali proses dibuat, kernel menyediakan
sebagian memori yang dapat ditempatkan di mana saja menggunakan VM.
Background
Virtual memory melibatkan pemisahan memori logis seperti yang dirasakan oleh pengembang dari
memori fisik. Pemisahan ini memungkinkan virtual memory yang sangat besar disediakan untuk
programmer jika hanya tersedia memori fisik yang lebih kecil.
Virtual address space dari suatu proses mengacu pada tampilan logis (atau virtual) tentang
bagaimana suatu proses disimpan dalam memori. Biasanya, pandangan ini adalah bahwa suatu
proses dimulai pada alamat logis tertentu — katakanlah, alamat 0 — dan berada dalam memori
yang berdekatan.
Virtual address space yang memiliki lubang (ruang Selain memisahkan memori logis (logical memory) dari
kosong) disebut sebagai sparse address spaces.. memori fisik (physical memory), memori virtual
Menggunakan sparse address space bermanfaat karena memungkinkan file dan memori digunakan bersama oleh
lubang dapat diisi saat tumpukan atau stack bertambah dua atau lebih proses melalui berbagi halaman.
atau jika kita ingin menautkan pustaka secara dinamis
(atau mungkin objek bersama lainnya) selama eksekusi
program.
Demand Paging
Teknik ini dikenal sebagai demand paging dan biasanya digunakan dalam sistem
memori virtual. Dengan menggunakan teknik ini, halaman dimuat hanya ketika
diminta selama eksekusi program. Halaman yang tidak pernah diakses dengan
demikian tidak pernah dimuat ke dalam memori fisik. Demand paging punya salah
satu manfaat utama dari virtual memory yaitu dengan memuat bagian program yang
diperlukan saja, sehingga memori digunakan secara lebih efisien.
Basic Concepts
Konsep umum di balik permintaan paging adalah memuat halaman dalam memori
hanya jika diperlukan. Akibatnya, saat suatu proses sedang dijalankan, beberapa
halaman akan berada di memori, dan beberapa di penyimpanan sekunder. Oleh
karena itu, diperlukan beberapa bentuk dukungan perangkat keras untuk
membedakan keduanya.
Skema bit valid - tidak valid dapat digunakan untuk tujuan ini. Ketika bit "valid",
halaman terkait adalah legal dan dalam memori. Jika bit "tidak valid", halaman
tersebut tidak valid atau valid tetapi saat ini berada di penyimpanan sekunder.
Prosedur untuk menangani
kesalahan 1. Memeriksa tabel internal, proses ini guna menentukan apakah
referensi itu valid atau tidak valid akses memori.
2. Jika referensi tidak valid, dapat menghentikan proses. Jika itu valid
tetapi belum membawa halaman itu, sekarang dapat
memasukkannya.
3. Menemukan free frames
4. Menjadwalkan operasi penyimpanan sekunder untuk membaca
halaman yang diinginkan ke dalam frame yang baru dialokasikan.
5. Ketika pembacaan penyimpanan selesai, lalu memodifikasi tabel
internal yang disimpan dengan proses dan tabel halaman untuk
menunjukkan bahwa halaman tersebut sekarang ada dalam memori.
6. Memulai kembali instruksi yang diinterupsi oleh trap. Prosesnya
sekarang dapat mengakses halaman seolah-olah selalu ada di
memori
Free-Frame List
Untuk mengatasi kesalahan halaman, sebagian besar sistem operasi mempertahankan free-frame list, kumpulan
free frames ini untuk memenuhi permintaan. Sistem operasi biasanya mengalokasikan free frames menggunakan
teknik yang dikenal sebagai zero-fillon-demand. Frame zero-fillon-demand "dikosongkan" sebelum
dialokasikan, sehingga menghapus konten sebelumnya.
Saat sistem dimulai, semua memori yang tersedia ditempatkan pada free-frame list. Saat free frames diminta
(misalnya, melalui halaman permintaan), ukuran free-frame list menyusut. Pada titik tertentu, daftar tersebut
jatuh ke nol atau berada di bawah ambang tertentu, yang pada titik itu harus diisi kembali.
Performance of Demand Paging
Dalam proses demand paging, jika terjadi page fault maka diperlukan waktu yang lebih lambat
untuk mengakses memori daripada jika tidak terjadi page fault. Perlu adanya penanganan page
fault itu sendiri. Kinerja demand paging ini dapat dihitung dengan menggunakan effective
access time yang dirumuskan sebagai berikut:
ma adalah memory access time, yang pada umumnya berkisar antara 10 hingga 200 nanosecond.
p adalah probabilitas terjadinya page fault, yang berkisar antara 0 hingga 1. Jika p sama dengan
0 yang berarti bahwa tidak pernah terjadi page fault, maka effective access time akan sama
dengan memory access time, dan itulah yang diharapkan. Sedangkan jika p sama dengan 1, yang
berarti bahwa semua halaman mengalami page fault, maka effective access time-nya akan
semaikin meningkat.
Contoh
Diketahui waktu pengaksesan memori (ma) sebesar 100 ns. Waktu page fault sebesar 20 ms.
Maka effective access time = (1 - p) x ma + p x page fault time
= (1 - p) x 100 + p x 20000000
= 100 - 100p + 20000000p
= 100 + 19.999.900p nanosecond
Pada demand paging, diusahakan agar kemungkinan terjadinya page fault rendah, karena bila
effective access time-nya meningkat, maka proses akan berjalan lebih lambat.
Copy-on-Write
Teknik ini menyediakan pembuatan proses yang cepat dan meminimalkan jumlah halaman baru yang harus
dialokasikan untuk proses yang baru dibuat.
Kita dapat menggunakan teknik yang dikenal sebagai copy-on-write, yang berfungsi dengan mengizinkan proses
induk dan anak pada awalnya untuk berbagi halaman yang sama. Halaman bersama ini ditandai sebagai halaman
salin saat menulis, artinya jika salah satu proses menulis ke halaman bersama, salinan halaman bersama akan
dibuat.
Page Replacement
Proses menukar halaman yang ada dari bingkai
memori utama dan menggantinya dengan halaman
yang diperlukan. Semua bingkai memori utama sudah
ditempati.
Ini adalah algoritma penggantian halaman yang paling sederhana. Dalam algoritma ini,
sistem operasi melacak semua halaman dalam memori dalam antrian, halaman terlama
berada di depan antrian. Ketika halaman perlu diganti halaman di depan antrian dipilih
untuk dihapus.
Optimal Page Replacement
Penggunaan penggantian halaman Optimal adalah untuk menyiapkan tolok ukur sehingga
algoritme pengganti lainnya dapat dianalisis terhadapnya. Pada halaman algoritma ini akan
diganti yang paling terakhir digunakan.
Least Recently Used (LRU) Page Replacement
Dalam halaman algoritma ini akan diganti yang paling terakhir digunakan. Ketika sebuah
halaman harus diganti, LRU memilih halaman yang sudah lama tidak digunakan.
Allocation of Frames
Aspek penting dari sistem operasi, memori virtual diimplementasikan dengan menggunakan
demand paging. Ini memerlukan pengembangan algoritme penggantian halaman dan algoritme
alokasi.
Dalam sistem dengan frame x dan proses y, setiap proses mendapatkan jumlah frame yang sama, yaitu .
Misalnya, jika sistem memiliki 48 frame dan 9 proses,
Sisa 3
maka setiap proses akan mendapatkan 5 frame. 3 frame yang tidak dialokasikan untuk proses apa pun
dapat digunakan sebagai kumpulan buffer bingkai bebas.
Proportional Allocation
Bingkai dialokasikan untuk setiap proses sesuai dengan ukuran proses. Untuk proses pi ukuran si,
jumlah frame yang dialokasikan adalah , di mana S adalah jumlah dari ukuran semua proses dan m
adalah jumlah frame dalam sistem. Misalnya pada sistem dengan 62 frame, jika ada proses 10KB dan
proses lain 127KB,
maka proses pertama akan dialokasikan frame
dan proses lainnya akan mendapatkan bingkai.
Global versus Local Allocation
Global Replacement
Ketika suatu proses membutuhkan halaman yang tidak ada dalam memori, itu dapat
membawa halaman baru dan mengalokasikannya sebuah bingkai dari himpunan semua
bingkai, bahkan jika bingkai tersebut saat ini dialokasikan ke beberapa proses lain yang
berarti, satu proses dapat mengambil kerangka dari proses lainnya.
Local Replacement
Ketika suatu proses membutuhkan halaman yang tidak ada dalam memori, itu dapat
membawa halaman baru dan mengalokasikan bingkai dari kumpulan bingkai yang
dialokasikan sendiri saja
Thrasing
Thrashing adalah keadaan dimana proses sibuk untuk mengganti halaman yang dibutuhkan
secara terus menerus
Pada saat CPU utilization terlalu rendah, maka sistem operasi akan meningkatkan
derajat multiprogramming dengan cara menghasilkan proses-proses baru, dalam
keadaan ini algoritma penggantian global akan digunakan. Ketika proses membutuhkan
bingkai yang lebih, maka akan terjadi page fault yang menyebabkan CPU
utilization semakin menurun. Ketika sistem operasi mendeteksi hal ini,
derajat multiprogramming makin ditingkatkan, yang menyebabkan CPU
utilization kembali menurun drastis, hal ini yang menyebabkan thrashing.
Dalam sistem kompresi memori virtual, halaman yang akan ditampilkan dari memori virtual
dikompresi dan disimpan dalam RAM atau dikirim ke penyimpanan tambahan seperti hard disk
drive (HDD) atau solid state drive (SSD).
Allocation Kernel Memory
Ketika proses yang berjalan dalam mode pengguna meminta memori
tambahan, halaman dialokasikan dari daftar page frame bebas yang dikelola
oleh kernel. Memori kernel sering dialokasikan dari kumpulan memori
bebas yang berbeda dari daftar yang digunakan untuk memenuhi proses
mode pengguna biasa.
• Setiap cache diisi dengan objek yang merupakan contoh dari struktur data kernel
yang diwakili oleh cache. menyimpan instance objek deskriptor proses, dan
seterusnya.
• Keuntungan
Tidak ada memori yang terbuang karena
fragmentasi.
Permintaan memori dapat dipenuhi dengan
cepat.
Other Consideration
• Prepaging
• Page Size
• TLB Reach
• Inverted Page Tables
• Program Structure
• I/O Interlock and Page Locking
Prepaging
Mengurangi terjadinya sejumlah page fault yang terjadi saat startup (pure demand paging)
Mengambil semua page yang dibutuhkan dalam sekali waktu sebelum referensi page terjadi
Jika terdapat banyak page yang tidak digunakan, I/O dan memory terbuang
Page Size
Faktor yang menjadi pertimbangan untuk menentukan ukuran page :
• Fragmentasi internal
Ukuran page kecil → mengurangi fragmentasi internal
• Besar page table
Ukuran page kecil → jumlah page bertambah → besar page table
bertambah
• Waktu I/O
I/O overhead (read/write page)
komponen waktu I/O : seek, latency, transfer time
Jika transfer rate = 2mb/s=0.2 ms untuk mentransfer 512 bytes seek
time=20ms, latency time= 8ms
total waktu I/O = 28,2ms ->512bytes
jika 2 page @512 byte butuh waktu I/O 56,4ms
Jika 1 page @1024 byte butuh waktu I/O 28,4ms
• Locality
Besar proses = 200 kb; yang dieksekusi=100 kb
Jika ukuran page > 200 Kb, eksekusi parsial (100kb) tidak dapat
dilakukan
Terdapat page yang tidak digunakan
Butuh memori besar
Jika ukuran page < 200 Kb (misal = 1 byte), eksekusi parsial (100kb)
dapat dilakukan
Keuntungan ukuran page besar: Butuh sedikit memori untuk
menampung page table & waktu I/O sedikit
Kerugian ukuran page kecil: Page-fault tinggi & overhead
TLB Reach
• TLB Reach, jumlah memory yang dapat diakses melalui TLB
• TLB Reach = (besar TLB ) x (ukuran page)
• Idealnya working set setiap proses disimpan dalam TLB
• Jika tidak, frekuensi akses ke page table lebih tinggi dibanding ke TLB
• Cara meningkatkan TLBReach :
- Menambah ukuran page
- Menggunakan ukuran page yang bervariasi (multiple page size)
Inverted table
Tujuan dari bentuk manajemen halaman ini adalah untuk mengurangi jumlah memori fisik yang
diperlukan untuk melacak terjemahan alamat virtual-to-physical. Tabel yang memiliki satu entri
per halaman memori fisik, diindeks oleh pasangan <process-id, page-number>.
Program Structure
Paging permintaan dirancang agar transparan terhadap program pengguna. Dalam banyak kasus,
pengguna sama sekali tidak menyadari sifat paged memori. Namun, dalam kasus lain, kinerja sistem
dapat ditingkatkan jika pengguna (atau kompiler) memiliki kesadaran akan paging permintaan yang
mendasarinya.
Program 1 Program 2
Proses page out bekerja sebagai berikut: Jarum depan jam memindai semua
halaman dalam memori, menyetel bit referensi ke 0. Kemudian, jarum jam
belakang memeriksa bit referensi untuk halaman memori, menambahkan setiap
halaman yang bit referensinya adalah masih disetel ke 0 untuk daftar gratis dan
menulis isinya ke penyimpanan sekunder jika sudah dimodifikasi. Solaris juga
mengelola kesalahan halaman kecil dengan mengizinkan proses untuk mengklaim
kembali halaman dari daftar gratis jika halaman tersebut diakses sebelum
dipindahkan ke proses lain.
Terima Kasih