31
Concurrency 2 Concurrency 2: Sistem operasi #0 Deadlock Deadlock dan dan Starvation Starvation (Pertemuan ke (Pertemuan ke-16) 16) November 2014

Concurrency 2 Deadlock Starvation - Telkom Universitycdndata.telkomuniversity.ac.id/pjj/z14146434968aadbb5bff060452db29... · – Vektor AvailableV = daftar resourceyang belum digunakan

  • Upload
    lamque

  • View
    228

  • Download
    0

Embed Size (px)

Citation preview

Concurrency 2Concurrency 2::DeadlockDeadlock dandan StarvationStarvation

(Pertemuan ke(Pertemuan ke--16)16)

Sistem operasi #0

Concurrency 2Concurrency 2::DeadlockDeadlock dandan StarvationStarvation

(Pertemuan ke(Pertemuan ke--16)16)

November 2014

Pokok BahasanPokok Bahasan

• Pokok Bahasan:– Deadlock dan starvation

• Sub Pokok Bahasan:– Deadlock avoidance – Resource allocation denial– Deadlock detection

• TIU:– Mahasiswa dapat memahami konsep penanganan deadlock

• TIK:– Mahasiswa dapat menjelaskan konsep deadlock avoidance

(resource allocation denial)– Mahasiswa dapat menjelaskan konsep deadlock detection

Sistem operasi #1

• Pokok Bahasan:– Deadlock dan starvation

• Sub Pokok Bahasan:– Deadlock avoidance – Resource allocation denial– Deadlock detection

• TIU:– Mahasiswa dapat memahami konsep penanganan deadlock

• TIK:– Mahasiswa dapat menjelaskan konsep deadlock avoidance

(resource allocation denial)– Mahasiswa dapat menjelaskan konsep deadlock detection

Resource Allocation DenialResource Allocation Denial

• Menggunakan algoritma banker mirip modelpeminjaman uang pada bank

• Beberapa istilah:– State (status) sistem merupakan alokasi sejumlah

resource kepada suatu proses saat ini– Safe state (status aman) merupakan kondisi

dimana setiap saat setidaknya terdapat sebuah prosesyang dapat dieksekusi (tidak deadlock), sehinggaseluruh proses dapat dieksekusi hingga selesai

– Unsafe state (status tidak aman) merupakankondisi dimana semua proses mengalami deadlock

Sistem operasi #2

• Menggunakan algoritma banker mirip modelpeminjaman uang pada bank

• Beberapa istilah:– State (status) sistem merupakan alokasi sejumlah

resource kepada suatu proses saat ini– Safe state (status aman) merupakan kondisi

dimana setiap saat setidaknya terdapat sebuah prosesyang dapat dieksekusi (tidak deadlock), sehinggaseluruh proses dapat dieksekusi hingga selesai

– Unsafe state (status tidak aman) merupakankondisi dimana semua proses mengalami deadlock

#2

ContohContoh Deadlock AvoidanceDeadlock Avoidance ((11))

• Contoh 1: Apakah akan terjadi deadlock ?

– Matriks alokasi A = state system– C-A = resource yang belum dipenuhi– Vektor Available V = daftar resource yang belum digunakan– Vektor Resource R merupakan daftar semua resource yang

dipunyai sistem

• Apakah kondisi di atas aman (safe) ???

Sistem operasi #3

• Contoh 1: Apakah akan terjadi deadlock ?

– Matriks alokasi A = state system– C-A = resource yang belum dipenuhi– Vektor Available V = daftar resource yang belum digunakan– Vektor Resource R merupakan daftar semua resource yang

dipunyai sistem

• Apakah kondisi di atas aman (safe) ???

#3

ContohContoh Deadlock AvoidanceDeadlock Avoidance ((22))

• Apakah P1 dapat dieksekusi ?– Resource yang tersisa: R1=0, R2=1, R3=1– Resource yang dibutuhkan: R1=2, R2=2, R3=2 resource tidak

