• Tidak ada hasil yang ditemukan

Bab 7: Deadlock. Permasalahan Deadlock

N/A
N/A
Protected

Academic year: 2021

Membagikan "Bab 7: Deadlock. Permasalahan Deadlock"

Copied!
20
0
0

Teks penuh

(1)

Bab 7: Deadlock

 Model system

 Karakteristik deadlock

 Metode penanganan deadlock

 Pencegahan deadlock

 Pengabaian deadlock

 Pendeteksian deadlock

 Perbaikan dari deadlock

 Kombinasi penanganan deadlock

Silberschatz, Galvin and Gagne 2002 8.1

Operating System Concepts

Permasalahan Deadlock

 Sekumpulan proses yang di-blok, dimana masing-masing proses membawa resource dan menunggu mendapatkan resource yang dibawa proses lain dalam kumpulan resource yang dibawa proses lain dalam kumpulan tersebut

 Contoh

 Sistem mempunyai 2 tape drive

P1dan P2masing-masing membawa satu tape drive dan masing-masing memerlukan tape drive lainnya.

 Contoh lain

semaphore A dan B diinisialisasi 1semaphore A dan B, diinisialisasi 1

P0 P1

wait (A); wait(B) wait (B); wait(A)

(2)

Contoh Jembatan Penyebrangan

 Jalur hanya untuk satu arah

 Setiap bagian jembatan dianggap sebagai resource

 Jika terjadi deadlock, dapat dipecahkan jika satu mobil mundur (melepas resource dan rollback)

Silberschatz, Galvin and Gagne 2002 8.3

Operating System Concepts

mundur (melepas resource dan rollback)

 Beberapa mobil harus mundur jika terjadi deadlock

 Kemungkinan starvation

Model Sistem

Jenis Resource R1, R2, . . ., Rm

CPU cycles, memory space, I/O devices

 S ti j i R i t W

Setiap jenis resource Rimempunyai anggota Wi

 Setiap proses yang menggunakan resource melakukan hal di bawah ini:

 request  use  release

(3)

Karakteristik Deadlock

Mutual exclusion: hanya satu proses pada satu waktu yang dapat menggunakan satu resource.

Deadlock dapat terjadi jika terdapat 4 kondisi yang terjadi secara simultan

Hold and wait: sebuah proses membawa sedikitnya satu resource sedang menunggu mendapatkan resource tambahan yang dibawa oleh proses-proses lain

No preemption: sebuah resource dapat dibebaskan hanya oleh proses yang membawanya, setelah proses menyelesaikan task/pekerjaan

Circular wait: terdapat sekumpulan {P0, P1, …, P0} dari

proses yang menunggu dimana P0menunggu resource

Silberschatz, Galvin and Gagne 2002 8.5

Operating System Concepts

0

yang dibawa oleh P1, P1menunggu resource yang

dibawa oleh P2, …, Pn–1menunggu resource yang dibawa oleh Pn, dan P0menunggu resource yang dibawa

oleh P0.

Resource-Allocation Graph

Sekumpulan vertek V dan sekumpulan edge/garid E.

 V dibagi menjadi dua jenis:

P = {P1, P2, …, Pn}, sekumpulan semua proses dalam

sistem

R = {R1, R2, …, Rm}, sekumpulan semua jenis resource yang beada dalam sistem

request edge – garis berarah P1  Rjassignment edge – garis berarah Rj Pi

(4)

Resource-Allocation Graph (Lanj.)

 Proses

 Jenis resource dengan 4 anggota

Pimeminta anggota dari Rj

Pi

Silberschatz, Galvin and Gagne 2002 8.7

Operating System Concepts

Pimembawa satu anggota dari Rj

Pi i

Rj

Rj

(5)

Resource Allocation Graph dengan Deadlock

Silberschatz, Galvin and Gagne 2002 8.9

Operating System Concepts

Resource Allocation Graph dengan Siklus tetapi Tidak Terjadi Deadlock

(6)

Fakta Dasar

 Jika graph tidak terdapat siklus  tidak terjadi deadlock.  Jika graph terdapat siklus

 Jika graph terdapat siklus 

 Jika hanya satu anggota tiap jenis resource, maka terjadi deadlock.

 Jika terdapat beberapa anggota pada satu jenis resource, maka kemungkinan terjadi deadlock.

