Memory
Sistem Operasi
VIII. Manajemen Memory
• Pada uniprograming, main memory dibagi menjadi dua yaitu untuk
sistem operasi (resident monitor, kernel) dan program yang
dieksekusi sedangkan dalam multiprograming, main memory yang
digunakan user dibagi-bagi untuk beberapa proses. Tugas
pembagian ini yang disebut manajemen memori
• Fungsi manajemen memori
- Mengelola informasi memori yang dipakai dan tidak
dipakai
- Mengalokasikan memori dari proses yang telah selesai
- Mendealokasikan memori dari proses yang telah selesai
- Mengelola swapping antar main memory dan virtual memory
Klasifikasi Manajemen Memori
18
• Algoritma yang terbaik adalah First-fit meskipun akan menghasilkan
memori bebas berukuran kecil diawal memori. Yang kedua adalah Next-fit
dan yang paling buruk adalah algoritma Best-fit karena akan
menghasilkan memori bebas berukuran kecil yang banyak sehingga
compaction harus lebih sering dilakukan
Replacement Algorithm
• Pada sistem multiprogramming menggunakan partisi dinamik terdapat
suatu waktu saat seluruh proses di main memory dalam status block dan
meski telah dilakukan compaction masih kekurangan memori untuk
penambahan proses baru
• Maka ada proses yang diswap dari main memory untuk proses baru atau
proses dengan status ready suspend. Pemilihan proses yang akan diswap
memerlukan algoritma penempatan ulang yang akan dibahas pada virtual
memory
Simple Paging
• Main memory dipartisi menjadi potongan memory
berukuran relatif kecil dan setiap proses juga dibagi
menjadi potongan kecil berukuran sama dengan
potongan memory yang disebut page.
• Page ini dapat ditempatkan pada potongan main
memory yang disebut frame.
• Berikut ini contoh penggunaan page dan frame
• (a), (b), (c), (d) proses A (4 page), B (3 page), C (4 page) menempati
frame yang kosong
• (e) kemudian proses B suspended dan diswap out dari main memory
• (f) 5 page dari proses D menempati frame 4, 5, 6 dan 11, 12.
Tidak perlu contiguous
• Sistem Operasi menyediakan page table untuk setiap proses, page
table ini berisi lokasi frame untuk tiap page dari proses. Di dalam
program setiap logical address berisi nomor page dan offset
• Menggunakan logical address (page number, offset) dan page table,
prosesor akan menentukan physical address (frame number, offset)
• Pages table untuk contoh di atas
• Untuk memudahkan ukuran page dan ukuran frame ditentukan
sebagai kelipatan 2. Sehingga relative address menjadi sama
dengan logical address.
Contoh : digunakan pengalamatan 16 bit dan ukuran page 1 k =
1024 byte.
Relative address 1502 yang dalam
bentuk biner : 000001 0111011110
Dengan ukuran page 1 k diperlukan offset 10 bit sehingga 6 bit
sisa untuk nomor page. Sehingga program maksimum dapat
terdiri dari 26 = 64 page berukuran 1 kb
• Relative Address 1502 sesuai dengan offset = 478 dan
page = 1
Langkah-langkah menterjemahkan alamat untuk alamat
n + m bit
1.Ekstrak page number dari n bit paling kiri
pada logical address
2.Gunakan page number untuk mencari frame
number (k) di page table
3.Physical Address awal = k x 2m
Physical Address dari byte yang diacu :
k x 2m + offset
Simple segmentation
• Program dan datanya dibagi menjadi beberapa segmentasi.
Ukuran tiap segmentasi tidak perlu sama. Logical Address
yang menggunakan segmentasi terdiri dari segment number
dan offset.
Langkah menerjemahkan alamat n+m bit
1. Ekstrak segment number dari n bit paling kiri pada logical
address
2. Gunakan segment number ini untuk mencari awal physical
address dari segmentasi pada segment table
3. Bandingkan offset (m bit paling kanan) dengan panjang
segment. Jika offset lebih besar dari panjang segment
berarti alamat tidak absah (valid)
4. Alamat fisik diperoleh dengan menjumlahkan awal physical
address dengan offset