Kebuntuan di Operating Sistem: Apa itu, Tunggu Melingkar (Contoh)
Apa itu Deadlock?
jalan buntu adalah situasi yang terjadi di OS saat suatu proses memasuki status menunggu karena proses lain yang sedang menunggu sedang memegang sumber daya yang diminta. Deadlock adalah masalah umum dalam multiprosesor di mana beberapa proses berbagi jenis sumber daya yang saling eksklusif yang dikenal sebagai soft lock atau perangkat lunak.
Contoh Deadlock
- Contoh dunia nyata adalah lalu lintas yang hanya menuju satu arah.
- Di sini, jembatan dianggap sebagai sumber daya.
- Jadi, bila terjadi Deadlock, bisa dengan mudah diatasi jika satu mobil mundur (Preempt sumber daya dan rollback).
- Beberapa mobil mungkin harus mundur jika terjadi situasi buntu.
- Jadi kelaparan mungkin saja terjadi.

Apa itu menunggu melingkar?
Proses yang satu menunggu sumber daya, yang ditahan oleh proses kedua, yang juga menunggu sumber daya yang ditahan oleh proses ketiga, dan seterusnya. Hal ini akan terus berlanjut hingga proses terakhir menunggu sumber daya yang ditahan oleh proses pertama. Ini menciptakan rantai melingkar.
Misalnya, Proses A dialokasikan Sumber Daya B karena meminta Sumber Daya A. Dengan cara yang sama, Proses B dialokasikan Sumber Daya A, dan meminta Sumber Daya B. Hal ini menciptakan loop tunggu melingkar.
Contoh Penantian Melingkar
Misalnya, komputer memiliki tiga drive USB dan tiga proses. Masing-masing dari tiga proses tersebut dapat menampung salah satu drive USB. Jadi, ketika setiap proses meminta drive lain, ketiga proses tersebut akan mengalami kebuntuan karena setiap proses akan menunggu drive USB dilepaskan, yang saat ini sedang digunakan. Hal ini akan menghasilkan rantai melingkar.
Deteksi Kebuntuan di OS
Terjadinya deadlock dapat dideteksi oleh penjadwal sumber daya. Penjadwal sumber daya membantu OS untuk melacak semua sumber daya yang dialokasikan ke berbagai proses. Jadi, ketika deadlock terdeteksi, hal itu dapat diatasi menggunakan metode yang diberikan di bawah ini:
Pencegahan Kebuntuan di OS
Penting untuk mencegah kebuntuan sebelum hal itu terjadi. Sistem memeriksa setiap transaksi sebelum dieksekusi untuk memastikan tidak menyebabkan situasi kebuntuan. Bahkan perubahan kecil yang terjadi pada operasi yang dapat menyebabkan kebuntuan di masa mendatang juga tidak akan pernah mengizinkan proses untuk dieksekusi.
Ini adalah serangkaian metode untuk memastikan bahwa setidaknya salah satu kondisi tidak dapat dipenuhi.
Tidak ada tindakan pencegahan
Tanpa Preemption – Sumber daya hanya dapat dilepaskan secara sukarela oleh proses yang menahannya setelah proses tersebut menyelesaikan tugasnya
- Jika suatu proses yang menyimpan beberapa sumber daya meminta sumber daya lain yang tidak dapat segera dialokasikan padanya, dalam situasi tersebut, semua sumber daya akan dilepaskan.
- Sumber daya yang didahulukan memerlukan daftar sumber daya untuk proses yang menunggu.
- Proses akan dimulai ulang hanya jika proses dapat memperoleh kembali sumber daya lama dan sumber daya baru yang diminta.
- Jika proses meminta sumber daya lain, ketika tersedia, maka sumber daya tersebut diberikan kepada proses yang meminta.
- Jika ditahan oleh proses lain yang menunggu sumber daya lain, kami melepaskannya dan memberikannya kepada proses yang meminta.
Saling Pengecualian
Pengecualian Bersama adalah bentuk penuh dari Mutex. Ini adalah jenis semaphore biner khusus yang digunakan untuk mengontrol akses ke sumber daya bersama. Ini mencakup mekanisme pewarisan prioritas untuk menghindari masalah inversi prioritas yang diperluas. Hal ini memungkinkan tugas-tugas dengan prioritas lebih tinggi saat ini disimpan dalam keadaan diblokir untuk waktu sesingkat mungkin.
Sumber daya yang dipakai bersama seperti berkas hanya-baca tidak pernah menyebabkan kebuntuan, tetapi sumber daya seperti printer dan tape drive memerlukan akses eksklusif oleh satu proses.
Tahan dan Tunggu
Dalam kondisi ini, proses harus dihentikan dari memegang satu atau beberapa sumber daya sementara secara bersamaan menunggu satu atau beberapa sumber daya lainnya.
Tunggu Melingkar
Ini menerapkan pemesanan total pada semua jenis sumber daya. Penantian melingkar juga mengharuskan setiap proses meminta sumber daya dalam urutan pencacahan yang meningkat.
Penghindaran Kebuntuan Algorithms
Lebih baik menghindari deadlock daripada mengambil tindakan setelah deadlock terjadi. Deadlock memerlukan informasi tambahan, seperti bagaimana sumber daya harus digunakan. Penghindaran deadlock adalah model yang paling sederhana dan paling berguna di mana setiap proses mendeklarasikan jumlah maksimum sumber daya dari setiap jenis yang mungkin dibutuhkannya.
Penghindaran Algorithms
Algoritma penghindaran kebuntuan membantu Anda menilai status alokasi sumber daya secara dinamis sehingga tidak akan pernah terjadi situasi tunggu melingkar.
Satu contoh jenis sumber daya.
- Gunakan grafik alokasi sumber daya
- Siklus yang diperlukan cukup untuk Deadlock
Menggandakan contoh jenis sumber daya.
- Siklus diperlukan tetapi tidak pernah cukup untuk Deadlock.
- Menggunakan algoritma bankir
Perbedaan Antara Kelaparan dan Kebuntuan
Berikut ini adalah beberapa perbedaan penting antara Deadlock dan Starvation:
jalan buntu | Kelaparan |
---|---|
Situasi kebuntuan terjadi ketika salah satu proses terblokir. | Starvation adalah situasi di mana semua proses berprioritas rendah diblokir, dan proses berprioritas tinggi dijalankan. |
Kebuntuan adalah proses yang tak ada habisnya. | Kelaparan adalah penantian yang panjang namun bukan proses yang tidak ada habisnya. |
Setiap Deadlock selalu ada kelaparan. | Setiap kelaparan tidak selalu memiliki jalan buntu. |
Deadlock terjadi kemudian Mutual exclusion, hold dan wait. Di sini, preemption dan circular wait tidak terjadi secara bersamaan. | Hal ini terjadi karena prioritas dan pengelolaan sumber daya yang tidak terkendali. |
Keuntungan Deadlock
Berikut ini adalah kelebihan/manfaat menggunakan metode Deadlock
- Situasi ini bekerja dengan baik untuk proses yang melakukan satu ledakan aktivitas
- Tidak diperlukan preemption untuk Deadlock.
- Metode yang mudah digunakan ketika diterapkan pada sumber daya yang statusnya dapat disimpan dan dipulihkan dengan mudah
- Layak untuk diterapkan melalui pemeriksaan waktu kompilasi
- Tidak memerlukan komputasi run-time karena masalah telah diselesaikan dalam desain sistem
Kerugian Deadlock
Berikut ini adalah kontra/kelemahan penggunaan metode deadlock
- Menunda inisiasi proses
- Proses harus mengetahui kebutuhan sumber daya di masa depan
- Melakukan pencegahan lebih sering dari yang diperlukan
- Larang mengizinkan permintaan sumber daya tambahan
- Kerugian preemption yang melekat.
Ringkasan
- Definisi Deadlock: Ini adalah situasi yang terjadi di OS ketika suatu proses memasuki keadaan menunggu karena proses menunggu lainnya memegang sumber daya yang diminta
- Penantian sirkuler terjadi ketika suatu proses menunggu sumber daya yang ditahan oleh proses kedua, yang juga menunggu sumber daya yang ditahan oleh proses ketiga, dan seterusnya.
- Terjadinya kebuntuan dapat dideteksi oleh penjadwal sumber daya.
- Penting untuk mencegah kebuntuan sebelum hal itu dapat terjadi.
- Suatu sumber daya hanya dapat dilepaskan secara sukarela oleh proses yang menyimpannya setelah proses tersebut menyelesaikan tugasnya.
- Pengecualian Bersama adalah bentuk penuh dari Mutex. Ini adalah jenis biner khusus tiang sinyal yang digunakan untuk mengontrol akses ke sumber daya bersama.
- Hold and wait merupakan kondisi saat proses harus dihentikan dari menahan satu atau beberapa sumber daya sementara secara bersamaan menunggu satu atau beberapa sumber daya lainnya.
- Penghindaran kebuntuan merupakan model paling sederhana dan paling berguna di mana setiap proses mendeklarasikan jumlah maksimum sumber daya dari setiap jenis yang mungkin diperlukan.
- Algoritma penghindaran kebuntuan membantu Anda menilai status alokasi sumber daya secara dinamis sehingga tidak akan pernah terjadi situasi tunggu melingkar.
- Kebuntuan merupakan proses yang tak ada habisnya, sedangkan kelaparan merupakan penantian yang panjang namun bukan proses yang tak ada habisnya.