Silberschatz, Galvin and Gagne 2002 8.11

Operating System Concepts

Metode Penanganan Deadlock

Menjamin bahwa sistem tidak pernah memasuki deadlock state.

 Mengijinkan sistem memasuki deadlock state dan kemudian dilakukan perbaikan.

 Mengabaikan permasalahan deadlock dan menganggap deadlock tidak pernah terjadi dalam sistem; digunakan sebagian besar sistem operasi, termasuk UNIX.

(7)

Pencegahan Deadlock

M t l E l i tid k t di d t

Mencegah dari kemungkinan 4 karakteristik deadlock.

Mutual Exclusion – tidak tersedia resource yang dapat digunakan bersama-sama; semua proses membawa resource yang tidak dapat digunakan bersama-sama.  tidak dapat dicegah

Hold and Wait – harus menjamin bahwa ketika sebuah proses meminta resource, proses tersebut tidak sedang membawa resource

Silberschatz, Galvin and Gagne 2002 8.13

Operating System Concepts

membawa resource

 Sebelum eksekusi proses perlu meminta dan dialokasikan semua resource, atau memperbolehkan proses meminta resource hanya jika proses tidak membawa resource  Utilitas resource menjadi rendah; kemungkinan starvation

Pencegahan Deadlock (lanj.)

No Preemption –

 Jikas sebuah proses membawa beberapa resource dan meminta resource lain yang tidak dapat segera dipenuhi meminta resource lain yang tidak dapat segera dipenuhi, maka semua resource yang sedang dibawa proses tersebut harus dibebaskan

 Resource yang dapat ditunda (preempt resource) ditambahkan ke daftar resource untuk proses yang menunggu

 Proses akan di-restart ketika proses hanya mendapatkan kembali resource lama setelah meminta resource baru.

Ci l W it b l k k t l bih

Circular Wait – memberlakukan pemesanan terlebih dahulu untuk total jenis resource yang dibutuhkan dan setiap proses meminta resource sesuai urutan nomor.

(8)

Pengabaian Deadlock

 Model yang sangat sederhana dan sangat berguna. Sistem harus mempunyai tambahan ketersediaan informasi sebelumnya

y g g g g

Setiap proses perlu mendeklarasikan jumlah maksimal setiap jenis resource yang dibutuhkan.

 Algoritma deadlock-avoidance secara dinamis menguji state dari resource-allocation untuk menjamin tidak pernah terjadi kondisi circular-wait.

Silberschatz, Galvin and Gagne 2002 8.15

Operating System Concepts

 State dari resource-allocation ditentukan dengan jumlah resource yang tersedia dan yang dialokasikan dan jumlah maksimal kebutuhan dari proses.

Safe State (state aman)

 Jika sebuah proses meminta resource yang tersedia, sistem harus memutuskan apakah alokasi tersebut menyebabkan sistem masih dalam safe state.

 Sistem dalam safe state jika semua proses dalam kondisi aman.

Sekumpulan proses <P1, P2, …, Pn> dikatakan aman jika untuk setiap Pi, resource yang diminta Pimasih dapat dipenuhi

dengan resource yang tersedia dan resource yang dibawa oleh semua Pj, dimana j<i.

Jika resource yang diperlukan Pitidak segera tersedia, maka Pi dapat menunggu sampai semua P selesai

dapat menunggu sampai semua Pjselesai.

Jika Pjselesai, Pidapat memperoleh resource yang diperlukan,

mengeksekusinya, menghasilkan nilai dari resource yang dialokasikan dan terminasi.

Jika Piditerminasi, Pi+1dapat memperoleh resource yang diperlukan dan seterusnya.

(9)

Fakta Dasar

 Jika sistem dalam state aman  tidak terjadi deadlock.  Jika sistem dalam state tidak aman kemungkinan

 Jika sistem dalam state tidak aman  kemungkinan

terjadi deadlock.

 Pengabaian  menjamin sistem tidak pernah masuk ke

state tidak aman.

Silberschatz, Galvin and Gagne 2002 8.17

Operating System Concepts

(10)

Algoritma Resource-Allocation Graph

