1. Sherly 210.511.013
2. Megga Farah Nazsa 210.511.016
3. Sri Romadhani 210.511.045
4. Kartika Wahyuningtyastuti 210.511.164
Halo. Pada artikel ini kami akan menulis tentang Penghindaran
DeadLock Sistem Operasi. Kami minta maaf apabila ada penulisan kami yang kurang
berkenan. Semoga artikel ini dapat membantu dan bermanfaat bagi pembaca dan
kami untuk lebih menambah ilmu. Amin.
Langsung aja, pada bahasan kali ini saya akan menjelaskan
tentang penghindaran, dan pemulihan deadlock. J
Penghindaran Deadlock
Penghindaran terhadap deadlock adalah Cara penanganan yang
selanjutnya. Inti dari penghindaran adalah jangan sembarangan membolehkan
proses untuk memulai atau meminta lagi. Maksudnya jangan pernah memulai suatu
proses apabila nantinya akan menuju ke keadaan deadlock. Kedua, jangan
memberikan kesempatan pada proses untuk meminta sumber daya tambahan jika
penambahan tersebut akan membawa sistem pada keadaan deadlock. Tidak mungkin
akan terjadi deadlock apabila sebelum terjadi sudah kita hindari.
Langkah lain untuk menghindari adalah dengan cara tiap proses
memberitahu jumlah kebutuhan maksimum untuk setiap tipe sumber daya yang ada.
Selanjutnya terdapat deadlock-avoidance algorithm yang secara rutin memeriksa
state dari sistem untuk memastikan tidak adanya kondisi circular wait serta
sistem berada pada kondisi safe state. Safe state adalah suatu kondisi dimana
semua proses mendapatkan sumber daya yang dimintanya dengan sumber daya yang
tersedia. Apabila tidak bisa langsung, ia harus menunggu selama waktu tertentu,
kemudian mendapatkan sumber daya yang diinginkan, melakukan eksekusi, dan
terakhir melepas kembali sumber daya tersebut.
Terdapat dua jenis algoritma penghindaran yaitu
·
Resource-Allocation Graph
untuk Single Instances Resources
·
Banker's Algorithm
untuk Multiple Instances Resources.
Dalam banker's algorithm, terdapat beberapa struktur data
yang digunakan, yaitu:
·
Available . Jumlah
sumber daya yang tersedia. Max
. Jumlah sumber daya maksimum yang diminta oleh tiap proses.
·
Allocation . Jumlah
sumber daya yang sedang dimiliki oleh tiap proses.
·
Need . Sisa sumber daya
yang masih dibutuhkan oleh proses, didapat dari max- allocation.
Kemudian terdapat safety algorithm untuk menentukan apakah
sistem berada pada safe state atau tidak.
Strategi menghindari deadlock:
·
Saat proses melakukan permintaan resource, asumsikan
permintaan akan dikabulkan
·
Update sistem
·
Menetapkan apakah hasilnya safe state
·
Jika iya, kabulkan
·
Jika tidak, blokir hingga ditemukan saat yang aman untuk
mengabulkan permintaan
Keterbatasan dalam proses
penghindaran deadlock:
·
Jumlah kebutuhan resource maksimum tiap proses harus
ditetapkan terlebih dahulu
·
Proses harus independen
·
Jumlah resource yang dialokasikan harus tetap
Tidak
ada proses yang keluar selama memegang resource.
Pendeteksian Deadlock
Pada dasarnya kejadian
deadlock sangatlah jarang terjadi. Apabila kondisi tersebut terjadi,
masing-masing sistem operasi mempunyai mekanisme penanganan yang berbeda. Ada
sistem operasi yang ketika terdapat kondisi deadlock dapat langsung
mendeteksinya. Namun, ada pula sistem operasi yang bahkan tidak menyadari kalau
dirinya sedang mengalami deadlock. Untuk sistem operasi yang dapat mendeteksi
deadlock, digunakan algoritma pendeteksi. Secara lebih mendalam, pendeteksian
kondisi deadlock adalah cara penanganan deadlock yang dilaksanakan apabila
sistem telah berada pada kondisi deadlock. Sistem akan mendeteksi proses mana
saja yang terlibat dalam kondisi deadlock. Setelah diketahui proses mana saja
yang mengalami kondisi deadlock, maka diadakan mekanisme untuk memulihkan
sistem dan menjadikan sistem berjalan kembali dengan normal.
Mekanisme pendeteksian
adalah dengan menggunakan detection algorithm yang akan memberitahu sistem
mengenai proses mana saja yang terkena deadlock. Setelah diketahui proses mana
saja yang terlibat dalam deadlock, selanjutnya adalah dengan menjalankan
mekanisme pemulihan sistem yang akan dibahas pada bagian selanjutnya. Berikut
ini adalah algoritma pendeteksian deadlock. :
1. Tandai
setiap proses yang memiliki baris dalam matriks allocation yang seluruhnya 0
(nol).
2. Inisialisasi
vektor temporer W sehingga sama dengan vektor
available.
3. Temukan
indeks i dimana nilainya pada matriks claim lebih kecil atau sama dengan W.
Jika tidak ditemukan, hentikan algoritma.
4. Jika
ditemukan, tandai proses i dan tambahkan baris matriks alokasi yang
bersangkutan ke W.
5. Ulang
langkah 3.
Pemulihan Deadlock
Pemulihan kondisi sistem terkait dengan pendeteksian terhadap
deadlock. Apabila menurut algoritma pendeteksian deadlock sistem berada pada
keadaan deadlock, maka harus segera dilakukan mekanisme pemulihan sistem.
Berbahaya apabila sistem tidak segera dipulihkan dari deadlock, karena sistem
dapat mengalami penurunan performance dan akhirnya terhenti.
Cara - cara yang ditempuh untuk memulihkan sistem dari
deadlock adalah sebagai berikut:
1.
Terminasi proses.
Pemulihan sistem dapat dilakukan dengan cara melalukan terminasi terhadap semua
proses yang terlibat dalam deadlock. Dapat pula dilakukan terminasi terhadap
proses yang terlibat dalam deadlock secara satu per satu sampai 'lingkaran
setan' atau circular wait hilang. Seperti diketahui bahwa circular wait adalah
salah satu karakteristik terjadinya deadlock dan merupakan kesatuan dengan tiga
karakteristik yang lain. Untuk itu, dengan menghilangkan kondisi circular wait
dapat memulihkan sistem dari deadlock.Dalam melakukan terminasi terhadap proses
yang deadlock.
Terdapat beberapa faktor yang
menentukan proses mana yang akan diterminasi :
·
Faktor pertama adalah
prioritas dari proses-proses yang terlibat deadlock.
·
Faktor kedua adalah
berapa lama waktu yang dibutuhkan untuk eksekusi dan waktu proses menunggu
sumber daya. Faktor ketiga adalah berapa banyak sumber daya yang telah
dihabiskan dan yang masih dibutuhkan.
·
Faktor ketiga adlah faktor
utilitas dari proses pun menjadi pertimbangan sistem untuk melakukan terminasi
pada suatu proses.
2.
Rollback and Restart .
Dalam memulihkan keadaan sistem yang deadlock, dapat dilakukan dengan cara
sistem melakukan preempt terhadap sebuah proses dan kembali ke state yang aman.
Pada keadaan safe state tersebut, proses masih berjalan dengan normal, sehingga
sistem dapat memulai proses dari posisi aman tersebut. Untuk menentukan pada
saat apa proses akan rollback, tentunya ada faktor yang menentukan. Diusahakan
untuk meminimalisasi kerugian yang timbul akibat memilih suatu proses menjadi
korban. Harus pula dihindari keadaan dimana proses yang sama selalu menjadi
korban, sehingga proses tersebut tidak akan pernah sukses menjalankan eksekusi.
Sekian yang saya bahas pada artikel kali ini. Di tunggu
ya artikel -artikel kami berikutnya. Keep Update..! J
Referensi :
0 komentar:
Posting Komentar