Deadlock


๐ŸŽฏ Capaian Pembelajaran

Setelah mempelajari materi ini, mahasiswa diharapkan mampu:

  • Memahami konsep deadlock dalam sistem operasi
  • Menjelaskan kondisi terjadinya deadlock
  • Menganalisis penyebab dan dampak deadlock
  • Memahami metode penanganan deadlock
  • Menerapkan algoritma Banker (Deadlock Avoidance)

1. ๐Ÿง  Konsep Dasar Deadlock

1.1 Pengertian

Deadlock adalah kondisi di mana dua atau lebih proses saling menunggu resource sehingga tidak ada yang bisa melanjutkan eksekusi.


๐Ÿ–ผ๏ธ Ilustrasi Deadlock

https://images.openai.com/static-rsc-4/oWYAsCoDrP-wMggR87a4HZS-heCzRBDy5Ek4uSQj9ODlcT2IlBzTRR9gxmngjHNSMAl-KtFqM7Cg0a60K0Udluj_UMCSUBELXhZDu4IknfMCT8RyJ6SuiA98fPz48tOQWILoa0Qt76vOZip3yyArIRoggVlTCKENyuwbvTjsXQ0vyUqzYkkGI_0gJuApasCV?purpose=fullsize
https://images.openai.com/static-rsc-4/CxF1XLbTDo3iEFBd4UewPBefGNHo8s5WYlBp2-TWdFzuWQtzE8-OtPq8dYKQ40SUaQzxLaz9LA6rht0inCqbTLEkKuwhlLr8XXq08AvADvA9bgfF5fVBqNpO7Q2SdM4oZwhh9Vikhxlh6LTzopnS_yB0MB4gUXQA6HAZ_UUxRQMJHJZ2S2KE2i_tGJtX5Tu2?purpose=fullsize
https://images.openai.com/static-rsc-4/lSV0A3SHl6v0C6hX4Oku-ewI7g35EnOpoLoULKTFNeHB8fujUZk2SnjnFHjS7WXL1F0OBtNxvA2nCyr_ZjOfK2M0m3qPCDIw8hpEj4061ukzVhd7vTr__6Hl88q4K4Vj5qyawqk_49bHvF8hE-vePYBDI5nTB7J1kNvNJwlLMHVkvbUBdzDGjn9hINQk_soq?purpose=fullsize

6


๐Ÿง  Narasi:

Bayangkan:

  • Proses A memegang resource 1 dan menunggu resource 2
  • Proses B memegang resource 2 dan menunggu resource 1

โžก Keduanya terjebak selamanya


2. โš ๏ธ Karakteristik Deadlock (Coffman Conditions)

Deadlock terjadi jika keempat kondisi berikut terpenuhi:


๐Ÿ–ผ๏ธ Diagram Coffman Conditions

https://images.openai.com/static-rsc-4/m9nl5T10RUMzPr6NMpZfOF0_cLg9o3y-4dowBPfwQmdN4cgPh82NUiQNT-JFeS_Sp6yVnQnSRr3HTVsx-_f49pthf1Vz-benzHMsXrtkkqwCjj4v4QjpfeFSZm2PFEANDV5gl17k8lpgQH12rd4XGR1IklMQNRhAHYmqN4NEU_19-u5t5X7tAaS3znTFTpmi?purpose=fullsize
https://images.openai.com/static-rsc-4/i5nhlMWKtLcZL0AhJ2gaY0dwja6ELoqA4Zitts8JkKIqkrhPioSaUf3wXsS16Hm4D_ZawmSvEtFxwFQoL_oCwSaUp_giVWgTD-Ahb-m63wnDd-FUZtIKD65AAKdgbgRGGRvSaub3L4_fbfhpbFH3k3pStQrC_q7zXUmydQ3iTBux4uKKyx5WU59Zqt5aguXf?purpose=fullsize
https://images.openai.com/static-rsc-4/c3Jtl-ddT3UzcwkCRNSBhMhjGMBXeT9Wnow0kQob9Mx8vawb8AT8mO_7gHlERo-zzHIDCcX8Nc6p0EREZ3Q7PPrawtX3-Fpt2TBVhPq4-HwzkzQIEqha02UuFHCXgvhwQXMR9dONLGNk2fM9pv23O9l-8Xa_Au1Ayg-ArywmZvgXW7jIgGFLwc-lcW1hsP2q?purpose=fullsize

7


2.1 Mutual Exclusion

Resource tidak dapat dibagi

2.2 Hold and Wait

