Algoritma Ostrich dan Deadlock

A. DEADLOCK



Deadlock adalah suatu kondisi dimana dua proses atau lebih saling menunggu proses yang lain untuk melepaskan resource (sumber daya) yang sedang dipakai. Karena beberapa proses itu saling menunggu, maka tidak terjadi kemajuan dalam kerja proses-proses tersebut.

Deadlock dalam arti sebenarnya adalah kebuntuan. Kebuntuan yang dimaksud dalam sistem operasi adalah kebuntuan proses. Deadlock adalah masalah yang biasa terjadi ketika banyak proses yang
membagi sebuah resource yang hanya boleh dirubah oleh satu proses saja
dalam satu waktu. Jadi deadlock ialah suatu kondisi dimana proses tidak berjalan lagi atau pun tidak ada komunikasi lagi antar proses. Salah satu contoh sebuah deadlock:
  • Proses A menggunakan CD-ROM.
  • Proses B menggunakan Scanner.
  • Proses A memint
  • Scanner (tanpa melepas CD-ROM) → menunggu.
  • Proses B meminta CD-ROM (tanpa melepas Scanner)→ menunggu.
  • Menunggu... menunggu... DEADLOCK.
Adapun 4 kondisi penyebab deadlock adalah sebagai berikut :
  1. Mutual Exclusion
    Hanya ada satu proses yang boleh memakai sumber daya, 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.
  2. 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.
  3. No Preemption
    Sumber daya yang ada pada sebuah proses tidak boleh diambil begitu saja oleh proses lainnya. Untuk mendapatkan sumber daya tersebut, maka harus dilepaskan terlebih dahulu oleh proses yang memegangnya, selain itu seluruh proses menunggu dan mempersilahkan hanya proses yang memiliki sumber daya yang boleh berjalan.
  4. Circular Wait
    Kondisi seperti rantai, yaitu sebuah proses membutuhkan sumber daya yang dipegang proses berikutnya.

B. ALGORITMA OSTRICH

Ostrich Facts | Ostriches | African Animals
Dalam algoritma ini dikatakan bahwa untuk menghadapi Deadlock ialah dengan berpura-pura bahwa tidak ada masalah apa pun. Diibaratnya seperti burung unta yang menempelkan kepalanya di pasir dan berpura-pura tidak terjadi masalah apa pun.Hal ini seakan-akan melakukan suatu hal yang fatal, tetapi sistem operasi 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, maka tabel akan penuh, sehingga proses yang menjalankan proses melalui operator harus menunggu pada waktu tertentu dan mencoba lagi.

Untuk memastikan sistem tidak memasuki deadlock, sistem dapat menggunakan pencegahan deadlock atau penghindaran deadlock. Penghindaran deadlock membutuhkan informasi tentang sumber daya yang mana yang akan suatu proses meminta dan berapa lama
akan digunakan. Dengan informasi tersebut dapat diputuskan apakah suatu proses harus
menunggu atau tidak. Hal ini disebabkan oleh keberadaan sumber daya, apakah ia sedang
digunakan oleh proses lain atau tidak. Algortima Ostrich di gunakan oleh dua metode sebagai berikut :
  1. Trade-offs : merupakan metode penanganan deadlock dengan sistem dimana ada asumsi bahwa suatu masalah (dalam hal ini deadlock) jarang terjadi atau masalah tersebut belum tentu benar bisa saja sewaktu-waktu berubah atau bahkan akan kembali terjadi, sehingga jangan terlalu terpaku akan satu masalah yang ada.
  2. Pendekatan Hybird : merupakan metode yang mengasumsikan masalah (dalam hal ini misal deadlock) sangat jarang terjadi atau bahkan tidak akan pernah terjadi sama sekali, dan biasanya bisa saja beralih pada algoritma yang lebih kompleks untuk mengetahui masalah tersebut benar-benar terjadi atau tidak.

Mungkin sekian penjelasan dari algoritma ostrich dan deadlock ini, materi bisa di lihat di youtube saya di bawah ini :

DAFTAR PUSTAKA

Komentar

Postingan Populer