mencukupi P1 terblok !!!

• Bagaimana dengan P2 ?– Resource yang tersisa: R1=0, R2=1, R3=1– Resource yang dibutuhkan: R1=0, R2=0, R3=1 resource

mencukupi P2 tidak terblok OK !

Sistem operasi #4

• Apakah P1 dapat dieksekusi ?– Resource yang tersisa: R1=0, R2=1, R3=1– Resource yang dibutuhkan: R1=2, R2=2, R3=2 resource tidak

mencukupi P1 terblok !!!

• Bagaimana dengan P2 ?– Resource yang tersisa: R1=0, R2=1, R3=1– Resource yang dibutuhkan: R1=0, R2=0, R3=1 resource

mencukupi P2 tidak terblok OK !

#4

ContohContoh Deadlock AvoidanceDeadlock Avoidance ((33))

• Setelah P2 selesai, apakah P1 dapatdieksekusi ?– Resource yang tersisa: R1=6, R2=2, R3=3– Resource yang dibutuhkan: R1=2, R2=2, R3=2

resource mencukupi P1 tidak terblok P1tidak terblok OK !

Sistem operasi #5

• Setelah P2 selesai, apakah P1 dapatdieksekusi ?– Resource yang tersisa: R1=6, R2=2, R3=3– Resource yang dibutuhkan: R1=2, R2=2, R3=2

resource mencukupi P1 tidak terblok P1tidak terblok OK !

#5

• Apakah P3 dapat dieksekusi ?– Resource yang tersisa: R1=7, R2=2, R3=3– Resource yang dibutuhkan: R1=1, R2=0, R3=3 resource

mencukupi P3 tidak terblok P3 tidak terblok OK !

• Apakah P4 dapat dieksekusi ?– Yes ! Urutan eksekusi P2, P1, P3, P4 semua proses

dapat dieksekusi SAFE !

ContohContoh Deadlock AvoidanceDeadlock Avoidance ((44))

Sistem operasi #6

• Apakah P3 dapat dieksekusi ?– Resource yang tersisa: R1=7, R2=2, R3=3– Resource yang dibutuhkan: R1=1, R2=0, R3=3 resource

mencukupi P3 tidak terblok P3 tidak terblok OK !

• Apakah P4 dapat dieksekusi ?– Yes ! Urutan eksekusi P2, P1, P3, P4 semua proses

dapat dieksekusi SAFE !#6

ContohContoh Deadlock AvoidanceDeadlock Avoidance ((55))

• Contoh 2: Apakah akan terjadi deadlock ?

– Nilai inisialisasi sama dengan contoh 1 kecuali data-datauntuk proses P2 dan sisa resource yang tersedia

Sistem operasi #7

• Contoh 2: Apakah akan terjadi deadlock ?

– Nilai inisialisasi sama dengan contoh 1 kecuali data-datauntuk proses P2 dan sisa resource yang tersedia

#7

• Jika P2 minta resource R1 dan R3 masing-masing satuunit kondisinya menjadi sama dengan contoh 1 terbukti SAFE !

ContohContoh Deadlock AvoidanceDeadlock Avoidance ((66))

X0 X1X6 X2

Sistem operasi #8

• Jika P2 minta resource R1 dan R3 masing-masing satuunit kondisinya menjadi sama dengan contoh 1 terbukti SAFE !

X1X0

#8

• Bagaimana jika P1 minta resource R1 dan R3 masing-masing satu unit apakah safe ?

– Resource yang tersisa tinggal R1=0, R2=1, dan R3 =1– Pada matriks C-A terlihat bahwa setiap proses setidaknya

membutuhkan R1=1 untuk dapat dieksekusi tidak ada proses yangdapat dieksekusi UNSAFE !!! Permintaan P1 DITOLAK P1 di-blok !

ContohContoh Deadlock AvoidanceDeadlock Avoidance (7)(7)

Sistem operasi #9