Proses memegang resource sambil menunggu resource lain

2.3 No Preemption

Resource tidak bisa diambil paksa

2.4 Circular Wait

Proses saling menunggu secara melingkar


๐Ÿ“Š Ringkasan

KondisiPenjelasan
Mutual ExclusionResource eksklusif
Hold & WaitMenunggu sambil memegang
No PreemptionTidak bisa dipaksa
Circular WaitMenunggu melingkar

3. ๐Ÿ”— Resource Allocation Graph (RAG)

๐Ÿ–ผ๏ธ Diagram RAG

https://images.openai.com/static-rsc-4/6JWkmsVtZmq6Wv5NgO1zh47H-xf5hlxVHgRQglZUSGum9NYiJQWscxi7XXI5V_03gEXUBbydky4v3uPyijyXS_jQ2S3MwbJNLEb97fUnxrJtgQEIzZzbe-SDl6pIOdkIyZE7Lv5Z2oPwBUjsP8wqhlhpV4qFE1cvUmQDLgLF95R6fpMaHLWP-FgWl-v7ojKW?purpose=fullsize
https://images.openai.com/static-rsc-4/Imu0Txifpplg4VWioprWU2c-5QV_5HgNcwUsSwvKHeNRmXHEc_tOnURnK5kVajrNQItdoP1M--vmbn_JX9ZmezwvHQ3LmtUjBI6yahr3aN0hMrbWW1p2-X5U0VgycCvynteV0lfjShy2mNeMw54FlElYfu8oN5CDLAv_WkGoBtRB1Uh0k6hwVJMdXWbPRHWA?purpose=fullsize
https://images.openai.com/static-rsc-4/ZrRn9lGXMvVgyIDflRP4GudfJEFgZHz4NlFnYyTn4wBTQMgOR-Fv26-LztZd2eH9hAPoxlWmrOyneqDKJ8NqCdLwsWgnvcgDL-MszdL-Zi1KT4QSB4JS_QJmKWvQgspSQU0UCwfgf791ofjMQW5AimLIouujhyT70G2GU_jAdES-rlw03Kd75Ja9NV7lc-ND?purpose=fullsize

7


๐Ÿง  Penjelasan:

  • Node โ†’ proses & resource
  • Edge โ†’ hubungan request/alokasi

๐Ÿ“Œ Jika terdapat cycle โ†’ kemungkinan deadlock


4. ๐Ÿงจ Dampak Deadlock

  • Sistem berhenti (hang)
  • Resource tidak digunakan
  • Penurunan performa
  • Kerugian sistem

5. ๐Ÿ› ๏ธ Strategi Penanganan Deadlock


5.1 Deadlock Prevention

Menghilangkan salah satu kondisi Coffman.


๐Ÿ“Š Strategi:

KondisiSolusi
Mutual ExclusionSharing resource
Hold & WaitMinta semua resource di awal
No PreemptionPaksa pelepasan
Circular WaitUrutan resource

๐Ÿง  Narasi:

Metode ini mencegah deadlock sebelum terjadi, tetapi bisa mengurangi efisiensi.


5.2 Deadlock Avoidance

Menghindari deadlock dengan analisis keadaan sistem.


๐Ÿ’ก Konsep Safe State

Sistem aman jika:
โžก Semua proses bisa selesai tanpa deadlock


๐Ÿ–ผ๏ธ Safe vs Unsafe State

https://images.openai.com/static-rsc-4/rwIUKoTDVkQkqBlHJmoTNcYcOx-UKNtFlf9CGusf3ik6au1UkcHEnOMGytnaB1uVdKKldNqdowRe556O4gLvRCEEsFaLCDGzyZXdUP6Cy--1lXtSMF0HRMxlsModLm9IyUAT7PK8A8v_Llqh1cNjO0skwogHCc3pC5kNyXwYYR1OrTo02Uq0NBieb4N1rlig?purpose=fullsize
https://images.openai.com/static-rsc-4/NHq1SvPvrlE0xoSz4ATRfPjC5bPYrpR3TtymT7YrbP2SZfLOfF0kApY-5Ug8QNBT7HVqgVjPqBDRJ8GDWuVTGTN1hNRCpWO8rcAaUbPbRxB8doTkL7ZgjeOPVQRUoa_kfFnd1q3Nu5y9ejZbGlybzcG_1rGdmyGSAgiv6lOAVLa5BpXIlQQYb9O67RT_zYlb?purpose=fullsize
https://images.openai.com/static-rsc-4/3dMPHjRiqEt1KH02CT2l5FVNHoN8g8vaBFat00X-502amI8eo6WHQs68RTsIYe6nEyRtRZPtC4KGrH5YInKO7n9B6w7DXE4lGwakLdeeyStT33JJzSVXfKXREd5b0aKKcV-EsHSWt2xLWV-vy2ry8_2BgJW8FG0D75-R69NTtGO4vjRgnpVuSNxZFq9mwk2r?purpose=fullsize

