Deadlock adalah suatu kondisi dimana dua proses atau lebih tidak dapat meneruskan eksekusinya oleh pemroses. Pada umumnya deadlock terjadi karena proses mengalami startvation.
Startvation adalah keadaan dimana pemberian akses bergantian terus menerus, dan ada suatu proses yang tidak mendapatkan gilirannya.
Kondisi yang dapat menimbulkan terjadinya deadlock:
- Mutual exclusion.
- Hold & Wait.
- No Preemption.
- Circular Wait Condition.
Sumber Daya (Resources)
— Sumber daya (resource): komoditas yg. diperlukan oleh proses
— Contoh resources sistem komputer
- printers
- tape drives
- Memory, dll
— Sumber daya dapat berupa:
– serially reusable, contoh: CPU, memory, ruang disk, perangkat I/O, file
peroleh => gunakan => lepaskan
◦ – consummable – dibuat/ diperlukan oleh proses,
contoh: pesan, buffer informasi, interrupt
buat => peroleh => gunakan
Sumberdaya habis setelah digunakan, karena itu tidak ada pelepasan sumberdaya.
Sumber daya bersifat:
a) Preemptible, contoh: CPU, memori utama
b) non-preemptible, contoh: tape drives
Sumber daya bisa digunakan secara:
a) Bersama, oleh beberapa proses
b) Terdedikasi, secara eksklusif oleh satu proses
Urutan event yg dilakukan dalam penggunaan sumber daya:
1. Permintaan sumber daya
2. Penggunaan sumber daya
3. Pelepasan sumber daya
Harus menunggu jika request ditolak
a) proses yang meminta mungkin diblokir, atau
b) proses gagal dgn mengeluarkan kode kesalahan
Proses-proses membutuhkan akses ke resource secara teratur.
Contoh 1 : Suatu proses memegang (hold) resource A dan meminta resource B, pada saat yang sama proses lain sedang memegang resource B dan meminta resource A masing-masing proses melakukan block, dalam kondisi seperti ini maka terjadi deadlock.
0 komentar:
Posting Komentar