P6 Deadlock & Critical Section
P6 Deadlock & Critical Section
CRITICAL
SECTION
6.53
setiap proses menahan sumber daya dan menunggu sumber daya 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 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)
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
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.
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
Jika kebuntuan sangat jarang terjadi, maka biarkan itu terjadi dan reboot
sistem. Ini adalah pendekatan yang diambil oleh Windows dan UNIX.
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.
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.
https://www.geeksforgeeks.org/introduction-of-deadlock-in-operating-system/
https://repository.dinus.ac.id/docs/ajar/Bab_6._Deadlock__.pptx
http://kukasihtahu.blogspot.com/2013/05/deteksi-deadlock-dan-pencegahannya.html
https://sites.google.com/a/student.unsika.ac.id/riadhi-sigaluhpakuan/home-1/mendeteksida
nmemperbaikideadlock
http://apranolo.tif.uad.ac.id/wp-content/uploads/2015/03/sinkronisasi7.pdf