Sistem operasi mengalami masalah deadlock ketika sekelompok proses saling menunggu satu sama lain untuk memperoleh sumber daya. Dokumen ini menjelaskan konsep deadlock, karakteristiknya, dan berbagai pendekatan untuk mencegah, menghindari, dan mendeteksi terjadinya deadlock."
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
Os07
1. Sistem Operasi - Deadlock -
S ISTEM O PERASI
- D EADLOCK -
Arya Adhyaksa Waskita
Fakultas Ilmu Komputer
Universitas Pembangunan Nasional Veteran Jakarta
21 April 2012
2. Sistem Operasi - Deadlock -
AGENDA
1 R EVIEW
2 OVERVIEW & O BYEKTIF
3 M ASALAH D EADLOCK
4 A LOKASI P ROSES -R ESOURCE
5 M ENGELOLA DEADLOCK
3. Sistem Operasi - Deadlock -
Review
O UTLINE
1 R EVIEW
2 OVERVIEW & O BYEKTIF
3 M ASALAH D EADLOCK
4 A LOKASI P ROSES -R ESOURCE
5 M ENGELOLA DEADLOCK
4. Sistem Operasi - Deadlock -
Review
S INKRONISASI P ROSES
Proses-proses terlibat hubungan kerjasama (saling ketergantungan)
melalui shared data
Sinkronisasi perlu dilakukan agar diperoleh shared data yang konsisten
Beberapa istilah:
Critical section: code segment yang harus dieksekusi dengan cara mutual
exclusion
Mutual exclusion: jika proses Pi sedang berada dalam critical section,
tidak ada proses lain yang boleh mengaksesnya
Atomic operation: sebuah operasi yang ketika dijalankan harus
diselesaikan tanpa terbagi (uninterrupted)
5. Sistem Operasi - Deadlock -
Review
I LUSTRASI : critical section
G AMBAR : Critical section
6. Sistem Operasi - Deadlock -
Review
P ENERAPAN
Level user:
Solusi Peterson
Lock
Level kernel (HW):
TestAndSet
Swap
Semaphore
Monitor
7. Sistem Operasi - Deadlock -
Review
C ONTOH KASUS
Bounded Buffer
Readers Writers
Dinining Philosopher
8. Sistem Operasi - Deadlock -
Overview & Obyektif
O UTLINE
1 R EVIEW
2 OVERVIEW & O BYEKTIF
3 M ASALAH D EADLOCK
4 A LOKASI P ROSES -R ESOURCE
5 M ENGELOLA DEADLOCK
9. Sistem Operasi - Deadlock -
Overview & Obyektif
Mempelajari konsep deadlock yang mencegah terhentinya eksekusi dua
proses konkuren
Mempelajari sejumlah metode untuk menghindari deadlock dalam
sistem
10. Sistem Operasi - Deadlock -
Masalah Deadlock
O UTLINE
1 R EVIEW
2 OVERVIEW & O BYEKTIF
3 M ASALAH D EADLOCK
4 A LOKASI P ROSES -R ESOURCE
5 M ENGELOLA DEADLOCK
11. Sistem Operasi - Deadlock -
Masalah Deadlock
KONSEP
Sekumpulan proses yang masing-masing memegang resource yang
dibutuhkan proses lain, sementara dan di waktu yang sama
membutuhkan resource yang dimiliki proses lain
Contoh:
Semaphore A dan B, dieksekusi oleh proses P0 dan P1 dengan skenario
berikut
P0 P0
wait(A) wait(B)
wait(B) wait(A)
12. Sistem Operasi - Deadlock -
Masalah Deadlock
I LUSTRASI
G AMBAR : Ilustrasi deadlock
Tiap sisi jembatan adalah resource
Agar proses dapat dilanjutkan, harus ada proses yang ditunda
eksekusinya
Beberapa proses dapat ditunda eksekusinya untuk menyelesaikan
deadlock
13. Sistem Operasi - Deadlock -
Masalah Deadlock
K ARAKTER deadlock
Deadlock terjadi ketika kondisi berikut terjadi secara simultan
Mutual exclusion: hanya ada satu proses mengakses sebuah resource
di saat yang sama
Hold and wait: sebuah proses yang memegang sebuah resource
menunggu resource lain yang sedang digunakan proses lain
No preemption: resource hanya dapat dilepas secara sukarela oleh
proses yang menggunakannya, ketika proses tersebut selesai
menggunakannya (penggunaan resource tidak dapat dibatalkan)
Circular wait: hubungan Hold and wait yang melingkar (tidak berujung
pangkal)
14. Sistem Operasi - Deadlock -
Masalah Deadlock
M ODEL SYSTEM
Setiap resource Ri , memiliki instance Wi
Setiap proses memanfaatkan resource dengan pola
request
use
release
15. Sistem Operasi - Deadlock -
Alokasi Proses-Resource
O UTLINE
1 R EVIEW
2 OVERVIEW & O BYEKTIF
3 M ASALAH D EADLOCK
4 A LOKASI P ROSES -R ESOURCE
5 M ENGELOLA DEADLOCK
16. Sistem Operasi - Deadlock -
Alokasi Proses-Resource
D IAGRAM ALOKASI resource
P= proses (lingkaran )
R= resource (segiempat)
Request: P → R
Assignment: R → P
17. Sistem Operasi - Deadlock -
Alokasi Proses-Resource
I LUSTRASI deadlock
G AMBAR : Ilustrasi deadlock
18. Sistem Operasi - Deadlock -
Alokasi Proses-Resource
S IKLUS TANPA deadlock
G AMBAR : Siklus tanpa deadlock
19. Sistem Operasi - Deadlock -
Alokasi Proses-Resource
DARI GRAFIK
Tanpa siklus: tidak terjadi deadlock
Dengan siklus:
jika hanya ada satu resource instance → deadlock
jika ada beberapa resource instance → bisa deadlock
20. Sistem Operasi - Deadlock -
Mengelola deadlock
O UTLINE
1 R EVIEW
2 OVERVIEW & O BYEKTIF
3 M ASALAH D EADLOCK
4 A LOKASI P ROSES -R ESOURCE
5 M ENGELOLA DEADLOCK
22. Sistem Operasi - Deadlock -
Mengelola deadlock
C ONTOH deadlock
G AMBAR : Contoh deadlock
23. Sistem Operasi - Deadlock -
Mengelola deadlock
M ENGELOLA deadlock
G AMBAR : Mengelola deadlock
24. Sistem Operasi - Deadlock -
Mengelola deadlock
M ENGELOLA deadlock
G AMBAR : Mengelola deadlock
25. Sistem Operasi - Deadlock -
Mengelola deadlock
P ENDEKATAN DALAM MENGELOLA deadlock
Pastikan sistem tidak akan pernah memasuki deadlock
Jika harus memasuki deadlock, siapkan metode recovery
Abaikan potensi deadlock, gunakan asumsi deadlock tidak terjadi
26. Sistem Operasi - Deadlock -
Mengelola deadlock
Mencegah deadlock
M ENCEGAH deadlock
Mencegah deadlock didasarkan pada kondisi deadlock dapat terjadi. Jika
kondisi tersebut dapat dicegah, deadlock dapat dicegah.
Mutual exclusion: non-shareable resource
Hold and wait: memastikan bahwa proses yang meminta suatu resource
tidak sedang memengang resource lain, dilakukan dengan cara:
kebutuhan resource sebuah proses harus dipenuhi dulu, sebelum instruksi
dieksekusi
proses hanya dapat meminta resource ketika tidak sedang memegang
resource apapun
dapat menimbulkan low resource utilization, starvation
27. Sistem Operasi - Deadlock -
Mengelola deadlock
Mencegah deadlock
M ENCEGAH deadlock
No-preemption:
jika proses yang sedang memegang kendali resource, lalu menunggu
resource lain, maka resource yang dipegangnya harus dilepas
jika ada proses yang meminta resource, evaluasi ketersediaannya:
Dalam mengevaluasi
jika tersedia, alokasikan
jika sedang digunakan proses lain, sementara proses tersebut menunggu
resource lain, pre-empted, lalu alokasikan
jika menunggu (wait):
dalam kondisi menunggu, resource yang sedang dipegangnya dapat di
pre-empted jika ada proses yang membutuhkan.
proses dapat diulang ketika resource yang diperlukan tersedia dan
mengembalikan resource yang di pre-empted saat sedang menunggu
28. Sistem Operasi - Deadlock -
Mengelola deadlock
Mencegah deadlock
M ENCEGAH deadlock
Circular wait:
menerapkan sistem pengurutan jenis resource, setiap resource diberi
identitas bilangan integer
mensyaratkan proses untuk meminta resource secara terurut, jika sedang
memegang resource dengan identitas i, proses hanya bisa meminta
resource dengan identitas j, dengan j > i, jika sebaliknya resource i harus
dilepas
29. Sistem Operasi - Deadlock -
Mengelola deadlock
Mencegah deadlock
M ENCEGAH DEADLOCK
Mencegah deadlock adalah mekanisme merancang interaksi
request-allocate resource dengan menjamin bahwa kondisi deadlock
tidak terjadi.
Kekurangan:
penggunaan resource rendah
penurunan system throughput
30. Sistem Operasi - Deadlock -
Mengelola deadlock
Menghindari deadlock
M ENGHINDARI DEADLOCK
Mengelola informasi untuk digunakan sebagai dasar request-allocate
resource tidak menimbulkan deadlock.
Informasi tersebut mengenai:
resource yang tersedia
resource yang sedang dialokasikan ke proses tertentu
request-release resource dari setiap proses
Dari informasi tersebut, sistem akan menentukan apakah sebuah
permintaan dapat dialokasikan atau harus menunggu untuk
menghindari deadlock
31. Sistem Operasi - Deadlock -
Mengelola deadlock
Menghindari deadlock
KONSEP Safe state
Kondisi di mana sistem dapat mengalokasi resource ke proses tanpa
deadlock
Pada suatu sistem terdapat proses < P1 , P2 , . . . Pn >. Permintaan
proses Pi dapat dipenuhi oleh resource yang tersedia, ditambah
resource dari proses Pj dengan j < i
Jika permintaan tidak segera terpenuhi Pi harus menunggu
Ketika Pj selesai menggunakan resource, Pj melepaskan resource
sehingga dapat digunkan Pi
Pi kemudian menggunakan resource dan menyelesaikan pekerjaan
32. Sistem Operasi - Deadlock -
Mengelola deadlock
Menghindari deadlock
KONSEP Safe state
System safe: tidak terjadi
deadlock
System unsafe:
kemungkinan deadlock
Menghindari deadlock:
mencegah sistem masuk
ke kondisi unsafe
33. Sistem Operasi - Deadlock -
Mengelola deadlock
Menghindari deadlock
A LGORITMA
Jika instance sebuah resource tunggal:
resource-allocation graph
Jika instance sebuah resource jamak:
algoritma banker’s
34. Sistem Operasi - Deadlock -
Mengelola deadlock
Menghindari deadlock
S KEMA resource-allocation graph
Claim: P R
Request: P → R
Assignment: R → P
Cegah terjadinya circular wait
35. Sistem Operasi - Deadlock -
Mengelola deadlock
Menghindari deadlock
I LUSTRASI
Safe state Unsafe state
36. Sistem Operasi - Deadlock -
Mengelola deadlock
Menghindari deadlock
A LGORITMA BANKER ’ S
Diperlukan struktur data:
Available: jika Available [j ] = k , maka ada k instance dari resource j
Max: jika Max [i , j ] = k , kebutuhan maksimum Pi adalah sebesar k
instance dari resource dari jenis j
Allocation: jika Allocation [i , j ] = k , Pi sedang diberi alokasi sebesar k
instance dari resource j
Need: jika Need [i , j ] = k , Pi perlu tambahan k instance lagi dari
resource j
Need [i , j ] = Max [i , j ] − Allocation [i , j ]
37. Sistem Operasi - Deadlock -
Mengelola deadlock
Menghindari deadlock
I LUSTRASI
Terdapat 5 proses: P0 , P1 , P2 , P3 , P4
3 jenis resource, masing-masing:
A = 10 instances
B = 5 instances
C = 7 instances
Saat t = 0
Alokasi Max Tersedia
ABC ABC ABC
P0 010 753 332
P1 200 322
P2 302 902
P3 211 222
P4 002 433
38. Sistem Operasi - Deadlock -
Mengelola deadlock
Menghindari deadlock
I LUSTRASI
Need = Max − Allocation
Need
ABC
P0 743
P1 122
P2 600
P3 011
P4 431
Bagaimana urutan eksekusi proses agar tergolong sebagai safe state?
39. Sistem Operasi - Deadlock -
Mengelola deadlock
Menghindari deadlock
C ONTOH
Banyaknya resource: A=10, B=5, C=7
Dengan P1 meminta tambahan alokasi 1 untuk A dan 2 untuk C, pada
t =0
Alokasi Max Tersedia
ABC ABC ABC
P0 010 753 230
P1 302 322
P2 302 902
P3 211 222
P4 002 433
Bagaimana urutan eksekusi proses agar tergolong sebagai safe state?
40. Sistem Operasi - Deadlock -
Mengelola deadlock
Deteksi deadlock
D ETEKSI deadlock
Sistem diperbolehkan memasuki kondisi deadlock
Menerapkan algoritma deteksi deadlock
Melakukan recovery
41. Sistem Operasi - Deadlock -
Mengelola deadlock
Deteksi deadlock
Resource DENGAN instance TUNGGAL
Memperhatikan grafik alokasi resource:
kotak=resource
lingkaran=proses
Menjaga grafik wait-for: Pi → Pj menunjukkan proses Pi menunggu Pj
Secara periodik menjalankan algoritma untuk mendeteksi circular wait
dalam grafik wait-for
42. Sistem Operasi - Deadlock -
Mengelola deadlock
Deteksi deadlock
I LUSTRASI
G AMBAR : (a). Resource-allocation graph (b). Wait-for graph
43. Sistem Operasi - Deadlock -
Mengelola deadlock
Deteksi deadlock
Resource DENGAN instance JAMAK
Beberapa variabel yang diperlukan:
Available: jumlah instance resource yang tersedia
Allocation: jumlah resource yang telah teralokasi
Request: Request [i , j ] = k , Pi meminta sejumlah k resource lebih dari
yang telah dialokasikan
44. Sistem Operasi - Deadlock -
Mengelola deadlock
Deteksi deadlock
I LUSTRASI
5 proses: P0 , P1 , P2 , P3 , P4
Resource: A = 7, B = 2, C = 6
Saat t = 0
Alokasi Permintaan Tersedia
ABC ABC ABC
P0 010 000 000
P1 200 202
P2 302 000
P3 211 100
P4 002 002
Bagaimana urutan eksekusi proses agar tergolong sebagai safe state?
45. Sistem Operasi - Deadlock -
Mengelola deadlock
Deteksi deadlock
P ENGGUNAAN
Waktu dan bagaimana algoritma deteksi dijalankan tergantung pada:
Seberapa sering deadlock terjadi: semakin sering deadlock,
semakin sering algoritma deteksi dijalankan,
semakin sering resource yang terlibat deadlock, idle
Berapa banyak proses yang terpengaruh oleh deadlock
deadlock terjadi karena ada proses yang tidak dapat segera dilayani
permintaan resource untuknya
proses lain yang terkait akan terpengaruh, sehingga berpotensi menjadi
sumber deadlock juga
46. Sistem Operasi - Deadlock -
Mengelola deadlock
Recovery
P ENGHENTIAN (terminated)
Menghentikan semua proses deadlock
Menghentikan proses deadlock satu per satu, hingga deadlock terurai,
pilihan didasarkan pada:
prioritas
berapa banyak eksekusi yang telah diselesaikan & berapa yang tersisa
resource yang digunakan
resource yang diperlukan untuk selesai
berapa banyak proses yang akan dibatalkan (terminated)
proses interactive atau batch
47. Sistem Operasi - Deadlock -
Mengelola deadlock
Recovery
P ENUNDAAN (pre-emted)
Pemilihan: didasarkan pada minimasi biaya
Rollback: mengembalikan kondisi proses ke safe state terdekat, lalu
ulangi eksekusi dari titik tersebut
Starvation: ada proses yang selalu dikorbankan (pre-empted) ketika
terjadi deadlock