28
Concurrency 2 Concurrency 2: Concurrency 2 Concurrency 2: Deadlock Deadlock dan dan Starvation Starvation Deadlock Deadlock dan dan Starvation Starvation (Pertemuan (Pertemuan ke ke 15) 15) (Pertemuan (Pertemuan ke ke-15) 15) November 2010

Concurrency 2Concurrency 2: Deadlockdan Starvation...Strategggi Penanganan Deadlock • Ada 3 cara yyg p gang dapat digunakan untuk menangani deadlock: 1. Deadlock preventionDeadlock

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Concurrency 2Concurrency 2: Deadlockdan Starvation...Strategggi Penanganan Deadlock • Ada 3 cara yyg p gang dapat digunakan untuk menangani deadlock: 1. Deadlock preventionDeadlock

Concurrency 2Concurrency 2::Concurrency 2Concurrency 2::DeadlockDeadlock dandan StarvationStarvationDeadlockDeadlock dan dan StarvationStarvation

(Pertemuan(Pertemuan keke 15)15)(Pertemuan (Pertemuan keke--15)15)

November 2010

Page 2: Concurrency 2Concurrency 2: Deadlockdan Starvation...Strategggi Penanganan Deadlock • Ada 3 cara yyg p gang dapat digunakan untuk menangani deadlock: 1. Deadlock preventionDeadlock

PrinsipPrinsip--PrinsipPrinsip Deadlock Deadlock (1)(1)pp pp ( )( )

D dl k d l h k di i di• Deadlock adalah kondisi dimana sejumlah proses ter-blok secarasejumlah proses ter blok secara permanen akibat saling memperebutkan resource atau saling menunggu pesan dari proses lainmenunggu pesan dari proses lain

• Tidak ada solusi yang efisien• Tidak ada solusi yang efisien• Bagaimana solusinya ???g y

#1Sistem Operasi/20101103

Page 3: Concurrency 2Concurrency 2: Deadlockdan Starvation...Strategggi Penanganan Deadlock • Ada 3 cara yyg p gang dapat digunakan untuk menangani deadlock: 1. Deadlock preventionDeadlock

PrinsipPrinsip--PrinsipPrinsip Deadlock Deadlock (2)(2)pp pp• Contoh deadlock: kemacetan pada perempatan

j ljalan

#2Sistem Operasi/20101103

Page 4: Concurrency 2Concurrency 2: Deadlockdan Starvation...Strategggi Penanganan Deadlock • Ada 3 cara yyg p gang dapat digunakan untuk menangani deadlock: 1. Deadlock preventionDeadlock

PrinsipPrinsip--PrinsipPrinsip Deadlock Deadlock (3)(3)pp pp

• Contoh deadlock: 2 proses yang membutuhkan• Contoh deadlock: 2 proses yang membutuhkan 2 resource bersamaan

Proses P Proses Q... ...... ...Get A Get B... ...Get B Get A... …Release A Release B... ...Release B Release A... ...

#3Sistem Operasi/20101103

Page 5: Concurrency 2Concurrency 2: Deadlockdan Starvation...Strategggi Penanganan Deadlock • Ada 3 cara yyg p gang dapat digunakan untuk menangani deadlock: 1. Deadlock preventionDeadlock

PrinsipPrinsip--PrinsipPrinsip Deadlock Deadlock (4)(4)pp pp• Joint Progress Diagram (JPD): deadlock

fatal regionfatal region

#4Sistem Operasi/20101103

Page 6: Concurrency 2Concurrency 2: Deadlockdan Starvation...Strategggi Penanganan Deadlock • Ada 3 cara yyg p gang dapat digunakan untuk menangani deadlock: 1. Deadlock preventionDeadlock

PrinsipPrinsip--PrinsipPrinsip Deadlock Deadlock (5)(5)pp pp• Kemungkinan yang dapat terjadi:

1. Proses Q memperoleh B kemudian A, kemudian membebaskan Bdan A Saat proses P memerlukan kedua resource sudah tersedia

