Pengenalan Deadlock Dalam Sistem Operasi

Pengenalan Deadlock Dalam Sistem Operasi – Deadlock (kebuntuan) adalah situasi di mana serangkaian proses diblokir karena setiap proses memegang sumber daya dan menunggu sumber daya lain yang diperoleh oleh beberapa proses lainnya.

Pertimbangkan sebuah contoh ketika dua kereta saling berhadapan di jalur yang sama dan hanya ada satu jalur, tidak ada kereta yang bisa bergerak begitu mereka berada di depan satu sama lain. Situasi serupa terjadi dalam sistem operasi ketika ada dua atau lebih proses menahan beberapa sumber daya dan menunggu sumber daya dipegang oleh yang lain. https://www.mustangcontracting.com/

Kebuntuan dapat muncul jika empat kondisi berikut ditahan secara bersamaan (Kondisi yang Diperlukan)

  • Pengecualian: Satu atau lebih dari satu sumber daya tidak dapat dibagikan (Hanya satu proses yang dapat digunakan pada satu waktu) slot online
  • Tahan dan Tunggu: Suatu proses menahan setidaknya satu sumber daya dan menunggu sumber daya.
  • Tanpa Preemption: Sumber daya tidak dapat diambil dari suatu proses kecuali proses melepaskan sumber daya.
  • Circular Wait: Satu set proses menunggu satu sama lain dalam bentuk melingkar.
Pengenalan Deadlock Dalam Sistem Operasi

Metode untuk menangani kebuntuan

Ada tiga cara untuk menangani kebuntuan

1) Pencegahan atau penghindaran kebuntuan: Idenya adalah untuk tidak membiarkan sistem dalam kondisi menemui jalan buntu.

Satu dapat memperbesar ke masing-masing kategori secara individual, Pencegahan dilakukan dengan meniadakan salah satu kondisi yang diperlukan untuk kebuntuan yang disebutkan di atas.

Penghindaran bersifat futuristik. Dengan menggunakan strategi “Penghindaran”, kita harus membuat asumsi. Kita perlu memastikan bahwa semua informasi tentang sumber daya yang dibutuhkan oleh proses AKAN diketahui oleh kita sebelum pelaksanaan proses. Menggunakan algoritma Banker (yang pada gilirannya merupakan hadiah dari Dijkstra) untuk menghindari kebuntuan.

2) Deteksi kebuntuan dan pemulihan: Biarkan kebuntuan terjadi, lalu lakukan preemption untuk menanganinya begitu terjadi.

3) Mengabaikan masalah secara bersamaan: Jika kebuntuan sangat jarang, maka biarkan itu terjadi dan reboot sistem. Ini adalah pendekatan yang diambil oleh Windows dan UNIX.

Deteksi kebuntuan

Jika sumber daya memiliki satu contoh:

Dalam hal ini untuk deteksi Deadlock kita dapat menjalankan algoritma untuk memeriksa siklus di Grafik Alokasi Sumber Daya. Kehadiran siklus dalam grafik adalah kondisi yang cukup untuk kebuntuan.

jalan buntu

Dalam diagram di atas, sumber daya 1 dan sumber daya 2 memiliki instance tunggal. Ada siklus R1 → P1 → R2 → P2. Jadi, Deadlock Dikonfirmasi.

Jika ada beberapa contoh sumber daya:

Deteksi siklus diperlukan tetapi kondisi tidak cukup untuk deteksi kebuntuan, dalam hal ini, sistem mungkin atau mungkin tidak dalam kebuntuan bervariasi sesuai dengan situasi yang berbeda.

Pemulihan kebuntuan

Sistem operasi tradisional seperti Windows tidak menangani pemulihan jalan buntu karena ini adalah proses yang memakan waktu dan ruang. Sistem operasi waktu-nyata menggunakan pemulihan Deadlock.

Metode pemulihan

Membunuh proses: membunuh semua proses yang terlibat dalam kebuntuan. Proses pembunuhan satu per satu. Setelah membunuh setiap proses periksa kebuntuan lagi terus mengulangi proses sampai sistem pulih dari kebuntuan.

Preemption Sumber Daya: Sumber daya didahului dari proses yang terlibat dalam kebuntuan, sumber daya yang didahului dialokasikan untuk proses lain sehingga ada kemungkinan memulihkan sistem dari kebuntuan. Dalam hal ini, sistem mengalami kelaparan.

Pencegahan kebuntuan

  • Hilangkan Pengecualian Saling

Tidaklah mungkin untuk mengecualikan pengecualian bersama karena beberapa sumber daya, seperti tape drive dan printer, pada dasarnya tidak dapat dibagikan.

  • Hilangkan Tahan dan tunggu

1. Mengalokasikan semua sumber daya yang diperlukan untuk proses sebelum dimulainya pelaksanaannya, dengan cara ini kondisi tunggu dan tunggu dihilangkan tetapi akan menyebabkan pemanfaatan perangkat yang rendah. misalnya, jika suatu proses membutuhkan printer di lain waktu dan telah mengalokasikan printer sebelum dimulainya printer eksekusi akan tetap diblokir sampai telah menyelesaikan eksekusi.