• Bagaimana jika P1 minta resource R1 dan R3 masing-masing satu unit apakah safe ?

– Resource yang tersisa tinggal R1=0, R2=1, dan R3 =1– Pada matriks C-A terlihat bahwa setiap proses setidaknya

membutuhkan R1=1 untuk dapat dieksekusi tidak ada proses yangdapat dieksekusi UNSAFE !!! Permintaan P1 DITOLAK P1 di-blok !

#9

ContohContoh Algoritma Deadlock AvoidanceAlgoritma Deadlock Avoidance (1)(1)

• Algoritma:– Periksa apakah permintaan resource melebihi dari

klaim sebelumnya– Jika valid periksa apakah resource yang diminta

mencukupi– Jika tidak cukup proses tersebut di-blok– Jika cukup periksa apakah kondisinya SAFE ?– Jika unsafe tolak permintaan tersebut dan proses

yang minta resource di-blok– Jika safe berikan resource dan perbaharui data-

data resource

Sistem operasi #10

• Algoritma:– Periksa apakah permintaan resource melebihi dari

klaim sebelumnya– Jika valid periksa apakah resource yang diminta

mencukupi– Jika tidak cukup proses tersebut di-blok– Jika cukup periksa apakah kondisinya SAFE ?– Jika unsafe tolak permintaan tersebut dan proses

yang minta resource di-blok– Jika safe berikan resource dan perbaharui data-

data resource

#10

ContohContoh Algoritma Deadlock AvoidanceAlgoritma Deadlock Avoidance ((22))

Sistem operasi #11#11

ContohContoh Algoritma Deadlock AvoidanceAlgoritma Deadlock Avoidance ((33))

Sistem operasi #12#12

KelebihanKelebihan--KekuranganKekurangan Deadlock AvoidanceDeadlock Avoidance

• Kelebihan:(+) Tidak perlu mem-preempt dan mengembalikan data

konteks suatu proses lebih cepat dan sederhana(+) Lebih fleksibel dibanding metode deadlock

prevention• Kekurangan:

– Jumlah kebutuhan resource maksimum setiap prosesharus sudah diketahui di awal

– Urutan eksekusi proses tidak dapat ditentukandengan aturan tertentu

– Jumlah resource yang dialokasikan ke suatu prosesbersifat tetap (tidak boleh berubah)

– Proses tidak boleh keluar (exit) selama masihmemegang resource

Sistem operasi #13

• Kelebihan:(+) Tidak perlu mem-preempt dan mengembalikan data

konteks suatu proses lebih cepat dan sederhana(+) Lebih fleksibel dibanding metode deadlock

prevention• Kekurangan:

– Jumlah kebutuhan resource maksimum setiap prosesharus sudah diketahui di awal

– Urutan eksekusi proses tidak dapat ditentukandengan aturan tertentu

– Jumlah resource yang dialokasikan ke suatu prosesbersifat tetap (tidak boleh berubah)

– Proses tidak boleh keluar (exit) selama masihmemegang resource

#13

Deadlock DetectionDeadlock Detection (1)(1)

• Setiap proses boleh minta resource terus menerusselama masih tersedia

• Secara periodik sistem operasi menjalankan algoritmauntuk mendeteksi terjadinya circular wait (deadlock)

• Proses yang tidak mengalami deadlock diberi tanda(mark)– punya tanda tidak deadlock– tidak punya tanda deadlock

• Definisi-definisi berikut ini masih digunakan:– Matrik Alokasi A - Vektor Available V– Vektor Resource R

• Matriks Request Q– Merupakan matriks yang berisi daftar semua resource yang

diminta oleh masing-masing proses

Sistem operasi #14

• Setiap proses boleh minta resource terus menerusselama masih tersedia

• Secara periodik sistem operasi menjalankan algoritmauntuk mendeteksi terjadinya circular wait (deadlock)

• Proses yang tidak mengalami deadlock diberi tanda(mark)– punya tanda tidak deadlock– tidak punya tanda deadlock