2. Proses Q memperoleh B kemudian A. Saat proses P membutuhkan resource menunggu dulu hingga kedua resource bebas

3 Proses Q memperoleh B kemudian proses P memperoleh A3. Proses Q memperoleh B kemudian proses P memperoleh A. Selanjutnya proses P akan mengambil B, tetapi B sedang digunakanoleh proses Q, demikian pula untuk resource A. Kedua proses salingmenunggu deadlock !menunggu deadlock !

4. Proses P memperoleh A kemudian proses Q memperoleh B. Selanjutnya proses Q akan mengambil A, tetapi A sedang digunakan oleh proses P, demikian pula untuk resource B. Kedua proses saling menunggu deadlock !

5. Proses P memperoleh A kemudian B. Saat proses Q membutuhkan p p Qresource menunggu dulu hingga kedua resource bebas

6. Proses P memperoleh A kemudian B, kemudian membebaskan A danB Saat proses Q memerlukan kedua resource sudah tersediaB Saat proses Q memerlukan kedua resource sudah tersedia

#5Sistem Operasi/20101103

Page 7: Concurrency 2Concurrency 2: Deadlockdan Starvation...Strategggi Penanganan Deadlock • Ada 3 cara yyg p gang dapat digunakan untuk menangani deadlock: 1. Deadlock preventionDeadlock

PrinsipPrinsip--PrinsipPrinsip Deadlock Deadlock (6)(6)pp pp

• Contoh solusi: proses P dibuat agar tidak• Contoh solusi: proses P dibuat agar tidak membutuhkan resource A dan B secara bersamaanbersamaan

Proses P Proses QQ... ...Get A Get B... ...Release A Get A... …Get B Release B... ...Release B Release A... ...

#6Sistem Operasi/20101103

Page 8: Concurrency 2Concurrency 2: Deadlockdan Starvation...Strategggi Penanganan Deadlock • Ada 3 cara yyg p gang dapat digunakan untuk menangani deadlock: 1. Deadlock preventionDeadlock

PrinsipPrinsip--PrinsipPrinsip Deadlock Deadlock (7)(7)pp pp• Joint Progress Diagram (JPD): solusi deadlockg g ( )

#7Sistem Operasi/20101103

Page 9: Concurrency 2Concurrency 2: Deadlockdan Starvation...Strategggi Penanganan Deadlock • Ada 3 cara yyg p gang dapat digunakan untuk menangani deadlock: 1. Deadlock preventionDeadlock

Reusable Resources Reusable Resources (1)(1)( )( )

• Reusable resource merupakan resource• Reusable resource merupakan resourceyang hanya dapat digunakan oleh satu

j d l k d id kproses saja dalam satu waktu dan tidak pernah habis (selalu tersedia)p ( )

• Contoh:k l I/O i t d– prosesor, kanal I/O, memori utama dan

sekunder, device, dan struktur data (file, basis d t d h )data, dan semaphore)

• Contoh (1): deadlock pada reusable resource( ) p– Dua buah proses sama-sama ingin mengakses

harddisk D dan tape drive Tharddisk D dan tape drive T

#8Sistem Operasi/20101103

Page 10: Concurrency 2Concurrency 2: Deadlockdan Starvation...Strategggi Penanganan Deadlock • Ada 3 cara yyg p gang dapat digunakan untuk menangani deadlock: 1. Deadlock preventionDeadlock

Reusable Resources Reusable Resources (2)(2)( )( )

• Contoh (1): deadlock pada reusable resource– Dua buah proses sama-sama ingin mengakses harddisk D

dan tape drive TEk k i k b l j di b i– Eksekusi proses kebetulan terjadi secara bergantian (interleave) sbb: p0 p1 q0 q1 p2 q2

S k di dik i k did t k i Sukar diprediksi sukar dideteksi

#9Sistem Operasi/20101103

Page 11: Concurrency 2Concurrency 2: Deadlockdan Starvation...Strategggi Penanganan Deadlock • Ada 3 cara yyg p gang dapat digunakan untuk menangani deadlock: 1. Deadlock preventionDeadlock

