0% menganggap dokumen ini bermanfaat (0 suara)
92 tayangan8 halaman

SO-8 Deadlock

Dokumen tersebut membahas tentang masalah deadlock pada sistem operasi, termasuk penjelasan tentang kondisi-kondisi yang diperlukan untuk terjadinya deadlock, contoh graf alokasi sumber daya, dan metode-metode pencegahan dan penghindaran terhadap terjadinya deadlock."

Diunggah oleh

Josua siagian
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
92 tayangan8 halaman

SO-8 Deadlock

Dokumen tersebut membahas tentang masalah deadlock pada sistem operasi, termasuk penjelasan tentang kondisi-kondisi yang diperlukan untuk terjadinya deadlock, contoh graf alokasi sumber daya, dan metode-metode pencegahan dan penghindaran terhadap terjadinya deadlock."

Diunggah oleh

Josua siagian
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 8

Mata Kuliah : Sistem Operasi

Kode MK : IT-012336

Masalah Deadlock
8
 Sekumpulan proses sedang blocked karena setiap
Deadlock proses sedang menunggu (antrian) menggunakan
“resources” yang sedang digunakan (hold) oleh
Tim Teaching Grant proses lain.
Mata Kuliah Sistem Operasi  Contoh:
 OS hanya mempunyai akses ke 2 tape drives.
 P1 dan P2 memerlukan 2 tape sekaligus untuk
mengerjakan task (copy).
 P1 dan P2 masing-masing hold satu tape drives dan
sedang blocked, karena menunggu 1 tape drives
“available”.
Bab 8. Deadlock 2

Contoh Persimpangan Jalan Resource-Allocation Graph

Sekumpulan vertex V dan sekumpulan edge E

 V dipartisi ke dalam 2 tipe


 Hanya terdapat satu jalur  P = {P1, P2, …, Pn}, terdiri dari semua proses dalam sistem.
 Mobil digambarkan sebagai proses yang sedang menuju
sumber daya.  R = {R1, R2, …, Rm}, terdiri dari semua sumberdaya dalam
 Untuk mengatasinya beberapa mobil harus preempt sistem
(mundur)  request edge/permintaan edge : arah edge P1 → Rj
• Sangat memungkinkan untuk terjadinya starvation  assignment edge/penugasan edge – arah edge Rj → Pi
(kondisi proses tak akan mendapatkan sumber daya).

Bab 8. Deadlock 3 Bab 8. Deadlock 4


Resource-Allocation Graph (Cont.) Contoh Resource Allocation Graph
 Process

 Resource Type with 4 instances

 Pi requests instance of Rj Pi
Rj

 Pi is holding an instance of Rj Pi
Rj

Bab 8. Deadlock 5 Bab 8. Deadlock 6

Graf Resource Allocation dengan Cycle


Graf Resource Allocation Dengan
Tanpa Deadlock
Deadlock

Bab 8. Deadlock 7 Bab 8. Deadlock 8


Kondisi yang Diperlukan untuk Kondisi yang Diperlukan untuk
Terjadinya Deadlock Terjadinya Deadlock (cont.)
 Mutual Exclusion  No-Preemption Resouce :
 Serially-shareable resources (mis. Buffer)  Resource yang hanya dapat dibebaskan secara sukarela
oleh proses yang telah mendapatkannya
 Contoh: Critical section mengharuskan mutual  Proses tidak dapat dipaksa (pre-empt) untuk melepaskan
exclusion (termasuk resource), sehingga potensi resource yang sedang di hold
proses akan saling menunggu (blocked).  Circular wait
 Hold & wait :  Situasi dimana terjadi saling menunggu antara beberapa
 Situasi dimana suatu proses sedang hold proses sehingga membentuk waiting chain (circular)
suatu resource secara eksklusif dan ia  Misalkan proses (P0, P1, .. Pn) sedang blok menunggu
resources: P0 menunggu P1, P1 menunggu P2, .. dan Pn
menunggu mendapatkan resource lain (wait). menunggu P0.

Bab 8. Deadlock 9 Bab 8. Deadlock 10

Metode Penanganan Deadlock Deadlock Prevention


 Deadlock Prevention: Pencegahan adanya faktor-  Pencegahan: Faktor-faktor penyebab deadlock yang
faktor penyebab deadlock harus dicegah untuk terjadi
 4 faktor yang harus dipenuhi untuk terjadi deadlock:
 Deadlock Avoidance: Menghindari dari situasi  Mutual Exclusion: pemakaian resources.
