Pendidikan

Sistem Operasi: Pengertian Deadlock

Pengertian deadlock adalah situasi dimana dua atau lebih proses menunggu yang lain untuk meminta sumber daya tanpa batas.
Analoginya seperti kondisi jalan tol yang macet parah.

Arti kebuntuan
Contoh kebuntuan di persimpangan jalan

Definisi Kebuntuan_2
Jalan buntu di jembatan
  • penyumbatan adalah efek samping dari sinkronisasi menggunakan satu variabel dari 2 proses.
  • kejadian penyumbatan selalu tidak dapat dipisahkan dari sumber daya, ini hampir secara eksklusif merupakan masalah sumber daya bersama. Oleh karena itu kita juga perlu mengetahui jenis-jenis sumber daya yaitu: sumber daya yang dapat digunakan berulang kali dan sumber daya yang dapat digunakan dan dikonsumsi atau yang dapat disebut sumber daya yang tersedia. Sumber daya ini tidak dikonsumsi oleh proses apa pun, tetapi setelah proses keluar, sumber daya ini dikembalikan untuk digunakan oleh proses lain yang sebelumnya tidak menggunakan sumber daya tersebut.

contoh

Misalnya Processor, Channel I/O, Disk. Contoh peran resource type ini ketika terjadi deadlock misalnya proses menggunakan disk A dan B, maka terjadi deadlock ketika setiap proses sudah memiliki disk dan setelahnya disk lain bertanya. Masalah ini tidak hanya diperhatikan oleh pemrogram, tetapi oleh seseorang yang merancang sistem operasi.

Teknik yang digunakan umumnya adalah menghitung terlebih dahulu sumber daya yang akan digunakan oleh proses yang akan menggunakan sumber daya tersebut

operasi I/O

  • Permintaan : Permintaan layanan perangkat input / output
  • l carry (gunakan): Gunakan perangkat input/output
  • lremoving (rilis): Melepaskan penggunaan perangkat input/output

SUMBER DAYA

sumber daya bisa dalam bentuk perangkat keras (seperti tape drive, storage) atau dalam bentuk informasi (record dalam database, variabel global, dll).

Ada 2 jenis sumber daya, yaitu:

  • Pencegahan
  • Tidak bisa dihindari.

Dua jenis sumber daya:

Sumber daya tersedia untuk pre-order adalah sumber daya yang dapat diambil (dilepaskan) dari proses yang menggunakannya tanpa proses tersebut memiliki efek apa pun.

Sumber daya yang tidak dapat diberikan adalah sumber daya yang tidak dapat diakses oleh proses yang membawanya, karena hal itu akan mengakibatkan kesalahan komputasi. Jenis sumber daya ini sering menyebabkan kebuntuan.

DIAGRAM

Sebuah sistem komputer terdiri dari berbagai sumber daya (sumber daya), menyukai:

  1. Fisik (perangkat, penyimpanan)
  2. Logika (kunci, entri basis data)
  3. Sistem operasi (slot PCB)
  4. aplikasi (berkas)

Mekanisme relasional dari proses dan sumber daya yang dibutuhkan/digunakan dapat diwakili oleh grafik.

Proses Pi meminta sumber daya Rj
Proses Pi meminta sumber daya Rj

Resource Rj yang mengalokasikan satu
Resource Rj yang mengalokasikan satu

Bagan Alokasi Sumber Daya
Bagan Alokasi Sumber Daya

Untuk mengetahui apakah terjadi deadlock (deteksi) pada suatu grafik dapat dilihat dari rotasi dan resource yang dimilikinya yaitu:

  • Jika tidak ada rotasi, berarti tidak ada deadlock.
  • Jika ada rotasi, ada kemungkinan akan terjadi kebuntuan.
  • Instance tunggal, sumber daya yang berputar menghasilkan kebuntuan.

fakta di atas penyumbatan di sistem operasi

Pada Windows NT, deteksi kebuntuan berbentuk BSOD (Blue Screen Of Death), pemulihannya adalah reboot sederhana

