Jun 15, 2024 Sistem Operasi

Deadlock pada Sistem Operasi

Deadlock pada sistem operasi membahas tentang apa itu deadlock, apa itu circular wait, algoritma pencegahan deadlock, perbedaan antara deadlock dan starvation, serta keuntungan dan kerugian deadlock.

Apa itu Deadlock?

Deadlock (kebuntuan) adalah situasi yang terjadi di OS ketika suatu proses memasuki keadaan menunggu karena proses lain yang menunggu menahan sumber daya yang diminta. Deadlock adalah masalah umum dalam multi-pemrosesan di mana beberapa proses berbagi jenis sumber daya tertentu 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, ketika Deadlock terjadi, dapat dengan mudah diatasi jika salah satu mobil mundur (Preempt resource dan rollback).
  • Beberapa mobil mungkin harus dicadangkan jika terjadi situasi kebuntuan.
  • Jadi starvation mungkin saja terjadi.
Contoh Kebuntuan
Contoh kebuntuan

Apa itu Circular Wait?

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 ia meminta Sumber Daya B. Hal ini menciptakan loop tunggu melingkar.

Contoh Circular Wait

Misalnya, komputer memiliki tiga drive USB dan tiga proses. Masing-masing dari tiga proses mampu menampung salah satu drive USB. Jadi, ketika setiap proses meminta drive lain, ketiga proses tersebut akan mengalami situasi kebuntuan karena setiap proses akan menunggu drive USB dirilis, yang sedang digunakan. Ini akan menghasilkan rantai melingkar.

Contoh Penantian Melingkar
Contoh menunggu melingkar

Deadlock Detection di OS

Terjadinya kebuntuan dapat dideteksi oleh penjadwal sumber daya. Penjadwal sumber daya membantu OS melacak semua sumber daya yang dialokasikan untuk berbagai proses. Jadi, ketika kebuntuan terdeteksi, dapat diselesaikan dengan menggunakan metode yang diberikan di bawah ini:

Deadlock Prevention di OS

Penting untuk mencegah kebuntuan sebelum hal itu terjadi. Sistem memeriksa setiap transaksi sebelum dieksekusi untuk memastikan tidak menyebabkan situasi kebuntuan. Sedemikian rupa sehingga bahkan perubahan kecil pun terjadi mati sehingga suatu operasi yang dapat menyebabkan Deadlock di masa depan juga tidak pernah mengizinkan proses untuk dijalankan.

Ini adalah serangkaian metode untuk memastikan bahwa setidaknya salah satu kondisi tidak dapat dipenuhi.

No preemptive action (Tidak ada tindakan pencegahan)

No 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.

Mutual Exclusion (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 dibagikan seperti file read-only tidak pernah menyebabkan kebuntuan, namun sumber daya, seperti printer dan tape drive, memerlukan akses eksklusif melalui satu proses.

Hold and Wait (Tahan dan Tunggu)

Dalam kondisi ini, proses harus dihentikan dari memegang satu atau beberapa sumber daya sekaligus menunggu satu atau lebih sumber daya lainnya.

Circular Wait (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.

Deadlock Avoidance Algorithms (Algoritma Penghindaran Kebuntuan)

Lebih baik menghindari kebuntuan daripada mengambil tindakan setelah kebuntuan terjadi. Hal ini memerlukan informasi tambahan, seperti bagaimana sumber daya harus digunakan. Penghindaran kebuntuan adalah model yang paling sederhana dan berguna dimana setiap proses mendeklarasikan jumlah maksimum sumber daya dari setiap jenis yang mungkin diperlukan.

Avoidance Algorithms (Algoritma Penghindaran)

Algoritme penghindaran kebuntuan membantu Anda menilai status alokasi sumber daya secara dinamis sehingga tidak akan pernah terjadi situasi menunggu melingkar.

Satu contoh jenis sumber daya.

  • Gunakan grafik alokasi sumber daya
  • Siklus diperlukan yang cukup untuk Deadlock

Menggandakan contoh jenis sumber daya.

  • Siklus memang diperlukan tetapi tidak pernah cukup untuk Deadlock.
  • Menggunakan algoritma bankir

Perbedaan Antara Starvation dan Deadlock

Berikut beberapa perbedaan penting antara Deadlock dan kelaparan:

Deadlockstarvation
Situasi deadlock terjadi ketika salah satu proses diblokir.Starvation adalah situasi di mana semua proses berprioritas rendah diblokir, dan proses berprioritas tinggi dijalankan.
Kebuntuan adalah proses yang tidak ada habisnya.Satarvation (Kelaparan) adalah penantian yang panjang namun bukan proses yang tidak ada habisnya.
Setiap Deadlock selalu ada starvation.Setiap kelaparan belum tentu menemui jalan buntu.
Kebuntuan terjadi kemudian Pengecualian bersama, tahan dan tunggu. Di sini, preemption dan sirkular menunggu tidak terjadi secara bersamaan.Hal ini terjadi karena prioritas dan pengelolaan sumber daya yang tidak terkendali.

Keuntungan dari Deadlock

Berikut kelebihan/manfaat menggunakan metode Deadlock

  • Situasi ini bekerja dengan baik untuk proses yang melakukan satu rentetan aktivitas
  • Tidak diperlukan tindakan pendahuluan 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 dari Deadlock

Berikut kekurangan penggunaan metode deadlock

  • Menunda inisiasi proses
  • Proses harus mengetahui kebutuhan sumber daya di masa depan
  • Melakukan pencegahan lebih sering dari yang diperlukan
  • Larangan 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 menahan sumber daya yang diminta.
  • Penantian melingkar terjadi ketika suatu proses sedang menunggu sumber daya yang ditahan oleh proses kedua, yang juga menunggu sumber daya yang dipegang oleh proses ketiga, dan seterusnya.
  • Terjadinya kebuntuan dapat dideteksi oleh penjadwal sumber daya.
  • Penting untuk mencegah kebuntuan sebelum hal itu terjadi.
  • Suatu sumber daya hanya dapat dilepaskan secara sukarela oleh proses yang menyimpannya setelah proses tersebut menyelesaikan tugasnya.
  • Mutual Exclusion adalah bentuk penuh dari Mutex. Ini adalah jenis semaphore biner khusus yang digunakan untuk mengontrol akses ke sumber daya bersama.
  • Hold and wait adalah suatu kondisi dimana proses harus dihentikan dari memegang satu atau beberapa sumber daya sekaligus menunggu satu atau lebih sumber daya lainnya.
  • Penghindaran kebuntuan adalah model yang paling sederhana dan berguna dimana setiap proses mendeklarasikan jumlah maksimum sumber daya dari setiap jenis yang mungkin diperlukan.
  • Algoritme penghindaran kebuntuan membantu Anda menilai status alokasi sumber daya secara dinamis sehingga tidak akan pernah terjadi situasi menunggu melingkar.
  • Kebuntuan adalah sebuah proses yang tidak terbatas, sedangkan starvation adalah sebuah penantian yang panjang namun bukan sebuah proses yang tidak terbatas.

Baca juga:

Referensi:

https://www.guru99.com/deadlock-in-operating-system.html

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *