Anda di halaman 1dari 29

Manajemen

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

VIII.1. Fixed Memory


• Main Memory dibagi menjadi sejumlah partisi tetap dan pada
partisi tersebut ditempatkan proses-proses
• Berdasarkan ukurannya dapat dibedakan menjadi partisi dengan
ukuran sama dan partisi dengan ukuran berbeda
Kesulitan partisi tetap dengan ukuran yang
sama
• Bila program ukurannya lebih besar dibanding partisi
yang tersedia maka tidak dapat dimuatkan.
Pemrogram harus mempersiapkan overlay sehingga
hanya bagian program yang benar-benar dieksekusi
yang dimasukkan ke main memory
• Untuk program yang sangat kecil dibanding ukuran
partisi akan terjadi ketidakefisien yang disebut
fragmentasi internal
Placement Algorithm
• Untuk partisi tetap dengan ukuran yang sama, penempatan
proses di main memory dilakukan dengan trivial, selama ada
partisi yang tersedia proses dapat di load ke partisi tersebut.Bila
sudah penuh digunakan swapping.
• Untuk partisi tetap dengan ukuran berbeda dua cara penempatan
proses kedalam partisi :
1. Satu antrian proses untuk tiap partisi
2. Satu antrian proses untuk seluruh partisi

• Proses ditempatkan pada partisi yang ukuranya paling kecil


yang dapat memuat proses tersebut
Masalah di dalam partisi tetap
• Relokasi
Penempatan proses sesuai alamat fisik yang bisa
berubah tergantung penempatannya dalam partisi
• Proteksi
Suatu proses tidak boleh masuk ke alamat partisi
yang telah berisi proses lain
Partisi Dinamik
• Partisi yang digunakan memiliki panjang dan jumlah yang
bervariasi
• Saat suatu proses dibawa ke main memory, proses
tersebut dialokasikan dengan ukuran memori yang tepat
sama dengan yang diperlukan
• Berikut ini contoh efek partisi dinamik pada main
memory 1 MB
• (a) mula-mula memori kosong hanya ada sistem operasi
• (b, c, d) proses 1, 2, 3 diload ke main memory
Pada (d) terdapat “hole” di akhir memori yang tidak cukup untuk
proses 4
• (e) Karena belum ada proses yang ready, proses 2 diswap sehingga
cukup untuk proses 4
• (f) Proses 4 berukuran lebih kecil dari proses 2 sehingga terbentuk
hole lain
• (g) Kemudian proses 2 menjadi ready, karena ukuran memori
tersedia belum cukup maka proses 1 yang diswap
• (h) proses 2 menempati ruang memori dan menghasilkan hole
baru
• Partisi dinamik ini menghasilkan beberapa lubang (hole) di
memori yang semakin lama memori akan semakin ter-fragment
dan penggunaan memori berkurang. Fenomena ini disebut
Fragmentasi Eksternal
• Teknik untuk mengatasi Fragmentasi Eksternal dengan
Compaction (pemadatan). Dari waktu ke waktu sistem operasi
menggeser proses-proses sehingga menjadi berdampingan
(contiguous) dan free memory dijadikan satu blok. Misal dari
gambar (h) akan diperoleh free memory 256 k sebagai hasil dari
compaction
• Kesulitan dari compaction adalah prosedurnya menyita waktu
prosesor dan diperlukan kemampuan relokasi dinamik
RELOCATION
• Penempatan suatu proses yang telah diswap kembali ke main
memory. Pada partisi tetap suatu proses yang diswap balik (swap in)
akan menempati partisi yang sama seperti sebelum diswap. Ini
merupakan contoh relokasi sederhana. Saat pertama diload, seluruh
acuan memori relatif dalam bentuk code akan digantikn alamat
main memory absolut yang ditentukan oleh base address dari proses
yang diload
• Sedangkan pada single-process queue untuk unequal-size partition
dan partisi dinamik suatu proses bisa menempati partisi yang
berbeda pada saat diswap balik ke main memory atau saat terjadi
pergeseran (shift). Sehingga alamat suatu proses tidak tetap di main
memory.
Untuk itu dibedakan beberapa jenis alamat
• Logical Address :
Acuan pada suatu lokasi memory yang tergantung pengerjaan data
ke memory, penerjemahan ke alamat fisik harus dilakukan terlebih
dahulu sebelum memori diakses
• Relative Address :
Contoh khusus dari logical address, alamat dinyatakan sebagai
suatu lokasi yang relatif pada titik yang diketahui, biasanya awal
dari program
• Physical Address/Absolute Address :
Lokasi aktual di main memory
Penerjemahan ke alamat fisik di main memory
• Saat suatu proses ditugaskan menjadi status running, base register diisi
alamat awal proses di main memory. Juga terdapat sebuah bound register
yang menunjukkan lokasi akhir dari program, nilai akhir ini harus diatur saat
program diload atau process image diswap masuk (ke main memory)
• Pada saat proses dieksekusi, alamat relatif dilibatkan. Alamat relatif terdiri
dari isi instruction register (IR), alamat instruksi yang terjadi di dalam
cabang dan instruksi pemanggilan, dan alamat data yang terjadi saat
instruksi load dan store
• Tiap-tiap alamat relatif mengalami 2 langkah manipulasi oleh prosesor :
1. Nilai di dalam base register ditambahkan pada relative address
untuk menghasilkan absolute address
2. Hasilnya dibandingkan dengan nilai di dalam bound register.
Jika alamatnya di dalam range nilai ini maka instruksi
eksekusi akan dikerjakan dan jika tidak akan dibangkitkan
interrupt ke sistem operasi berupa error
Placement Algorithm
• Diperlukan algoritma penempatan untuk menutup lubang yaitu pada
saat load atau swap proses ke main memory terdapat beberapa blok
memori bebas yang ukurannya cukup maka sistem operasi akan
memutuskan yang mana yang akan dialokasikan
• Terdapat 3 algoritma penempatan : best-fit, first-fit dan next-fit
- Best-fit memilih blok memori yang ukurannya
sangat dekat dengan ukuran proses yang dibawa
- First-fit mulai dengan menscan memori dari awal
dan memilih blok memori yang pertama ditemui
yang memiliki ukuran yang cukup besar
- Next-fit mulai menscan memori dari lokasi terakhir
penempatan dan memilih blok berikutnya yang
memiliki ukuran yang cukup besar
Berikut ini contoh ketiga algoritma. Pada gambar ini blok terakhir
yang digunakan adalah blok 22 kb yang kemudian dipartisi 14 kb.
Akan dialokasikan 16 kb

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

Anda mungkin juga menyukai