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. Pengertian Deadlock di Sistem Operasi Adalah:
Suatu kondisi dimana proses tidak berjalan lagi ataupun tidak ada komunikasi lagi antar proses. Deadlock disebabkan karena proses yang satu menunggu sumber daya yang sedang dipegang oleh proses lain yang sedang menunggu sumber daya yang dipegang oleh proses tersebut. Dengan kata lain setiap proses dalam set menunggu untuk sumber yang hanya dapat dikerjakan oleh proses lain dalam set yang sedang menunggu.2. Hal-hal yang harus kita lakukan untuk meminimalisir terjadinya deadlock dalam penggunaan komputer adalah: PENCEGAHAN: Secara keseluruhan, untuk menghindari deadlock cukup meniadakan salah satu dari 4 kondisi prasyaratnya, yaitu:
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 yang resiko terjadinya Deadlock paling kecil adalah: 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. Dalam deadlock terdapat beberapa Algoritma, antara lain:
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.