MANAJEMEN MEMORI I
Disusun
Oleh:
2201082036
2023
Manajemen Memori
Memori adalah salah satu pusat kegiatan pada sebuah computer, karena setiap
proses yang dieksekusi, harus berada memori terlebih dahulu. Sisten Operasi
bertugas untuk mengatur penggunaan memori untuk banyak proses. Memori harus
digunakan dengan baik, sehingga dapat memuat banyak proses dalam suatu waktu.
Sebelum masuk ke memori, suatu proses harus menunggu dalam antrian. Antrian ini
disebut Input Queue (Long term scheduler).
Tujuan manajemen memori :
Meningkatkan utilitas CPU
Data dan instruksi dapat diakses lebih cepat oleh CPU
Main Memory dan Registers adalah satu-satunya storage yang dapat diakses
secara langsung oleh CPU.
Registers mengakses dalam satu CPU clock (atau kurang)
Cache berada diantara main memory dan CPU
Protection : diperlukan untuk menjamin operasi-operasi memory sesuai dan
tepat.
Relokasi : mengkonversi alamat logika program ke alamat fisik memori.
Sharing : bagian dari memori logika dapat dipakai Bersama-sama.
Address Binding
Proteksi Memory
Proteksi memori dapat berarti melindungi data Sistem Operasi dari proses
yang sedang dijalankan oleh pengguna computer, atau melindungi data suatu proses
dari proses lainnya.
Alamat logika adalah alamat yang dibentuk di CPU, disebut juga alamat
virtual.
Alamat fisik adalah alamat yang terlihat pada memori fisik.
Untuk mengubah dari alamat logika ke alamat fisik diperlukan suatu
perangkat keras yang bernama MMU (Mmeory Management Unit).
Pengubahan dari alamat logika ke alamat fisik adalah pusat kegiatan
manajemen memori.
Logical & physical addresses sama pada compile time & load-time. Logical
& physical addresses beda pada execution-time.
Dynamic Loading
Memanggil routine yang diperlukan saja pada memory. Routine yang tidak
diperlukan, tidak akan dipanggil. Tidak memerlukan bantuan sistem operasi.
Dynamic loading sangat berguna jika menangani banyak kode yang jarang diakses.
Ketika pemanggilan terjadi, rutin pemanggil akan memeriksa di memory, apakah
rutin yang dibutuhkan itu sudah ada atau belum, jika belum, dipanggil dan dialokasi
ke memory. Contoh : array dinamis dan imports/include library.
Static Linking
Menghubungkan seluruh routine yang ada pada program ke dalam suatu ruang
alamat di memory. Dilakukan oleh linker. Setiap program memiliki Salinan/copy
dari seluruh rutin dan data yang dibutuhkan. Biasanya digabungkan dengan
executable file. Contoh : EXE Delphi dan C/C++. Kelebihannya adalah library pasti
ada dan versinya pasti benar dan mudah pendistribusian file. Kekurangannya adalah
ukuran file yang besar.
Dynamic Linking
Overlays
Suatu proses dapat di-swap secara temporary keluar dari memori dan
dimasukan ke backing store dan dapat dimasukkan kembali ke dalam
memori pada eksekusi selanjutnya.
Backing store => disk cepat yang cukup besar untuk mengakomodasi copy
semua memori image pada semua user. Menyediakan akses langsung ke
memori image.
Roll out, roll in => varian swapping yang digunakan dalam penjadwalan
prioritas, proses dengan prioritas rendah di-swap out, sehingga proses
dengan prioritas tinggi dapat di-load dan dieksekusi.
Bagian terbesar dari swap time adalah transfer time, total transfer time
secara proporisonal dihitung dari jumlah memori yang di swap.
Modifikasi swapping dapat ditemukan pada sistem UNIX, Linux dan
Windows.
Contiguous Allocation
Fragmentasi
1. Compactation
Yaitu mengatur kembali isi memori agar memori yang kosong
diletakkan Bersama di suatu bagian yang besar. Compactation hanya dapat
dilakukan apabila relokasi bersifat dinamis dan pengalamatan dilakukan
pada saat runtime. Partisi fixed berukuran berbeda lebih baik dalam
meminimalisasi fragmentaso internal daripada partisi fixed berukuran sama.
2. Paging (Penghalamanan)
Suatu metode yang memungkinkan suatu alamat memori fisik tidak
berurutan letaknya. Memori logic dibagi menjadi blok-blok yang ukurannya
tetap yang dinamakan page. Memori fisik dibagi juga menjadi blok-blok
yang ukurannya tetap yang dinamakan frame. Lalu kita membuat suatu page
table yang akan menterjemahkan memori virtual menjadi memori fisik.
Page
Frame
Page Table
Sebuah rangkaian array dari entries yang mempunyai indeks berupa nomor
page. Setiap masukan terdiri dari bit valid.invalid dan nomor page.
Shared Pages
Shared code => 1 copy dari read-only code disharing diantara processes.
Shared code harus berada dalam lokasi yang sama dalam logical address
space untuk seluruh processes.
Private code dan data => setiap proses memiliki copy terpisah dari code dan
data. Halaman untuk private code dan data dapat muncul dimanapun dalam
logical address space.
Segmentasi
PERTANYAAN
1. Pemindahan proses dari memori utama ke disk atau sebaliknya merupakan definisi
A. Fragmentasi
B. Swapping
C. Partisi
2. Yang bukan merupakan fungsi manajemen memori adalah
A. Mendealokasikan memori dari proses sebelum selesai.
B. Mengelola informasi memori yang dipakau dan tidak dipakai.
C. Mengalokasikan memori ke proses yang memerlukan.
D. Mengelola swapping antara memori utama dan disk.
3. Memori tanpa swapping atau paging terbagi menjadi 2, yaitu
A. Monoprogramming dan multiprogramming secara dinamis.
B. Multiprogramming secara statis dan dinamis.
C. Monoprogramming dan multiprogramming secara statis.
D. Monoprogramming secara statis dan dinamis
4. Yang mana dari pernyataan di bawah ini yang merupakan pernyataan yang benar
mengenai table proses
A. Table suatu proses dengan prosedur interupsinya sama.
B. Ada satu table proses untuk keseluruhan proses yang berjalan.
C. Table proses yang terinterupsi akan dibuat yang baru lagi.
D. Ada satu table proses untuk saru proses.
5. Pemuatan data ke dalam penggalan memori dapat menimbulkan fragmen.
Fragmentasi eksternal terjadi apabila
A. Ukuran data lebih kecil dari ukuran penggalan.
B. Semua penggalan sudah terisi.
C. Ukuran penggalan yang belum terisi lebih kecil dari ukuran data.
D. Pemuatan data berlangsung menurut cocok terburuk.