Anda di halaman 1dari 30

Deadlock dan Starvation

(Pertemuan ke-16) ke-

Concurrency 2:

November 2010

Resource Allocation Denial


Menggunakan algoritma banker mirip model peminjaman uang pada bank Beberapa istilah: State (status) sistem merupakan alokasi sejumlah Safe state (status aman) merupakan kondisi
resource kepada suatu proses saat ini
dimana setiap saat setidaknya terdapat sebuah proses yang dapat dieksekusi (tidak deadlock), sehingga seluruh proses dapat dieksekusi hingga selesai p p gg Unsafe state (status tidak aman) merupakan kondisi dimana semua proses mengalami deadlock p g

SistemOperasi/20101103 #1

Contoh Deadlock Avoidance

(1 )

Contoh 1: Apakah akan terjadi deadlock ? p j

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

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

SistemOperasi/20101103 #2

Contoh Deadlock Avoidance


Apakah P1 dapat dieksekusi ?

(2 )

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 ?
R Resource yang tersisa: R1=0, R2=1, R3=1 i R1 0 R2 1 R3 1 Resource yang dibutuhkan: R1=0, R2=0, R3=1 resource mencukupi P2 tidak terblok OK !

SistemOperasi/20101103 #3

Contoh Deadlock Avoidance


dieksekusi ?

(3 )

Setelah P2 selesai apakah P1 dapat selesai,


R Resource yang t i tersisa: R1=6, R2=2, R3=3 R1 6 R2 2 R3 3 Resource yang dibutuhkan: R1=2, R2=2, R3=2 resource mencukupi P1 tidak terblok P1 tidak terblok OK !

SistemOperasi/20101103 #4

Contoh Deadlock Avoidance


Apakah P3 dapat dieksekusi ? p p

(4 )

Resource yang tersisa: R1=7, R2=2, R3=3 Resource yang dibutuhkan: R1=1, R2=0, R3=3 resource mencukupi P3 tidak t bl k P3 tidak t bl k OK ! k i tid k terblok tid k terblok

Apakah P4 d k h dapat dieksekusi ? d k k


Yes ! Urutan eksekusi P2, P1, P3, P4 semua proses dapat dieksekusi SAFE !
SistemOperasi/20101103 #5

Contoh Deadlock Avoidance

(5 )

Contoh 2: Apakah akan terjadi deadlock ? p j

Nilai inisialisasi sama dengan contoh 1 kecuali data-data untuk proses P2 dan sisa resource yang tersedia
SistemOperasi/20101103 #6

Contoh Deadlock Avoidance

(6 )

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

X6

X2

X0

X1

X0

X1

SistemOperasi/20101103 #7

Contoh Deadlock Avoidance

(7) ( )

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

Resource yang tersisa tinggal R1=0, R2=1, dan R3 =1 Pada matriks C-A terlihat bahwa setiap proses setidaknya CA membutuhkan R1=1 untuk dapat dieksekusi tidak ada proses yang dapat dieksekusi UNSAFE !!! Permintaan P1 DITOLAK P1 di-

blok !

SistemOperasi/20101103 #8

Contoh Algoritma Deadlock Avoidance Algoritma:

(1)

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 di blok Jika safe berikan resource dan perbaharui datadata resource

SistemOperasi/20101103 #9

Contoh Algoritma Deadlock Avoidance

(2)

SistemOperasi/20101103 #10

Contoh Algoritma Deadlock Avoidance

(3)

SistemOperasi/20101103 #11

KelebihanKelebihan-Kekurangan Deadlock Avoidance Kelebihan:


(+) Tidak perlu mem-preempt dan mengembalikan data p p konteks suatu proses lebih cepat dan sederhana (+) Lebih fleksibel dibanding metode deadlock

prevention

Kekurangan:
Jumlah kebutuhan resource maksimum setiap proses harus sudah diketahui di awal Urutan eksekusi proses tidak dapat ditentukan dengan aturan tertentu y g p Jumlah resource yang dialokasikan ke suatu proses bersifat tetap (tidak boleh berubah) Proses tidak boleh keluar (exit) selama masih memegang resource
SistemOperasi/20101103 #12

Deadlock Detection (1) ( )


Setiap proses boleh minta resource terus menerus pp selama masih tersedia Secara periodik sistem operasi menjalankan algoritma untuk mendeteksi terjadinya circular wait (deadlock) Proses yang tidak mengalami deadlock diberi tanda (mark)
punya tanda tidak deadlock tidak punya tanda deadlock p y Matrik Alokasi A Vektor Resource R k

Definisi-definisi berikut ini masih digunakan:


- Vektor Available V

Matriks Request Q

Merupakan matriks yang berisi daftar semua resource yang diminta oleh masing-masing proses

SistemOperasi/20101103 #13

Deadlock Detection (2) ( )


