Kebuntuan di Operating Sistem: Apa itu, Tunggu Melingkar (Contoh)
⚡ Ringkasan Cerdas
Deadlock dalam sistem operasi terjadi ketika sekumpulan proses terblokir karena masing-masing memegang suatu sumber daya dan menunggu sumber daya lain yang dipegang oleh proses yang berbeda, sehingga menciptakan rantai melingkar di mana tidak ada proses yang dapat melanjutkan.
Apa itu Deadlock?
jalan buntu adalah situasi yang terjadi di suatu sistem operasi Deadlock terjadi ketika suatu proses memasuki keadaan menunggu karena proses lain yang sedang menunggu sedang memegang sumber daya yang dibutuhkan. Deadlock adalah masalah umum dalam multiprocessing, di mana beberapa proses berbagi jenis sumber daya eksklusif bersama yang dikenal sebagai soft lock atau software lock.
Ketika terjadi kebuntuan (deadlock), tidak satu pun dari proses yang terlibat dapat berlanjut, sehingga pekerjaan yang terpengaruh berhenti sampai sistem operasi turun tangan.
Contoh Deadlock
- Contoh nyata di dunia nyata adalah lalu lintas yang hanya bergerak ke satu arah.
- Di sini, jembatan dianggap sebagai sumber daya.
- Jadi, ketika terjadi kebuntuan, hal itu dapat diatasi jika salah satu mobil mundur (mengambil alih sumber daya dan melakukan rollback).
- Beberapa mobil mungkin harus mundur jika terjadi situasi buntu.
- Jadi, kelaparan itu mungkin terjadi.
Contoh kebuntuan
Apa itu menunggu melingkar?
Suatu proses sedang menunggu sumber daya yang dipegang oleh proses kedua, yang juga sedang menunggu sumber daya yang dipegang oleh proses ketiga, dan seterusnya. Ini berlanjut hingga proses terakhir menunggu sumber daya yang dipegang oleh proses pertama. Hal ini menciptakan rantai melingkar.
Sebagai contoh, Proses A dialokasikan Sumber Daya B saat sedang meminta Sumber Daya A. Dengan cara yang sama, Proses B dialokasikan Sumber Daya A saat sedang meminta Sumber Daya B. Hal ini menciptakan lingkaran tunggu yang berulang.
Contoh Penantian Melingkar
Sebagai contoh, sebuah komputer memiliki tiga drive USB dan tiga proses. Masing-masing dari ketiga proses tersebut memegang satu drive USB. Jadi, ketika setiap proses meminta drive lain, ketiga proses tersebut mencapai situasi kebuntuan (deadlock), karena masing-masing menunggu drive USB dilepaskan sementara drive tersebut masih digunakan. Hal ini mengakibatkan rantai melingkar.
Contoh menunggu melingkar
Deteksi Kebuntuan di OS
Terjadinya deadlock dapat dideteksi oleh penjadwal sumber daya. Penjadwal sumber daya membantu sistem operasi untuk menjaga track adalah jumlah total sumber daya yang dialokasikan ke berbagai proses. Setelah kebuntuan terdeteksi, kebuntuan tersebut dapat diatasi dengan mengambil alih sumber daya, membatalkan proses, atau menghentikan satu atau lebih proses yang mengalami kebuntuan.
Pencegahan Kebuntuan di OS
Penting untuk mencegah terjadinya deadlock sebelum hal itu terjadi. Sistem memeriksa setiap transaksi sebelum dieksekusi untuk memastikan transaksi tersebut tidak menyebabkan deadlock. Bahkan operasi kecil yang berpotensi menyebabkan deadlock di masa mendatang pun tidak akan pernah diizinkan untuk dieksekusi.
Pencegahan kebuntuan adalah serangkaian metode untuk memastikan bahwa setidaknya satu dari empat kondisi yang diperlukan tidak dapat terpenuhi.
Tidak Ada Preemption
Suatu sumber daya hanya dapat dilepaskan secara sukarela oleh proses yang memegangnya, setelah proses tersebut menyelesaikan tugasnya.
- Jika suatu proses yang sedang memegang beberapa sumber daya meminta sumber daya lain yang tidak dapat segera dialokasikan kepadanya, maka semua sumber dayanya akan dilepaskan.
- Sumber daya yang diambil alih ditambahkan ke daftar sumber daya yang sedang ditunggu oleh proses tersebut.
- Proses hanya akan dimulai ulang ketika dapat memperoleh kembali sumber daya lamanya serta sumber daya baru yang dimintanya.
Saling Pengecualian
Mutual Exclusion adalah kepanjangan dari Mutex. Ini adalah jenis biner khusus. tiang sinyal yang digunakan untuk mengontrol akses ke sumber daya bersama. Ini mencakup mekanisme pewarisan prioritas untuk menghindari masalah inversi prioritas yang berkepanjangan dan menjaga agar tugas-tugas dengan prioritas lebih tinggi diblokir dalam waktu sesingkat mungkin.
Sumber daya bersama seperti file hanya baca tidak pernah menyebabkan kebuntuan (deadlock), tetapi sumber daya seperti printer dan drive pita memerlukan akses eksklusif oleh satu proses saja.
Tahan dan Tunggu
Dalam kondisi ini, proses harus dihentikan agar tidak menggunakan satu atau lebih sumber daya sambil menunggu satu atau lebih sumber daya lainnya secara bersamaan.
Tunggu Melingkar
Metode ini memberlakukan pengurutan total dari semua jenis sumber daya. Pencegahan penantian melingkar juga mengharuskan setiap proses meminta sumber daya dalam urutan enumerasi yang meningkat.
Penghindaran Kebuntuan Algorithms
Lebih baik menghindari kebuntuan daripada mengambil tindakan setelah kebuntuan terjadi. Penghindaran membutuhkan informasi tambahan, seperti bagaimana sumber daya akan digunakan. Penghindaran kebuntuan adalah model yang berguna di mana setiap proses menyatakan jumlah maksimum sumber daya dari setiap jenis yang mungkin dibutuhkannya.
Penghindaran Algorithms
Algoritma penghindaran kebuntuan secara dinamis menilai keadaan alokasi sumber daya sehingga situasi menunggu berulang tidak akan pernah terjadi.
Untuk satu contoh tipe sumber daya:
- Gunakan grafik alokasi sumber daya.
- Siklus dalam grafik merupakan syarat perlu dan cukup untuk terjadinya kebuntuan (deadlock).
Untuk beberapa instance dari tipe sumber daya yang sama:
- Suatu siklus diperlukan tetapi tidak cukup untuk terjadinya kebuntuan (deadlock).
- Gunakan Algoritma perbankan.
Perbedaan Antara Kelaparan dan Kebuntuan
Berikut beberapa perbedaan penting antara kebuntuan dan kelaparan:
| jalan buntu | Kelaparan |
|---|---|
| Situasi kebuntuan terjadi ketika salah satu proses terblokir. | Kelaparan (starvation) adalah situasi di mana semua proses berprioritas rendah terblokir sementara proses berprioritas tinggi dieksekusi. |
| Kebuntuan adalah proses yang tak ada habisnya. | Kelaparan adalah penantian yang panjang, tetapi bukan proses yang tak berujung. |
| Setiap kebuntuan selalu berujung pada kelaparan. | Tidak setiap kelaparan pasti berujung pada kebuntuan. |
| Deadlock terjadi karena pengecualian bersama, penahanan dan penantian, tidak adanya preemption, dan penantian melingkar terjadi secara bersamaan. | Hal ini terjadi karena prioritas yang tidak terkontrol dan manajemen sumber daya yang buruk. |
Keuntungan Deadlock
Berikut adalah kelebihan menggunakan metode penanganan deadlock:
- Situasi ini cocok untuk proses yang melakukan aktivitas dalam satu periode singkat.
- Tidak diperlukan preemption untuk terjadinya deadlock.
- Ini adalah metode yang praktis bila diterapkan pada sumber daya yang kondisinya dapat disimpan dan dipulihkan dengan mudah.
- Hal ini memungkinkan untuk diterapkan melalui pemeriksaan pada saat kompilasi.
- Hal ini tidak memerlukan komputasi saat runtime, karena masalahnya sudah terpecahkan dalam desain sistem.
Kerugian Deadlock
Berikut adalah kekurangan dari penggunaan metode penanganan deadlock:
- Hal ini menunda dimulainya proses.
- Proses harus mengetahui kebutuhan sumber daya di masa depan jauh-jauh hari sebelumnya.
- Hal ini lebih sering terjadi daripada yang seharusnya.
- Hal ini melarang permintaan sumber daya tambahan.
- Hal ini memiliki kerugian preemption yang melekat.



