Anda di halaman 1dari 18

DEADLOCK &

CRITICAL
SECTION
6.53

M. Juergen, S.T., M.T.


DEADLOCK

Deadlock adalah situasi di mana serangkaian proses diblokir karena

setiap proses menahan sumber daya dan menunggu sumber daya lain

yang diperoleh oleh beberapa proses lain.

Contoh ketika dua kereta datang menuju satu sama lain 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 di

sistem operasi ketika ada dua atau lebih proses yang menahan beberapa

sumber daya dan menunggu sumber daya yang dipegang oleh yang

lain.

7/1/20XX Pitch deck title 2


MARKET GAP
Natural building materials continue to be
consumer driven, but we're seeing a lapse of
availability in the market for these products

Sebagai contoh, pada diagram di bawah ini, Proses 1


menahan Resource 1 dan menunggu resource 2 yang
diakuisisi oleh proses 2, dan proses 2 menunggu
resource 1.

7/1/20XX 3
KARAKTERISTIK DEADLOCK
Mutual Exclusion Circular Wait
Dua atau lebih sumber daya tidak dapat Satu set proses menunggu satu sama lain dalam
dibagikan (Hanya satu proses yang dapat bentuk melingkar.
digunakan pada satu waktu)

Hold and Wait


Dua atau lebih sumber daya tidak dapat
dibagikan (Hanya satu proses yang dapat
digunakan pada satu waktu)

No Preemption
Sumber daya tidak dapat diambil dari suatu
proses kecuali proses melepaskan sumber daya
tersebut.
7/1/20XX Pitch deck title 4
PENGHINDARAN DEADLOCK

Menghindari jika pemberian akses Jika tidak aman (memungkinkan


deadlock dengan cara sumber daya tidak timbulnya deadlock), proses yang
hanya memberi akses mungkin menuju meminta di suspend sampai suatu waktu
ke permintaan deadlock, sumber permintaannya aman diberikan. Kondisi
sumber daya yang daya diberikan ke ini biasanya terjadi setelah 1 sumber
tidak mungkin peminta. daya / lebih yang semula dipegang oleh
menimbulkan proses-proses aktif lain dilepaskan.
deadlock.

7/1/20XX Pitch deck title 5


PENDETEKSIAN DEADLOCK
Hal-hal yang terjadi dalam mendeteksi
Deadlock akan terjadi, jika dan hanya jika grafik adanya Deadlock:
tunggu memiliki siklus di dalamnya.Untuk
• Permintaan sumber daya dikabulkan selama
mendeteksi deadlock, sistem harus memiliki grafik
memungkinkan
tunggu dan menjalankan algoritma deteksi deadlock
secara periodik. Hal yang harus diperhatikan adalah • Sistem operasi memeriksa adakah kondisi circular
seberapa sering algoritma deteksi harus dipanggil. wait secara periodik.

• Pemeriksaan adanya deadlock dapat dilakukan


setiap ada sumber daya yang hendak digunakan
oleh sebuah proses.

• Memeriksa dengan algoritma tertentu.

7/1/20XX Pitch deck title 6


PENCEGAHAN DEADLOCK

1 3
Tiap proses harus meminta semua sumber daya yang Beri pengurutan linier terhadap tipe-tipe sumber daya
diperlukan secara sekaligus dan tidak berlanjut sampai pada semua proses, yaitu jika proses telah
semuanya diberikan. dialokasikan suatu tipe sumber daya, proses hanya
boleh meminta tipe sumber daya pada urutan
2
berikutnya.
Jika proses sedang memegang sumberdaya tertentu,
untuk permintaan berikutnya proses harus melepas
dulu sumberdaya yang dipegangnya.

7/1/20XX Pitch deck title 7


CARA MEMULIHKAN DEADLOCK
Terminasi Proses
Abort semua proses yang deadlock
Metode ini akan mematahkan deadlock cycle, tetapi bisa saja proses-proses yang deadlock
telah dikomputasi dalam waktu yang lama dan hasil-hasil komputasi parsial harus dibuang,
sehingga ada kemungkinan harus dikomputasi ulang. Abort satu proses pada satu waktu sampai
deadlock tereliminir. Metode ini sangat mungkin mendatangkan overhead, setelah setiap proses
di-abort, algoritma pendeteksian deadlock harus diminta kembali untuk menentukan apakah
masih ada proses-proses yang deadlock. Jika terminasi parsial digunakan, kita harus
menentukan proses-proses deadlock yang mana yang harus diterminasi. Penentuan ini pada
dasarnya berkaitan dengan ekonomi. Kita harus abort proses-proses yang terminasinya
minimum cost.
Preempt Sumber Daya
Mengeliminasi deadlock menggunakan preempt
sumber daya berarti kita berturut-turut preempt
beberapa sumber daya dari suatu proses dan
memberikan sumber daya ini ke proses lain sampai
deadlock cycle patah.

7/1/20XX Pitch deck title 8


PADA PREEMPT SUMBER
DAYA
Memilih Korban
Seperti pada terminasi proses, kita harus menentukan sumber daya dan proses mana yang
akan dipreempt dengan minimum cost. Faktor cost mencakup parameter-parameter
seperti jumlah dari sumber daya yang ditahan proses-proses yang deadlock dan jumlah
waktu dari proses yang telah digunakan selama eksekusinya.