Strategi pada deadlock detection:
Menemukan proses yang kebutuhan resourcenya l bih kecil atau sama dengan resource lebih k il t d yang tersedia (sedang tidak digunakan) Berikan resource pada proses tersebut Eksekusi p oses te sebut hingga se esa se us proses tersebut gga selesai Bebaskan semua resource yang telah selesai digunakan Cari proses berikutnya yang dapat dieksekusi

SistemOperasi/20101103 #14

Deadlock Detection (2) ( )


Algoritma deadlock detection: g
Mula-mula semua proses tidak diberi tanda Beri tanda pada proses yang mempunyai nilai 0 untuk semua resource pada matriks alokasi, kenapa ? alokasi
Proses tersebut tidak mendapatkan resource tidak/belum dieksekusi tidak deadlock, bahkan bisa starvation ! perlu segera dit l ditolong

Inisialisasi vektor penampung sementara (temporary) W dengan g nilai sama dengan vektor available Temukan proses yang belum diberi tanda dan bandingkan nilai matriks 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


SistemOperasi/20101103 #15

Contoh Deadlock Detection

Algoritma:

So ?

Beri tanda P4, karena P4 belum mempunyai alokasi resource (nilai P4 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 !!!
SistemOperasi/20101103 #16

Solusi Bila Terjadi Deadlock j


(1) ( )

Batalkan (kill) semua proses yang mengalami deadlock solusi yang biasa digunakan di OS Kembalikan status proses tersebut ke status checkpoint yang telah dibuat sebelumnya (sebelum terjadi deadlock) Restart proses tersebut
Apakah deadlock pasti tidak terjadi lagi ??? Belum tentu p p j g Urut-urutan eksekusi proses tidak dapat diduga (nondeterministic) ada kemungkinan deadlock tidak terjadi lagi

Satu per satu batalkan proses lain yang mengalami deadlock hingga tidak ada lagi proses yang deadlock Satu per satu ambil (preempt) resource dari proses yang mengalami deadlock hingga deadlock tidak terjadi lagi
SistemOperasi/20101103 #17

Solusi Bila Terjadi Deadlock j

(2) ( )

Bagaimana cara memilih proses yang perlu dibatalkan (kill) ? S l i pilih yang paling murah biayanya ! Solusi: ilih li h bi Beberapa alasan yang dapat dipilih: p y g p p
Proses yang paling sedikit menggunakan waktu prosesor Proses yang paling sedikit memberikan hasil Proses yang masih membutuhkan waktu eksekusi paling banyak P Proses yang paling sedikit mendapatkan li dikit d tk

resource

Proses yang mempunyai prioritas terendah


SistemOperasi/20101103 #18

Perbandingan Tiga Metode Penanganan

Deadlock

SistemOperasi/20101103 #19

Masalah Dining Philosophers g p


Deskripsi masalah: p

(1)

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 y g g p y p g 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, garpu sehingga mereka membutuhkan 2 buah garpu sekaligus yang berada di kiri dan kanan mereka Setiap S ti garpu h hanya boleh digunakan oleh seorang filsuf secara b l h di k l h fil f bergantian

Bagaimana caranya agar semua filsuf bisa makan sehingga tidak ada deadlock dan starvation ???

SistemOperasi/20101103 #20

Masalah Dining Philosophers g p


Tempat makan T t k ke-5 filsuf

(2)

SistemOperasi/20101103 #21

Masalah Dining Philosophers g p


Solusi pertama: dengan semaphore

(3)

Jika ke-5 filsuf datang, duduk, dan ambil garpu g, , g p bersamaan apa yang akan terjadi ???
SistemOperasi/20101103 #22

Masalah Dining Philosophers g p


Bagaimana solusinya ?
Beli 5 buah garpu lagi lebih higienis

(4)

Ajari ke-5 filsuf cara makan spageti dengan sebuah garpu Ada pelayan yang bertugas menyuapi mereka secara bergantian g Tambahkan seorang pelayan yang mengawasi ruang makan mereka sehingga dalam satu saat hanya 4 filsuf saja yang boleh masuk ke ruang makan ...

SistemOperasi/20101103 #23

Masalah Dining Philosophers g p


Solusi kedua: dengan semaphore

(5)

Dalam satu saat selalu ada yang bisa makan deadlock dan y g starvation dapat dihindari
SistemOperasi/20101103 #24

Masalah Dining Philosophers g p


Solusi ketiga: dengan monitor g g

(6)

SistemOperasi/20101103 #25

Masalah Dining Philosophers g p


Main program:

(7)

Apakah bisa terjadi deadlock dan starvation ??? Tidak, Tidak karena dalam satu saat hanya satu proses saja yang bisa masuk ke dalam monitor
SistemOperasi/20101103 #26

Masalah Dining Philosophers g p


Solusi keempat: dengan monitor

(8)

SistemOperasi/20101103 #27

Masalah Dining Philosophers g p


Main program:

(9)

SistemOperasi/20101103 #28

Referensi
[STA09] Stallings William. 2009. Operating Stallings, William 2009 edition. edition Prentice Hall

System: Internal and Design Principles. 6th

SistemOperasi/20101103#29

Anda mungkin juga menyukai