DEADLOCK

Oleh:

I Kadek Adi Permana 110010467 PE III

SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN TEKNIK KOMPUTER (STMIK) STIKOM BALI 2013

“Om Shanti. Semoga laporan ini dapat memberi pengetahuan tambahan bagi pembaca.KATA PENGANTAR “Om swastyastu” Puji syukur penulis panjatkan kehadapan Ida Sang Hyang Widhi Wasa. Shanti. Shanti. oleh sebab itu kritik dan saran yang mengarah pada perbaikan sangat diharapkan untuk kebaikan dan kesempurnaan laporan ini. Penulis menyadari bahwa laporan ini masih banyak memiliki kekurangan atau ketidak lengkapan isi dari pada laporan ini. Om” Denpasar. Akhir kata saya ucapkan terima kasih. January 2013 Penulis Deadlock Page i . atas berkat rahmat-Nya lah penulis dapat menyelesaikan tugas pembuatan laporan mengenai “Sistem Operasi: Deadlock” dengan baik dan tepat waktu.

..............................................13 3.......................................................................................................................1 1...............................................................3 2.....................................................8 2.................................................................3 Resource...................................................................................................................................................................................................................................................................................................................................2 BAB II........................................................................7 2................1 Kesimpulan..9 2...............................................................2 Rumusan Masalah..............13 PENUTUP...............................................4 Penyebab Deadlock.....1 PENDAHULUAN............................................................................3 PEMBAHASAN.....................................................................................................................2 Model Sistem..........................13 3...............4 2....................................5....................................................................................................................3 2...1 1.......3 Tujuan Penulisan................13 Deadlock Page ii ..........................................................................................................................5.................................2 Saran...............ii BAB I...............5 Penanganan Deadlock...5............DAFTAR ISI KATA PENGANTAR.......8 2............................4 Manfaat Penulisan...1 Latar Belakang.................2 1....................................................................................................................................................................................................i DAFTAR ISI........................................1 1........................................................................................................1 Definisi Deadlock.......................5.............................3 Penghindaran...........................................................................1 Mengabaikan Masalah Deadlock..............................................................................2 Mendeteksi dan Memperbaiki......................4 Pencegahan........10 BAB III.........................................3 2...................................6 2.......................

Saat ini pemakaian teori graph semakin luas sesuai dengan tuntutan yang senantiasa terus bertambah. dan ilmu komputer. Kebuntuan yang dimaksud dalam sistem operasi adalah kebuntuan proses. terkadang sangatlah sulit untuk menyelesaikan suatu permasalahan yang timbul dengan menggunakan konsep konsep yang sudah ada.BAB I PENDAHULUAN 1. Salah satu aplikasi graph pada sistem operasi adalah graph alokasi sumber daya yang digunakan untuk melakukan pendeteksian dan pencegahan deadlock. Teori graph merupakan topik yang banyak mendapat perhatian. karena model modelnya sangat berguna untuk aplikasi yang luas. 1. Deadlock dalam arti sebenarnya adalah kebuntuan. Jadi Deadlock ialah suatu kondisi dimana proses tidak berjalan lagi atau pun tidak ada komunikasi lagi antar proses. Dengan kata lain setiap proses dalam set menunggu untuk sumber yang hanya dapat dikerjakan oleh proses lain dalam set yang sedang menunggu.2 Rumusan Masalah Masalah dalam penulisan ini adalah bagaimana menyelesaikan permsalahan dalam mendeteksi deadlock pada sistem operasi dan pencegahannya dengan algoritma pencegahan dan pemulihan.1 Latar Belakang Dalam perkembangan dunia ilmu pengetahuan dan teknologi saat ini. Untuk itu graph merupakan salah satu bagian ilmu matematika yang dapat digunakan untuk mencari solusi yang diharapkan. Deadlock Page 1 . seperti masalah dalam jaringan komunikasi. Deadlock disebabkan karena proses yang satu menunggu sumber daya yang sedang dipegang oleh proses lain yang sedang menunggu sumber daya yang dipegang oleh proses tersebut. transportasi.

1. dan bagi penulis bisa menjadi pegangan referensi untuk artikelartikel selanjutnya.3 Tujuan Penulisan Adapun tujuan penulisan ini adalah untuk mendeteksi dan mencegah deadlock pada sistem operasi beserta contoh dan penanganannya.1.4 Manfaat Penulisan Manfaat penulisan ini untuk pembaca adalah agar bisa menambah wawasannya. Deadlock Page 2 .