• Definisi-definisi berikut ini masih digunakan:– Matrik Alokasi A - Vektor Available V– Vektor Resource R

• Matriks Request Q– Merupakan matriks yang berisi daftar semua resource yang

diminta oleh masing-masing proses

#14

Deadlock DetectionDeadlock Detection (2)(2)

• Strategi pada deadlock detection:– Menemukan proses yang kebutuhan resource-

nya lebih kecil atau sama dengan resourceyang tersedia (sedang tidak digunakan)

– Berikan resource pada proses tersebut– Eksekusi proses tersebut hingga selesai– Bebaskan semua resource yang telah selesai

digunakan– Cari proses berikutnya yang dapat dieksekusi

Sistem operasi #15

• Strategi pada deadlock detection:– Menemukan proses yang kebutuhan resource-

nya lebih kecil atau sama dengan resourceyang tersedia (sedang tidak digunakan)

– Berikan resource pada proses tersebut– Eksekusi proses tersebut hingga selesai– Bebaskan semua resource yang telah selesai

digunakan– Cari proses berikutnya yang dapat dieksekusi

#15

Deadlock DetectionDeadlock Detection (2)(2)

• Algoritma deadlock detection:– Mula-mula semua proses tidak diberi tanda– Beri tanda pada proses yang mempunyai nilai 0 untuk semua

resource pada matriks alokasi, kenapa ?• Proses tersebut tidak mendapatkan resource tidak/belum

dieksekusi tidak deadlock, bahkan bisa starvation ! perlusegera ditolong

– Inisialisasi vektor penampung sementara (temporary) W dengannilai sama dengan vektor available

– Temukan proses yang belum diberi tanda dan bandingkan nilaimatriks request Q untuk proses tersebut dengan nilai vektor W

– Jika nilainya lebih kecil atau sama beri tanda (mark) proses tersebut (tidak mengalami deadlock) Update nilai W = W + A

A = resource yang telah dialokasikan pada proses tersebut

– Lanjutkan pencarian hingga semua proses diperiksa

Sistem operasi #16

• Algoritma deadlock detection:– Mula-mula semua proses tidak diberi tanda– Beri tanda pada proses yang mempunyai nilai 0 untuk semua

resource pada matriks alokasi, kenapa ?• Proses tersebut tidak mendapatkan resource tidak/belum

dieksekusi tidak deadlock, bahkan bisa starvation ! perlusegera ditolong

– Inisialisasi vektor penampung sementara (temporary) W dengannilai sama dengan vektor available

– Temukan proses yang belum diberi tanda dan bandingkan nilaimatriks request Q untuk proses tersebut dengan nilai vektor W

– Jika nilainya lebih kecil atau sama beri tanda (mark) proses tersebut (tidak mengalami deadlock) Update nilai W = W + A

A = resource yang telah dialokasikan pada proses tersebut

– Lanjutkan pencarian hingga semua proses diperiksa

#16

ContohContoh Deadlock DetectionDeadlock Detection

• Algoritma:– Beri tanda P4, karena P4 belum mempunyai alokasi resource (nilai

matriks alokasinya 0 semua)– Set W = (00001)– Karena request (Q) proses P3 lebih kecil atau sama dengan W

Beri tanda pada P3– W = W + A = 00001 + 00010 = 00011– Request resource (Q) proses P1 dan P2 lebih banyak daripada nilai

W (resource yang tersedia) kedua proses tidak diberi tanda– P1 dan P2 merupakan proses yang mengalami deadlock !!!– So ?

Sistem operasi #17

• Algoritma:– Beri tanda P4, karena P4 belum mempunyai alokasi resource (nilai

matriks alokasinya 0 semua)– Set W = (00001)– Karena request (Q) proses P3 lebih kecil atau sama dengan W

Beri tanda pada P3– W = W + A = 00001 + 00010 = 00011– Request resource (Q) proses P1 dan P2 lebih banyak daripada nilai