Reusable Resources Reusable Resources (3)(3)( )( )

• Contoh (2): deadlock d bl• Contoh (2): deadlock pada reusable resource– Dua buah proses membutuhkan memori sbb:

P1

. . .P2

. . .

. . .Request 80 Kbytes;

Request 60 Kbytes;

. . .Request 70 Kbytes;

Request 80 Kbytes;

– Ruang memori yang tersedia hanya 200 kB– Deadlock terjadi pada saat salah satu proses membutuhkan– Deadlock terjadi pada saat salah satu proses membutuhkan

memori untuk yang kedua kalinya– Bagaimana solusinya ?g y– Jangan sampai kekurangan memori gunakan virtual memori

#10Sistem Operasi/20101103

Page 12: Concurrency 2Concurrency 2: Deadlockdan Starvation...Strategggi Penanganan Deadlock • Ada 3 cara yyg p gang dapat digunakan untuk menangani deadlock: 1. Deadlock preventionDeadlock

Consumable ResourcesConsumable Resources (1)(1)( )( )

• Merupakan resource yang dapat dibuat (produced) dan dihancurkan (destroyed) berulang-ulang

• Contoh: – Interrupt, signal, message, dan informasi yangInterrupt, signal, message, dan informasi yang

terletak di dalam buffer I/O• Deadlock dapat terjadi jika dua buah proses• Deadlock dapat terjadi jika dua buah proses

atau lebih saling menunggu pesan yang tidak kunjung diterimakunjung diterima

• Sumber kesalahan: pada perancangan• Kapan terjadinya sukar diprediksi (bisa jadi

sesudah satu tahun baru terjadi deadlock) j )sukar dideteksi

#11Sistem Operasi/20101103

Page 13: Concurrency 2Concurrency 2: Deadlockdan Starvation...Strategggi Penanganan Deadlock • Ada 3 cara yyg p gang dapat digunakan untuk menangani deadlock: 1. Deadlock preventionDeadlock

Consumable ResourcesConsumable Resources (2)(2)( )( )

Contoh deadlock d bl• Contoh deadlock pada consumable resource• Deadlock terjadi jika P1 dapat melanjutkan j j p j

eksekusi jika sudah menerima pesan dari P2, demikian pula sebaliknyademikian pula sebaliknya

P1

. . .P2

. . . saling. . .Receive(P2);

Send(P2, M1);

. . .Receive(P1);

Send(P1, M2);

saling menunggu

#12Sistem Operasi/20101103

Page 14: Concurrency 2Concurrency 2: Deadlockdan Starvation...Strategggi Penanganan Deadlock • Ada 3 cara yyg p gang dapat digunakan untuk menangani deadlock: 1. Deadlock preventionDeadlock

Resource Allocation Graphs (RAG) Resource Allocation Graphs (RAG) (1)

• Resource Allocation Graphs (RAG)Resource Allocation Graphs (RAG)merupakan grafik berarah yang menggambarkan status resource dan prosesmenggambarkan status resource dan proses dimana setiap proses dan setiap resourcedi b k d ddigambarkan dengan node

#13Sistem Operasi/20101103

Page 15: Concurrency 2Concurrency 2: Deadlockdan Starvation...Strategggi Penanganan Deadlock • Ada 3 cara yyg p gang dapat digunakan untuk menangani deadlock: 1. Deadlock preventionDeadlock

Resource Allocation Graphs (RAG) Resource Allocation Graphs (RAG) (2)(2)

• Gambar c merupakan kondisi pada saat deadlockterjadij

• Gambar d tidak terjadi deadlock karena setiap resource dapat digunakan oleh lebih dari satu esou ce dapat d gu a a o e eb da satuproses secara bersamaan

#14Sistem Operasi/20101103

Page 16: Concurrency 2Concurrency 2: Deadlockdan Starvation...Strategggi Penanganan Deadlock • Ada 3 cara yyg p gang dapat digunakan untuk menangani deadlock: 1. Deadlock preventionDeadlock

Kondisi untuk Kondisi untuk Deadlock Deadlock (1)(1)( )( )

