Apakah Kebuntuan dalam Sistem Operasi: Algoritma Keadaan & Pengesanan

Cuba Instrumen Kami Untuk Menghapuskan Masalah





Objektif utama sistem operasi adalah untuk menyediakan komunikasi yang betul antara sumber perkakasan dan perisian dan juga memberikan perkhidmatan umum kepada program. Apabila proses sistem operasi ingin mengakses sumber apa pun, pertama kali mengirimkan permintaan ke sumber tertentu yang ingin diaksesnya, kemudian menggunakan sumber tersebut dan akhirnya melepaskan sumber tersebut setelah menggunakannya. Oleh kerana anggap banyak proses yang cuba mengakses satu sumber pada masa yang sama, menjadi sukar untuk menyediakan satu sumber untuk semua proses pada satu masa dalam situasi seperti itu timbul konsep yang dinamakan kebuntuan. Oleh itu artikel ini menerangkan bagaimana kebuntuan berlaku dan bagaimana mengatasi keadaan kebuntuan ini.

Apakah Kebuntuan dalam Sistem Operasi?

Definisi: Dead-Lock adalah keadaan di mana dua atau lebih pemproses sedang menunggu sesuatu peristiwa berlaku, tetapi peristiwa seperti itu yang tidak berlaku adalah keadaan kebuntuan, dan pemproses dikatakan berada dalam keadaan kebuntuan. Sebagai contoh, mari kita anggap senario masa nyata, di mana terdapat dua kereta A & B, yang dipandu oleh dua pemandu individu di jalan sehala. Sekarang keadaan timbul di mana pemandu Kereta A mengatakan bahawa dia bergerak ke arah utara adalah arah yang betul, sementara pemandu Kereta B mengatakan dia bergerak ke arah selatan adalah betul. Tetapi kedua-duanya tidak bergerak ke belakang untuk membolehkan kereta lain bergerak ke hadapan, keadaan ini disebut keadaan kebuntuan.




Car-Contoh

contoh kereta

Untuk pemahaman yang lebih baik mari kita pertimbangkan contoh lain di mana terdapat dua sumber R1, R2, dan dua proses P1 dan P2, di mana R1 ditugaskan untuk P1 dan R2 ditugaskan untuk P2. Sekarang jika P1 ingin mengakses R2, seperti yang sudah kita ketahui, R2 dipegang oleh P2, dan sekarang P2 ingin mengakses R1, yang P1 dijalankan hanya ketika mendapat akses ke R2, juga P2 hanya akan dijalankan ketika dapat diakses ke R1 adalah keadaan kebuntuan.



Pemproses-Contoh

pemproses-contoh

Keadaan Mati-Kunci

Berikut adalah empat keadaan kebuntuan penting yang berlaku sekiranya semua keadaan berlaku serentak ada kemungkinan tertentu kebuntuan itu berlaku.

Pengecualian bersama

Ini bermaksud apa sahaja sumber yang kita gunakan mesti digunakan secara eksklusif. Di mana hanya satu proses menggunakan satu sumber pada satu masa sahaja. Contohnya, proses pencetakan sedang berjalan dan tiba-tiba proses lain cuba mengganggu proses pencetakan. Jadi di sini dalam situasi pengecualian bersama, hanya setelah tugas pencetakan selesai maka hanya tugas berikutnya yang diproses. Pengecualian bersama dapat dihilangkan dengan berkongsi sumber secara serentak, yang tidak mungkin dilakukan secara praktikal.

Pengecualian bersama

pengecualian bersama

Tiada Pre-emption

Menurut pre-emptive berdasarkan algoritma, jika ada tugas keutamaan yang cuba mengganggu tugas semasa. Algoritma pra-emptif yang memegang tugas semasa dan pertama melaksanakan tugas keutamaan dan kembali ke tugas pertama. Situasi yang dijelaskan seperti contoh di atas di mana proses menahan sumber asalkan dijalankan, iaitu P1 dapat melepaskan R1 hanya setelah dijalankan, juga P2 melepaskan R2 hanya setelah pelaksanaan. Sekiranya tidak ada pilihan awal, kebuntuan mungkin berlaku.


No-Preemption-Contoh

no-preemption-contoh

Tahan dan Tunggu

Satu proses menahan beberapa sumber dan menunggu sumber tambahan tetapi sumber tersebut diperoleh dengan proses lain. Dari contoh di atas, P1 menahan R1 dan menunggu R2, di mana R2 diperoleh oleh P2, dan P2 memegang R2 dan menunggu R1, di mana R1 yang diperoleh oleh P1 adalah situasi penangguhan dan penangguhan mungkin berlaku dalam sistem.

Tahan-dan-Tunggu-Contoh

tunggu-dan-tunggu-contoh

Tunggu Pekeliling

Satu set proses dikatakan dalam kebuntuan jika satu proses menunggu sumber yang dialokasikan ke proses lain dan proses tersebut menunggu sumber, ia serupa dengan contoh yang dijelaskan di atas di mana ia dalam bentuk gelung. Di mana P1 sedang menunggu R2 dan R2 diperuntukkan untuk P2 dan P2 sedang menunggu R1 dan R1 diperuntukkan untuk P1 yang merupakan bentuk menunggu pekeliling jika keadaan ini memenuhi kebuntuan.

Pekeliling-Tunggu-Contoh

bulat-tunggu-contoh

Algoritma Pengesanan Mati-Kunci