Sekumpulan proses.. Karena beberapa proses itu saling menunggu. Sumber daya Ri memiliki n bagian (instans) yang identik dan masingmasing digunakan.1 Definisi Deadlock Deadlock adalah suatu kondisi dimana dua proses atau lebih saling menunggu proses yang lain untuk melepaskan resource yang sedang dipakai. R = {R1. R2.BAB II PEMBAHASAN 2.2 Model Sistem Untuk memodelkan kondisi deadlock. d. Pn} b... sebuah proses menggunakan sumber daya dengan urutan sebagai berikut: Deadlock Page 3 . Proses B menggunakan Scanner. Proses B meminta CD-ROM (tanpa melepas Scanner) → menunggu.. Pada model operasi normal. P = {P1. P2. Rm} c. e. Salah satu contoh sebuah deadlock: a. Kebuntuan yang dimaksud dalam sistem operasi adalah kebuntuan proses. . Deadlock dalam arti sebenarnya adalah kebuntuan. maka tidak terjadi kemajuan dalam kerja proses-proses tersebut. .. Deadlock adalah masalah yang biasa terjadi ketika banyak proses yang membagi sebuah resource yang hanya boleh dirubah oleh satu proses saja dalam satu waktu. c. 2. Jadi deadlock ialah suatu kondisi dimana proses tidak berjalan lagi atau pun tidak ada komunikasi lagi antar proses. Proses A menggunakan CD-ROM. Proses A meminta Scanner (tanpa melepas CD-ROM) → menunggu. Sekumpulan tipe sumber daya yang berbeda. b. Menunggu… menunggu… DEADLOCK. maka bayangkan sebuah sistem dengan: a..

b. maka sumber daya harus dilepaskan sehingga dapat digunakan oleh proses lain. maka proses itu harus menunggu sampai sumber daya yang dimintanya tersedia.3 Resource Deadlock bisa terjadi pada saat proses akan mengakses obyek secara tidak semestinya. Melepaskan sumber daya (relase) Setelah proses menyelesaikan penggunaan sumber daya. disk drive untuk melakukan operasi I/O. Mengajukan permohonan (request) Bila permohonan tidak dapat dikabulkan dengan segera (misal karena sumber daya sedang digunakan proses lain). Contohnya prosesor. c. semafor. yaitu: a. Sumber daya ada dua jenis. dan sebagainya. disk.a. Preemptable Sumber daya dikatakan preemptable jika sumber daya tersebut dapat diambil (dilepas) dari proses yang sedang memakainya tanpa member efek apapun pada proses tersebut. maka akan terjadi deadlock jika setiap proses sudah memiliki salah satu disk dan meminta disk yang lain. Tetapi setelah proses berakhir. sumber daya ini dikembalikan untuk dipakai oleh proses lain yang sebelumnya tidak kebagian sumber daya ini. Contoh peran sumber daya jenis ini pada terjadinya Deadlock ialah misalnya sebuah proses memakai disk A dan B. Menggunakan sumber daya (use) Proses dapat menggunakan sumber daya. Masalah ini tidak hanya dirasakan oleh pemrogram tetapi oleh seorang yang merancang sebuah sistem operasi. misalnya printer untuk mencetak. kanal M/K. Cara yang Deadlock Page 4 . Sumber daya ini tidak habis dipakai oleh proses mana pun. 2. Obyek tersebut dinamakan sumber daya.

maka P tidak akan menemukan sumber daya dari banyak sebanyak 60. akan menunggu hingga permintaannya dipenuhi. akhirnya terjadi deadlock. Demikian juga dengan Q. Deadlock Page 5 . maka sumber daya yang tersedia dalam banyak ialah 50 (200-70-80). Contoh lain yang menyebabkan deadlock dari sumber yang dapat dipakai berulang-ulang ialah berkaitan dengan jumlah proses yang memakai memori utama. Contohnya dapat dilihat dari kode berikut ini: Setelah proses P dan Q telah melakukan fungsi meminta untuk pertama kali. maka P akan menunggu hingga sumber daya yang diminta dipenuhi.digunakan pada umumnya dengan cara memperhitungkan dahulu sumber daya yang digunakan oleh proses-proses yang akan menggunakan sumber daya tersebut. Maka saat P menjalankan fungsi meminta lagi sebanyak 60. Cara mengatasinya dengan menggunakan memori maya.

