Upload
alex-brian
View
55
Download
1
Embed Size (px)
Citation preview
DEADLOCKOLEH
ANNAS RAHMA FATHF1B 007 009
Jurusan Teknik ElektoFakultas Teknik
Universitas MataramAnnaz-Juventus.blogspot.com
DEADLOCK
Annaz-Juventus.blogspot.com
LATAR BELAKANG Misalkan pada suatu komputer terdapat dua buah program,
sebuah tape drive dan sebuah printer. Program A mengontrol
tape drive, sementara program B mengontrol printer. Setelah
beberapa saat, program A meminta printer, tapi printer masih
digunakan. Berikutnya, B meminta tape drive, sedangkan A
masih mengontrol tape drive. Dua program tersebut
memegang kontrol terhadap sumber daya yang dibutuhkan
oleh program yang lain. Tidak ada yang dapat melanjutkan
proses masing-masing sampai program yang lain
memberikan sumber dayanya, tetapi tidak ada yang
mengalah. Kondisi inilah yang disebut Deadlock atau pada
beberapa buku disebut Deadly Embrace
DEADLOCK
Annaz-Juventus.blogspot.com
PENYEBAB DEADLOCK
Kemungkinan penyebab (menurut Coffman et al. (1971))
1. ´Mutual Exclusion: satu proses satu sumber daya
2. ´Hold and Wait: proses yang memegang sumber daya bisa meminta sumber daya lain
3. ´No Preemption: sumber daya yang sedang digunakan oleh suatu proses tidak bisa sembarangan diambil dari proses tersebut, melainkan harus dilepaskan dengan sendirinya oleh proses.
4. ´Circular Wait : setiap proses menunggu sumber daya dari proses berikutnya
DEADLOCK
Annaz-Juventus.blogspot.com
PENGERTIAN 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. Di kehidupan nyata, deadlock dapat
DEADLOCK
Annaz-Juventus.blogspot.com
CONTOH DEADLOCK
DEADLOCK
Annaz-Juventus.blogspot.com
CONTOH PENYEBERANGAN JEMBATAN
Pada satu jalan yang memungkinkan hanya satu arah yang berjalan :
1. Setiap jalan bisa dianggap sebagai sumber daya
2. ´Saat deadlock terjadi hanya bisa diatasi jika salah satu mobil mundur, dalam hal ini butuh sumber daya yang direalokasikan
3. Bahkan beberapa mobil harus mundur jika deadlock terjadi
4. Pada kasus ini juga bisa terjadi “kelaparan”, yaitu ada proses yang tidak terlayani
DEADLOCK
Annaz-Juventus.blogspot.com
CONTOH DEALOCK DALAM GRAPH
Saat D membutuhkan sumber daya U, U sedang digunakan oleh C, demikian juga sebaliknya, sehingga terjadi deadlock
DEADLOCK
Annaz-Juventus.blogspot.com
CONTOH PERSIMPANGAN JALAN Dalam kasus ini, setiap mobil berjalan sesuai
nomor yang ditentukan Tetapi pada akhirnya mereka akan bertemu pada
suatu titik yang menyebabkan deadlock
DEADLOCK
Annaz-Juventus.blogspot.com
MENCEGAH DEADLOCK Mengatasi Mutual Exclusion yaitu dengan cara tidak
berbagi data dengan proses lain atau dengan kata lain menyediakan data sendiri
Memegang dan menunggu yaitu menunggu sampai sumber daya yang akan digunakan tidak lagi digunakan oleh proses lain
- ´Artinya proses dapat berlangsung jika semua sumber daya yang diperlukan tidak digunakan oleh proses lain
- ´Dapat menyebabkan terjadinya “kelaparan” sebab ada proses yang tidak mendapat sumber daya sehingga menunggu terlalu lama
DEADLOCK
Annaz-Juventus.blogspot.com
MENCEGAH DEADLOCK Mengatasi masalah No Preemptive dengan
cara memerintahkan seluruh proses menunggu dan mempersilakan hanya proses yang memiliki sumber daya lama dan baru sesuai dengan daftar sumber daya yang sama dengan yang lain yang boleh berjalan
Setiap kebutuhan total didata terlebih dahulu
DEADLOCK
Annaz-Juventus.blogspot.com
MENANGANI DEADLOCK Memakai protokol untuk menghindari atau
mengabaikandeadlock, sehingga dipastikan tidak akan memasuki keadaandeadlock
1. ´Deadlock Avoidance => memerintahkan pada sistem operasi untuk memberi informasi tentang operasi mana yang bisa dan perlu dilaksanakan (keadaan aman). Selain itu bisa juga menggunakan algoritma bankir
2. ´Deadlock Prevention => memastikan bahwa keadaan yang penting tidak bisa menunggu
Membiarkan sistem memasuki waktu deadlock, mendeteksinya, dan memperbaikinya
1. ´Algoritma mendeteksi deadlock
2. ´Algoritma memperbaiki deadlock
DEADLOCK
Annaz-Juventus.blogspot.com
MENANGANI DEADLOCK
Mengabaikan adanya deadlock dan menganggap keadaan deadlock tidak pernah terjadi ( Algoritma Ostrich )
1. ´Secara sederhana algoritma ini dapat dikatakan abaikan deadlock seakan-akan tidak ada masalah apapun dengannya
2. ´Algoritma ini disadur oleh Sistem Operasi Unix, meskipun memerlukan biaya yang cukup besar untuk mengatasi sebuah deadlock
DEADLOCK
Annaz-Juventus.blogspot.com
Strategi Ostrich Pendekatan yang paling sederhana adalah dengan
menggunakan strategi burung unta: masukkan kepala dalam pasir dan seolah-olah tidak pernah ada masalah sama sekali. Beragam pendapat muncul berkaitan dengan strategi ini. Menurut para ahli Matematika, cara ini sama sekali tidak dapat diterima dan semua keadaan deadlock harus ditangani. Sementara menurut para ahli Teknik, jika komputer lebih sering mengalami kerusakkan disebabkan oleh kegagalan hardware, error pada kompilator atau bugs pada sistem operasi. Maka ongkos yang dibayar untuk melakukan penanganan deadlock sangatlah besar dan lebih baik mengabaikan keadaan deadlock tersebut. Metode ini diterapkan pada sistem operasi UNIX dan MINIX.
DEADLOCK
Annaz-Juventus.blogspot.com
KONDISI AMAN
Saat sistem meminta izin untuk mengambil sumber dayanya, sistem operasi harus memastikan bahwa ia dalam kondisi aman
Sistem dalam kondisi aman jika seluruh sistem dapat berjalan tanpa terancam kekurangan sumber daya atau deadlock
DEADLOCK
Annaz-Juventus.blogspot.com
KONDISI TIDAK AMAN
Suatu state dinyatakan sebagai state tak selamat (unsafe state) jika tidak terdapat cara untuk memenuhi semua permintaaan yang saat ini ditunda dengan menjalankan proses-proses dengan suatu urutan.
DEADLOCK
Annaz-Juventus.blogspot.com
ALGORITMA BANKIR Setiap proses yang masuk harus
memberitahu berapa banyak sumber daya maksimum yang dibutuhkan
Setelah itu sistem mendeteksi apakah sumber daya yang dibutuhkan memang bisa dijalankan dalam kondisi aman
1. ´Jika ya, maka sistem akan melepaskan sumber dayanya untuk digunakan
2. ´Jika tidak, maka proses harus menunggu hingga sumber dayanya cukup
DEADLOCK
Annaz-Juventus.blogspot.com
KELUAR DARI DEADLOCK Mematikan program
1.´Matikan semua proses yang berjalan
2. ´Hanya matikan proses yang berjalan dalam siklus deadlock
Urutan terminasinya:
• Prioritas rendah
• Seberapa jauh dan berapa banyak bahan yang proses sudah atau akan dibutuhkan atau dilakukan
Data sumber daya yang dibutuhkan sebelumnya
1. ´Pilih korban proses dengan sumber daya terkecil
2. ´Kembali ke keadaan aman, jika deadlock sudah terdeteksi
3. ´Resiko yang harus dihadapi ialah proses dengan sumber daya terkecil akan mengalami kelaparan atau tidak pernah dieksekusi
DEADLOCK
Annaz-Juventus.blogspot.com
MENDETEKSI DAN MEMULIHKAN DEADLOCK
Metode ini mengunakan pendekatan dengan teknik untuk menentukan apakah deadlock sedang terjadi serta proses-proses dan sumber daya yang terlibat dalam deadlock tersebut. Setelah kondisi deadlock dapat dideteksi, maka langkah pemulihan dari kondisi deadlock dapat segera dilakukan.
Langkah pemulihan tersebut adalah dengan memperoleh sumber daya yang diperlukan oleh proses-proses yang membutuhkannya. Beberapa cara digunakan untuk mendapatkan sumber daya yang diperlukan, yaitu dengan terminasi proses dan pre-emption (mundur) suatu proses. Metode ini banyak digunakan pada komputer mainframe berukuran besar.
DEADLOCK
Annaz-Juventus.blogspot.com
1. TERMINASI PROSES Metode ini akan menghapus proses-proses yang
terlibat pada kondisi deadlock dengan mengacu pada beberapa syarat. Beberapa syarat yang termasuk dalam metode ini adalah :
1. Menghapus semua proses yang terlibat dalam kondisi deadlock (solusi ini terlalu mahal).
2. Menghapus satu persatu proses yang terlibat, sampai kondisi deadlock dapat diatasi (memakan banyak waktu).
3. Menghapus proses berdasarkan prioritas, waktu eksekusi, waktu untuk selesai, dan kedalaman dari rollback.
DEADLOCK
Annaz-Juventus.blogspot.com
2. RESOURCE PREEMPTION Metode ini lebih menekankan kepada bagaimana
menghambat suatu proses dan sumber daya, agar tidak terjebak pada unsafe condition.
Beberapa langkahnya, yaitu:
• Pilih salah satu - proses dan sumber daya yang akan di-preempt.
• Rollback ke safe state yang sebelumnya telah terjadi.
• Mencegah suatu proses agar tidak terjebak pada starvation karena metode ini.
DEADLOCK
Annaz-Juventus.blogspot.com
Daftar Pustaka
Berbagai Sumber Di Internet