P. 1
pengertian deadlock

pengertian deadlock

|Views: 183|Likes:
Published by I Kadek Adi Permana
pengertian deadlock didalam sebuah sistem operasi
pengertian deadlock didalam sebuah sistem operasi

More info:

Published by: I Kadek Adi Permana on Feb 05, 2013
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

11/10/2015

pdf

text

original

DEADLOCK

Oleh:

I Kadek Adi Permana 110010467 PE III

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

Om” Denpasar. 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. “Om Shanti. Shanti. Penulis menyadari bahwa laporan ini masih banyak memiliki kekurangan atau ketidak lengkapan isi dari pada laporan ini. Akhir kata saya ucapkan terima kasih.KATA PENGANTAR “Om swastyastu” Puji syukur penulis panjatkan kehadapan Ida Sang Hyang Widhi Wasa. Semoga laporan ini dapat memberi pengetahuan tambahan bagi pembaca. Shanti. oleh sebab itu kritik dan saran yang mengarah pada perbaikan sangat diharapkan untuk kebaikan dan kesempurnaan laporan ini.

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

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

1.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. Deadlock Page 2 .4 Manfaat Penulisan Manfaat penulisan ini untuk pembaca adalah agar bisa menambah wawasannya.

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

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

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

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

d. berjalan.a.5 Penanganan Deadlock Terdapat beberapa cara dalam menangani deadlock. Circular Wait Kondisi seperti rantai. c. Untuk mendapatkan sumber daya tersebut. 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. Mendeteksi dan memperbaiki. Penghindaran. yaitu sebuah proses membutuhkan sumber daya yang dipegang proses berikutnya. Pencegahan. yang secara umumnya ada 4 cara untuk menanganinya. yaitu: a. b. maka harus dilepaskan terlebih dahulu oleh proses yang memegangnya. Deadlock Page 7 . Mutual Exclusion Hanya ada satu proses yang boleh memakai sumber daya. b. Mengabaikan masalah. selain itu seluruh proses menunggu dan mempersilahkan hanya proses yang memiliki sumber daya yang boleh 2. No Preemption Sumber daya yang ada pada sebuah proses tidak boleh diambil begitu saja oleh proses lainnya. d. c. 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. hal ini dapat menyebabkan kelaparan sumber daya sebab dapat saja sebuah proses tidak mendapat sumber daya dalam waktu yang lama.

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

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

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

maka deadlock dapat dicegah. Hal inilah yang menyebabkan mengapa syarat pertama tidak dapat ditiadakan. jika tidak ada sumber daya yang secara khusus diperuntukkan bagi suatu proses maka tidak akan pernah terjadi deadlock. Langkah yang digunakan adalah dengan spooling sumber daya. 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. jadi mutual exclusion benar-benar tidak dapat dihilangkan.Syarat pertama yang akan dapat ditiadakan adalah Mutual Exclusion. Langkah yang digunakan adalah dengan membuat proses agar meminta sumber daya yang mereka butuhkan pada awal proses sehingga dapat dialokasikan sumber daya yang dibutuhkan. tabel proses sendiri tidak mungkin untuk di-spool. 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. Jika suatu proses yang sedang menggunakan sumber daya dapat dicegah agar tidak dapat menunggu sumber daya yang lain. b. b. Beberapa masalah yang mungkin terjadi adalah: a. Masalah yang mungkin terjadi: a. Kompetisi pada ruang disk untuk spooling sendiri dapat mengarah pada deadlock. Tidak semua dapat di-spool. Namun jika terdapat sumber daya yang sedang terpakai maka proses tersebut tidak dapat memulai prosesnya. Deadlock Page 11 . Cara kedua dengan meniadakan kondisi hold and wait terlihat lebih menjanjikan. Sulitnya mengetahui berapa sumber daya yang akan dibutuhkan pada awal proses.

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

Proses memegang dan menunggu. Proses Preemption.1 Kesimpulan Dari uraian diatas. 3.BAB III PENUTUP 3. 2. • Sebenarnya deadlock dapat disebabkan oleh empat hal yaitu: 1. maka dapat ditarik kesimpulan yaitu: • Deadlock adalah suatu kondisi dimana sekumpulan proses tidak dapat berjalan kembali akibat kompetisi memperebutkan sumber daya. Deadlock Page 13 . • 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. Apabila pada sebuah sistem tidak tersedia pencegahan ataupun penghindaran deadlock. Proses Mutual Exclusion. Pada keadaan seperti ini. kemungkinan besar deadlock dapat terjadi.2 Saran Saya sebagai penulis menyarankan agar setiap sistem yang akan kita buat memiliki sebuah algoritma untuk menangani deadlock. 4. 3. sistem harus menyediakan algoritma pendeteksian deadlock dan algoritma pemulihan deadlock. Proses Menunggu dengan siklus deadlock tertentu.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->