Penyebab Konkurensi Kernel Integer Atomik

[Silberschatz2005] Avi Silberschatz, Peter Galvin, dan Grag Gagne. 2005. Operating Systems Concepts. Seventh Edition. John Wiley Sons. [Stallings2001] William Stallings. 2001. Operating Systems: Internal and Design Principles. Fourth Edition. Edisi Keempat. Prentice-Hall International. New Jersey. [WEBDrake96] Donald G Drake. April 1996. Introduction to Java threads – A quick tutorial on how to implement threads in Java – http:www.javaworld.com javaworld jw-04-1996 jw-04-threads.html . Diakses 29 Mei 2006. [WEBFasilkom2003] Fakultas Ilmu Komputer Universitas Indonesia . 2003. Sistem Terdistribusi – http:telaga.cs.ui.ac.id WebKuliah sisdis2003 . Diakses 29 Mei 2006. [WEBHarris2003] Kenneth Harris. 2003. Cooperation: Interprocess Communication – Concurrent Processing – http:people.cs.uchicago.edu ~mark 51081 LabFAQ lab5 IPC.html . Diakses 2 Juni 2006. [WEBWalton1996] Sean Walton. 1996. Linux Threads Frequently Asked Questions FAQ – http:linas.org linux threads-faq.html . Diakses 29 Mei 2006. [WEBWiki2006a] From Wikipedia, the free encyclopedia. 2006. Title – http:en.wikipedia.orgwikiZombie_process . Diakses 2 Juni 2006. [WEBLINUX2002] Robert Love. 2002. Kernel Locking Techniques http:www.linuxjournal.comarticle5833 . Diakses 3 Maret 2007. [WEBwikipedia2007a] From Wikipedia, the free encyclopedia. 2007.. 2007. Symmetric Multiprocessing http:en.wikipedia.orgwikiSymmetric_multiprocessing . Diakses 3 Maret 2007. [WEBwikipedia2007] From Wikipedia, the free encyclopedia. 2007.. 2007. Critical Section http:en.wikipedia.orgwikiCritical_section.htm . Diakses 10 April 2007. 159 160

Bab 23. Deadlocks

23.1. Pendahuluan

Dalam sistem komputer, terdapat banyak sumber daya yang hanya bisa dimanfaatkan oleh satu proses pada suatu waktu. Contohnya adalah penggunaan sumber daya seperti printer, tape drives dan CD-ROM drives. Dua buah proses yang menggunakan slot yang sama pada tabel proses dapat menyebabkan kerusakan pada sistem. Untuk itu, setiap sistem operasi memiliki mekanisme yang memberikan akses eksklusif pada sumber daya. Pada kenyataannya, proses membutuhkan akses eksklusif untuk beberapa sumber daya sekaligus. Bayangkan apabila sebuah proses, sebut saja proses A, meminta sumber daya X dan mendapatkannya. Kemudian ada proses B yang meminta sumber daya Y dan mendapatkannya juga. Setelah itu, proses A meminta sumber daya Y dan proses B meminta sumber daya X. Pada situasi tersebut, kedua proses harus ter-block dan menunggu secara terus-menerus. Keadaan seperti itu dinamakan deadlock. Deadlock secara bahasa berarti buntu atau kebuntuan. Dalam definisi lebih lengkap, deadlock berarti suatu keadaan dimana sistem seperti terhenti dikarenakan setiap proses memiliki sumber daya yang tidak bisa dibagi dan menunggu untuk mendapatkan sumber daya yang sedang dimiliki oleh proses lain. Keadaan seperti ini hanya dapat terjadi pada akses terhadap sumber daya yang tidak bisa dibagi atau non-sharable. Gambar 23.1. Contoh kasus deadlock pada lalu lintas di jembatan Pada contoh di atas, digambarkan ilustrasi dari kejadian deadlock pada dunia nyata, yaitu pada lalu lintas di jembatan. Dapat dilihat bahwa kedua mobil yang berada di tengah-tengah jembatan tidak dapat maju dan hanya menunggu. Penyelesaian dari masalah tersebut adalah salah satu dari mobil tersebut mundur, sehingga mobil yang lain dapat maju. Mobil pada kasus ini adalah proses, sedangkan jembatan adalah sumber daya. Kedua mobil berebut untuk menggunakan sumber daya, namun karena sumber daya tersebut hanya dapat digunakan oleh satu proses saja, maka terjadilah deadlock. Kondisi tersebut bila terjadi dalam waktu yang lama dapat menyebabkan terjadinya starvation. Gambar 23.2. Contoh kasus deadlock pada lalu lintas di persimpangan 161