tetapi ada kalanya proses tidak mendapat sumber daya yang dibuat sehingga terjadi blok. 2. Contohnya seperti berikut: Dari kedua fungsi tersebut ada yang bertindak untuk menerima dan memberi sumber daya. Selain itu deadlock ini dihasilkan oleh beberapa kombinasi yang sangat jarang terjadi.4 Penyebab Deadlock Setelah kita melihat beberapa illustrasi di atas. mungkin kita sekarang mulai bisa membayangkan apa itu deadlock. Printer adalah salah satu contohnya. maka printer tersebut tidak dapat diambil untuk mencetak sesuatu dari proses lain. karena itu terjadi deadlock. tetapi ada suatu keadaan seperti ini yang mengakibatkan deadlock. Adapun 4 kondisi penyebab deadlock adalah sebagai berikut: Deadlock Page 6 .b. Sebenarnya deadlock itu akan terjadi apabila syarat-syarat dari deadlock tersebut terpenuhi. Tentu saja hal ini sangat jarang terjadi mengingat tidak ada batasan untuk memproduksi dan mengkonsumsi. Jika suatu proses sedang menggunakan printer untuk mencetak sesuatu. Sumber daya jenis ini biasanya berpotensi terjadinya deadlock. Hal ini mengakibatkan deadlock jenis ini sulit untuk dideteksi. sumber daya tidak dapat diambil dari proses yang sedang membawanya karena akan menimbulkan kegagalan komputasi. Non-preemtable Pada sumber daya jenis ini.

Penghindaran. Mutual Exclusion Hanya ada satu proses yang boleh memakai sumber daya. yaitu sebuah proses membutuhkan sumber daya yang dipegang proses berikutnya. yaitu: a. c. Circular Wait Kondisi seperti rantai. Untuk mendapatkan sumber daya tersebut. Mendeteksi dan memperbaiki. Mengabaikan masalah. selain itu seluruh proses menunggu dan mempersilahkan hanya proses yang memiliki sumber daya yang boleh 2.5 Penanganan Deadlock Terdapat beberapa cara dalam menangani deadlock. dan proses lain yang ingin memakai sumber daya tersebut harus menunggu hingga sumber daya tadi dilepaskan atau tidak ada proses yang memakai sumber daya tersebut. Hold and Wait Proses yang sedang memakai sumber daya boleh meminta sumber daya lagi maksudnya menunggu hingga benar-benar sumber daya yang diminta tidak dipakai oleh proses lain. b. berjalan.a. No Preemption Sumber daya yang ada pada sebuah proses tidak boleh diambil begitu saja oleh proses lainnya. yang secara umumnya ada 4 cara untuk menanganinya. d. maka harus dilepaskan terlebih dahulu oleh proses yang memegangnya. b. Pencegahan. Deadlock Page 7 . d. c. hal ini dapat menyebabkan kelaparan sumber daya sebab dapat saja sebuah proses tidak mendapat sumber daya dalam waktu yang lama.

2. Akhirnya sistem akan berhenti dan harus direstart. Metode ini lebih dikenal dengan Algoritma Ostrich. apakah ia sedang digunakan oleh proses lain atau tidak.1 Mengabaikan Masalah Deadlock Untuk memastikan sistem tidak memasuki deadlock. sistem dapat menggunakan pencegahan deadlock atau penghindaran deadlock. Jika sebuah sistem tidak memastikan deadlock akan terjadi. sehingga proses yang menjalankan proses melalui operator harus menunggu pada waktu tertentu dan mencoba lagi. Hal ini disebabkan oleh keberadaan sumber daya. Penghindaran deadlock membutuhkan informasi tentang sumber daya yang mana yang akan suatu proses meminta dan berapa lama akan digunakan. Hal ini seakan-akan melakukan suatu hal yang fatal. maka kita akan sampai pada kondisi deadlock yang dapat berpengaruh terhadap performance sistem karena sumber daya tidak dapat digunakan oleh proses sehingga proses-proses yang lain juga terganggu.5. Setelah diketahui sistem mana saja yang terlibat maka diadakan proses untuk memperbaiki dan menjadikan sistem berjalan kembali. maka tabel akan penuh. Deadlock Page 8 . Dengan informasi tersebut dapat diputuskan apakah suatu proses harus menunggu atau tidak. Dalam algoritma ini dikatakan bahwa untuk menghadapi Deadlock ialah dengan berpura-pura bahwa tidak ada masalah apa pun. 2.2 Mendeteksi dan Memperbaiki Caranya ialah dengan cara mendeteksi jika terjadi Deadlock pada suatu proses maka dideteksi sistem mana yang terlibat di dalamnya. dan juga tidak didukung dengan pendeteksian deadlock serta pencegahannya.5. tetapi sistem operasi Unix menanggulangi Deadlock dengan cara ini dengan tidak mendeteksi Deadlock dan membiarkannya secara otomatis mematikan program sehingga seakan-akan tidak terjadi apa pun. Jadi jika terjadi Deadlock.

