Deadlock - Materi Lanjutan
Dilingkungan multiprogramming, beberapa proses dapat saling bersaing untuk mendapatkan sumber daya yang terbatas. Ketika sebuah proses meminta sumber daya yang pada waktu itu tidak tersedia, maka proses tersebut memasuki status menunggu (waitting). Hal ini terjadi karena sumber daya yang diminta sedang ditahan/digunakan oleh proses lainnya yang sedang menunggu juga, dan hal ini disebut dengan kebuntuan (deadlock).
Setiap proses pasti menggunakan resource contoh menggunakan processor, sehingga terlebih dahulu proses harus meminta/request resource sebelum menggunakannya, dan setelah selesai menggunakannya maka harus melepaskan (release) resource yang digunakannya. Suatu proses dapat meminta resource sebanyak mungkin agar dapat mengerjakan tugas yang diperintahkan. Namum jumlah resource yang diminta tidak boleh melebihi jumlah resource yang tersedia di sistem. Contoh suatu proses tidak dapat meminta dua printer jika sistem hanya memiliki satu printer.
Sehingga dari hal tersebut, tentunya pada mode operasi normal, suatu proses dapat menggunakan sumber daya (resource) hanya dalam urutan berikut.
- Request – proses meminta sumber daya, jika tidak segera diberikan misal karna sedang digunakan oleh proses lain, maka proses yang meminta tersebut harus menunggu (waitting) sampai mendapatkan resource yang dibutuhkan tersebut.
- Use – proses dapat mengoperasikan resource yang telah diberikan, contoh jika resource-nya adalah printer, maka proses dapat mencetak pada printer tersebut.
- Release – proses melepaskan resource yang telah selesai digunakan, agar dapat digunakan oleh proses selanjutnya yang membutuhkannya.
Permintaan/request dan pelepasan/release sumber daya (resource) memungkinkan dilakukan oleh system call
, sebagai contoh menggunakan fungsi: request()
dan release()
; open()
dan close()
pada file; serta allocate()
dan free()
untuk pengalokasian dan pembebasan memori pada sistem. Demikian pula sama halnya dengan request dan (release pada semafor yang dapat dicapai melalui fungsi/operasi semWait()
dan semSignal()
pada pembahasan sebelumnya.
Artikel Terkait
Karna pembahasan sistem operasi sangat kompleks, maka kita akan membaginya menjadi beberapa bagian, untuk sementara berikut beberapa artikel lainnya yang terkait atau berhubungan dengan pembahasan ini.
- 1 Gambaran Sistem Operasi - Komponen & Fungsi
- 1.1 Apa Yang Dikerjakan Sistem Operasi
- 1.2 Organisasi Sistem Komputer
- 1.3 Arsitektur Sistem Komputer
- 1.4 Struktur Sistem Operasi
- 1.5 Operasi Sistem Operasi - Trap Exception
- 2 Proses & Thread
- 3 Konkurensi: Mutual Exclusion dan Sinkronisasi
- 4 Deadlock Lanjutan
Referensi
- Operating Systems: Internals and Design Principles (8th Edition), William Stallings, 2014.
- Operating System Concepts (9th Edition in Chinese) by Abraham Silberschatz et al.
- The Linux Programming Interface: A Linux and UNIX System Programming Handbook, Michael Kerrisk.
Warning!
We are not responsible for any loss whatsoever due to this site, also if you want to take this article please read terms of use or touch us via contact page.
If there is question, please discuss below. Very welcome and expected to provide corrections, criticisms, and suggestions.
Be the first :D