yang potensial dapat mengarah menjadi deadlock  Hold and Wait: cara menggunakan resources.
 No preemption resource: otoritas/hak.
 Circular wait: kondisi saling menunggu.
 Deadlock Detection: Jika deadlock ternyata tidak
terhindari maka bagaimana mendeteksi terjadinya  Jika salah satu bisa dicegah maka deadlock pasti
deadlock, dilanjutkan dengan penyelamatan tidak terjadi!
(recovery).
Bab 8. Deadlock 11 Bab 8. Deadlock 12
Deadlock Prevention (1) Deadlock Prevention (2)
 Tindakan preventif:  Hold and Wait
 Batasi pemakaian resources  Request & alokasi dilakukan saat proses start
 Masalah: sistim tidak efisien, tidak feasible (dideklarasikan dimuka program)
 Mutual Exclusion:  Request hanya bisa dilakukan ketika tidak sedang
 tidak diperlukan untuk shareable resources mengalokasi resource lain; alokasi beberapa
 read-only files/data : deadlock dapat dicegah resource dilakukan sekaligus dalam satu request
dengan tidak membatasi akses (not mutually  Simple tapi resource akan dialokasi walau tidak
exclusive) selamanya digunakan (low utilization) serta
 tapi terdapat resource yang harus mutually beberapa proses bisa mengalami starvation
exclusive (printer)
Bab 8. Deadlock 13 Bab 8. Deadlock 14

Deadlock Prevention (3) Deadlock Prevention (4)


 Mencegah Circulair Wait  Mencegah No-Preemption
 Pencegahan: melakukan total ordering terhadap semua
jenis resource  Jika proses telah mengalokasi resource dan ingin
 Setiap jenis resource mendapatkan index yang unik mengalokasi resource lain – tapi tidak diperoleh
dengan bilangan natural: 1, 2, . . (wait) : maka ia melepaskan semua resource
 Contoh: tape drive=1, disk drive=5, printer=12 yang telah dialokasi.
 Request resource harus dilakukan pada resource-resource
dalam urutan menaik (untuk index sama - request  Proses akan di-restart kelak untuk mencoba
sekaligus) kembali mengambil semua resources
 Jika Pi memerlukan Rk yang berindeks lebih kecil dari
yang sudah dialokasi maka ia harus melepaskan semua
resource Rj yang berindeks >= Rk

Bab 8. Deadlock 15 Bab 8. Deadlock 16


Deadlock Avoidance Safe, unsafe , deadlock state
 Pencegahan:
 Apabila di awal proses; OS bisa mengetahui resource mana
saja yang akan diperlukan proses.
 OS bisa menentukan penjadwalan yang aman (“safe
sequence”) alokasi resources.

 Model:
 Proses harus menyatakan max. jumlah resources yang
diperlukan untuk selesai.
 Algoritma “deadlock-avoidance” secara dinamik akan memeriksa
alokasi resource apakah dapat mengarah ke status (keadaan)
tidak aman (misalkan terjadi circulair wait condition)
 Jadi OS, tidak akan memberikan resource (walaupun available),
kalau dengan pemberian resource ke proses menyebabkan tidak
aman (unsafe).
Bab 8. Deadlock 17 Bab 8. Deadlock 18

Safe state Kondisi Safe


 Prasyarat:  Resources: 12 tape drive.
 Proses harus mengetahui max. resource yang diperlukan
(upper bound) => asumsi algoritma. A (Available): 12 - 10 = 2
 Proses dapat melakukan hold and wait, tapi terbatas pada Safe sequnce:
sekumpulan resource yang telah menjadi “kreditnya”. 2 tape diberikan ke U2,
 Setiap ada permintaan resource, OS harus U2 selesai => Av = 6,
memeriksa Berikan 3 tape ke U1,
 “jika resource diberikan”, dan terjadi “worst case” semua Berikan 3 tape ke U3.
proses melakukan request “max. resource” No deadlock.
 Terdapat “urutan yang aman” dari resources yang
available, untuk diberikan ke proses, sehingga tidak terjadi
deadlock.

Bab 8. Deadlock 19 Bab 8. Deadlock 20


Kondisi Unsafe Algoritma Banker’s
 Resources: 12 tape drive.  Proses harus “declare” max. kredit resource yang
diinginkan.
A (Available): 12 - 11 = 1
 Proses dapat block (pending) sampai resource
Terdapat 1 tape available, diberikan.
sehingga dapat terjadi Deadlock.  Banker’s algorithm menjamin sistim dalam keadaan
safe state.
 OS menjalankan Algoritma Banker’s,
 Saat proses melakukan request resource.
 Saat proses terminate atau release resource yang
digunakan => memberikan resource ke proses yang
pending request.