Kondisi Aman (Safe State) Suatu keadaan dapat dinyatakan sebagai safe state jika tidak terjadi deadlock dan terdapat cara untuk memenuhi semua permintaan sumber daya yang ditunda tanpa menghasilkan deadlock. proses yang meminta akan di-suspend sampai suatu waktu permintaannya aman untuk diberikan. Kondisi aman yang dimaksudkan selanjutnya disebut sebagai safe-state. sedangkan keadaan yang tidak memungkinkan untuk diberikan sumber daya yang diminta disebut unsafe-state. Metode ini memeriksa dampak pemberian akses pada suatu proses. Memeriksa dengan algoritma tertentu. 2. Permintaan sumber daya dikabulkan selama memungkinkan. Kondisi Tak Aman (Unsafe State) Suatu state dinyatakan sebagai state tak selamat (unsafe state) jika tidak terdapat cara untuk memenuhi Deadlock Page 9 .Hal-hal yang terjadi dalam mendeteksi adanya Deadlock adalah: a. a. maka sumber daya akan diberikan pada proses yang meminta. Kondisi ini terjadi ketika setelah sumber daya yang sebelumnya dipegang oleh proses lain telah dilepaskan. Jika tidak aman. jika pemberian akses tidak mungkin menuju kepada deadlock.5. Pemeriksaan adanya Deadlock dapat dilakukan setiap ada sumber daya yang hendak digunakan oleh sebuah proses. Sistem operasi memeriksa adakah kondisi circular wait secara periodik. Dengan cara mengikuti urutan tertentu. c. d.3 Penghindaran Pendekatan metode ini adalah dengan hanya memberi kesempatan ke permintaan sumber daya yang tidak mungkin akan menyebabkan deadlock. b. b.

Coffman (1971) Deadlock Page 10 . 2. Sistem sudah harus dapat mengenali bahwa sumber daya itu aman atau tidak (tidak terkena deadlock). setelah itu baru dialokasikan. Pada sistem deadlock avoidance (penghindaran) dilakukan dengan cara memastikan bahwa program memiliki maksimum permintaan. tetapi tidak selamanya status tidak aman mengakibatkan status deadlock melainkan ada kemungkinan dapat terjadi.5. Tetapi pencegahan akan mengakibatkan kinerja utilisasi sumber daya yang buruk.4 Pencegahan Metode Pencegahan dianggap sebagai solusi yang bersih dipandang dari sudut tercegahnya deadlock. Metode pencegahan menggunakan pendekatan dengan cara meniadakan empat syarat yang dapat menyebabkan deadlock terjadi pada saat eksekusi. Baik mengadakan permintaan awal atau pun saat meminta permintaan sumber daya tambahan. Dengan kata lain cara sistem ini memastikan terlebih dahulu bahwa sistem akan selalu dalam kondisi aman. sistem harus selalu berada dalam kondisi aman.semua permintaaan yang saat ini ditunda dengan menjalankan proses-proses dengan suatu urutan. Status Aman Status ini terjadi jika sistem dapat mengalokasikan sumber daya bagi tiap proses dalam keadaan tertentu dan masih dapat terjadi deadlock. Status aman bukanlah status deadlock. jadi status deadlock merupakan status tidak aman. Pada sistem kebanyakan permintaan terhadap sumber daya dilakukan sebanyak sekali saja.

