Deadlock adalah suatu kondisi dimana dua proses atau lebih tidak dapat meneruskan eksekusinya oleh pemroses. Pada umumnya deadlock terjadi karena proses mengalami startvation, yaitu suatu job yang sedang dieksekusi dan eksekusi job tersebut tidak ada hentinya, tidak diketahui kapan berhentinya proses tersebut atau bahkan job yang antri bisa dikatakan mempunyai status mati, padahal proses-proses lain sedang menunggu sumber daya proses.
Deadlock merupakan kondisi terparah karena banyak proses dapat terlibat dan semuanya tidak dapat mengakhiri prosesnya secara benar.

a.      Resource

Sistem operasi di sini berperan sebagai pengatur berbagai tipe resource yang
berlainan,  krena  pada  dasarnya  proses-proses  maupun  job-job  tersebut  ingin
mengakses resource yang sama.
Shareable resource misalnya printer, tape drive.

b.      Karakteristik Deadlock

Kondisi yang dapat menimbulkan terjadinya deadlock:
  1. Mutual exclusion. Apabila proses telah menggunakan suatu resource, mka tidak boleh ada proses lain yang menggunakan resource tsb. Hanya satu proses yang dapat menggunakan sebuah resource pada satu waktu.
  2. Hold & Wait. Pada suatu proses sedang mengakses suatu resource, proses tsb dapat meminta ijin untuk mengakses resource lain yang dipakai oleh proses lain.
  3. No Preemption. Jika suatu proses meminta ijin untuk mengakses resource, sementara resource tersebut tidak tersedia, maka permintaan ijin tidak dapat dibatalkan.
  4. 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 saat yang bersamaan P1 sedang mengakses resource R2 dan mint ijin untuk mengakses R1.


Metode Mengendalikan Deadlock

  1. Menggunakan suatu protokol untuk meyakinkan bahwa sistem tidak akan pernah mengalami deadlock.
  2. Mengijinkan sistem mengalami deadlock, namun kemudian harus segera dapat memperbaikinya.
  3. Mengabaikan semua masalah dan menganggap deadlock tidak akan pernah terjadi lagi di dalam sistem.


Strategi untuk menghadapi deadlock dapat dibagi menjadi tiga pendekatan, yaitu:

a.      Mengabaikan adanya  deadlock.
b.      Memastikan bahwa  deadlock tidak akan pernah  ada, baik  dengan metode Pencegahan, dengan mencegah empat kondisi  deadlock agar tidak akan  pernah terjadi. Metode Menghindari  deadlock, yaitu mengizinkan  empat kondisi deadlock,  tetapi  menghentikan setiap proses yang kemungkinan mencapai  deadlock.
c.      Membiarkan deadlock  untuk terjadi, pendekatan ini membutuhkan dua metode yang  saling mendukung, yaitu:
-      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 menjaga 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 membawa resource yang lainnya. Sebleum proses meminta resource, maka harus 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 menyebabkan chaos
Hold and Wait
Meminta sumber daya di awal
Sulit memperkirakan di awal dan tidak optimal
No Pre-emptive
Mengambil sumber daya di tengah proses
Hasil proses tidak akan baik
Circular Wait
Penomoran permintaan sumber daya
Tidak ada penomoran yang memuaskan semua pihak
6.       

Penghindaran Deadlock

1.      State Selamat

Contoh           :
Pada sistem dengan 10 sumber daya setipe, proses A memerlukan sumber daya maksimum sebanyak 10, sedang saat ini menggenggam 2. Proses B memerlukan sumber daya maksimum sebanyak 3, sedang saat 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, sistem penjadwalan ini dapat 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 berakhir.

Proses
Jumlah Resource digenggam
Maksimum Resource yang dibutuhkan
A
2
10
B
1
3
C
7
7

Tersedia 0


Maka setelah proses C selesai 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 berakhir.

Proses
Jumlah Resource digenggam
Maksimum Resource yang dibutuhkan
A
2
10
B
3
3
C
0
0

