Posted by : Unknown Jan 13, 2015

Selamat malam Gan

post ini akan melanjuti dari post siang tadi dan materi sekarang yaitu :

DEADLOCK & STARVATION
dibawah berikut bagian-bagian dari materi Deadlock & Starvation
  1. Definisi Deadlock
  2. Penyebab Deadlock
  3. Penanggulangan Deadlock
  4. Algoritma-Algoritma
  5. Starvation
sekarang saya akan membahas tahap 1 yaitu Definisi Deadlock, apa kalian tahu apa itu Deadlock?
Deadlock dalam arti sebenarnya adalah kebuntuan.
Kebuntuan yang dimaksud dalam sistem operasi adalah kebuntuan proses.
Jadi Deadlock ialah suatu kondisi dimana proses tidak berjalan lagi atau pun tidak ada komunikasi lagi antar proses.

dan ini definisi Deadlock menurut masing-masing tertentu:
  • Deadlock: sekumpulan proses yg menunggu event yang hanya bisa dimunculkan oleh salah satu dari proses anggotaTidak ada proses yang bisa berlanjut, melepaskan resources, atau diaktifkan kembali.Berawal dari situasi supply resources lebih kecil daripada demand.
  • Deadlock adalah keadaan dimana dua program memegang kontrol terhadap sumber daya yang dibutuhkan oleh program yang lain.Tidak ada yang dapat melanjutkan proses masing-masing sampai program yang lain memberikan sumber dayanya, tetapi tidak ada yang mengalah.
Ilustrasi Pada Deadlock
contohnya pada penyebrangan jalan 

contoh pada persimpangan jalan

nah sekarang membahas tahap ke 2 yaitu : Penyebab Deadlock
Penyebab Deadlock
Kondisi mutual exclusion
  • Hanya ada satu proses yang menggunakan suatu sumber daya.
  • Proses lain yang juga ingin menggunakannya harus menunggu hingga sumber daya tersebut dilepaskan oleh proses yang telah selesai  menggunakannya.
Kondisi hold and wait
Suatu proses yang memiliki minimal satu buah sumber daya melakukan request lagi terhadap  sumber daya. Tetapi, sumber daya yang dimintanya sedang dimiliki oleh proses yang lain.
Kondisi non-preemptive.
  • Sebuah sumber daya hanya dapat dilepaskan oleh proses yang memilikinya secara sukarela setelah ia selesai menggunakannya.
Kondisi circular wait.
  • Kondisi seperti rantai, yaitu sebuah proses membutuhkan sumber daya yang dipegang proses berikutnya.
selanjutnya membahas tahap ke 3 yaitu : Penanggulangan Deadlock.

dibawah berikut ada macam macam Penanggulangan Deadlock
  • Mengabaikan masalah Deadlock.
  • Mendeteksi dan memperbaiki.
  • Penghindaran yang terus menerus dan pengalokasian yang baik dengan Deadlock avoidance.
  • Pencegahan yang secara struktur Deadlock prevention.

1 Mengabaikan Masalah Deadlock
Metode ini lebih dikenal dengan Algoritma Ostrich.
  • Algoritma ini membutuhkan informasi tentang sumber daya mana yang akan diminta suatu proses dan berapa lama akan digunakan.
  • Dengan informasi tersebut dapat diputuskan apakah suatu proses harus menunggu atau tidak.
  • Untuk menghadapi Deadlock menurut algoritma ini adalah dengan berpura-pura bahwa tidak ada masalah apa pun.
2 Mendeteksi & Memperbaiki
Algoritma ini akan mendeteksi sistem mana yang terlibat di dalamnya.
  • Setelah diketahui sistem mana saja yang terlibat maka diadakan proses untuk memperbaiki dan menjadikan sistem berjalan kembali.
Hal-hal yang terjadi dalam mendeteksi adanya Deadlock adalah:
  • Permintaan sumber daya dikabulkan selama memungkinkan.
  • Sistem operasi memeriksa adakah kondisi circular wait secara periodik.
  • Pemeriksaan adanya deadlock dapat dilakukan setiap ada sumber daya yang hendak digunakan oleh sebuah proses.
  • Memeriksa dengan algoritma tertentu.
Ada beberapa jalan untuk kembali dari Deadlock, yaitu:
  • Lewat Preemption.
  • Lewat Melacak Kembali.
  • Lewat membunuh proses yang  menyebabkan Deadlock.
Lewat Preemption
  • Dengan cara untuk sementara waktu menjauhkan sumber daya dari pemakainya, dan memberikannya pada proses yang lain.
  • Ide untuk memberi pada proses lain tanpa diketahui oleh pemilik dari sumber daya tersebut tergantung dari sifat sumber daya itu sendiri.
  • Perbaikan dengan cara ini sangat sulit atau dapat dikatakan tidak mungkin.
  • Setelah melakukan preemption, maka dilakukan pengkondisian proses tersebut dalam kondisi aman dan proses dilakukan lagi dalam kondisi tersebut.
Lewat Melacak Kembali
  • Setelah melakukan beberapa langkah preemption, maka proses utama yang diambil sumber dayanya akan berhenti dan tidak dapat melanjutkan kegiatannya.
  • Oleh karena itu dibutuhkan langkah untuk kembali pada keadaan aman dimana proses masih berjalan dan memulai proses lagi dari situ.
  • Untuk beberapa sistem mencoba dengan cara mengadakan pengecekan beberapa kali secara periodic dan menandai tempat terakhir kali menulis ke disk, sehingga saat terjadi Deadlock dapat mulai dari tempat terakhir penandaannya berada.