W (resource yang tersedia) kedua proses tidak diberi tanda– P1 dan P2 merupakan proses yang mengalami deadlock !!!– So ?

#17

Solusi Bila TerjadiSolusi Bila Terjadi DeadlockDeadlock (1)(1)

• Batalkan (kill) semua proses yang mengalami deadlock solusi yang biasa digunakan di OS

• Kembalikan status proses tersebut ke status checkpointyang telah dibuat sebelumnya (sebelum terjadideadlock)

• Restart proses tersebut– Apakah deadlock pasti tidak terjadi lagi ??? Belum tentu– Urut-urutan eksekusi proses tidak dapat diduga

(nondeterministic) ada kemungkinan deadlock tidak terjadilagi

• Satu per satu batalkan proses lain yang mengalamideadlock hingga tidak ada lagi proses yang deadlock

• Satu per satu ambil (preempt) resource dari proses yangmengalami deadlock hingga deadlock tidak terjadi lagi

Sistem operasi #18

• Batalkan (kill) semua proses yang mengalami deadlock solusi yang biasa digunakan di OS

• Kembalikan status proses tersebut ke status checkpointyang telah dibuat sebelumnya (sebelum terjadideadlock)

• Restart proses tersebut– Apakah deadlock pasti tidak terjadi lagi ??? Belum tentu– Urut-urutan eksekusi proses tidak dapat diduga

(nondeterministic) ada kemungkinan deadlock tidak terjadilagi

• Satu per satu batalkan proses lain yang mengalamideadlock hingga tidak ada lagi proses yang deadlock

• Satu per satu ambil (preempt) resource dari proses yangmengalami deadlock hingga deadlock tidak terjadi lagi

#18

Solusi Bila TerjadiSolusi Bila Terjadi DeadlockDeadlock (2)(2)

• Bagaimana cara memilih proses yangperlu dibatalkan (kill) ?

• Solusi: pilih yang paling murah biayanya !• Beberapa alasan yang dapat dipilih:

– Proses yang paling sedikit menggunakanwaktu prosesor

– Proses yang paling sedikit memberikan hasil– Proses yang masih membutuhkan waktu

eksekusi paling banyak– Proses yang paling sedikit mendapatkan

resource– Proses yang mempunyai prioritas terendah

Sistem operasi #19

• Bagaimana cara memilih proses yangperlu dibatalkan (kill) ?

• Solusi: pilih yang paling murah biayanya !• Beberapa alasan yang dapat dipilih:

– Proses yang paling sedikit menggunakanwaktu prosesor

– Proses yang paling sedikit memberikan hasil– Proses yang masih membutuhkan waktu

eksekusi paling banyak– Proses yang paling sedikit mendapatkan

resource– Proses yang mempunyai prioritas terendah

#19

Perbandingan Tiga Metode PenangananPerbandingan Tiga Metode PenangananDeadlockDeadlock

Sistem operasi #20#20

MasalahMasalah Dining PhilosophersDining Philosophers (1)(1)

• Deskripsi masalah:– Ada 5 orang filsuf yang tinggal dalam sebuah rumah– Aktifitas ke-5 filsuf sehari-hari adalah berpikir – makan – berpikir

– makan – ...– Setelah bertahun-tahun berpikir, mereka sepakat bahwa

makanan yang mendukung untuk berpikir hanyalah spageti– Di tempat mereka makan terdapat sebuah meja bundar, 5 kursi,

5 piring, 5 garpu, dan sebuah piring besar berisi spageti– Mereka tidak bisa makan spageti hanya dengan sebuah garpu,

sehingga mereka membutuhkan 2 buah garpu sekaligus yangberada di kiri dan kanan mereka

– Setiap garpu hanya boleh digunakan oleh seorang filsuf secarabergantian

• Bagaimana caranya agar semua filsuf bisa makansehingga tidak ada deadlock dan starvation ???

Sistem operasi #21