Kes-kes di mana kita memperuntukkan sumber daya untuk proses, dan sistem operasi memeriksa semula jika kebuntuan telah terjadi dalam sistem atau tidak menggunakan 2 algoritma pengesanan kebuntuan utama, mereka adalah

  • Contoh tunggal
  • Pelbagai contoh jenis sumber

Contoh Bujang

Contoh tunggal adalah keadaan di mana sistem mempunyai keadaan tunggal dari semua sumber. Ia juga dikenali sebagai menunggu algoritma grafik atau grafik peruntukan sumber. Graf peruntukan sumber terdiri daripada satu set proses dan sekumpulan sumber yang diwakili sebagai dua bucu yang berbeza. Sumber dalam grafik peruntukan sumber diubah suai dan diwakili sebagai menunggu bentuk grafik. Di mana menunggu borang grafik hanya mempunyai proses yang diwakili sebagai bucu seperti yang ditunjukkan di bawah ini di mana,

  • Graf peruntukan sumber: Proses P1, P2, P3 dan sumber R1, R2, R3 ditunjukkan dalam grafik peruntukan sumber.
  • Tunggu Grafik: Hanya Proses P1, P2, P3 yang disebutkan menunggu grafik.
  • Sekiranya terdapat keadaan kitaran, bahawa jika terdapat aliran proses yang berterusan dalam satu arah itu bermaksud keadaan kitaran keluar dan menunggu grafik berada dalam keadaan kebuntuan.

Contoh 1: Contoh di bawah menunjukkan tidak ada keadaan kebuntuan kerana tidak ada aliran berterusan yang diperhatikan ketika menunggu grafik.

Contoh-Tunggal1

contoh-contoh tunggal1

Contoh 2: Keadaan kebuntuan telah berlaku kerana terdapat aliran kitaran yang berterusan dari P1 ke P4.

Single-Instance - Contoh2

contoh tunggal-contoh2

Sekiranya kebuntuan berlaku sangat kerap dalam sistem maka algoritma pengesanan sering digunakan. Sekiranya terdapat lebih banyak penggunaan algoritma pengesanan maka akan ada lebih banyak overhead dan lebih banyak masa pengiraan. Oleh itu untuk mengatasi ini, kami menggunakan algoritma setelah, dengan memberikan masa yang sama, ini adalah bagaimana berat grafik digunakan untuk mengesan kebuntuan.

Pelbagai Jenis Jenis Sumber

Pelbagai contoh dari jenis sumber adalah keadaan di mana sistem mempunyai pelbagai keadaan dari semua sumber, ia juga dikenali sebagai algoritma Bankers. Menurut algoritma Bankers, sebaik sahaja proses memperoleh semua sumber yang diperlukan, maka ia melepaskan sumbernya.

Mari kita perhatikan contoh berikut, anggap ada 3 proses P0, P1, P2, dan jenis sumber A, B, C di mana A boleh CPU , B boleh menjadi pencetak dan C boleh menjadi papan kekunci. Angka '0' di lajur menunjukkan ketersediaan sumber.

Kes (i): Anggaplah jika kita mengambil permintaan syarat adalah kondisi '000' yang ada di P0 dan P2, kita harus memeriksa permintaan mana yang dipenuhi, proses P0 melepaskan proses setelah dialokasikan, kemudian proses P2 berikutnya dilepaskan setelah dialokasikan. Seperti ini, secara berurutan, satu demi satu proses melepaskan P0, P2, P3, P1, P4 secara berurutan. Akhirnya, kami mendapat sumber yang tersedia sebagai P7, P2, P6. Urutan yang tersedia adalah keadaan di mana tidak ada kebuntuan.

Bankers-Algoritma-Contoh1

banker-algoritma-contoh1

Rumah (ii): Katakan jika P2 adalah 001 dan bukan 000, sekarang gunakan algoritma bank untuk memeriksa keadaan kebuntuan, di mana satu-satunya P0 dapat dilaksanakan di antara semua 5 proses. Oleh itu P1, P2, P3, P4 berada dalam keadaan kebuntuan kecuali P0.

Jurubank-Contoh2

pegawai bank-contoh2

Aplikasi Kebuntuan

Aplikasi kebuntuan dapat dijelaskan dengan contoh keputusan peperiksaan dalam talian secara nyata, di mana beberapa pelajar cuba mengakses laman web universiti mereka pada masa pembebasan. Seseorang dapat memperhatikan bahawa kadang-kadang halaman web tidak dimuat pada beberapa pengguna sekaligus, ini adalah keadaan kebuntuan. Ini dapat diatasi dengan menggunakan salah satu algoritma.

Kelebihan

Kelebihan kebuntuan adalah

  • Tidak ada penekanan awal dalam mengelakkan kebuntuan
  • Tidak ada kelewatan dalam proses

Kekurangan

Kelemahan kebuntuan adalah

  • Sumber yang akan digunakan mesti diketahui terlebih dahulu
  • Penyumbatan proses untuk masa yang lama
  • Kerugian pra-pengeluaran diwarisi.

Artikel ini mengulas mengenai bagaimana kebuntuan berlaku apabila terdapat dua atau lebih proses dan tiga keadaan yang menjadi penyebab kebuntuan berlaku, dan dua jenis algoritma iaitu algoritma perkongsian sumber yang mengesan ada keadaan kebuntuan dan algoritma bankir yang merupakan algoritma penghindaran kebuntuan. Berikut adalah pertanyaan 'Apa yang akan terjadi jika kebuntuan diabaikan?'.