Claim edge Pi Rjmengindikasikan bahwa proses Pj kemungkinan meminta resource Rj; direpresentasikan dengan garis putus-putus

dengan garis putus-putus.

 Claim edge berubah menjadi request edge jika proses meminta resource.

 Jika suatu resource dibebaskan oleh proses, assignment edge berubah menjadi claim edge.

Silberschatz, Galvin and Gagne 2002 8.19

Operating System Concepts

 Resource harus ditentukan sebelumnya dalam sistem

(11)

Unsafe State pada Resource-Allocation Graph

Silberschatz, Galvin and Gagne 2002 8.21

Operating System Concepts

Algoritma Banker

 Untuk banyak anggota resource dalam satu jenis resource (Multiple instances).

 Setiap proses harus ditentukan sebelumnya penggunaan maksimum.

 Jika sebuah proses meminta resource maka proses harus menunggu.

 Jika sebuah proses mendapatkan semua resource maka harus dikembalikan dalam suatu batasan waktu.

(12)

Struktur Data untuk Algoritma Banker

Available: vektor panjang m. jika available[j] = k, terdapat

Misalnya n = jumlah proses, dan m = jumlah jenis resource.

k anggota dari jenis resource Rjtersedia.

Max: matriks n x m. Jika Max [i,j] = k, maka proses Pi

mungkin meminta paling banyak k anggota dari jenis resource Rj.

Allocation: matriks n x m. Jika Allocation[i,j] = k maka Pi sedang dialokasikan k anggota dari Rj.

Need: matriks n x m. Jika Need[i,j] = k, maka Pimungkin

Silberschatz, Galvin and Gagne 2002 8.23

Operating System Concepts

memerlukan k anggota dari Rjuntuk menyelesaikan task/pekerjaan.

Need [i,j] = Max[i,j] – Allocation [i,j].

Algoritma Safety

1. Misalnya Work dan Finish adalah vektor dengan panjang masing-masing m dan n. Inisialisasi:

Work = Available

Finish [i] = false untuk i - 1 3 n Finish [i] = false untuk i - 1,3, …, n.

2. Cari dan i sebagai berikut: (a) Finish [i] = false

(b) Needi Work

Jika tidak ada i yang memenuhi, ke langkah 4. 3. Work = Work + Allocationi

Finish[i] = true

ke langkah 2.

4. Jika Finish [i] == true untuk semua i, maka sistem dalam safe state.

(13)

Algoritma Resource-Request untuk Proses P

i

Request = vektor untuk meminta proses Pi. Jika Requesti [j] = k maka proses Pimenginginkan k anggota dari jenis resource Rj.

1. Jika Requesti Needike langkah 2. Lainnya, terjadi kondisi

1. Jika Requesti Needike langkah 2. Lainnya, terjadi kondisi

error, karena proses meminta resource melebihi maksimum. 2. Jika Requesti Available, ke langkah 3. Lainnya, Pi harus

menunggu, karena resource tidak tersedia.

3. Melakukan alokasi resource yang diminta ke Pidengan memodifikasi state sebagai berikut:

Available = Available - Requesti;

Allocationi= Allocationi+ Requesti;

Needi= Needi– Requesti;;

Silberschatz, Galvin and Gagne 2002 8.25

Operating System Concepts

i i q i;;

Jika safe resource dialokasikan ke Pi.

jika unsafe Piharus menunggu dan state resource-allocation yang lama harus disimpan

Contoh Algoritma Banker

5 proses P0 sampai dengan P4; 3 jenis resource A (10 anggota), B (5 anggota) dan C (7 anggota).

Snapshot pada waktuT :

Snapshot pada waktuT0:

Allocation Max Available A B C A B C A B C P0 0 1 0 7 5 3 3 3 2 P1 2 0 0 3 2 2 P2 3 0 2 9 0 2 P3 2 1 1 2 2 2 P3 2 1 1 2 2 2 P4 0 0 2 4 3 3

(14)

Contoh Algoritma Banker (lanj.)

 Isi dari matrik Need didefinisikan Max – Allocation.

Need A B C A B C P0 7 4 3 P1 1 2 2 P2 6 0 0 P3 0 1 1 P4 4 3 1

