Deadlock yakni suatu kondisi dimana dua proses atau lebih tidak mampu meneruskan eksekusinya oleh pemroses. Pada lazimnya deadlock terjadi alasannya proses mengalami startvation, adalah sebuah job yang sedang dihukum dan eksekusi job tersebut tidak ada hentinya, tidak diketahui kapan berhentinya proses tersebut atau bahkan job yang antri mampu dibilang mempunyai status mati, padahal proses-proses lain sedang menanti sumber daya proses.
Deadlock ialah keadaan terparah karena banyak proses mampu terlibat dan seluruhnya tidak mampu menuntaskan prosesnya secara benar.
a. Resource
Sistem operasi di sini berperan selaku pengatur aneka macam tipe resource yang
berbeda, krena pada dasarnya proses-proses maupun job-job tersebut ingin
mengakses resource yang sama.
berbeda, krena pada dasarnya proses-proses maupun job-job tersebut ingin
mengakses resource yang sama.
Shareable resource contohnya printer, tape drive.
b. Karakteristik Deadlock
Kondisi yang dapat menimbulkan terjadinya deadlock:
- Mutual exclusion. Apabila proses sudah menggunakan suatu resource, mka dilarang ada proses lain yang menggunakan resource tsb. Hanya satu proses yang mampu menggunakan suatu resource pada satu waktu.
- Hold & Wait. Pada suatu proses sedang mengakses suatu resource, proses tsb dapat meminta ijin untuk mengakses resource lain yang digunakan oleh proses lain.
- No Preemption. Jika suatu proses meminta ijin untuk mengakses resource, sementara resource tersebut tidak tersedia, maka usul ijin tidak dapat dibatalkan.
- Circular Wait Condition. Jika proses P0 sedang mengakses Resource R1 dan minta ijin untuk mengakses resource R1 dan minta ijin untuk mengakses resource R2, dan pada ketika yang serempak P1 sedang mengakses resource R2 dan mint ijin untuk mengakses R1.
Metode Mengendalikan Deadlock
- Menggunakan suatu protokol untuk meyakinkan bahwa sistem tidak akan pernah mengalami deadlock.
- Mengijinkan metode mengalami deadlock, tetapi lalu mesti segera mampu memperbaikinya.
- Mengabaikan semua persoalan dan menilai deadlock tidak akan pernah terjadi lagi di dalam sistem.
Strategi untuk menghadapi deadlock mampu dibagi menjadi tiga pendekatan, ialah:
a. Mengabaikan adanya deadlock.
b. Memastikan bahwa deadlock tidak akan pernah ada, baik dengan metode Pencegahan, dengan menghalangi empat kondisi deadlock agar tidak akan pernah terjadi. Metode Menghindari deadlock, yaitu mengizinkan empat kondisi deadlock, namun menghentikan setiap proses yang kemungkinan meraih deadlock.
c. Membiarkan deadlock untuk terjadi, pendekatan ini membutuhkan dua sistem yang saling mendukung, ialah:
– Pendeteksian deadlock, untuk mengidentifikasi ketika deadlock terjadi.
– Pemulihan deadlock, mengembalikan kembali sumber daya yang dibutuhkan pada proses yang memintanya.
Pencegahan Deadlock
1. Mutual exclusion.
Harus tetap mempertahankan resource-resource yang bersifat non-shareable. Yaitu, proses menahan sebuah resource, proses lain yang meminta resource tsb harus menunggu sampai proses melepaskannya. Jika terjadi pada perangkat I/O dan berkas, maka sulit untuk menghindari mutual exclusion pada sumber daya non shareable.
2. Hold & Wait.
Apabila suatu proses minta ijin untuk mengakses suatu resource, maka proses tersebut tidak boleh menenteng resource yang lainnya. Sebleum proses meminta resource, maka mesti melepas semua resource yang dibawa.
3. Non Preemption.
Jika suatu proses minta ijin mengakses resource, sementara resource tersebut tidak dapat dipenuhi secepatnya, maka proses tersebut harus membebaskan semua resourcenya terlebih dahulu.
4. Circular Wait.
Memberi nomor pada setiap resource yang ada, dan setiap resource hanya boleh mengakses resource2 secara berurutan.
5. Untuk menghindari deadlock ikuti prinsip preemptive.
Tabel. Deadlock
Syarat
|
Langkah
|
Kelemahan
|
Mutual Exclusion
|
Spooling sumber daya
|
Dapat menjadikan chaos
|
Hold and Wait
|
Meminta sumber daya di awal
|
Sulit memperkirakan di permulaan dan tidak maksimal
|
No Pre-emptive
|
Mengambil sumber daya di tengah proses
|
Hasil proses tidak akan baik
|
Circular Wait
|
Penomoran seruan sumber daya
|
Tidak ada penomoran yang membuat puas semua pihak
|
6.
Penghindaran Deadlock
1. State Selamat
Contoh :
Pada metode dengan 10 sumber daya setipe, proses A memerlukan sumber daya maksimum sebanyak 10, sedang dikala ini menggenggam 2. Proses B membutuhkan sumber daya maksimum sebanyak 3, sedang ketika ini menggenggam 1. Proses C memerlukan sumber daya maksimum sebanyak 7, sedang saat ini menggenggam 3. Maka, masih tersedia 4 sumber daya.
Proses
|
Jumlah Resource digenggam
|
Maksimum Resource yang dibutuhkan
|
A
|
2
|
10
|
B
|
1
|
3
|
C
|
3
|
7
|
Tersedia 4
|
Dengan hati-hati, metode penjadwalan ini mampu terhindarkan dari deadlock, dengan cara sbb:
Langkah 1 :
Alokasikan 4 sumber daya ke proses C sehingga sumber daya yang tersedia tinggal 1 dan nantikan sampai proses C rampung.
Proses
|
Jumlah Resource digenggam
|
Maksimum Resource yang diperlukan
|
A
|
2
|
10
|
B
|
1
|
3
|
C
|
7
|
7
|
Tersedia 0
|
Maka sesudah proses C tamat dan menjadi :
Proses
|
Jumlah Resource digenggam
|
Maksimum Resource yang dibutuhkan
|
A
|
2
|
10
|
B
|
1
|
3
|
C
|
0
|
0
|
Tersedia 7
|
Langkah 2 :
Alokasikan 2 sumber daya ke proses B, nantikan proses B sampai rampung.
Proses
|
Jumlah Resource digenggam
|
Maksimum Resource yang diperlukan
|
A
|
2
|
10
|
B
|
3
|
3
|
C
|
0
|
0
|
Tersedia 5
|
Maka, sehabis proses B tamat dan menjadi:
Proses
|
Jumlah Resource digenggam
|
Maksimum Resource yang diharapkan
|
A
|
2
|
10
|
B
|
0
|
0
|
C
|
0
|
0
|
Tersedia 8
|
Langkah 3:
Alokasikan 8 sumber daya ke proses A, nantikan proses A sampai selsai.
Proses
|
Jumlah Resource digenggam
|
Maksimum Resource yang diperlukan
|
A
|
10
|
10
|
B
|
0
|
0
|
C
|
0
|
0
|
Tersedia 0
|
Maka, setelah proses A final dan menjadi :
Proses
|
Jumlah Resource digenggam
|
Maksimum Resource yang diharapkan
|
A
|
0
|
0
|
B
|
0
|
0
|
C
|
0
|
0
|
Tersedia 0
|
Maka, ketiga proses tersebut dengan penjadwalan hati-hati mampu menuntaskan proses mereka dengan sempurna.
2. State Tak Selamat (unsafe state)
State dibilang selaku state tak selamat bila tidak terdapat cara untuk menyanggupi semua undangan yang dikala ini ditunda dengan melakukan proses-proses dengan sebuah urutan.
Contoh
Soal di bawah ini yakni seperti soal pada state selamat, sate ini mampu berubah menjadi state tak selamat bila alokasi sumber daya tak terkendali.
Proses
|
Jumlah Resource digenggam
|
Maksimum Resource yang diharapkan
|
A
|
2
|
10
|
B
|
1
|
3
|
C
|
3
|
7
|
Tersedia 4
|
State tersebut mampu menjadi state tak selamat jika:
– dua ajakan sumber daya oleh proses A dilayani, kemudian
– Permintaan satu sumber daya oleh proses B dilayani
Maka state menjadi:
Proses
|
Jumlah Resource digenggam
|
Maksimum Resource yang dibutuhkan
|
A
|
4
|
10
|
B
|
2
|
3
|
C
|
3
|
7
|
Tersedia 1
|
Tabel di atas ialah state tak selamat. Pada state ini tidak terdapat barisan pengalokasian yang mampu membuat semua proses tamat. Misalnya, barisan pengalokasian yang ditempuh adalah:
Langkah 1:
Alokasikan satu sumber daya ke proses B sehingga sumber daya tersedia tinggal 1 dan nantikan hingga proses B berakhir.
Proses
|
Jumlah Resource digenggam
|
Maksimum Resource yang diperlukan
|
A
|
4
|
10
|
B
|
3
|
3
|
C
|
3
|
7
|
Tersedia 0
|
Maka, sehabis proses B selesai dan menjadi:
Proses
|
Jumlah Resource digenggam
|
Maksimum Resource yang diharapkan
|
A
|
4
|
10
|
B
|
0
|
–
|
C
|
3
|
7
|
Tersedia 3
|
Saat cuma tersedia tiga sumber daya sementara dua proses yang sedang aktif masing-masing membutuhkan 6 dan 4 sumber daya.
Perlu diingat!, bahwa state tak selamat bukan mempunyai arti deadlock, cuma menyatakan bahwa state tersebut memiliki kemungkinan deadlock.
Gambar 2. Safe Sumber Bahan Kuliah IKI-20230 oleh Gabungan Kelompok Kerja 21–28 IKI-20230 Semester Genap 2002/2003
Mendeteksi Deadlock dan Memulihkan Deadlock
Metode ini mengunakan pendekatan dengan teknik untuk memilih apakah deadlock sedang terjadi serta proses-proses dan sumber daya yang terlibat dalam deadlock tersebut. Setelah keadaan deadlock mampu dideteksi, maka langkah pemulihan dari kondisi deadlock dapat secepatnya dikerjakan. Langkah pemulihan tersebut yaitu dengan memperoleh sumber daya yang dibutuhkan oleh proses-proses yang membutuhkannya. Beberapa cara dipakai untuk mendapatkan sumber daya yang dibutuhkan, yakni dengan terminasi proses dan pre-emption (mundur) sebuah proses. Metode ini banyak digunakan pada komputer mainframe berskala besar.
a. Terminasi Proses
Metode ini akan menghapus proses-proses yang terlibat pada keadaan deadlock dengan mengacu pada beberapa syarat. Beberapa syarat yang termasuk dalam tata cara ini yaitu, sebagai berikut:
- Menghapus semua proses yang terlibat dalam keadaan deadlock (penyelesaian ini terlalu mahal).
- Menghapus satu persatu proses yang terlibat, sampai kondisi deadlock dapat tertuntaskan (mengkonsumsi banyak waktu).
- Menghapus proses menurut prioritas, waktu hukuman, waktu untuk selesai, dan kedalaman dari rollback.
b. Resources Preemption
Metode ini lebih menekankan kepada bagaimana menghalangi suatu proses dan sumber daya, semoga tidak terjebak pada unsafe condition. Beberapa langkahnya, adalah:
- Pilih salah satu – proses dan sumber daya yang hendak di-preempt.
- Rollback ke safe state yang sebelumnya sudah terjadi.
- Mencegah suatu proses agar tidak terjebak pada starvation karena tata cara ini
2. STARTVATION
Startvation yaitu keadaan dimana derma susukan bergantian terus menerus, dan ada sebuah proses yang tidak menerima gilirannya. Juga dapat dimaksudkan bahwa keadaan jika beberapa proses-proses menunggu alokasi sumber daya hingga tak berhingga, sementara proses-proses lain mampu menemukan alokasi sumber daya.
Hal ini disebabkan bias pada kecerdikan atau seni manajemen alokasi sumber daya. Kondisi mirip ini harus dikesampingkan pada metode operasi karena tidak adil, namun dikehendaki penghindaran dikerjakan seefisien mungkin. Penanganan ini ialah masalah yang sulit untuk menemukan kriteria yang benar, adil dan efesien dalam sebuah strategi Sistem Operasi.
Perhatikan pola berikut:
c. terdapat tiga proses, P1, P2, dan P3.
d. P1, P2 dam P3 memerlukan pengaksesan sumber daya R secara periodik.
Skenario berikut terjadi:
e. P1 sedang diberi sumber daya R, P2 dan P3 blocked menunggu sumber daya R.
f. Ketika P1 keluar dari critical section, P2 dan P3 diijinkan mengakses R.
g. Asumsi P3 diberi hak jalan masuk. Kemudian sesudah simpulan, hak akses kembali diberikan ke P1 yang satu itu kembali membutuhkan sumber daya R.
Jika tunjangan hak akses bergantian terus menerus antara P1 dan P3, maka P2 tidak pernah menemukan pengaksesan sumber daya R, meski tidak ada deadlock. Pada suasana ini, P2 mengalami suasana yang disebut dengan startvation.
DAFTAR PUSTAKA
Ø Sistem Operasi, SP Hariningsih, Penerbit Graha Ilmu 2003.
Ø Silberschatz, A., Gagne, G. dan Galvin, P., “Applied Operating System Concept“, John Wiley and Sons Inc., 2000
Ø Hariyanto, B.,”Sistem Operasi”, Bandung: Informatika, Desember 1997
Ø Tanenbaum, Andrew S., “Modern Operating Systems“, Englewood Cliffs, New Jersey: Prentice-Hall Inc., 1992
Ø Coffman, E.G., Jr., M.J. Elphick dan A. Shoshani, “System Deadlocks“, Computing surveys, Vol.3, No.2, June 1971
Ø WWW.Google.com