DEADLOCK
DIAJUKAN UNTUK MEMENUHI TUGAS MATA KULIAH
Sistem Operasi
Dosen Penampu Bapak Adi Sucipto, Ir., M.Kom.
oleh :
Puji syukur kehadiran Allah SWT Yang Maha mendengar lagi Maha
Melihat dan atas segala limpahan rahmat, taufik, serta hidayah-Nya sehingga
penulis dapat menyelesakan makalah sesuai waktu yang telah direncanakan
Penulis
Deadlock Page i
DAFTAR ISI
BAB I ...................................................................................................................... 1
PENDAHULUAN .................................................................................................. 1
1.1 Latar Belakang ......................................................................................... 1
1.2 Rumusan Masalah .................................................................................... 1
1.3 Tujuan Penulisan ...................................................................................... 2
1.4 Manfaat Penulisan .................................................................................... 2
BAB II..................................................................................................................... 3
PEMBAHASAN ..................................................................................................... 3
2.1 Definisi Deadlock..................................................................................... 3
2.2 Model Sistem............................................................................................ 3
2.3 Resource ................................................................................................... 4
2.4 Penyebab Deadlock .................................................................................. 6
2.5 Penanganan Deadlock .............................................................................. 7
2.5.1 Mengabaikan Masalah Deadlock ...................................................... 8
2.5.2 Mendeteksi dan Memperbaiki........................................................... 8
2.5.3 Penghindaran..................................................................................... 9
2.5.4 Pencegahan...................................................................................... 11
Deadlock Page ii
BAB I
PENDAHULUAN
Deadlock Page 1
1.3 Tujuan Penulisan
Deadlock adalah suatu kondisi dimana dua proses atau lebih saling
menunggu proses yang lain untuk melepaskan resource yang sedang dipakai.
Karena beberapa proses itu saling menunggu, maka tidak terjadi kemajuan dalam
kerja proses-proses tersebut. Deadlock dalam arti sebenarnya adalah kebuntuan.
Kebuntuan yang dimaksud dalam sistem operasi adalah kebuntuan proses.
Deadlock adalah masalah yang biasa terjadi ketika banyak proses yang membagi
sebuah resource yang hanya boleh dirubah oleh satu proses saja dalam satu waktu.
Jadi deadlock ialah suatu kondisi dimana proses tidak berjalan lagi atau pun tidak
ada komunikasi lagi antar proses. Salah satu contoh sebuah deadlock:
a. Proses A menggunakan CD-ROM.
b. Proses B menggunakan Scanner.
c. Proses A meminta Scanner (tanpa melepas CD-ROM) → menunggu.
d. Proses B meminta CD-ROM (tanpa melepas Scanner) → menunggu.
e. Menunggu… menunggu… DEADLOCK.
2.3 Resource
Deadlock bisa terjadi pada saat proses akan mengakses obyek secara tidak
semestinya. Obyek tersebut dinamakan sumber daya. Sumber daya ada dua jenis,
yaitu:
a. Preemptable
Sumber daya dikatakan preemptable jika sumber daya tersebut
dapat diambil (dilepas) dari proses yang sedang memakainya tanpa
memberi efek apapun pada proses tersebut. Sumber daya ini tidak habis
dipakai oleh proses mana pun. Tetapi setelah proses berakhir, sumber
daya ini dikembalikan untuk dipakai oleh proses lain yang sebelumnya
tidak kebagian sumber daya ini. Contohnya prosesor, kanal M/K, disk,
semafor. Contoh peran sumber daya jenis ini pada terjadinya Deadlock
ialah misalnya sebuah proses memakai disk A dan B, maka akan terjadi
deadlock jika setiap proses sudah memiliki salah satu disk dan meminta
disk yang lain. Masalah ini tidak hanya dirasakan oleh pemrogram
tetapi oleh seorang yang merancang sebuah sistem operasi. Cara yang
digunakan pada umumnya dengan cara memperhitungkan dahulu
sumber daya yang digunakan oleh proses-proses yang akan
menggunakan sumber daya tersebut. Contoh lain yang menyebabkan
deadlock dari sumber yang dapat dipakai berulang-ulang ialah berkaitan
dengan jumlah proses yang memakai memori utama. Contohnya dapat
dilihat dari kode berikut ini:
Dari kedua fungsi tersebut ada yang bertindak untuk menerima dan
memberi sumber daya, tetapi ada kalanya proses tidak mendapat
sumber daya yang dibuat sehingga terjadi blok, karena itu terjadi
deadlock. Tentu saja hal ini sangat jarang terjadi mengingat tidak ada
batasan untuk memproduksi dan mengkonsumsi, tetapi ada suatu
keadaan seperti ini yang mengakibatkan deadlock. Hal ini
mengakibatkan deadlock jenis ini sulit untuk dideteksi. Selain itu
deadlock ini dihasilkan oleh beberapa kombinasi yang sangat jarang
terjadi.
c. No Preemption
Sumber daya yang ada pada sebuah proses tidak boleh diambil
begitu saja oleh proses lainnya. Untuk mendapatkan sumber daya
tersebut, maka harus dilepaskan terlebih dahulu oleh proses yang
memegangnya, selain itu seluruh proses menunggu dan
mempersilahkan hanya proses yang memiliki sumber daya yang boleh
berjalan.
d. Circular Wait
Kondisi seperti rantai, yaitu sebuah proses membutuhkan sumber
daya yang dipegang proses berikutnya.
2.5.3 Penghindaran
Pendekatan metode ini adalah dengan hanya memberi
kesempatan ke permintaan sumber daya yang tidak mungkin akan
menyebabkan deadlock. Metode ini memeriksa dampak pemberian
akses pada suatu proses, jika pemberian akses tidak mungkin
menuju kepada deadlock, maka sumber daya akan diberikan pada
proses yang meminta. Jika tidak aman, proses yang meminta akan
di-suspend sampai suatu waktu permintaannya aman untuk
diberikan. Kondisi ini terjadi ketika setelah sumber daya yang
sebelumnya dipegang oleh proses lain telah dilepaskan.
Kondisi aman yang dimaksudkan selanjutnya disebut
sebagai safe-state, sedangkan keadaan yang tidak memungkinkan
untuk diberikan sumber daya yang diminta disebut unsafe-state.
3.1 Kesimpulan
3.2 Saran
Saya sebagai penulis menyarankan agar setiap sistem yang akan kita buat
memiliki sebuah algoritma untuk menangani deadlock. Apabila pada sebuah
sistem tidak tersedia pencegahan ataupun penghindaran deadlock, kemungkinan
besar deadlock dapat terjadi. Pada keadaan seperti ini, sistem harus menyediakan
algoritma pendeteksian deadlock dan algoritma pemulihan deadlock.
DAFTAR PUSTAKA