Sistem dalam safe state jika < P1, P3, P4, P2, P0> memenuhi

Silberschatz, Galvin and Gagne 2002 8.27

Operating System Concepts

j 1 3 4 2 0

kriteria algoritma safety.

Contoh: P

1

Meminta (1,0,2)

 Cek apakah Request  Available (apakah, (1,0,2)  (3,3,2) 

true).

Allocation Need Available Allocation Need Available A B C A B C A B C P0 0 1 0 7 4 3 2 3 0 P1 3 0 2 0 2 0 P2 3 0 1 6 0 0 P3 2 1 1 0 1 1 P4 0 0 2 4 3 1 P4 0 0 2 4 3 1

Eksekusi algoritma safety menunjukkan bahwa <P1, P3, P4,

P0, P2> memenuhi kriteria safety.

Apakah permintaan (3,3,0) oleh P4dapat dipenuhi?

(15)

Pendeteksian Deadlock

 Mengijinkan sistem memasuki deadlock state

 Algoritma deteksi

 Algoritma deteksi

 Skema perbaikan

Silberschatz, Galvin and Gagne 2002 8.29

Operating System Concepts

Satu Anggota untuk Setiap Jenis

Resource

Menggunakan graf wait-for

 Node (titik) adalah proses-proses.  P P jika P menunggu PPi Pj jika Pimenunggu Pj.

 Secara periodik menjalankan algoritma yang mencari siklus pada graf.

 Algoritma untuk mendeteksi siklus dalam suatu graf membutuhkan operasi sebesar n2, dimana n adalah

jumlah vertek dalam graf jumlah vertek dalam graf.

(16)

Resource-Allocation Graph dan Wait-for Graph

Silberschatz, Galvin and Gagne 2002 8.31

Operating System Concepts

Resource-Allocation Graph Hubungan wait-for graph

Beberapa Anggota untuk Setiap Jenis

Resource

Available: vektor panjang m mengindikasikan jumlah

resource yang tersedia untuk setiap jenis resource.

Allocation: matriks n x m mendefinisikan jumlah resource

dari setiap jenis resource yang sedang dialokasikan untuk setiap proses.

Request: matriks n x m mengindikasikan permintaan

saat ini dari setiap proses. Jika Request [ij] = k, maka saat ini dari setiap proses. Jika Request [ij] k, maka proses Pisedang meminta anggota k lebih banyak untuk jenis resource Rj.

(17)

Algoritma Deteksi

1. Misalnya Work dan Finish adalah vektor panjang m dan n,

diinisialisasi :

(a) Work = Available

(b) For i = 1,2, …, n, jika Allocationi 0, maka

Finish[i] = false; lainnya, Finish[i] = true.

2. Temukan indeks i yang memenuhi 2 hal di bawah ini:

(a) Finish[i] == false (b) Requesti Work

Jika tidak ada i yang memenuhi, ke langkah 4. 3. Work = Work + Allocationi

Finish[i] = true ke langkah 2.

Silberschatz, Galvin and Gagne 2002 8.33

Operating System Concepts

4. Jika Finish[i] == false, untuk beberapa i, 1  i  n, maka sistem dalam deadlock state. Sehingga, jika Finish[i] == false, maka Pideadlock. Algoritma memerlukan operasi sebanyak O(m x n2)untuk mendeteksi

apakah sistem dalam deadlock state.

Contoh Algoritma Deteksi

5 proses yaitu P0s/d P4; 3 jenis resource A (7 anggota), B (2 anggota), dan C (6 anggota).

Snapshot pada waktu T :

Snapshot pada waktu T0:

Allocation Request Available A B C A B C A B C P0 0 1 0 0 0 0 0 0 0 P1 2 0 0 2 0 2 P2 3 0 3 0 0 0 P3 2 1 1 1 0 0 P3 2 1 1 1 0 0 P4 0 0 2 0 0 2

Urutan <P0, P2, P3, P1, P4> akan menghasilkan Finish[i] =

(18)

Contoh Algoritma Deteksi (lanj.)

P2meminta tambahan anggota jenis C. Request C A B C P0 0 0 0 P1 2 0 2 P2 0 0 1 P3 1 0 0 P4 0 0 2

 State dari sistem ?

