Contoh (yang bisa ditemui dalam kehidupan) tentang menggambarkan syarat-syarat Deadlock.
Deadlock, adalah sebutan untuk kondisi dimana terdapat 2 (atau lebih) program yang mengalami "jalan buntu" atau tidak dapat meneruskan eksekusinya. karena menunggu atau meminta resource ( untuk waktu yang tidak terbatas lamanya) atas suatu kejadian yang dapat dilakukan proses lain yang juga ada dalam kumpulan itu. Hal ini dianalogikan seperti jalan raya yang tersendat. Deadlock sendiri merupakan akibat dari sinkronisasi, dimana satu variabel digunakan oleh 2 proses.
Syarat-syarat terjadinya Deadlock adalah
1. Mutual Exclusion
hanya ada satu proses yang bisa mengakses sebuah sumber daya. sedangkan proses lain menunggu sampai proses yang pertama selesai atau tidak ada lagi proses yang memakai sumber daya itu.
CONTOHNYA: Pada proses penggunaan mesin ATM, hanya ada 1 data atau proses dari nasabah yang bisa di jalankan dimesin ATM tersebut. tidak akan bisa dan tidak akan pernah ada 2 atau lebih data atau proses dari nasabah yang dilakukan secara bersamaan dalam satu mesin ATM yang sama.
contoh lain, dalam gambar perumpamaan deadlock sebagai jalan raya diatas, hanya satu mobil yang bisa melewati satu persimpangan (sumber daya ) dalam satu waktu
contoh lain lagi adalah, ketika berbelanja disebuah supermarket, proses pembayaran dikasir biasanya hanya bisa melayani 1 orang pembeli. umumnya kasir hanya berisi satu orang penjaga beserta komputer berisi data dan harga barang, dan sebuah printer untuk mencetak struk.. akan sulit rasanya bagi seorang kasir melayani 2 pembeli sekaligus secara bersamaan. Terkecuali kasir yang ada juga lebih dari 1 kasir.
2. Hold and Wait
memaksa sebuah proses untuk melepas sumber dayanya ketika proses lain berkehendak meminta sebuah resource baru. dalam artian proses yang meminta resource baru menunggu hingga peoses lain benar-benar memberikan sumber dayanya atau sudah tidak dipakai
CONTOHNYA : dalam arus lalu lintas diperempatan, kendaraan yang ada dijalan menunggu kendaraan yang ada di sis jalan lain berhenti ketika hendak menyebrangi jalan (hendak menggunakan seumber daya). Umpamanya, ketika ada sebuah motor melaju dari arah timur disebuah persimpangan dan hendak pergi kebarat, maka otomatis pengemudi motor tersebut harus memperhatikan pengemudi kendaraan baik dari arah utara, selatan maupun barat, apakah mereka sudah benar-benar berhenti atau belum sebelum menyebrangi perempatan itu. ini dilakukan demi menghindari arus yang tak beraturan yang bisa menimbulkan kecelakaan seperti tabrakan dan lain-lain.
3. Circular Wait
memberikan penamaan resource berdasarkan urutan atau level. atau sebuah kondisi dimana adanya rantai tertutup saling meminta sumber daya oleh proses lain.
CONTOHNYA: Komdisi ini digambarkan seperti kepadatan lalu lintas dimana setiap kendaraan saling menunggu kendaraan lain didepannya untuk melaju (untuk memberikan sumber dayanya)
4. No Preemtion
suatu proses tidak boleh mengambil sumber daya dari proses lain begitu saja. untuk mendapat sumber daya tersebut maka harus dilepas dulu oleh proses yang memegangnya.
CONTOHNYA: dalam kasus lalu lintas.. umumnya kendaraan akan melaju sesuai dengan jalur yang telah disediakan. yakni contoh di negara indonesia, jalur pada jalan umum biasanya di bagi menjadi dua arah. umpama jalan itu menuju ketimur maka pengguna jalan yang menuju ketimur menggunakan jalur kiri dan pengguna yang mengarah kebarat ada disebelah kanan pengguna yang mengarah ketimur.
tidak boleh seumpama pengguna jalur yang ingin ketimur dengan seenaknya menggunakan jalur yang digunakan pengguna yang hendak pergi ketbarat begitu pula sebaliknya. kecuali dalam suatu kondisi seperti hendak menyebrang atau berputar arah, itupun atas izin (pelepasan sumber daya) dari pengguna jalan lain dalam waktu sesaat.
mungkin kurang lebih begitulah contoh perumpamaan dalam menggambarkan syarat-syarat Deadlock.
semoga tulisan kecil ini bisa memberikan manfaat.
sekian
Komentar
Posting Komentar