Di Linux, untuk mengetahui apakah terjadi kebuntuan, gunakan xosview untuk mengetahui proses mana yang menggunakan 100% CPU, lalu matikan saja prosesnya.

penyumbatan di Linux

Beberapa kasus kebuntuan juga terjadi ketika OS Linux melakukan booting dari hibernasi, yaitu proses mengakses USB perangkat akan menemui jalan buntu

Ini karena fungsi penjadwal yang digunakan di kernel tidak menyimpan status sebelum tidur, sehingga ketika kernel dijalankan kembali, proses yang mengakses USB perangkat menunggu giliran sementara penjadwal belum menjadwalkan setiap proses.

Kondisi Per kejadian penyumbatan

1. Pengecualian bersama (pengecualian bersama bersyarat)

Hanya satu proses yang diperbolehkan menggunakan sumber daya, dan proses lain yang ingin menggunakan sumber daya harus menunggu sampai sumber daya dibebaskan atau tidak ada proses lain yang menggunakan sumber daya.

2. Kondisi genggam dan menunggu (tahan dan tunggu)

berhenti dan menunggu Proses yang sedang menggunakan sumber daya dapat meminta sumber daya lagi, yang berarti mereka harus menunggu sampai sumber daya yang diminta benar-benar tidak digunakan oleh proses lain. Ini dapat menyebabkan kelaparan sumber daya karena suatu proses mungkin tidak mendapatkan sumber daya apa pun untuk waktu yang lama.

3. Kondisi Non-Privasi (Kondisi Non-Privasi)

Sumber daya yang ada dalam satu proses tidak boleh diterima begitu saja oleh proses lain. Untuk mendapatkan sumber daya ini, pertama-tama mereka harus dibebaskan oleh proses yang memuatnya, jika tidak, seluruh proses akan menunggu dan hanya mengizinkan proses yang memiliki sumber daya untuk berjalan.

4. Kondisi menunggu di satu arah bundar (kondisi tunggu melingkar)

Kondisi seperti rantai, yaitu satu proses membutuhkan sumber daya yang dipegang oleh proses berikutnya.

Kondisi Per kejadian penyumbatan

  1. Kebuntuan terjadi ketika ketiga kondisi terpenuhi, tetapi kehadiran ketiga kondisi ini tidak berarti bahwa kebuntuan akan terjadi.
  2. Kebuntuan sebenarnya terjadi ketika kondisi keempat terpenuhi. Kondisi keempat adalah suatu keharusan agar kebuntuan terjadi.
  3. Kebuntuan dapat terjadi ketika proses mengakses objek seperti file, perangkat, dll secara tidak benar. Objek itu disebut sumber daya.

metode Memutuskan penyumbatan

1. Abaikan masalah deadlock

2. Deteksi dan perbaiki

3. Menghindari kebuntuan (avoidance)

4. Pencegahan Kebuntuan (Pencegahan)

Untuk mengabaikan masalah penyumbatan

  • algoritma burung unta
  • Menghadapi kebuntuan dan berpura-pura seolah tidak ada yang salah
  • Gunakan opsi ini jika Anda menemukan bahwa kebuntuan jarang terjadi dan biaya pendeteksian atau pemulihan dari kebuntuan tinggi

pengakuan

  • pengakuan jalan buntu adalah teknik untuk menentukan apakah kebuntuan telah terjadi dan untuk mengidentifikasi proses dan sumber daya yang terlibat dalam kebuntuan.
  • Periode biasa digunakan untuk memantau permintaan dan alokasi sumber daya.
  • Jika sistem menemui jalan buntu, maka kebuntuan harus diselesaikan. Biasanya, beberapa proses kehilangan sebagian atau seluruh pekerjaan yang telah dilakukan. Ini lebih baik daripada kebuntuan, yang berarti semua proses tidak melakukan apa-apa