Tersedia 5



Maka, setelah proses B selesai dan menjadi:


Proses
Jumlah Resource digenggam
Maksimum Resource yang dibutuhkan
A
2
10
B
0
0
C
0
0

Tersedia 8


Langkah 3:

Alokasikan 8 sumber daya ke proses A, nantikan proses A sampai berakhir.

Proses
Jumlah Resource digenggam
Maksimum Resource yang dibutuhkan
A
10
10
B
0
0
C
0
0

Tersedia 0


Maka, setelah proses A selesai dan menjadi :

Proses
Jumlah Resource digenggam
Maksimum Resource yang dibutuhkan
A
0
0
B
0
0
C
0
0

Tersedia 0


Maka, ketiga proses tersebut dengan penjadwalan hati-hati dapat menyelesaikan proses mereka dengan sempurna.

2.      State Tak Selamat (unsafe state)

State dikatakan sebagai state tak selamat jika tidak terdapat cara untuk memenuhi semua permintaan yang saat ini ditunda dengan menjalankan proses-proses dengan suatu urutan.
Contoh
Soal di bawah ini adalah seperti soal pada state selamat, sate ini dapat berubah menjadi state tak selamat bila alokasi sumber daya tak terkendali.

Proses
Jumlah Resource digenggam
Maksimum Resource yang dibutuhkan
A
2
10
B
1
3
C
3
7

Tersedia 4


State tersebut dapat menjadi state tak selamat bila:
-     dua permintaan 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 adalah state tak selamat. Pada state ini tidak terdapat barisan pengalokasian yang dapat membuat semua proses selesai. Misalnya, barisan pengalokasian yang ditempuh adalah:
Langkah 1:
Alokasikan satu sumber daya ke proses B sehingga sumber daya tersedia tinggal 1 dan nantikan sampai proses B berakhir.

Proses
Jumlah Resource digenggam
Maksimum Resource yang dibutuhkan
A
4
10
B
3
3
C
3
7

Tersedia 0


Maka, setelah proses B selesai dan menjadi:

Proses
Jumlah Resource digenggam
Maksimum Resource yang dibutuhkan
A
4
10
B
0
-
C
3
7

Tersedia 3


Saat hanya 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 berarti deadlock, hanya 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 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.

a.      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, sebagai berikut:
  • Menghapus semua proses yang terlibat dalam kondisi deadlock (solusi ini terlalu mahal).
  • Menghapus satu persatu proses yang terlibat, sampai kondisi deadlock dapat diatasi (memakan banyak waktu).
  • Menghapus proses berdasarkan prioritas, waktu eksekusi, waktu untuk selesai, dan kedalaman dari rollback.


b.      Resources 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 
2.      STARTVATION

Startvation adalah keadaan dimana pemberian akses bergantian terus menerus, dan ada suatu proses yang tidak mendapatkan gilirannya. Juga dapat dimaksudkan bahwa kondisi bila beberapa proses-proses menunggu alokasi sumber daya sampai tak berhingga, sementara proses-proses lain dapat memperoleh alokasi sumber daya.
Hal ini disebabkan bias pada kebijaksanaan atau strategi alokasi sumber daya. Kondisi seperti ini harus dihindari pada sistem operasi karena tidak adil, tapi dikehendaki penghindaran dilakukan seefisien mungkin. Penanganan ini merupakan persoalan yang sulit untuk menemukan kriteria yang benar, adil dan efesien dalam suatu strategi Sistem Operasi.

Perhatikan contoh 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 akses. Kemudian setelah selesai, hak akses kembali diberikan ke P1 yang satu itu kembali membutuhkan sumber daya R.

Jika pemberian hak akses bergantian terus menerus antara P1 dan P3, maka P2 tidak pernah memperoleh pengaksesan sumber daya R, meski tidak ada deadlock. Pada situasi ini, P2 mengalami situasi 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

0 komentar:

Posting Komentar