sistem operasi 2009 - komputasi · sistem operasi 2009. 2 ... –definisikan suatu pengurutan...

52
Pertemuan 6 Concurrency: Deadlock & Starvation H u s n i Lab. Sistem Komputer & Jaringan Teknik Informatika Univ. Trunojoyo Sistem Operasi 2009

Upload: vankhuong

Post on 12-Mar-2019

234 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

Pertemuan 6

Concurrency: Deadlock & Starvation

H u s n iLab. Sistem Komputer & JaringanTeknik Informatika Univ. Trunojoyo

Sistem Operasi 2009

Page 2: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

2

Deadlock (1)

• Permanent blocking dari sekumpulan proses yang saling bersaing mendapatkan sumber daya sistem atau komunikasi

• Tidak ada solusi yang efisien• Mencakup kebutuhan yang bertentangan

bagi sumber daya oleh dua atau lebih proses

Page 3: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

3

Deadlock (2)

Page 4: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

4

Deadlock (3)

Page 5: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

5

Deadlock (4)

Page 6: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

6

Sumber Daya Reusable (1)

• Digunakan hanya oleh satu proses pada satu waktu dan tidak dihabiskan oleh penggunaan tersebut

• Proses memperoleh sumber daya, kemudian dilepaskan agar dapat digunakan (ulang, reuse) oleh proses lain

Page 7: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

7

Sumber Daya Reusable (2)

• Termasuk: Processor, Channel I/O, memory utama & sekunder, perangkat, dan struktur data seperti file, database, dan semaphore

• Deadlock terjadi jika setiap proses memegang satu sumber daya dan meminta sumber daya lain

Page 8: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

8

Sumber Daya Reusable (3)

Page 9: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

9

Sumber Daya Reusable (4)

• Space (ruang di memory) tersedia bagi alokasi 200 KB, dan deretan kejadian berikut terjadi

• Deadlock terjadi jika kedua proses bergerak ke permintaan kedua mereka

P1

. . .

. . .Request 80 Kbytes;

Request 60 Kbytes;

P2

. . .

. . .Request 70 Kbytes;

Request 80 Kbytes;

Page 10: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

10

Sumber Daya Consumable

• Dibuat (produced) dan dihancurkan (consumed)

• Termasuk: Interrupt, signal, message, dan informasi dalam buffer I/O

• Deadlock dapat terjadi jika suatu receive message di-blocking

• Dapat berupa kombinasi jarang dari event-event yang menyebabkan deadlock

Page 11: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

11

Contoh Deadlock

• Deadlock terjadi jika receive di-blocking

P1

. . .

. . .Receive(P2);

Send(P2, M1);

P2

. . .

. . .Receive(P1);

Send(P1, M2);

Page 12: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

12

Grafik Alokasi Resource

• Directed graph yang menggambarkan status dari sistem sumber daya dan proses

Page 13: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

13

Kondisi Untuk Deadlock (1)

• Mutual exclusion– Hanya satu proses yang boleh menggunakan

suatu sumber daya pada satu waktu

• Hold-and-wait– Suatu proses boleh memegang sumber daya

yang dialokasikan selama menunggu assignment yang lain

Page 14: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

14

Kondisi Untuk Deadlock (2)

• No preemption– Tidak ada sumber daya yang dapat dipaksa

dihilangkan dari suatu proses yang memegangnya

• Circular wait– Adanya rantai tertutup (closed-chain) proses-

proses, sehingga setiap proses memegang setidaknya satu sumber daya yang diperlukan oleh proses berikutnya dalam rantai tersebut

Page 15: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

15

Contoh Grafik Alokasi Resource

Page 16: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

16

Contoh Grafik Alokasi Resource

Page 17: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

17

Kemungkinan Deadlock

• Mutual Exclusion• No preemption• Hold and wait

Page 18: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

18

Terwujudnya Deadlock

• Mutual Exclusion• No preemption• Hold and wait• Circular wait

Page 19: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

19

Pencegahan Deadlock (1)

• Mutual Exclusion– Harus didukung oleh SO

• Hold and Wait– Mengharuskan suatu proses meminta

(request) semua sumber daya yang dibutuhkannya pada satu waktu

Page 20: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

20

Pencegahan Deadlock (2)

• No Preemption– Proses harus melepaskan sumber daya dan

