1.
Apa yang dimaksud dengan sumber daya ? Berikan contohnya!
Sumber daya (resources)
adalah sesuatu proses yang digunakan untuk proses-proses untuk
menyelesaikan task.Sumber daya yang ada pada sistem
terdiri dari tipe resource CPU cycle, ruang memori, perangkat
I/O yang disebut dengan tipe sumber daya R1, R2, . .
., Rm.
2.
Apa yang dimaksud deadlock ?
Deadlock adalah
proses dimana saling terjadinya penungguan antara
proses-proses yang ingin menggunakan resources (sumber daya),
proses yang sedang menunggu tidak mau saling mengalah maka akan
terjadi deadlock.
3.
Sebutkan 4 kondisi yang menyebabkan deadlock?
a. Mutual Exclusion
hanya satu proses pada satu
waktu yang dapat menggunakan sumberdaya.
b. Genggam
dan Tunggu (Hold and Wait)
suatu proses
membawa sedikitnya satu sumberdaya menunggu mendapatkan
tambahan sumber daya baru yang dibawa oleh proses.
c. Non-Preemption
sebuah sumber daya dapat dibebaskan
dengan sukarela oleh proses yangmemegangnya setelah proses menyelesaikan task.
d. Menunggu
Secara Sirkuler (Circular Wait)
Terdapat
sekumpulan proses {P0, P1, …, P0} yang menunggu sumber daya dimana
P0 menunggu sumber daya yang dibawa P1, P1
menunggu sumber daya yang dibawa P2, dan seterusnya, Pn–1
menunggu sumber dayayang dibawa oleh Pn, dan Pn
menunggu sumber daya yang dibawa P0.
4.
Sebutkan cara mencegah deadlock dari 4 kondisi tersebut pada soal 3?
a. Mencegah Mutual Exclusion
Mutual exclusion benar-benar tak dapat dihindari. Hal ini dikarenakan tidak
ada sumber dayayang dapat
digunakan bersama-sama, jadi sistem harus
membawa sumber daya yang tidak dapat digunakan bersama-sama.
b. Mencegah Hold and Wait
Untuk mencegah hold and wait, sistem harus menjamin bila suatu proses
meminta sumberdaya, maka proses tersebut tidak
sedang memegang sumber daya yang lain. Proses harus meminta
dan dialokasikan semua sumber daya yang diperlukan sebelum
proses memulai eksekusi atau mengijinkan proses
meminta sumber daya hanya jika proses tidak
membawasumber daya lain. Model ini mempunyai
utilitas sumber daya yang rendah dan kemungkinan terjadi
starvation jika proses membutuhkan sumber daya yang popular
sehingga terjadi keadaan menunggu yang tidak terbatas karena
setidaknya satu dari sumberdaya yang dibutuhkannya dialokasikan
untuk proses yang lain.
c. Mencegah Non Preemption
Peniadaan non preemption mencegah proses-proses lain harus menunggu.
Seluruh proses menjadi preemption, sehingga tidak ada tunggu menunggu. Cara
mencegah kondisi non preemption : Jika suatu proses yang membawa
beberapa sumber daya meminta sumber daya lainyang tidak
dapat segera dipenuhi untuk dialokasikan pada proses tersebut, maka
semuasumber daya yang sedang dibawa proses tersebut harus
dibebaskan. Proses yang sedang
dalam keadaan menunggu, sumber daya yang dibawanya ditunda
dan ditambahkan pada daftar sumber daya. Proses akan di restart hanya jika
dapat memperoleh sumber daya yang lama
dan sumberdaya baru yang diminta.
d. Mencegah Kondisi Menunggu Sirkular
Sistem mempunyai total permintaan global untuk semua
tipe sumber daya. Proses dapat meminta proses kapanpun menginginkan,
tapi permintaan harus dibuat terurut secara numerik. Setiap
proses yang membutuhkan sumber daya dan memintanya
maka nomor urut akan dinaikkan. Cara ini tidak akan menimbulkan siklus.
Masalah yang timbul adalah tidak ada cara pengurutan
nomor sumber daya yang memuaskan semua pihak.
5.
Diketahui snapshot dari suatu sistem :
Allocation Max Available
A B C D A B C D A B C D
P0 0 0 1 2 0 0 1 2 1 5 2 0
P1 1 0 0 0 1 7 5 0
P2 1 3 5 4 2 3 5 6
P3 1 6 3 2 1 6 5 2
P4 0 0 1 4 0 6 5 6
Jawablah pertanyaan berikut :
a. Bagaimana isi matrik Need ?
b. Apakah sistem dalam state selamat ?
c. Jika proses P1 meminta (0,4,2,0) dapatkah permintaan dipenuhi segera ?
a. Isi matrik Need
didefinisikan dengan Max – Allocation :
Need
A B C
P0 7 4 3
P1 1 2 2
P2 6 0 0
P3 0 1 1
P4 4 3 1
Sistem dalam keadaan
state selamat dengan urutan <> yang memenuhi kriteria algoritma safety.
Misalnya proses P1
meminta tambahan anggota tipe sumber daya A
dan dua anggota tipesumber daya C sehingga Request1 = (1, 0, 2). Untuk menentukan apakah permintaan
dapat segera dipenuhi, pertama harus diperiksa apakah Request1 ≤ Available ((1,
0, 2) ≤ (3, 3, 2)) ternyata benar. Maka akan diperoleh state baru
berikut :
Allocation Need Available
A B C A B C A B C
P0 0 1 0 7 4 3 2 3 0
P1 3 0 2 0 2 0
P2 3 0 1 6 0 0
P3 2 1 1 0 1 1
P4 0 0 2 4 3 1
Kemudian harus
ditentukan apakah sistem berada dalam state selamat. Setelah mengeksekusi
algoritma safety ternyata urutan memenuhi criteria safety. Setelah sistem berada pada state
doatas, permintaan (3, 3, 0) oleh P4 tidak dapat dipenuhi
karena sumber daya tidak tersedia. Permintaan (0, 2, 0) oleh P1 juga tidak dapat
dipenuhi karena meskipun sumber daya tersedia, state hasil tak selamat.
b. Sistem dalam state
tidak selamat
c. Dapat