• Ada 3 kondisi yang dapat memungkinkan• Ada 3 kondisi yang dapat memungkinkanterjadinya deadlock:1. Mutual exclusion1. Mutual exclusion

• Sebuah resource hanya boleh digunakan oleh sebuah proses dalam satu waktu

2 H ld d it2. Hold-and-wait• Sebuah proses boleh terus menerus menggunakan sebuah

resource sambil menunggu resource yang laingg y g3. No preemption

• Resource yang sedang digunakan oleh suatu proses tidak boleh di eb t P oses te seb t tidak bisa diselaboleh direbut Proses tersebut tidak bisa disela (preempted)

• Bila ketiga kondisi tersebut terdapat di dalam sebuah g pkomputer apakah pasti terjadi deadlock ???

#15Sistem Operasi/20101103

Page 17: Concurrency 2Concurrency 2: Deadlockdan Starvation...Strategggi Penanganan Deadlock • Ada 3 cara yyg p gang dapat digunakan untuk menangani deadlock: 1. Deadlock preventionDeadlock

Kondisi untuk Kondisi untuk Deadlock Deadlock (2)(2)( )( )

• Kondisi ke-4 dapat pmemastikan terjadinya deadlock:deadlock:4.Circular wait

M k k i•Merupakan rangkaian beberapa proses dan resource yang membentukresource yang membentuk sebuah cincin dimana setiap proses sedangsetiap proses sedang menggunakan minimal sebuah resource yang juga y g j gsedang dibutuhkan oleh proses di dekatnya

#16Sistem Operasi/20101103

Page 18: Concurrency 2Concurrency 2: Deadlockdan Starvation...Strategggi Penanganan Deadlock • Ada 3 cara yyg p gang dapat digunakan untuk menangani deadlock: 1. Deadlock preventionDeadlock

Kondisi untuk Kondisi untuk Deadlock Deadlock (3)(3)

• RAG untuk menggambarkan circular waityang terjadi pada perempatan lampu merah

22

1

3

a

bc

d 14

#17Sistem Operasi/20101103

Page 19: Concurrency 2Concurrency 2: Deadlockdan Starvation...Strategggi Penanganan Deadlock • Ada 3 cara yyg p gang dapat digunakan untuk menangani deadlock: 1. Deadlock preventionDeadlock

Strategi Penanganan Strategi Penanganan DeadlockDeadlockg gg g

• Ada 3 cara yang dapat digunakan untuk y g p gmenangani deadlock:

1. Deadlock prevention1. Deadlock prevention• Menghilangkan salah satu kondisi atau lebih yang

memungkinkan terjadinya deadlock pada g j y psaat perancangan

2. Deadlock avoidance• Dilakukan pemilihan langkah yang dinamis untuk

mencegah terjadinya deadlock berdasarkan alokasi resource saat itu pada saat eksekusialokasi resource saat itu pada saat eksekusi proses

3 Deadlock detection3. Deadlock detection• Mendeteksi adanya kondisi 1-3 dan circular wait,

kemudian dilakukan langkah-langkah e ud a d a u a a g a a g apenanganan pada saat eksekusi proses

#18Sistem Operasi/20101103

Page 20: Concurrency 2Concurrency 2: Deadlockdan Starvation...Strategggi Penanganan Deadlock • Ada 3 cara yyg p gang dapat digunakan untuk menangani deadlock: 1. Deadlock preventionDeadlock

Deadlock Prevention Deadlock Prevention (1)(1)( )( )

• Kapan deadlock prevention dilakukan ?• Kapan deadlock prevention dilakukan ?– Pada saat perancangan, yaitu dengan cara

menghilangkan satu atau lebih kondisi yang memungkinkan terjadinya deadlock

– Metode: indirect dan direct• Metode indirect• Metode indirect

– Sebisa mungkin tidak menggunakan kondisi 1 3 b ik t i i b1-3 berikut ini secara bersamaan:

1. Mutual Exclusion• Tidak bisa dihilangkan, jika terdapat resource

yang harus diproteksi• Harus disediakan oleh sistem operasi

