Os07

581 views

Published on

Published in: Education, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
581
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
14
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Os07

  1. 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. 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. 3. Sistem Operasi - Deadlock - ReviewO 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. 4. Sistem Operasi - Deadlock - ReviewS 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. 5. Sistem Operasi - Deadlock - ReviewI LUSTRASI : critical section G AMBAR : Critical section
  6. 6. Sistem Operasi - Deadlock - ReviewP ENERAPAN Level user: Solusi Peterson Lock Level kernel (HW): TestAndSet Swap Semaphore Monitor
  7. 7. Sistem Operasi - Deadlock - ReviewC ONTOH KASUS Bounded Buffer Readers Writers Dinining Philosopher
  8. 8. Sistem Operasi - Deadlock - Overview & ObyektifO 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. 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. 10. Sistem Operasi - Deadlock - Masalah DeadlockO 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. 11. Sistem Operasi - Deadlock - Masalah DeadlockKONSEP 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. 12. Sistem Operasi - Deadlock - Masalah DeadlockI 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. 13. Sistem Operasi - Deadlock - Masalah DeadlockK 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. 14. Sistem Operasi - Deadlock - Masalah DeadlockM ODEL SYSTEM Setiap resource Ri , memiliki instance Wi Setiap proses memanfaatkan resource dengan pola request use release
  15. 15. Sistem Operasi - Deadlock - Alokasi Proses-ResourceO 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. 16. Sistem Operasi - Deadlock - Alokasi Proses-ResourceD IAGRAM ALOKASI resource P= proses (lingkaran ) R= resource (segiempat) Request: P → R Assignment: R → P
  17. 17. Sistem Operasi - Deadlock - Alokasi Proses-ResourceI LUSTRASI deadlock G AMBAR : Ilustrasi deadlock
  18. 18. Sistem Operasi - Deadlock - Alokasi Proses-ResourceS IKLUS TANPA deadlock G AMBAR : Siklus tanpa deadlock
  19. 19. Sistem Operasi - Deadlock - Alokasi Proses-ResourceDARI GRAFIK Tanpa siklus: tidak terjadi deadlock Dengan siklus: jika hanya ada satu resource instance → deadlock jika ada beberapa resource instance → bisa deadlock
  20. 20. Sistem Operasi - Deadlock - Mengelola deadlockO UTLINE 1 R EVIEW 2 OVERVIEW & O BYEKTIF 3 M ASALAH D EADLOCK 4 A LOKASI P ROSES -R ESOURCE 5 M ENGELOLA DEADLOCK
  21. 21. Sistem Operasi - Deadlock - Mengelola deadlockC ONTOH deadlock
  22. 22. Sistem Operasi - Deadlock - Mengelola deadlockC ONTOH deadlock G AMBAR : Contoh deadlock
  23. 23. Sistem Operasi - Deadlock - Mengelola deadlockM ENGELOLA deadlock G AMBAR : Mengelola deadlock
  24. 24. Sistem Operasi - Deadlock - Mengelola deadlockM ENGELOLA deadlock G AMBAR : Mengelola deadlock
  25. 25. Sistem Operasi - Deadlock - Mengelola deadlockP 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. 26. Sistem Operasi - Deadlock - Mengelola deadlock Mencegah deadlockM 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. 27. Sistem Operasi - Deadlock - Mengelola deadlock Mencegah deadlockM 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. 28. Sistem Operasi - Deadlock - Mengelola deadlock Mencegah deadlockM 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. 29. Sistem Operasi - Deadlock - Mengelola deadlock Mencegah deadlockM 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. 30. Sistem Operasi - Deadlock - Mengelola deadlock Menghindari deadlockM 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. 31. Sistem Operasi - Deadlock - Mengelola deadlock Menghindari deadlockKONSEP 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. 32. Sistem Operasi - Deadlock - Mengelola deadlock Menghindari deadlockKONSEP Safe state System safe: tidak terjadi deadlock System unsafe: kemungkinan deadlock Menghindari deadlock: mencegah sistem masuk ke kondisi unsafe
  33. 33. Sistem Operasi - Deadlock - Mengelola deadlock Menghindari deadlockA LGORITMA Jika instance sebuah resource tunggal: resource-allocation graph Jika instance sebuah resource jamak: algoritma banker’s
  34. 34. Sistem Operasi - Deadlock - Mengelola deadlock Menghindari deadlockS KEMA resource-allocation graph Claim: P R Request: P → R Assignment: R → P Cegah terjadinya circular wait
  35. 35. Sistem Operasi - Deadlock - Mengelola deadlock Menghindari deadlockI LUSTRASI Safe state Unsafe state
  36. 36. Sistem Operasi - Deadlock - Mengelola deadlock Menghindari deadlockA 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. 37. Sistem Operasi - Deadlock - Mengelola deadlock Menghindari deadlockI 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. 38. Sistem Operasi - Deadlock - Mengelola deadlock Menghindari deadlockI 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. 39. Sistem Operasi - Deadlock - Mengelola deadlock Menghindari deadlockC 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. 40. Sistem Operasi - Deadlock - Mengelola deadlock Deteksi deadlockD ETEKSI deadlock Sistem diperbolehkan memasuki kondisi deadlock Menerapkan algoritma deteksi deadlock Melakukan recovery
  41. 41. Sistem Operasi - Deadlock - Mengelola deadlock Deteksi deadlockResource 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. 42. Sistem Operasi - Deadlock - Mengelola deadlock Deteksi deadlockI LUSTRASI G AMBAR : (a). Resource-allocation graph (b). Wait-for graph
  43. 43. Sistem Operasi - Deadlock - Mengelola deadlock Deteksi deadlockResource 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. 44. Sistem Operasi - Deadlock - Mengelola deadlock Deteksi deadlockI 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. 45. Sistem Operasi - Deadlock - Mengelola deadlock Deteksi deadlockP 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. 46. Sistem Operasi - Deadlock - Mengelola deadlock RecoveryP 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. 47. Sistem Operasi - Deadlock - Mengelola deadlock RecoveryP 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

×