8


๐Ÿงฎ Algoritma Banker

Metode untuk menentukan apakah sistem dalam keadaan aman.


๐Ÿ“Š Contoh Tabel:

ProsesMaxAllocationAvailable
P1733
P2523

Langkah:

  1. Hitung Need = Max โ€“ Allocation
  2. Tentukan proses yang bisa jalan
  3. Simulasikan eksekusi

๐Ÿง  Narasi:

Banker algorithm seperti bank:

  • Hanya memberi pinjaman jika aman

5.3 Deadlock Detection

Sistem membiarkan deadlock terjadi lalu mendeteksinya.


๐Ÿ–ผ๏ธ Detection Diagram

https://images.openai.com/static-rsc-4/dKL5LUEnxtCdf7sll3atipLMwqPkyFzXBM4-tHEoBqqM_DXQeVi-5ifrFpvxO0mwugyE6ptCKFdKVxk0tWhZPyYbr_sMoV3USJYqbZkYQiuS79X-e_HZRlsqVmTHiFd_WL9Ri3B7UXADrbb3roZd35yN1QLtuOkKypj7jf1z2DqJ0AfB8JSkoBGu3KfNrDsn?purpose=fullsize
https://images.openai.com/static-rsc-4/xK1pGtuw0KpF_DxHEyFft6_oMCEJ2x-n--_iNVRrZIMu76PqIqFhtatz3yJkCZceoXEQr5esZFZ3L8M32m4dmf2TLtiNxY_7N92pKtJ80uwjvvvlPyYKPHmTf5EdoJ50ufYZsRztLuTS6cKXBHVkAJXYdlYymnJaHg0emAv9-UlKJNjP3-O3d4zQyMa_cO2_?purpose=fullsize
https://images.openai.com/static-rsc-4/mezsF25ITmU2lyhpUBZ5E0EO3Jkfexac4VYS7CoaDYzDqu0SQyYbwVtX29A-Cfig2WcdiBJAdRWEnEJg40fyknDm43gEtEfFBQXQ9Jb9MDE7qe2aS5n10CxSJw4I7LEPSsjVn4fJWzmX4J5LaKe6gd9WCSfN4zrDptAevHBhSfLIiFqoaZ_WJrR6iXQt1TV4?purpose=fullsize

8


5.4 Recovery

Setelah deadlock terdeteksi:

Cara:

  • Terminate proses
  • Preempt resource
  • Restart sistem

6. โš–๏ธ Perbandingan Strategi

MetodeKelebihanKekurangan
PreventionAmanTidak efisien
AvoidanceOptimalKompleks
DetectionFleksibelRisiko tinggi
RecoverySolusi akhirMahal

7. ๐Ÿง  Studi Kasus Nyata

Kasus:

Sistem database

๐Ÿ“Œ Analisis:

  • Transaksi A mengunci tabel 1
  • Transaksi B mengunci tabel 2
  • Keduanya saling menunggu

โžก Deadlock terjadi


8. ๐Ÿ’ป Implementasi Sederhana (Konsep)

Process A: lock(R1)
Process B: lock(R2)Process A: request(R2)
Process B: request(R1)

โžก Deadlock terjadi


9. โš ๏ธ Perbedaan Deadlock, Starvation, Livelock

KonsepPenjelasan
DeadlockSaling menunggu
StarvationTidak mendapat resource
LivelockBergerak tapi tidak selesai

10. ๐Ÿ“ Latihan

  1. Apa itu deadlock?
  2. Sebutkan 4 kondisi deadlock!
  3. Jelaskan Banker Algorithm!
  4. Apa perbedaan prevention dan avoidance?

๐ŸŽฏ Kesimpulan

  • Deadlock adalah masalah serius dalam sistem operasi
  • Terjadi karena 4 kondisi Coffman
  • Ada berbagai metode penanganan
  • Pemilihan metode tergantung kebutuhan sistem

๐Ÿš€ Pengembangan Materi Selanjutnya

โžก Manajemen Memori
โžก Virtual Memory
โžก File System