#19Sistem Operasi/20101103

Page 21: Concurrency 2Concurrency 2: Deadlockdan Starvation...Strategggi Penanganan Deadlock • Ada 3 cara yyg p gang dapat digunakan untuk menangani deadlock: 1. Deadlock preventionDeadlock

Deadlock PreventionDeadlock Prevention (2)(2)( )( )

• Metode indirect (lanjutan)

2. Hold and Wait• Solusi: setiap proses yang membutuhkan resource akan p p y g

ter-blok dan baru dapat dieksekusi jika semua resourceyang diperlukan telah tersedia

• Kekurangan: tidak efisien, karena:– Proses menunggu terlalu lama hingga semua resource yang

di l k t didiperlukan tersedia– Resource yang sudah diklaim oleh suatu proses bisa jadi

belum digunakan, padahal ada proses lain yangbelum digunakan, padahal ada proses lain yang memerlukannya

– Pada saat akan dieksekusi belum tentu suatu proses t h i di l kmengetahui semua resource yang diperlukan

– Tidak efisien untuk pemrograman secara modular dan multithreading harus mengetahui semua resource yangmultithreading harus mengetahui semua resource yang diperlukan untuk semua level atau modul

#20Sistem Operasi/20101103

Page 22: Concurrency 2Concurrency 2: Deadlockdan Starvation...Strategggi Penanganan Deadlock • Ada 3 cara yyg p gang dapat digunakan untuk menangani deadlock: 1. Deadlock preventionDeadlock

Deadlock PreventionDeadlock Prevention (3)(3)( )( )

Metode indi ect (l j )• Metode indirect (lanjutan)

3. No Preemptionp• Solusi 1: tetap boleh no preemption

– Proses yang sedang menggunakan sebuah resourceProses yang sedang menggunakan sebuah resourcetidak boleh menggunakan resource yang lain sebelum resource pertama dilepaskan

• Solusi 2: Preemption– Sistem operasi dapat menyela (preempt) proses yang

sedang running sehingga resource yang sedang digunakannya dapat diberikan kepada proses lainS t i it h b b d– Syarat: prioritas proses harus berbeda

#21Sistem Operasi/20101103

Page 23: Concurrency 2Concurrency 2: Deadlockdan Starvation...Strategggi Penanganan Deadlock • Ada 3 cara yyg p gang dapat digunakan untuk menangani deadlock: 1. Deadlock preventionDeadlock

Deadlock PreventionDeadlock Prevention (4)(4)( )( )

• Metode direct• Metode direct– Mencegah terjadinya kondisi ke-4 (circular wait)– Cara:

• Setiap resource diberi nomor indeks yang terurut secara linier dan penggunaannya harus urut sesuai nomor indeksnya

– Contoh:Contoh:• Proses A membutuhkan resoure Ri kemudian resource Rj, karena i

< j, maka program tersebut benar. • Jika program pada proses B terdapat baris program yang• Jika program pada proses B terdapat baris program yang

membutuhkan resource Rj diikuti dengan resource Ri bisa terjadi deadlock. Kesalahan ada pada proses B karena j > i, seharusnya i < j.seharusnya i < j.

– Kekurangan: • Tidak efisien karena:

k ?– Proses lebih lambat, kenapa ?– Terdapat resource yang sedang tidak digunakan tetapi tidak dapat

dipakai, kenapa ?

#22Sistem Operasi/20101103

Page 24: Concurrency 2Concurrency 2: Deadlockdan Starvation...Strategggi Penanganan Deadlock • Ada 3 cara yyg p gang dapat digunakan untuk menangani deadlock: 1. Deadlock preventionDeadlock

Deadlock AvoidanceDeadlock Avoidance

Ke 3 kondisi pen ebab deadlock boleh ada• Ke-3 kondisi penyebab deadlock boleh ada (tidak perlu dihilangkan)( p g )

• Langkah-langkah yang diperlukan:– Cari informasi tentang resource yang akan

dibutuhkan oleh suatu prosesdibutuhkan oleh suatu proses– Jangan dieksekusi proses yang akan