Cara kedua dengan meniadakan kondisi hold and wait terlihat lebih menjanjikan. b. Tidak semua dapat di-spool. b. Masalah yang mungkin terjadi: a. jadi mutual exclusion benar-benar tidak dapat dihilangkan. Deadlock Page 11 .Syarat pertama yang akan dapat ditiadakan adalah Mutual Exclusion. Jika suatu proses yang sedang menggunakan sumber daya dapat dicegah agar tidak dapat menunggu sumber daya yang lain. yaitu dengan mengantrikan job-job pada antrian dan akan dilayani satu-satu. Namun jika membiarkan ada dua atau lebih proses mengakses sebuah sumber daya yang sama akan menyebabkan chaos. Langkah yang digunakan adalah dengan membuat proses agar meminta sumber daya yang mereka butuhkan pada awal proses sehingga dapat dialokasikan sumber daya yang dibutuhkan. Langkah yang digunakan adalah dengan spooling sumber daya. Kompetisi pada ruang disk untuk spooling sendiri dapat mengarah pada deadlock. Namun jika terdapat sumber daya yang sedang terpakai maka proses tersebut tidak dapat memulai prosesnya. Sulitnya mengetahui berapa sumber daya yang akan dibutuhkan pada awal proses. maka deadlock dapat dicegah. Beberapa masalah yang mungkin terjadi adalah: a. Tidak optimalnya pengunaan sumber daya jika ada sumber daya yang digunakan hanya beberapa waktu dan tidak digunakan tapi tetap dimiliki oleh suatu proses yang telah memintanya dari awal. tabel proses sendiri tidak mungkin untuk di-spool. jika tidak ada sumber daya yang secara khusus diperuntukkan bagi suatu proses maka tidak akan pernah terjadi deadlock. Hal inilah yang menyebabkan mengapa syarat pertama tidak dapat ditiadakan.

Cara terakhir adalah dengan meniadakan syarat keempat circular wait. Membuat penomoran pada proses proses yang mengakses sumber daya.Meniadakan syarat ketiga non preemptive ternyata tidak lebih menjanjikan dari meniadakan syarat kedua. tetapi permintaannya harus dibuat terurut. untuk suatu proses yang kompleks dibutuhkan banyak sumber daya pada saat yang bersamaan. Sedangkan dengan penomoran masalah yang dihadapi adalah tidak terdapatnya suatu penomoran yang dapat memuaskan semua pihak. Deadlock Page 12 . Mengatur agar setiap proses hanya dapat menggunakan sebuah sumber daya pada suatu waktu. jika menginginkan sumber daya lain maka sumber daya yang dimiliki harus dilepas. Suatu proses dimungkinkan untuk dapat meminta sumber daya kapan pun. yaitu: a. karena dengan meniadakan syarat ketiga maka suatu proses dapat dihentikan ditengah jalan. b. Hal ini tidak dimungkinkan karena hasil dari suatu proses yang dihentikan menjadi tidak baik. Masalah yang mungkin terjadi dengan mengatur bahwa setiap proses hanya dapat memiliki satu proses adalah bahwa tidak semua proses hanya membutuhkan satu sumber daya. Terdapat dua pendekatan.

kemungkinan besar deadlock dapat terjadi. 3. 3. • Sebenarnya deadlock dapat disebabkan oleh empat hal yaitu: 1.1 Kesimpulan Dari uraian diatas. maka dapat ditarik kesimpulan yaitu: • Deadlock adalah suatu kondisi dimana sekumpulan proses tidak dapat berjalan kembali akibat kompetisi memperebutkan sumber daya.2 Saran Saya sebagai penulis menyarankan agar setiap sistem yang akan kita buat memiliki sebuah algoritma untuk menangani deadlock. Proses memegang dan menunggu. 2. sistem harus menyediakan algoritma pendeteksian deadlock dan algoritma pemulihan deadlock. Pada keadaan seperti ini. • Sebuah proses berada dalam keadaan deadlock apabila semua proses berada dalam keadaan menunggu (di dalam waiting queue) peristiwa yang hanya bisa dilakukan oleh proses yang berada dalam waiting queue tersebut.BAB III PENUTUP 3. Apabila pada sebuah sistem tidak tersedia pencegahan ataupun penghindaran deadlock. Deadlock Page 13 . Proses Menunggu dengan siklus deadlock tertentu. Proses Mutual Exclusion. 4. Proses Preemption.

Sign up to vote on this title
UsefulNot useful