memperbaiki/Restorasi

  • hak penolakan pertama
    • Untuk sementara mendapatkan sumber daya dari proses yang menggunakannya
    • Sangat sulit dilakukan
  • pelacakan
    • Proses yang sumber dayanya digunakan selama preemption dihentikan, satu langkah diperlukan untuk melanjutkan proses
    • Sulit untuk melakukan ini, secara umum, prosesnya dimulai dari awal lagi
  • Membunuh proses yang menyebabkan kebuntuan – metode yang paling umum

kriteria pilihan prosedur Yang akan JAUH

  • Paling jarang menggunakan prosesor
  • Hasil program yang paling sedikit
  • Yang paling intensif sumber daya hingga saat ini
  • Total alokasi sumber daya terendah/sumber daya maksimum yang diperlukan
  • Yang memiliki prioritas terendah

Menghindari kebuntuan (penghindaran)

Hindari kebuntuan dengan hanya memberikan akses ke permintaan sumber daya yang tidak mungkin mengakibatkan kebuntuan.

  • Jika pemberian akses sumber daya tidak mungkin mengakibatkan kebuntuan, sumber daya diberikan kepada pemohon.
  • l Jika tidak aman (membiarkan kebuntuan terjadi), proses permintaan ditangguhkan sampai permintaan aman diberikan. Kondisi ini biasanya terjadi setelah satu atau lebih sumber daya yang sebelumnya dipegang oleh proses aktif lainnya dilepaskan.
  • l Untuk menilai keadaan aman sistem, penghindaran kebuntuan mengharuskan semua proses menyatakan jumlah maksimum permintaan sumber daya sebelum eksekusi.
  • Setelah eksekusi dimulai, setiap proses meminta sumber daya sesuai kebutuhan, hingga jumlah maksimum yang telah ditentukan sebelumnya. Proses yang persyaratan sumber dayanya melebihi total kapasitas sistem tidak dapat dijalankan.
  • Menggunakan Algoritma Perbankan

algoritma bankir

  • Ada keadaan aman (safe state) dan keadaan tidak aman (unsafe state)
  • Digambarkan sebagai bankir yang memberikan pinjaman kepada sekelompok peminjam
  • Setiap peminjam memberikan batas kredit maksimum dan pembayaran wajib tepat waktu
  • Meminjamkan secara bertahap dan bankir memastikan dana selalu tersedia untuk peminjam lain (safe state)
  1. Tersedia. Jumlah sumber daya/dana yang tersedia.
  2. Maksimum. Jumlah maksimum sumber daya yang diminta oleh setiap proses.
  3. Alokasi. Jumlah sumber daya yang dibutuhkan oleh setiap proses.
  4. Membutuhkan. Alokasi Maksimum, sisa sumber daya yang diperlukan oleh proses setelah sumber daya yang dialokasikan dikurangi.

Kondisi aman

Status Aman: Ketika tidak ada kebuntuan dan ada cara untuk memenuhi semua permintaan yang belum diselesaikan tanpa menyebabkan kebuntuan dengan menjalankan proses secara hati-hati dalam urutan tertentu.

Contoh :

  • Dalam sistem dengan 10 sumber daya dari jenis yang sama, proses A membutuhkan maksimal 10 sumber daya dan saat ini memiliki 2 sumber daya. Proses B membutuhkan maksimal 3 sumber daya dan saat ini memiliki 1 sumber daya. Proses C membutuhkan maksimal 7 sumber daya dan saat ini memiliki 3 sumber daya. Ada 4 sumber tersisa.

pencegahan Kebuntuan (pencegahan)

  1. Hindari menggunakan pengecualian timbal balik jika memungkinkan
  2. Jika proses saat ini sedang memegang sumber daya tertentu, proses tersebut harus terlebih dahulu melepaskan sumber daya yang dipegangnya untuk permintaan berikutnya.
  3. Setiap proses harus meminta semua sumber daya yang diperlukan sekaligus dan tidak berlanjut sampai semua tersedia.
  4. Berikan semua proses pengurutan tipe sumber daya secara linear, yaitu setelah proses diberi tipe sumber daya, hanya diperbolehkan untuk meminta jenis sumber daya di urutan berikutnya.

Leave a Reply

Your email address will not be published. Required fields are marked *

| |
Back to top button