• Deskripsi masalah:– Ada 5 orang filsuf yang tinggal dalam sebuah rumah– Aktifitas ke-5 filsuf sehari-hari adalah berpikir – makan – berpikir

– makan – ...– Setelah bertahun-tahun berpikir, mereka sepakat bahwa

makanan yang mendukung untuk berpikir hanyalah spageti– Di tempat mereka makan terdapat sebuah meja bundar, 5 kursi,

5 piring, 5 garpu, dan sebuah piring besar berisi spageti– Mereka tidak bisa makan spageti hanya dengan sebuah garpu,

sehingga mereka membutuhkan 2 buah garpu sekaligus yangberada di kiri dan kanan mereka

– Setiap garpu hanya boleh digunakan oleh seorang filsuf secarabergantian

• Bagaimana caranya agar semua filsuf bisa makansehingga tidak ada deadlock dan starvation ???

#21

MasalahMasalah Dining PhilosophersDining Philosophers (2)(2)

Tempat makanke-5 filsuf

Sistem operasi #22#22

• Solusi pertama: dengan semaphore

• Jika ke-5 filsuf datang, duduk, dan ambil garpubersamaan apa yang akan terjadi ???

MasalahMasalah Dining PhilosophersDining Philosophers (3)(3)

Sistem operasi #23

• Solusi pertama: dengan semaphore

• Jika ke-5 filsuf datang, duduk, dan ambil garpubersamaan apa yang akan terjadi ???

#23

• Bagaimana solusinya ?– Beli 5 buah garpu lagi lebih higienis

– Ajari ke-5 filsuf cara makan spageti dengan sebuahgarpu

– Ada pelayan yang bertugas menyuapi mereka secarabergantian

– Tambahkan seorang pelayan yang mengawasi ruangmakan mereka sehingga dalam satu saat hanya 4filsuf saja yang boleh masuk ke ruang makan

– ...

MasalahMasalah Dining PhilosophersDining Philosophers (4)(4)

Sistem operasi #24

• Bagaimana solusinya ?– Beli 5 buah garpu lagi lebih higienis

– Ajari ke-5 filsuf cara makan spageti dengan sebuahgarpu

– Ada pelayan yang bertugas menyuapi mereka secarabergantian

– Tambahkan seorang pelayan yang mengawasi ruangmakan mereka sehingga dalam satu saat hanya 4filsuf saja yang boleh masuk ke ruang makan

– ...

#24

• Solusi kedua: dengan semaphore

– Dalam satu saat selalu ada yang bisa makan deadlock danstarvation dapat dihindari

MasalahMasalah Dining PhilosophersDining Philosophers (5)(5)

Sistem operasi #25

• Solusi kedua: dengan semaphore

– Dalam satu saat selalu ada yang bisa makan deadlock danstarvation dapat dihindari

#25

MasalahMasalah Dining PhilosophersDining Philosophers (6)(6)

• Solusi ketiga: dengan monitor

Sistem operasi #26

• Solusi ketiga: dengan monitor

#26

MasalahMasalah Dining PhilosophersDining Philosophers (7)(7)

• Main program:

• Apakah bisa terjadi deadlock dan starvation ???

• Tidak, karena dalam satu saat hanya satu prosessaja yang bisa masuk ke dalam monitor

Sistem operasi #27

• Main program:

• Apakah bisa terjadi deadlock dan starvation ???

• Tidak, karena dalam satu saat hanya satu prosessaja yang bisa masuk ke dalam monitor

#27

MasalahMasalah Dining PhilosophersDining Philosophers (8)(8)

• Solusi keempat: dengan monitor

Sistem operasi #28

• Solusi keempat: dengan monitor

#28

MasalahMasalah Dining PhilosophersDining Philosophers (9)(9)

• Main program:

Sistem operasi #29

• Main program:

#29

ReferensiReferensi

[STA09] Stallings, William. 2009. OperatingSystem: Internal and Design Principles. 6th

edition. Prentice Hall

Sistem operasi #30#30