Bab 8. Deadlock 21 Bab 8. Deadlock 22

Algoritma Banker’s (2) Algoritma Banker’s (3)


 Misalkan terdapat: n proses dan m resources.
 Metode :  Definisikan:
1. Scan tabel baris per baris untuk menemukan job  Available: Vector/array dengan panjang m.
If available [j] = k, terdapat k instances resouce jenis Rj yang dapat digunakan.
yang akan diselesaikan  Max: matrix n x m.
2. Tambahkan pada job terakhir dari sumberdaya yang If Max [i,j] = k, maka proses Pi dapat request paling banyak k instances resource
jenis Rj.
ada dan berikan nomor yang available  Allocation: matrix n x m.
If Allocation[i,j] = k maka Pi saat ini sedang menggunakan
 Ulangi 1 dan 2 hingga : (hold) k instances Rj.
 Tidak ada lagi job yang diselesesaikan (unsafe) atau  Need: matrix n x m.
If Need[i,j] = k, maka Pi palaing banyak akan membutuhkan
 Semua job telah selesai (safe) instance Rj untuk selesai.
 Need [i,j] = Max[i,j] – Allocation [i,j].

Bab 8. Deadlock 23 Bab 8. Deadlock 24


Algoritma Safety Algoritma Safety (2)
 Let Work and Finish be vectors of length m and n,respectively.  Terdapat 3 proses: n = 3, 1 resource: m = 1
Initialize:
Work := Available // resource yang free
 Jumlah resource m = 12.
Finish [i] = false for i = 1,3, …, n.  Snapshot pada waktu tertentu:
 Find and i such that both: // penjadwalan alokasi resource
(a) Finish [i] = false // asume, proses belum complete
(b) Needi £ Work // proses dapat selesai, ke step 3
If no such i exists, go to step 4.
 Work := Work + Allocationi // proses dapat selesai
Finish[i] := true
go to step 2.
 If Finish [i] = true for all i, then the system is in a safe state.

Bab 8. Deadlock 25 Bab 8. Deadlock 26

Algoritma Safety (3) Deadlock Detection


 Mencegah dan menghidari dari deadlock sulit
dilakukan:
 Kurang efisien dan utilitas sistim
Let Need[3]; Max[3]; Aloc[3]; Finish[3]; Work [1];  Sulit diterapkan: tidak praktis, boros resources
1. Work = Available; // Work = 2;  Mengizinkan sistim untuk masuk ke “state deadlock”
Finish[0]=false, Finish[1]=false, Finish[3]=false;
 Gunakan algoritma deteksi (jika terjadi deadlock)
2. do {
FlagNoChange = false;  Deteksi: melihat apakah penjadwalan pemakaian resource
for I=0 to 2 { yang tersisa masih memungkinkan berada dalam safe state
if ((Finish[I] == false)) && (Need[I] <= Work) { (variasi “safe state”).
Finis[I] = true;
Work = Work + Aloc[I]; FlagNoChange = true;  Skema recovery untuk mengembalikan ke “safe state”
}
} until (FlagNoChange);
Bab 8. Deadlock 27 Bab 8. Deadlock 28
Single Instance Recovery dari Deadlock
 Gunakan: resource allocation graph  Batalkan semua proses deadlock
 Node mewakili proses, arcus mewakili request  Batalkan satu proses pada satu waktu hingga siklus
dan hold dari resources. deadlock dapat dihilangkan
 Dapat disederhanakan dalam “wait-for-graph”  Proses mana yang dapat dipilih untuk dibatalkan ?
 Pi  Pj if Pi is waiting for Pj.  Proses dengan prioritas
 Proses dengan waktu proses panjang
 Secara periodik jalankan algoritma yang mencari
cycle pada graph:  Sumberdaya proses yang telah digunakan
 Sumberdaya proses yang lengkap
 Jika terdapat siklus (cycle) pada graph maka telah
terjadi deadlock.  Banyak proses yang butuh untuk ditunda
 Apakah proses tersebut interaktif atau batch

Bab 8. Deadlock 29 Bab 8. Deadlock 30

Recovery dariDeadlock Pendekatan Kombinasi


 Pilih proses – meminimasi biaya  Kombinasi dari tiga pendekatan dasar
 Rollback – kembali ke state safe, mulai lagi  prevention
proses dari state tersebut  avoidance
 Starvation – proses yang sama selalu diambil  detection
sebagai pilihan, termasuk rollbak dalam
faktor biaya  Pemisahan sumberdaya ke dalam hirarki
kelas

Bab 8. Deadlock 31 Bab 8. Deadlock 32

Anda mungkin juga menyukai