Silberschatz, Galvin and Gagne 2002 8.35

Operating System Concepts

 State dari sistem ?

Apakah resource yang dibawa proses P0dapat di-klaim?

Tapi resource menjadi tidak mencukupi untuk memenuhi permintaan proses-proses yang lain.

Terjadi deadlock, terdiri dari proses P1, P2, P3, dan P4.

Penggunaan Algoritma Deteksi

 Kapan dan berapa sering, sangat tergantung pada:

 Berapa sering deadlock yang sama terjadi?  Berapa banyak proses yang perlu di roll back?  Berapa banyak proses yang perlu di roll back?

Satu untuk setiap siklus disjoint

 Jika algoritma deteksi dipanggil secara sewenang-wenang, mungkin ada banyak siklus dalam resource graph sehingga kita tidak akan bisa membedakan mana dari banyak proses deadlock yang "menyebabkan" deadlock.

(19)

Perbaikan dari Deadlock: Menghentikan Proses

 Menghentikan semua proses yang deadlock.

 Menghentikan satu demi satu proses pada satu waktu

 Menghentikan satu demi satu proses pada satu waktu sampai siklus deadlock dieliminasi.

 Bagaimana urutan pemilihan proses yang dihentikan?

 Prioritas proses

 Berapa lama proses berjalan dan berapa lama lagi selesai  Resource dari proses yang digunakan

 Resource dari proses yang harus dipenuhi

Silberschatz, Galvin and Gagne 2002 8.37

Operating System Concepts

p y g p

 Berapa proses yang perlu dihentikan  Apakah proses interaktif atau batch?

Perbaikan dari Deadlock: Resource Preemption

 Pilih korban – cost minimal.

 Rollback kembali ke beberapa safe state restart proses

 Rollback – kembali ke beberapa safe state, restart proses pada state tersebut.

 Starvation – proses yang dipilih sebagai korban selalu sama, termasuk jumlah rollback menjadi faktor cost.

(20)

Pendekatan Kombinasi untuk Penanganan

Deadlock

 Kombinasi 3 pendekatan dasar

 Pencegahan (prevention)  Pengabaian (avoidance)  Pengabaian (avoidance)  Pendeteksian (detection)

memungkinkan menggunakan pendekatan optimal untuk setiap resource dalam sistem.

 Melakukan partisi resource dalam kelompok pemesanan secara hierarki.

Silberschatz, Galvin and Gagne 2002 8.39

Operating System Concepts

 Menggunakan teknik yang tepat untuk menangai deadlock dalam setiap kelompok.

Referensi

Dokumen terkait

Persentase tumbuh tanaman kedelai varietas Anjasmoro, Willis dan Grobogan cukup baik yaitu mencapai lebih dari 80 persen, hal ini menunjukkan bahwa benih kedelai

unsur lembaga litbang, perguruan tinggi, dan industri.  Keanggotaan konsorsium riset paling tidak terdiri atas satu lembaga riset, satu perguruan tinggi dan satu

Hasil penelitian menunjukkan bahwa Indonesia aktif berpartisipasi sebagai anggota dalam kerja sama keamanan maritim untuk menangani perompakan dan pembajakan di Asia

Masrun dalam Budi, (2005) merumuskan bahwa orang yang mandiri mempunyai ciri – ciri yaitu : memungkinkan seseorang untuk bertindak bebas, melakukan sesuatu atas

Sumber data yang digunakan dalam penelitian tersebut adalah sama-sama menggunakan data primer dengan sampel berupa kuisioner yang akan dibagikan terhadap para

Selama mengikuti kegiatan magang ini penulis ditempatkan pada Sub Bagian Keuangan dan Program dimana bagian tersebut sesuai dengan judul laporan magang penulis yaitu Proses

Meningkatkan Lingkungan Permukiman Masyarakat Pidie yang Bersih, Sehat dan Nyaman serta Lingkungan yang Lestari melalui Pengelolaan Air Limbah Domestik Berwawasan Lingkungan

Jelaskan kepada peserta bahwa kita (fasilitator) berniat untuk belajar mengenai kondisi wilayah kelurahan/desa terutama mengenai pola – pola komunikasi dan sebaran wilayah