1 / 65

KONKURENSI DEADLOCK DAN STARVATION

KONKURENSI DEADLOCK DAN STARVATION. ALIVI NUR ROSIDA 109533427367 ANGGRAINI YUSSI P 109533423231 ERVIANDO MERANDI P. 109533427366 GULPI QORIK O. P. 109533423232. Principles of DEADLOCK. Definition of Deadlock Resource Categories Condition for Deadlock. What is Deadlock?.

zeki
Download Presentation

KONKURENSI DEADLOCK DAN STARVATION

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. KONKURENSIDEADLOCK DAN STARVATION ALIVI NUR ROSIDA 109533427367 ANGGRAINI YUSSI P 109533423231 ERVIANDO MERANDI P. 109533427366 GULPI QORIK O. P. 109533423232

  2. Principles of DEADLOCK Definition of Deadlock Resource Categories Condition for Deadlock

  3. What is Deadlock? • pemblok-an permanen proses • memperebutkan resource sistem • Tidakmemilikisolusi yang efisien

  4. Potential Deadlock I need quad C and B I need quad B and C I need quad A and B I need quad D and A

  5. Actual Deadlock

  6. Example

  7. Example II

  8. Resource Categories • Reusable • dapatdigunakandenganamanolehhanyasatu proses dalamsatuwaktu. • Consumable • dapat diciptakan dan dapat di konsumsi.

  9. Reusable • sepertiprocessors,I/O channels, memoriutama, database, devices, files, dan semaphores • Deadlock terjadipadacontoh di awalpresentasi

  10. Consumable • seperti interrupt, signals, messages,dan infromasi di I/O buffers. • Deadlock dapat terjadi jika ada Kesalahan dalam desain program • Sangat langka, butuh waktu yang lama hingga terjadi deadlock

  11. Condition for possible Deadlock • Mutual exclusion • use a resource at a time • Hold-and-wait • hold resources while awaiting others • No pre-emption • cant be forcibly removed resource

  12. Actual Deadlock Requirement • Tigakondisisebelumnyadan … • Circular wait • adalahrantai yang menghubungkan proses yang ada, dimanasetiap proses menahan minimal satu resource yang dibutuhkan proses berikutnyadalamrantai.

  13. Starvation Starvation occurs when one or more threads in your program are blocked from gaining access to a resource and, as a result, cannot make progress

  14. Starvation • kekuranganresource • Karena deadlock • Karenakesalahan design sistem

  15. BagaimanaMengatasinya? Deadlock Prevention Deadlock Avoidance Deadlock Detection

  16. Deadlock Prevention • Design system with no possible deadlock. • Terdapatduametodeuntukmencegah deadlock. • Indirect • Direct

  17. Indirect Method • mencegahketigakondisi yang dibutuhkan deadlock, yaitu: • mutual exclusion, tidakbisasepenuhnyadicegah, danharusdidukungoleh OS • dapatkanseluruh resource secarabersamaan • proses gagal => semua resource yang telahdidapat, harusdilepas

  18. Direct Method • mencegahterjadinya circular waits • mendefinisikanpemesanantipe resource yang linear.

  19. Deadlock Avoidance • Dalammenghindari deadlock, ketentuandibuatsecaradinamis, tergantungdari request resource dari program, berpotensikepada deadlock atautidak.

  20. DuaPendekatanmenghindari Deadlock • Process Initiation Denial • tidakmenjalankan proses jikamemungkinkanterjadi deadlock • Resource Allocation Denial • tidakmembolehkanpenambahan request resource kepada proses jikamemungkinkanterjadinya deadlock.

  21. Keuntungan • Tidak perlu melakukan preempt dan rollback proses seperti pada deadlock detection • Lebih sedikit pembatas daripada deadlock prevention

  22. Deadlock Detection • mengecek system dariterjadinya deadlock secara regular • semakinseringterjadipengecekan, semakinmemakanwaktuprosesor • Saatditemukan deadlock, lakukan proses recovery

  23. Strategi Penanggulangan Deadlock Terpadu

  24. Strategi Penanggulangan Deadlock Terpadu Strategi penanggulangan deadlock mempunyai kelemahan dan kelebihan masing-masing, daripada berusaha merancang fasilitas sistem operasi dengan satu strategi penanggulangan deadlock maka lebih efisien menggunakan strategi yang berbeda untuk situasi yang berbeda.

  25. Strategi Penanggulangan Deadlock Terpadu Silberschatz menyarankan satu pendekatan terpadu yaitu: • Kelompokkan resource kedalam beberapa kelas resource yang berbeda • Gunakan strategi pengurutan linear seperti yang didefinisikan pada pencegahan menunggu sirkulaar. Strategi ini digunakan untuk mencegah deadlock di antara kelas-kelas resource yang berbeda • Dalam satu kelas resource, gunakan algoritma yang paling cocok untuk kelas resource tersebut.

  26. Filosofi Dining Problem

  27. Filosofi Dining Problem

  28. Pengaturan makan Sebuah meja bundar yang terdapat semangkuk besar spaghetti, lima piring, satu untuk setiap filusuf, dan lima garpu. Seorang filosof hanya bisa memakan spaghetti dengan menggunakan dua garpu.

  29. Masalah Merancang algoritma yang memungkinkan para filosof untuk makan. Algoritma ini harus memenuhi mutual exclusion (tidak ada dua filosof yang bisa menggunakan garpu yang sama pada waktu yang sama) sambil menghindari deadlock dan starvation.

  30. Solusi Menggunakan Semaphores Setiap filosof mengambil garpu di sebelah kiri dan kemudian garpu di sebelah kanan. Setelah filosof selesai makan, kedua garpu diletakkan di atas meja. Sayangnya, solusi ini, menyebabkan deadlock: Jika semua filosof lapar pada saat yang sama, mereka semua duduk, mereka semua mengambil garpu di sebelah kiri mereka, dan mereka semua menjangkau untuk garpu lain, yang tidak ada . Dalam posisi ini, semua filosof kelaparan. Untuk mengatasi risiko deadlock, kita bisa membeli lima garpu tambahan atau mengajarkan para filosof untuk makan spaghetti hanya dengan satu garpu. Sebagai pendekatan yang lain, kita bisa pertimbangkan untuk menambahkan seorang pembantu yang membatasi hanya empat filosof yang bisa makan pada waktu yang sama. Dengan paling banyak empat filosof duduk, setidaknya satu filosof akan memiliki akses ke dua garpu.

  31. Solusi Menggunakan Monitor

  32. Solusi Menggunakan Monitor Sebuah vektor dari lima variabel kondisi didefinisikan, satu variabel kondisi per garpu. Variabel-variabel kondisi yang digunakan untuk mengaktifkan filosof untuk menunggu ketersediaan garpu. Selain itu, ada vektor Boolean yang mencatat status ketersediaan setiap garpu (benar berarti garpu tersedia). Monitor terdiri dari dua prosedur. Prosedur get_forks digunakan oleh filosof untuk memanfaatkan garpu di sebelah kiri dan kanannya. Jika salah satu garpu tidak tersedia, filosof akan mengantri pada variabel kondisi yang sesuai. Ini memungkinkan filosof lain untuk masuk ke monitor. Prosedur release_forks digunakan untuk menyediakan dua garpu. Solusi ini mirip dengan solusi semaphore. Pada kedua kasus ini, seorang filosof pertama merebut garpu kiri dan kemudian garpu kanan. Berbeda dengan solusi semaphore, solusi menggunakan monitor ini tidak mengalami deadlock, karena hanya satu proses pada suatu waktu yang mungkin di monitor. Sebagai contoh, Filosof pertama yang memasuki monitor dijamin bahwa ia dapat mengambil garpu kanan tepat setelah mengambil garpu kiri sebelum filosof di sebelah kanannya memiliki kesempatan untuk merebut garpu kiri, yang merupakan garpu kanan filosof pertama.

  33. UNIX Mekanisme Concurrency

  34. UNIX Mekanisme Concurrency Mekanisme untuk komunikasi interprocessor dan sinkronasi: Pipes Message Shared memory Semaphores Signals

  35. Pipes • Menghubungkan standard output proses ke standard input proses lain. • Metode komunikasi satu arah antara proses-proses. • Tipe  Named,Unnamed

  36. Messages • UNIX menyediakan msgsnd dan sistem msgrc call untuk proses untuk terlibat dalam lewat pesan. • Message dikirim melalui Queue secara berurutan dan diambil dari antrian dengan beragam cara.

  37. Shared Memory • Memungkinkan satu proses atau lebih berkomunikasi lewat memory. • Blok umum dari virtual memory bersama oleh beberapa proses • Izindibacasajaatau read-write untuk proses,- ditentukanpada basis per-proses.

  38. Semaphore • SVR4 menggunakan generalisasi dari semWait dan primitif semSignal  • Terkait dengan antrian semaphore adalah proses diblokir pada semaphore itu.

  39. Signals • Mekanisme software yang menginformasikan proses terjadinya kejadian yang asinkronus. • Sebuah sinyal disampaikan oleh memperbarui fielddalamtabel proses untuk proses yang sinyal sedang dikirim.

  40. Linux Kernel Concurrency Mechanism

  41. Linux Kernel Concurrency Mechanism mekanisme yang ditemukan di UNIX plus : • Atomic operations • Spinlocks • Semaphores (slightly different to SVR4) • Barriers

  42. Atomic Operations • Atom melaksanakan operasi tanpa henti dan tanpa gangguan  • Dua tipe: - Integer Operasi - operasi pada variabel integer - Bitmap Operasi - operasi pada satu bit dalam bitmap • Dua jenis operasi atom didefinisikan di Linux: • integer operasi, yang beroperasi pada variabel integer• bitmap operasi, yang beroperasi pada satu bit dalam bitmap

  43. Spinlock • Hanya satu thread pada suatu waktu dapat memperoleh sebuah spinlock. - Setiap thread lainnya akan terus berusaha (spinning) sampai dapat memperoleh kunci.  • Spinlock adalah integer • Jika nilainya 0, benang set nilai ke 1 dan memasuki critical section-nya. • Jika nilai bukan nol, benang terus menerus memeriksa nilai sampai nol.

  44. Semaphores •  Mirip dengan UNIX SVR4 tapi juga menyediakan sebuah implementasi dari semaphores untuk digunakan sendiri. • Tiga jenis semaphores kernel:– Binary semaphores – counting semaphores, – reader-writer semaphores.

  45. Barriers • Untuk menegakkan urutan instruksi untuk dieksekusi, Linux menyediakan fasilitas penghalang memori.

More Related