Rollback
Jika kita preempt sebuah sumber daya dari sebuah proses, proses tidak dapat berlanjut
dengan eksekusi normal karena proses kehilangan beberapa sumber daya yang
diperlukan. Kita harus rollback proses ke beberapa safe state dan restart dari state
tersebut. Secara umum, sulit untuk menentukan safe state. Solusi termudah adalah dengan
total rollback, abort proses, dan restart.

Starvation
Dalam sebuah sistem di mana pemilihan korban berdasar primer pada faktor cost, dapat
terjadi suatu proses tidak pernah menyelesaikan tugasnya karena suatu sumber daya
selalu di-preempt pada proses yang sama. Kita harus memastikan bahwa sebuah proses
dapat dipilih sebagai korban hanya dengan batasan waktu tertentu. Solusi pada umumnya
adalah dengan menambahkan jumlah rollback ke dalam faktor cost.
7/1/20XX 9
METODE PENANGANAN
Ada tiga cara untuk menangani masalah deadlock

1. Deadlock prevention or avoidance

Intinya adalah untuk tidak membiarkan sistem dalam keadaan deadlock.


User dapat memperbesar setiap kategori secara individual, Pencegahan
dilakukan dengan meniadakan salah satu kondisi yang diperlukan untuk
deadlock yang disebutkan di slide sebelumnya.
Dengan menggunakan strategi “Avoid / Penghindaran”, harus dibuat asumsi
bahwa perlu memastikan semua informasi tentang sumber daya yang
dibutuhkan proses diketahui oleh user sebelum eksekusi proses.

7/1/20XX Pitch deck title 10


METODE PENANGANAN

2. Deadlock detection and recovery

Biarkan deadlock terjadi, kemudian lakukan preemption untuk


menanganinya setelah terjadi.

7/1/20XX Pitch deck title 11


METODE PENANGANAN

3. Ignore the problem altogether

Jika kebuntuan sangat jarang terjadi, maka biarkan itu terjadi dan reboot
sistem. Ini adalah pendekatan yang diambil oleh Windows dan UNIX.

7/1/20XX Pitch deck title 12


CRITICAL SECTION
?

Critical section adalah dengan mendesain sebuah protokol di mana proses-proses dapat
menggunakannya secara bersama-sama. Setiap proses harus ‘meminta izin’ untuk memasuki
critical section-nya. Bagian dari kode yang mengimplementasikan izin ini disebut entry section.
Akhir dari critical section itu disebut exit section. Bagian kode selanjutnya disebut remainder
section.

Struktur umum dari proses Pi yang memiliki


segmen critical section adalah :

do {
entry section
critical section
exit section
remainder section
} while (1);

7/1/20XX 14
Solusi dari masalah critical section harus memenuhi tiga syarat berikut:
1. Mutual Exclusion.
Jika suatu proses sedang menjalankan critical section-nya, maka proses-proses lain tidak dapat
menjalankan critical section mereka. Dengan kata lain, tidak ada dua proses yang berada
dicritical section pada saat yang bersamaan.
2. Terjadi kemajuan (progress).
Jika tidak ada proses yang sedang menjalankan critical section-nya dan ada proses-proses lain
yang ingin masuk ke critical section, maka hanya proses-proses yang yang sedang berada
dalamentry section saja yang dapat berkompetisi untuk mengerjakan critical section.
3. Ada batas waktu tunggu (bounded waiting).
Jika seandainya ada proses yang sedang menjalankan critical section, maka proses lain
memiliki waktu tunggu yang ada batasnya untuk menjalankan critical section -nya, sehingga
dapat dipastikan bahwa proses tersebut dapat mengakses critical section-nya (tidak
mengalamistarvation: proses seolah-olah berhenti, menunggu request akses ke critical
sectiondiperbolehkan).

7/1/20XX 15
ADA DUA JENIS SOLUSI MASALAH
CRITICAL SECTION, YAITU:

1 2
Solusi Perangkat Solusi Perangkat
Lunak Keras
Dengan menggunakan Tergantung pada beberapa
algoritma-alogoritma yang instruksi mesin tertentu,
nilai kebenarannya tidak misalnya dengan me-non-
tergantung pada asumsi- aktifkan interupsi atau
asumsi lain, selain bahwa dengan mengunci suatu
setiap proses berjalan pada variabel tertentu
kecepatan yang bukan nol.

7/1/20XX Pitch deck title 16


TUGAS (TIDAK DIKUMPULKAN)

1. Baca PDF yang diberikan.

2. Pelajari C++, mulai dari cara install, hingga word


list-nya.

3. Pelajari Bahasa program lainnya yang menarik.

7/1/20XX Pitch deck title 17


DAFTAR
PUSTAKA
• GeekforGeek, Deadlock in OS, 2022,

https://www.geeksforgeeks.org/introduction-of-deadlock-in-operating-system/

• NN, Metode Mengatasi Deadlock, Dinus Repository,

https://repository.dinus.ac.id/docs/ajar/Bab_6._Deadlock__.pptx

• Topan Husain, Deteksi Deadlock dan Pencegahan, 2013,

http://kukasihtahu.blogspot.com/2013/05/deteksi-deadlock-dan-pencegahannya.html

• Riadhi, Mendeteksi Deadlock, 2015,

https://sites.google.com/a/student.unsika.ac.id/riadhi-sigaluhpakuan/home-1/mendeteksida

nmemperbaikideadlock

• Andi Pranolo, Singkronisasi 7, 2017,

http://apranolo.tif.uad.ac.id/wp-content/uploads/2015/03/sinkronisasi7.pdf

7/1/20XX Pitch deck title 18

Anda mungkin juga menyukai