Lewat membunuh proses yang  menyebabkan Deadlock
  • Cara yang paling umum ialah membunuh semua proses yang mengalami Deadlock.
  • Cara ini paling umum dilakukan dan dilakukan oleh hampir semua sistem operasi.
Kriteria seleksi korban ialah:
  • Yang paling jarang memakai prosesor.
  • Yang paling sedikit hasil programnya.
  • Yang paling banyak memakai sumber daya sampai saat ini.
  • Yang alokasi sumber daya totalnya tersedikit.
  • Yang memiliki prioritas terkecil.
3 Menghindari Deadlock
Ada 2 cara menghindari deadlock:
  • Jangan memulai proses apa pun jika proses tersebut akan membawa kita pada kondisi Deadlock, sehingga tidak mungkin terjadi Deadlock karena ketika akan menuju Deadlock sudah dicegah.
  • Jangan memberi kesempatan pada suatu proses untuk meminta sumber daya lagi jika penambahan ini akan membawa kita pada suatu keadaan Deadlock.
4 Pencegahan Deadlock
Mutual Exclusion
  • Kondisi sumber daya yang tidak dapat dibagi (non-sharable). Jadi, pencegahan kondisi yang pertama ini sulit karena memang sifat dasar dari sumber daya yang tidak dapat dibagi.
Hold and Wait
  • Sistem perlu memastikan bahwa setiap kali proses meminta sumber daya, ia tidak sedang memiliki sumber daya lain. Atau bisa dengan proses meminta dan mendapatkan sumber daya yang dimilikinya sebelum melakukan eksekusi, sehingga tidak perlu menunggu.
Non Preemption.
  • Bila ada proses yang sedang memiliki sumber daya dan ingin mendapatkan sumber daya tambahan, namun tidak bisa langsung dialokasikan, maka akan preempted.
  • Sumber daya yg dimiliki proses tadi akan diberikan proses lain yg membutuhkan & sedang menunggu.
  • Proses akan mengulang kembali eksekusinya setelah semua sumber daya yang dibutuhkan didapatkan.
Circular Wait
  1. Kondisi 'lingkaran setan' ini dapat 'diputus' dengan jalan menentukan total kebutuhan terhadap semua tipe sumber daya yang ada.
  2. Selain itu, digunakan pula mekanisme enumerasi terhadap tipe-tipe sumber daya yang ada.
  3. Setiap proses yang akan meminta sumber daya harus meminta sumber daya dengan urutan yang menaik.Misalkan sumber daya printer memiliki nomor 1,CD-ROM memiliki nomor 3.
  • Proses boleh melakukan permintaan terhadap printer dan kemudian CD-ROM, namun tidak boleh sebaliknya.
Selanjutnya masuk ke tahap 4 yaitu : Algoritma-Algoritma

Algoritma Bankir
Menurut Dijkstra (1965) algoritma penjadwalan dapat menghindari Deadlock dan algoritma penjadwalan itu lebih dikenal dengan sebutan algoritma bankir.
  • Algoritma ini dapat digambarkan sebagai seorang banker yang berurusan dengan kelompok orang yang meminta pinjaman.
  • Jadi kepada siapa dia dapat memberikan pinjamannya.
  • Dan setiap pelanggan memberikan batas pinjaman maksimum kepada setiap peminjam dana.
Algoritma Bankir
Secara umum algoritma bankir dapat dibagi menjadi empat struktur data:
1.Tersedia.
  • Jumlah sumber daya/dana yang tersedia.
2.Maksimum.
  • Jumlah sumber daya maksimum yang diminta oleh setiap proses.
3.Alokasi.
  • Jumlah sumber daya yang dibutuhkan oleh setiap proses.
4.Kebutuhan.
  • Maksimum-alokasi, sisa sumber daya yang dibutuhkan oleh proses setelah dikurangi dengan yang dialokasikan.
Algoritma Bankir
  • Deadlock akan terjadi apabila terdapat seorang peminjam yang belum mengembalikan uangnya dan ingin meminjam kembali, padahal uang yang belum dikembalikan tadi dibutuhkan oleh peminjam lain yang juga belum mengembalikan uang pinjamannya.
Selanjutnya tahap terakhir yaitu : Starvation.apa kalian tahu apa Starvation?
Starvation adalah sebuah kondisi dimana ada satu atau lebih proses yang tidak pernah dieksekusi karena tidak pernah mendapat jatah sumber daya.

Ilustrasi Starvation
Terdapat tiga proses, yaitu P1, P2 dan P3.
  • P1, P2 dan P3 memerlukan pengaksesan sumber daya R secara periodik.
Skenario berikut terjadi :
  • P1 sedang diberi sumber daya R sedangkan P2 dan P3 di-blocked menunggu sumber daya R.
  • Ketika P1 keluar dari critical section, maka P2 dan P3 diijinkan mengakses R.
  • Asumsi P3 diberi hak akses, kemudian setelah selesai, hak akses kembali diberikan ke P1 yang saat itu kembali membutuhkan sumber daya R.
  • Jika pemberian hak akses bergantian terus-menerus antara P1 dan P3, maka P2 tidak pernah memperoleh pengaksesan sumber daya R.
  • Dalam kondisi ini memang tidak terjadi deadlock, hanya saja P2 mengalami starvation (tidak ada kesempatan untuk dilayani).

nah sampai disini saja gan
materi selanjutnya akan di post berikutnya

Leave a Reply

Subscribe to Posts | Subscribe to Comments

Welcome to My Blog

Pages

Total Pageviews

- Copyright © Science Krisna -Robotic Notes- Powered by Blogger - Designed by Johanes Djogan -