Nama : IRNA MARLIANA SIREGAR
Kelas : Pagi
Jurusan : Informatika
SOAL !
A. Jelaskan perbedaan alokasi memori multiprogramming secara berurut (contigous) dan tidak berurut (non contigous) ?
B. Jelaskan konsep pengalokasian berurut dengan :
- Partisi statis
- Partisi dinamis
- sistem buddy
C. Jelaskan perbedaan, kelebihan dan kekurangan dari penentuan hole alokasi suatu proses secara :
- Algoritma first fit
- Algoritma best fit
- algoritma worst fit
JAWABAN
A. Alokasi
Berurut (Contiguous)
Memori harus mengakomodasi kebutuhan
SO dan proses user. Memori utama biasanya terbagi dalam dua bagian:
Ø Resident operating system, biasanya
tersimpan di alamat memori rendah.
Ø User proces menggunakan memori
beralamat tinggi/besar.
Alokasi berurut terbagi menjadi tiga
yakni:
1. Partisi statis
Ciri-ciri
dari partisi statis sebagai berikut:
1. Memori dibagi menjadi
partisi-partisi dengan ukuran yang tetap.
2. Satu proses hanya memakai satu
partisi. Jika proses sudah selesai, partisi tersebut dapat digunakan proses
yang lain.
3. Dibagi menjadi 2 bagian:
a) Berukuran sama
Banyak kelemahan, antara lain:
b) Berukuran tidak sama
Untuk
mengatasi kelemahan dari Pengalokasian berurut dengan partisi statis dengan
ukuran sama, yaitu proses ukuran kecil diletakkan ke partisi yang kecil dan
sebaliknya.
Ada
2 jenis strategi:
1) Satu antrian untuk setiap partisi
Tiap
proses diletakkan pada partisi dengan ukuran terkecil yang dapat dimuatnya.
Kelemahan:
ada partisi yang memiliki antrian panjang dan ada yang kosong.
2) Satu antrian untuk seluruh partisi
Semua
proses dimasukkan pada satu antrian yang sama, Algoritma penjadwalan melakukan
pemilihan partisi
Kelemahan:
jika proses yang berukuran kecil terpaksa masuk ke partisi sisa yang besar,
sehingga terjadi pemborosan ruang.
2. Partisi
Dinamis
Ciri-ciri:
1.
Pada
kondisi awal, memori tidak dibagi menjadi partisi-partisi
2.
Pemartisian
dilakukan pada saat image proses akan disalin ke memori utama.
3.
Ukuran
partisi yang dialokasikan akan disesuaikan dengan ukuran image proses.
4.
Partisi
akan dibebaskan jika program sudah selesai.
5.
Keuntungan
: tidak terjadi fragmentasi internal alokasi memori disesuaikan dengan besarnya
image proses.
Cara kerja:
1. Pengalokasian dilakukan dengan
mencari hole à suatu ruang memori utama yang
kosong, yang cukup besar untuk menampung image proses.
2. Hole sisa kadang kala terlalu kecil
untuk dapat dialokasikan ke proses lainnya sehingga tidak bisa digunakan lagi à fragmentasi eksternal.
3. Salah satu cara untuk mengatasi
masalah ini adalah melakukan memory compaction.
Yaitu:
menggeser image proses-proses yang ada
di memori sehingga hole terkumpul di satu tempat saja
Kelemahan:
Ø proses alokasi dan dealokasi menjadi
lebih rumit
Ø Perlu pengelolaan informasi area
memori yang masih kosong.
Ada 2 metode pengelolaan memori
kosong:
1.
Peta bit (bitmap)
Ø Menggunakan area memori khusus untuk
mencatat seluruh area kosong pada memori utama.
Ø Memakai nilai 0 dan 1
ü Nilai 0 à alamat memori tersebut masih kosong
ü Nilai 1 à alamat memori tersebut sudah terisi
2.
Linked list
Ø Informasi mengenai hole
kosong berikutnya dicatat pada hole kosong sebelumnya.
Ø Tidak diperlukan area memori khusus.
Karena seluruh informasi tercatat di area memori kosong itu sendiri sehingga
menghemat kapasitas memori utama.
Diperlukan algoritma untuk
menentukan hole mana yang akan dialokasikan ke suatu proses.
1. Algoritma Best-fit
Ø Mencari memori blok yang paling
kecil yang dapat menampung image proses
Ø Memerlukan waktu lama karena harus
searching seluruh blok memori utama
Ø Fragmentasi eksternal dapat ditekan
sekecil mungkin
2. Algoritma First-fit
Ø Mencari memori kosong dari alamat
awal sampai menemukan blok yang dapat menampung image proses
Ø Sederhana dan cepat.
3. Algoritma Next-fit
Ø Hampir sama dengan First-fit.
Ø Bedanya: proses searching dimulai
dari alamat alokasi terakhir
4. Algoritma Worst-fit
Ø Mencari hole yang paling besar di
seluruh area memori utama.
Ø Tujuannya: hole sisa yang tercipta
setelah alokasi masih cukup besar untuk dialokasikan ke proses lainnya.
3.
Sistem Buddy
Ø Berupa pemartisian secara dinamis
Ø Ciri khusus adalah partisi yang
terbentuk senantiasa berukuran besar sebesar bilangan 2n 2,4,8,16…..256,512,1024(1Mb)
Alokasi memori pada sistem buddy:
1)
Menentukan
ukuran partisi
v Ditentukan ukuran partisi untuk
menampung image proses yaitu ukuran bilangan pangkat 2 terkecil
v Misal : ukuran image proses = 12kb, maka
ukuran partisi yang bisa digunakan adalah 16kb.
2) Pengalokasian
v Selanjutnya adalah mencari hole yang
ukurannya sebesar perhitungan.
v Jika tidak ada maka dicarikan hole
yang berukuran sedikit lebih besar. Kemudian dipecah secara bertahap sesuai
dengan aturan bilangan pangkat 2.
v Misal : ukuran image proses =
12kb dan hole yang paling kecil adalah 64kb.
ü maka dipecah menjadi 2 partisi 32kb,
selanjutnya dipecah lagi menjadi 2 partisi 16kb.
ü dan partisi 16kb pertama yang bisa
dipakai untuk image proses 12kb.
B.
Alokasi
Tidak Berurut (Non Contiguous)
1.
Dengan Sistem Paging
Ø Pada model pengalokasian tak
berurut, bagian-bagian dari image proses dapat diletakkan secara terpisah di
memori utama.\
Ø Pada sistem paging memerlukan
pengalamatan logika khusus yang membagi menjadi blok-blok dengan ukuran sama
yang disebut page
Ø Pada sistem paging , perlua adanya
translasi alamat ke memori fisik yang dipartisi secara statis yang disebut frame,
yang ukurannya sama dengan page pada ruang alamat logika
Konsep
dasar alokasi memori :
Ø Memori utama dibagi menjadi
frame-frame kecil berukuran sama dan diberi nomor frame sebagai referensi.
Ø Ruang alamat logika proses dibagi
menjadi page-page seukuran frame
Ø Loading time: page-page image proses
diletakkan pada frame-frame kosong dan dicatat pada page table
Proteksi Memori pada sistem paging
Ø Berfungsi menghindari pengaksesan
memori secara ilegal.
misal:
pengaksesan bagian memori yang sudah ditempati proses lain.
Ø Proteksi frame dilakukan dengan cara
menambahkan bit proteksi untuk tiap entry page table misal:
ü cek apakah frame tersebut bersifat
read atau read-write.
ü cek apakah alamat logika yang dituju suatu
proses valid atau invalid.
Memory Sharing pada sistem pagin
Ø Untuk menghemat penggunaan kapasitas
memori.
Ø Jika ada 2 atau lebih proses yang
memiliki bagian kode instruksi, atau data yang sama maka dapat digunakan
bersama dan cukup diletakkan sekali di frame memori.
Ø Masing-masing proses mengacu ke
frame yang sama pada page table nya.
2.
Dengan Sistem Segmentasi
Ø Memakai sistem partisi dinamis.
Ø Pada pengalamatan logika, image
proses dibagi menjadi bagian-bagian yang disebut segmen.
Ø Pembagian segmen biasanya mengikuti
struktur program oleh kompiler, yang biasanya tiap segmen berupa main program,
stack, routine, symbol table
Ø Partisi memori utama terjadi pada
saat alokasi yang besarnya sesuai dengan besar segmen program yang dialokasikan
Konsep
alokasi memori:
Ø Image proses dibagi menjadi beberapa
segmen yang ukurannya tidak harus sama.
Ø Segmen-segmen image proses
dialokasikan ke tempat-tempat kosong di memori utama, dan informasi alokasi
dicatat pada segmen table.
Ø Segmen table berisi nilai limit
(panjang segmen) dan nilai base (alamat awal bagian memori yang dialokasikan)
Proteksi memori
pada segmentasi
Ø Membandingkan nilai segmen yang ada
di pengalamatan logika dengan nilai limit yang ada di segmen table.
Ø Apabila nilai segmen yang ada di
pengalamatan logika lebih besar (>) daripada
nilai limit yang ada di segmen table, berarti terjadi usaha pengaksesan
lokasi diluar area segmen program itu, sehingga memicu terjadinya trap
(addresing error)
Memori sharing pada
sistem segmentation
Sharing
segmen antara 2 atau lebih proses dapat dilakukan dengan mencatat lokasi
alokasi segmen tersebut ke tabel segmen masing-masing proses.
3.
Dengan Sistem Kombinasi
Gabungan antara pengalokasian tak
berurut secara paging dan segmentasi