2. Proses ini akan membuat permintaan sumber daya baru setelah merilis rangkaian sumber daya saat ini.

  • Hilangkan No Preemption

Mencegah sumber daya dari proses saat sumber daya dibutuhkan oleh proses prioritas tinggi lainnya.

  • Hilangkan Circular Wait

Setiap sumber daya akan diberi nomor numerik. Suatu proses dapat meminta peningkatan / penurunan sumber daya. urutan penomoran.

Sebagai contoh, jika proses P1 dialokasikan sumber daya R5, sekarang waktu berikutnya jika P1 meminta R4, R3 lebih rendah dari R5 permintaan tersebut tidak akan diberikan, hanya permintaan sumber daya lebih dari R5 akan diberikan.

Menghindari kebuntuan

Penghindaran kebuntuan dapat dilakukan dengan Algoritma Bankir.

Algoritma Bankir

Algoritma Bankir adalah alokasi sumber daya dan algoritma penghindaran kebuntuan yang menguji semua permintaan yang dibuat oleh proses untuk sumber daya, itu memeriksa keadaan aman, jika setelah pemberian sistem permintaan tetap dalam keadaan aman itu memungkinkan permintaan dan jika tidak ada keadaan aman itu tidak dapat mengizinkan permintaan yang dibuat oleh proses.

Masukan untuk Algoritma Bankir:

  • Max membutuhkan sumber daya oleh setiap proses.
  • Saat ini mengalokasikan sumber daya oleh setiap proses.
  • Maksimal sumber daya gratis yang tersedia dalam sistem.

Permintaan hanya akan diberikan dengan ketentuan di bawah ini:

  • Jika permintaan yang dibuat oleh proses kurang dari sama dengan maks perlu proses itu.
  • Jika permintaan yang dibuat oleh proses kurang dari sama dengan sumber daya yang tersedia secara bebas dalam sistem.

Algoritma Deteksi Kebuntuan / Algoritma Bankir:

Algoritme ini menggunakan beberapa struktur data yang bervariasi waktu:

  • Tersedia- Vektor dengan panjang m menunjukkan jumlah sumber daya yang tersedia untuk setiap jenis.
  • Alokasi – Matriks n * m menentukan jumlah sumber daya dari masing-masing jenis yang saat ini dialokasikan untuk suatu proses. Kolom mewakili sumber daya dan proses mewakili sumber daya.
  • Request- Matriks n * m menunjukkan permintaan saat ini dari setiap proses. Jika permintaan [i] [j] sama dengan k maka proses Pi meminta k lebih banyak contoh jenis sumber daya Rj.

Deteksi Kebuntuan Dalam Sistem Terdistribusi

Pengenalan Deadlock Dalam Sistem Operasi

Dalam sistem terdistribusi, kebuntuan tidak dapat dicegah atau dihindari karena sistemnya sangat luas sehingga tidak mungkin dilakukan. Karena itu, hanya deteksi kebuntuan yang dapat diterapkan. Teknik-teknik deteksi kebuntuan dalam sistem terdistribusi memerlukan yang berikut:

  • Kemajuan – Metode ini harus dapat mendeteksi semua kebuntuan dalam sistem.
  • Keamanan – Metode ini tidak boleh mendeteksi kebuntuan palsu atau hantu.

Ada tiga pendekatan untuk mendeteksi kebuntuan dalam sistem terdistribusi. Mereka adalah sebagai berikut:

  • Pendekatan terpusat

Dalam pendekatan terpusat, hanya ada satu sumber daya yang bertanggung jawab untuk mendeteksi kebuntuan. Keuntungan dari pendekatan ini adalah sederhana dan mudah diimplementasikan, sedangkan kelemahannya termasuk beban kerja yang berlebihan pada satu simpul, kegagalan satu titik (yaitu seluruh sistem bergantung pada satu simpul jika simpul itu gagal seluruh sistem crash) yang pada gilirannya membuat sistem kurang dapat diandalkan.

  • Pendekatan terdistribusi

Dalam pendekatan terdistribusi, node yang berbeda bekerja bersama untuk mendeteksi kebuntuan. Tidak ada kegagalan titik tunggal (yaitu seluruh sistem bergantung pada satu simpul jika simpul itu gagal seluruh sistem macet) karena beban kerja dibagi secara merata di antara semua simpul. Kecepatan deteksi kebuntuan juga meningkat.

  • Pendekatan hierarkis

Pendekatan ini adalah yang paling menguntungkan. Ini adalah kombinasi dari kedua pendekatan deteksi kebuntuan terpusat dan terdistribusi dalam sistem terdistribusi. Dalam pendekatan ini, beberapa node atau cluster node yang dipilih bertanggung jawab untuk deteksi kebuntuan dan node yang dipilih ini dikendalikan oleh satu node.

Justin Howard

Back to top