b bk d dl k d bl kmenyebabkan deadlock di-blok– Jangan diberikan resource baru kepada suatuJangan diberikan resource baru kepada suatu

proses yang sedang menggunakan resourcelain jika akan menyebabkan deadlocklain jika akan menyebabkan deadlock

#23Sistem Operasi/20101103

Page 25: Concurrency 2Concurrency 2: Deadlockdan Starvation...Strategggi Penanganan Deadlock • Ada 3 cara yyg p gang dapat digunakan untuk menangani deadlock: 1. Deadlock preventionDeadlock

Process Initiation Denial Process Initiation Denial (1)(1)( )( )

• Jika terdapat proses sebanyak n dan jenis resource• Jika terdapat proses sebanyak n dan jenis resourcesebanyak m, maka dapat ditulis beberapa definisi sbb:– Jumlah total resource di dalam sistem:Ju a tota esou ce d da a s ste

Resource = R = (R1, R2, …, Rm)– Jumlah total resource yang tersisa (sedang tidak digunakan):

Available = V = (V1, V2, …, Vm)– Daftar klaim (kebutuhan) sejumlah proses terhadap sejumlah

resource dapat dituliskan dengan matriks klaim:resource dapat dituliskan dengan matriks klaim:

C11 = Kebutuhan proseske-1 terhadapresource ke-1m

m

CCCCCC

CCl i

22221

11211

n = jumlah prosesm = jumlah resource

nmnn

m

CCC

CClaim

21

22221

nmnn 21

#24Sistem Operasi/20101103

Page 26: Concurrency 2Concurrency 2: Deadlockdan Starvation...Strategggi Penanganan Deadlock • Ada 3 cara yyg p gang dapat digunakan untuk menangani deadlock: 1. Deadlock preventionDeadlock

Process Initiation Denial Process Initiation Denial (2)(2)( )( )

– Daftar alokasi sejumlah resource kepada sejumlah proses dapat j p j p pdituliskan dengan matriks alokasi sbb:

A11 = Jumlah resource ke-1dib ik k d

mAAA 11211

yang diberikan kepadaproses ke-1

n = jumlah prosesj l h

m

AAA

AAAAAllocation

22221

– Semua resource tersedia atau sedang digunakan semua:

m = jumlah resourcenmnn AAA 21

n

P tidak boleh kl i l bihi j l h t t l

n

iijjj AVR

1

untuk semua j i = proses ke-ij = resource ke-j

– Proses tidak boleh mengklaim resource melebihi jumlah total resource di dalam sistem:

jij RC untuk semua – Pengalokasian resource tidak boleh melebihi nilai klaim:

jij RC i,j

ijij CA untuk semuaijij CA untuk semua i,j

#25Sistem Operasi/20101103

Page 27: Concurrency 2Concurrency 2: Deadlockdan Starvation...Strategggi Penanganan Deadlock • Ada 3 cara yyg p gang dapat digunakan untuk menangani deadlock: 1. Deadlock preventionDeadlock

Process Initiation Denial Process Initiation Denial (3)(3)( )( )

• Proses baru (P ) dapat dieksekusi jika kondisi berikut• Proses baru (Pn+1) dapat dieksekusi jika kondisi berikut terpenuhi:

untuk semua j n

ijjj CCR )1( untuk semua j

i

ijjnj CCR1

)1(

jumlah resource jumlah resource yang telah diklaim oleh proses-proses

yang diklaim oleh proses baru

diklaim oleh proses proses sebelumnya

#26Sistem Operasi/20101103

Page 28: Concurrency 2Concurrency 2: Deadlockdan Starvation...Strategggi Penanganan Deadlock • Ada 3 cara yyg p gang dapat digunakan untuk menangani deadlock: 1. Deadlock preventionDeadlock

ReferensiReferensi

[STA09] Stallings William 2009 Operating System:[STA09] Stallings, William. 2009. Operating System: Internal and Design Principles. 6th edition. Prentice HallPrentice Hall

#27Sistem Operasi/20101103