merequest lagi– SO boleh men-preempt suatu proses untuk

mengharuskannya melepas sumber dayanya

• Circular Wait– Definisikan suatu pengurutan linier dari jenis-

jenis sumber daya

Page 21: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

21

Penghindaran (Avoidance) Deadlock

• Suatu keputusan dibuat secara dinamis apakah permintaan alokasi sumber daya terkini akan, jika diijinkan, secara potential mengarah ke deadlock

• Memerlukan pengetahuan permintaan proses mendatang

Page 22: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

22

Pendekatan Deadlock Avoidance

• Jangan mulai suatu proses jika tuntutannya dapat mengarah ke deadlock

• Jangan ijinikan suatu permintaan sumber daya berikutnya (incremental) untuk suatu proses jika alokasi ini dapat mengarah ke deadlock

Page 23: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

23

Penolakan Alokasi Resource

• Dikenal sebagai algoritma banker• Status dari sistem adalah alokasi terkini

dari sumber daya kepada proses• Status aman (safe) adalah dimana

terdapat setidaknya satu deretan yang tidak menghasilkan deadlock

• Status unsafe adalah status yang tidak aman

Page 24: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

24

Penentuan Status Safe (1)

Page 25: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

25

Penentuan Status Safe (2)

Page 26: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

26

Penentuan Status Safe (3)

Page 27: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

27

Penentuan Status Safe (4)

Page 28: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

28

Penentuan Status Unsafe

Page 29: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

29

Logika Deadlock Avoidance (1)

Page 30: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

30

Logika Deadlock Avoidance (2)

Page 31: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

31

Deadlock Avoidance

• Kebutuhan resource maksimum harus dinyatakan sebelumnya

• Proses di bawah konsiderasi harus bersifat independen; tidak ada kebutuhan sinkronisasi

• Harus ada sejumlah fix sumber daya yang akan dialokasikan

• Tidak ada proses yang boleh exit selama memegang resource

Page 32: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

32

Deteksi Deadlock

Page 33: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

33

Strategi Saat Deadlock Terdeteksi

• Batalkan semua proses terdeadlock• Back up setiap proses terdeadlock ke

beberapa checkpoint terdefinisi sebelumnya & restart semua proses– Mungkin terjadi original deadlock

Page 34: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

34

Strategi Saat Deadlock Terdeteksi

• Berikutnya batalkan proses terdeadlock sampai deadlock tidak ada

• Kemudian preempt sumber daya sampai deadlock hilang (habis)

Page 35: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

35

Keuntungan - Kerugian

Page 36: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

36

Masalah Dining Philosophers (1)

Page 37: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

37

Masalah Dining Philosophers (2)

Page 38: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

38

Masalah Dining Philosophers (3)

Page 39: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

39

Masalah Dining Philosophers (4)

Page 40: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

40

Masalah Dining Philosophers (5)

Page 41: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

41

Mekanisme Concurrency UNIX

• Pipes• Messages• Shared memory• Semaphores• Signals

Page 42: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

42

Sinyal UNIX

Page 43: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

43

Mekanisme Concurrency Linux

• Menyertakan semua mekanisme yang terdapat pada UNIX

• Operasi atomic berjalan tanpa interupsi dan tanpa interferensi

Page 44: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

44

Operasi Atomic Linux (1)

Page 45: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

45

Operasi Atomic Linux (1)

Page 46: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

46

Spinlock Linux

Page 47: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

47

Semaphore di Linux

Page 48: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

48

Operasi Barrier Memory Linux

Page 49: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

49

Primitif Sinkronisasi Thread Solaris

• Kuncian mutual exclusion (mutex) • Semaphores• Kuncian banyak reader, satu writer

(readers/writer) • Variabel kondisi

Page 50: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

50

Struktur Data Sinkronisasi Solaris

Page 51: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

51

Obyek Sinkronisasi Windows

Page 52: Sistem Operasi 2009 - Komputasi · Sistem Operasi 2009. 2 ... –Definisikan suatu pengurutan linier dari jenis-jenis sumber daya. 21 Penghindaran (Avoidance) Deadlock • Suatu keputusan

52

Tugas Pertemuan 6

• Jelaskan mekanisme penanganan deadlock di Windows dan Linux!

• Uraikan penyelesaian masalah Dinning Philosophers Problem!

• Kerjakan problems 6.1 & 6.2!