Anda di halaman 1dari 3

20191100005

Muhammad Yoga Fiqri Haikal

1. Jelaskan tentang deadlock di sistem operasi..?


2. Hal Apa saja yang sebaiknya kita lakukan dalam penggunaan komputer untuk meminimalisir
terjadinya deadlock ?
3. sistem operasi apa yang resiko terjadinya deadlock paling kecil? Jelaskan!
4. Dalam deadlock terdapat beberapa Algoritma “Algoritma Banker” & “Algoritma Ostrict”,
Coba Jelaskan apa yang dimaksud dengan algo tersebut..??

Jawab

1. Deadlock adalah suatu kondisi dimana dua proses atau lebih saling menunggu proses yang
lain untuk melepaskan resource yang sedang dipakai. Karena beberapa proses itu saling
menunggu, maka tidak terjadi kemajuan dalam kerja proses-proses tersebut. Deadlock
adalah masalah yang biasa terjadi ketika banyak proses yang membagi sebuah resource yang
hanya boleh dirubah oleh satu proses saja dalam satu waktu.

2. Cara meminimalisir terjadinya deadlock :


a. Mencegah mutual exclusion
Hindari pengalokasian sumber daya yang tidak terlalu diperlukan, eksklusivitas sumber
daya merupakan aspek penting dalam sinkronisasi. Dengan demikian kita dapat
memonitor sekaligus memastikan bahwa hanya sumber daya tersebut yang digunakan,
sehingga meminimalisir potensi deadlock.
b. Mencegah hold and wait
Sistem harus menjamin apabila suatu proses meminta sumber daya 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 membawa
sumber daya lain.
c. Mencegah non preemption
Peniadaan non preemption mencegah proses-proses lain harus menunggu, karena
seluruh proses menjadi preemption sehingga tidak ada tunggu menunggu. Untuk itu
dapat diterapkan beberapa cara berikut:
 Jika suatu proses yang membawa beberapa sumber daya meminta sumber daya lain
yang tidak dapat segera dipenuhi untuk dialokasikan pada proses tersebut, maka semua
sumber daya yang sedang dibawa harus dibebaskan.
 Proses yang sedang dalam keadaan menunggu, apabila membawa sumber daya maka
sumber daya tersebut harus ditunda serta ditambahkan pada daftar sumber daya.
 Proses akan di-restart hanya jika dapat memperoleh sumber daya yang lama dan
sumber daya baru yang diminta.
d. Mencegah circular wait
Permintaan global untuk semua tipe data harus dibuat terurut secara numerik. Setiap
proses yang membutuhkan sumber daya dan memintanya maka nomor urut akan
dinaikkan. Dengan demikian, tidak akan menimbulkan siklus.

3. Sistem Operasi Unix, karena Unix menanggulangi deadlock dengan cara tidak mendeteksi
deadlock dan membiarkannya secara otomatis mematikan program sehingga seakan-akan
tidak terjadi apapun. Jadi jika terjadi deadlock, maka tabel akan penuh, sehingga proses yang
menjalankan proses melalui operator harus menunggu pada waktu tertantu dan mencoba
lagi.

4. Algoritma pada deadlock

a. Algoritma Banker
Algoritma resource allocation graph tidak dapat diaplikasikan pada sistem yang
mempunyai beberapa anggota pada setiap tipe sumber daya. Setiap proses sebelum dieksekusi
harus menentukan jumlah sumber daya maksimum yang dibutuhkan. Jika suatu proses
meminta sumber daya kemungkinan proses harus menunggu. Jika suatu proses mendapatkan
semua sumber daya maka proses harus mengembalikan semua sumber daya dalam jangka
waktu tertentu.
Struktur data yang digunakan untuk mengimplementasikan algoritma Banker akan
menentukan state dari sumber daya yang dialokasikan oleh sistem. Misalnya n = jumlah
proses dan m = jumlah tipe resource. Struktur data yang diperlukan :
 Available : Vektor panjang m. Jika Available[j] = k, terdapat k anggota tipe sumber daya
Rj yang tersedia.
 Max : matrik n x m. Jika Max[i, j] = k, maka proses Pi meminta paling banyak k anggota
tipe resource Rj.
 Allocation : matrik n x m. Jika Allocation[i, j] = k maka Pi sedang dialokasikan k
anggota tipe resource Rj.
 Need : matrik n x m. Jika Need[i, j] = k, maka Pi membutuhkan k anggota tipe resource
Rj untuk menyelesaikan task. Need[i, j] = Max[i, j] – Allocation[i, j].
Beberapa notasi yang perlu diketahui adalah misalnya X dan Y adalah vektor dengan
panjang n. X ≤ Y jika dan hanya jika X[i] ≤ Y[i] untuksemua i = 1, 2, .., n. Sebagai contoh
jika X = (1, 7, 3, 2) dan Y = (0, 3, 2, 1) maka Y ≤ X.
b. Algoritma Ostrict
Algoritma Ostrich adalah strategi mengabaikan masalah yg mungkin terjadi atas
dasar bahwa masalah itu mungkin sangat jarang terjadi "menempelkan kepala di pasir dan
berpura-pura bahwa tidak ada masalah" dengan mengasumsikan bahwa lebih efektif untuk
memungkinkan masalah itu terjadi di bandingkan upaya pencegahan nya. Algoritma ini dapat
digunakan dalam menangani deadlock pemograman concurrent jika deadlock di yakini sangat
jarang terjdi.

Anda mungkin juga menyukai