sistem operasi - blogriki.files.wordpress.com · tabel deadlock syaratsyarat langkah langkah...

32
SISTEM OPERASI Deadlock [email protected] http://blogriki.wordpress.com

Upload: truongnga

Post on 06-Mar-2019

364 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: SISTEM OPERASI - blogriki.files.wordpress.com · Tabel Deadlock SyaratSyarat Langkah Langkah KelemahanKelemahan Mutual Exclusion Spooling resourceSpooling resource Dapat menyebabkan

SISTEM OPERASI

Deadlock

[email protected]

http://blogriki.wordpress.com

Page 2: SISTEM OPERASI - blogriki.files.wordpress.com · Tabel Deadlock SyaratSyarat Langkah Langkah KelemahanKelemahan Mutual Exclusion Spooling resourceSpooling resource Dapat menyebabkan

Pembahasan

• System Model

• Karakteristik Deadlock

• Metode-metode Penanganan Deadlock

• Deadlock Prevention• Deadlock Prevention

• Deadlock Avoidance

• Deadlock Detection

Page 3: SISTEM OPERASI - blogriki.files.wordpress.com · Tabel Deadlock SyaratSyarat Langkah Langkah KelemahanKelemahan Mutual Exclusion Spooling resourceSpooling resource Dapat menyebabkan

Deadlock

• Deadlock adalah suatu kondisi dimana dua proses

atau lebih tidak dapat meneruskan eksekusinya

• Permasalahan deadlock terjadi karena sekumpulan

proses-proses yang di-blok dimana setiap proses

membawa sebuah sumber daya dan menunggumembawa sebuah sumber daya dan menunggu

mendapatkan sumber daya yang dibawa oleh

proses lain.

• Misalnya sistem mempunyai 2 tape drive dan

terdapat dua proses P1 dan P2 yang masing

masing membawa satu tape drive dan masing-

masing memerlukan tape

Page 4: SISTEM OPERASI - blogriki.files.wordpress.com · Tabel Deadlock SyaratSyarat Langkah Langkah KelemahanKelemahan Mutual Exclusion Spooling resourceSpooling resource Dapat menyebabkan

Resources (1)

• Contoh resources sistem komputer

– printers

– tape drives

• Proses-proses membutuhkan akses ke resource secara

teratur

• Contoh 1 : suatu proses memegang (hold) resource A dan• Contoh 1 : suatu proses memegang (hold) resource A dan

meminta resource B

– pada saat yang sama proses lain sedang memegang resource B dan

meminta resource A

– masing-masing proses melakukan block, dalam kondisi seperti ini

terjadi deadlock

Page 5: SISTEM OPERASI - blogriki.files.wordpress.com · Tabel Deadlock SyaratSyarat Langkah Langkah KelemahanKelemahan Mutual Exclusion Spooling resourceSpooling resource Dapat menyebabkan

Resources (2)

• Contoh 2 :

– semaphores A dan B, di-inisialisasi 1

P0 P1

wait (A); wait(B)

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

. .

. .

. .

signal(A) signal(B)

signal(B) signal(A)

Page 6: SISTEM OPERASI - blogriki.files.wordpress.com · Tabel Deadlock SyaratSyarat Langkah Langkah KelemahanKelemahan Mutual Exclusion Spooling resourceSpooling resource Dapat menyebabkan

Resources (3)

• Contoh 3 :

– Bridge Crossing

– Traffic hanya satu arah

– Masing-masing bagian jembatan dapat digambarkan sebagai resource.

– Jika deadlock terjadi, dapat diselesaikan dengan cara satu mobil mundur ke belakang.

– Beberapa mobil harus kembali jika terjadi deadlock

– Memungkinkan terjadinya starvation

Page 7: SISTEM OPERASI - blogriki.files.wordpress.com · Tabel Deadlock SyaratSyarat Langkah Langkah KelemahanKelemahan Mutual Exclusion Spooling resourceSpooling resource Dapat menyebabkan

Resources (4)

• Deadlock terjadi ketika…

– proses-proses diberikan hak akses secara eksklusif ke

devices (resources)

• Preemptable resources

– dapat diambil dari proses tanpa menimbulkan efek yang

buruk

• Nonpreemptable resources

– akan menyebabkan proses gagal jika diambil

Page 8: SISTEM OPERASI - blogriki.files.wordpress.com · Tabel Deadlock SyaratSyarat Langkah Langkah KelemahanKelemahan Mutual Exclusion Spooling resourceSpooling resource Dapat menyebabkan

System Model

• Tipe resource R1, R2, . . ., Rm

– CPU cycles, memory space, I/O devices

• Masing-masing proses melakukan utilisasi

resourcesresources

1. Meminta (request) resource

2. Menggunakan resource

3. Membebaskan (release) the resource

Page 9: SISTEM OPERASI - blogriki.files.wordpress.com · Tabel Deadlock SyaratSyarat Langkah Langkah KelemahanKelemahan Mutual Exclusion Spooling resourceSpooling resource Dapat menyebabkan

4 Kondisi Terjadinya Deadlock

• Kondisi Mutual exclusion– hanya satu proses dalam satu waktu yang dapat memegang (hold)

resource

• Hold and wait condition– suatu proses memegang satu resource dan me-request resource

yang lain

• No preemption condition– resource hanya dapat di-release setelah proses menyelesaikan task-– resource hanya dapat di-release setelah proses menyelesaikan task-

nya pada resource tersebut

• Circular wait condition– Masing-masing proses menunggu resource yang digunakan oleh

proses lain secara berantai.

– Terdapat himpunan proses yang sedang menunggu {P0, P1, …, P0} sedemikian sehingga P0 menunggu resource yang dipegang oleh P1 , P1 sedang menunggu resource yang dipegang oleh P2, …, Pn–1 . Pn–1menunggu resource yang dipegang oleh Pn . Dan Pn menunggu resource yang dipegang oleh P0 .

Page 10: SISTEM OPERASI - blogriki.files.wordpress.com · Tabel Deadlock SyaratSyarat Langkah Langkah KelemahanKelemahan Mutual Exclusion Spooling resourceSpooling resource Dapat menyebabkan

Resource-Allocation Graph (1)

• V dipartisi ke dalam dua tipe :

– P = {P1, P2, …, Pn}, himpunan proses dalam sistem.

– R = {R1, R2, …, Rm}, himpunan tipe resource dalam sistem.

Terdapat himpunan vertices V dan himpunan edges E.

– R = {R1, R2, …, Rm}, himpunan tipe resource dalam sistem.

• Request edge – directed edge P1 → Rj

• Assignment edge – directed edge Rj → Pi

Page 11: SISTEM OPERASI - blogriki.files.wordpress.com · Tabel Deadlock SyaratSyarat Langkah Langkah KelemahanKelemahan Mutual Exclusion Spooling resourceSpooling resource Dapat menyebabkan

Resource-Allocation Graph (2)

• Proses

• Tipe Resource dengan 4 instances

• Pi meminta (requests) instance dari Rj

• Pi mendapat (holding) instance dari Rj

Pi

Rj

Pi

Rj

Page 12: SISTEM OPERASI - blogriki.files.wordpress.com · Tabel Deadlock SyaratSyarat Langkah Langkah KelemahanKelemahan Mutual Exclusion Spooling resourceSpooling resource Dapat menyebabkan

Contoh Resource Allocation Graph

Page 13: SISTEM OPERASI - blogriki.files.wordpress.com · Tabel Deadlock SyaratSyarat Langkah Langkah KelemahanKelemahan Mutual Exclusion Spooling resourceSpooling resource Dapat menyebabkan

Resource Allocation Graph-Deadlock

Page 14: SISTEM OPERASI - blogriki.files.wordpress.com · Tabel Deadlock SyaratSyarat Langkah Langkah KelemahanKelemahan Mutual Exclusion Spooling resourceSpooling resource Dapat menyebabkan

Siklus Graph

• P1 ⇒ R1 ⇒ P2 ⇒ R3 ⇒ P3 ⇒ R2 ⇒ P1

• P2 ⇒ R3 ⇒ P3 ⇒ R2 ⇒ P2

• Proses P1, P2 dan P3 akan mengalami deadlock

– Proses P2 menunggu resource R3 yang dibawa oleh P3

– Disisi lain, P3 menunggu proses P1 atau P2 untuk

membebaskan resource R2

– Proses P1 menunggu P2 untuk membebaskan R1

Page 15: SISTEM OPERASI - blogriki.files.wordpress.com · Tabel Deadlock SyaratSyarat Langkah Langkah KelemahanKelemahan Mutual Exclusion Spooling resourceSpooling resource Dapat menyebabkan

Resource Allocation Graph

Cycle - Tidak Deadlock

Page 16: SISTEM OPERASI - blogriki.files.wordpress.com · Tabel Deadlock SyaratSyarat Langkah Langkah KelemahanKelemahan Mutual Exclusion Spooling resourceSpooling resource Dapat menyebabkan

Siklus Graph

• P1 ⇒ R1 ⇒ P3 ⇒ R2 ⇒ P1

• Tidak ada proses yang mengalami deadlock

– P4 dapat membebaskan satu anggota resource tipe R2

yang kemudian dapat dialokasikan ke P3 sehingga

mampu memutuskan siklus yang ada.mampu memutuskan siklus yang ada.

Page 17: SISTEM OPERASI - blogriki.files.wordpress.com · Tabel Deadlock SyaratSyarat Langkah Langkah KelemahanKelemahan Mutual Exclusion Spooling resourceSpooling resource Dapat menyebabkan

Basic Facts

• Jika graph tidak mengandung cycle ⇒ no deadlock.

• Jika graph mengandung cycle ⇒

– Jika hanya satu instance per tipe resource, maka terjadi

deadlock.

– Jika beberapa instances per tipe resource, kemungkinan

dapat terjadi deadlock.

Page 18: SISTEM OPERASI - blogriki.files.wordpress.com · Tabel Deadlock SyaratSyarat Langkah Langkah KelemahanKelemahan Mutual Exclusion Spooling resourceSpooling resource Dapat menyebabkan

Metode-metode Penanganan

Deadlocks

• Memastikan bahwa sistem tidak akan pernah

masuk ke dalam kondisi (state) deadlock.

• Memungkinkan sistem untuk masuk ke dalam

kondisi deadlock dan kemudian melakukan kondisi deadlock dan kemudian melakukan

recovery (pemulihan).

• Mengabaikan masalah deadlock dan membuat

deadlock tidak pernah terjadi dalam sistem;

digunakan pada OS umumnya (Unix).

Page 19: SISTEM OPERASI - blogriki.files.wordpress.com · Tabel Deadlock SyaratSyarat Langkah Langkah KelemahanKelemahan Mutual Exclusion Spooling resourceSpooling resource Dapat menyebabkan

Metode Pencegahan Deadlock (1)

• Mutual Exclusion – tidak diperlukan untuk resource-resource yang di-share; harus dipegang (hold) untuk resource-resource yang tidak di-share (nonsharable resources).

• Hold and Wait – harus dijamin bahwa kapanpun suatu permintaan proses pada resource, proses

Cara pencegahan (Prevention) dari sisi permintaan (request) resources :

suatu permintaan proses pada resource, proses tersebut tidak memegang resource yang lain.– Membutuhkan proses untuk me-request dan

mengalokasikan resources sebelum memulai eksekusi, atau membolehkan proses untuk me-request resource hanya ketika proses tidak sedang memegang resource.

– Utilisasi resource yang rendah memungkinkan terjadinya starvation.

Page 20: SISTEM OPERASI - blogriki.files.wordpress.com · Tabel Deadlock SyaratSyarat Langkah Langkah KelemahanKelemahan Mutual Exclusion Spooling resourceSpooling resource Dapat menyebabkan

Metode Pencegahan Deadlock (2)

• No Preemption

– Jika suatu proses yang memegang beberapa resource me-request resource yang lain yang tidak dapat secaralangsung dialokasikan, maka semua resource yang sedangdipegang dibebaskan (released).

– Preempted resources ditambahkan ke list resources dimana proses sedang menunggu.dimana proses sedang menunggu.

– Proses akan di-restart hanya jika dapat mengambil kembali(regain) resource, juga resource yang baru yang di-request.

• Circular Wait

– Membuat penomoran pada proses-proses yang mengaksesresource. Suatu proses dimungkinkan untuk dapatmeminta resource kapanpun, tetapi permintaannya harusdibuat terurut.

Page 21: SISTEM OPERASI - blogriki.files.wordpress.com · Tabel Deadlock SyaratSyarat Langkah Langkah KelemahanKelemahan Mutual Exclusion Spooling resourceSpooling resource Dapat menyebabkan

Tabel Deadlock

SyaratSyarat LangkahLangkah KelemahanKelemahan

Mutual ExclusionMutual Exclusion Spooling resourceSpooling resource Dapat menyebabkan Dapat menyebabkan

chaoschaos

Hold & WaitHold & Wait Meminta resource Meminta resource

diawaldiawal

Sulit memperkirakan di Sulit memperkirakan di

awal dan tidak optimalawal dan tidak optimaldiawaldiawal awal dan tidak optimalawal dan tidak optimal

No PreNo Pre--emptiveemptive Mengambil Mengambil

resource di tengah resource di tengah

jalanjalan

Hasil proses tidak akan Hasil proses tidak akan

baikbaik

Circular WaitCircular Wait Penomoran Penomoran

permintaan permintaan

resourceresource

Tidak ada penomoran Tidak ada penomoran

yang memuaskan semua yang memuaskan semua

pihakpihak

Page 22: SISTEM OPERASI - blogriki.files.wordpress.com · Tabel Deadlock SyaratSyarat Langkah Langkah KelemahanKelemahan Mutual Exclusion Spooling resourceSpooling resource Dapat menyebabkan

Metode Penghindaran Deadlock (1)

• Memberi kesempatan ke permintaan resource yang tidak mungkin menyebabkan deadlock.

– Jika pemberian akses tidak mungkin mengarah pada deadlock, maka resource akan diberikan pada proses yang meminta.

– Jika tidak aman, proses yang meminta akan di-suspend– Jika tidak aman, proses yang meminta akan di-suspendsampai suatu waktu permintaannya aman untuk diberikan.

• Kondisi aman (safe state)

– Jika tidak terjadi deadlock

• Kondisi tidak aman (unsafe state)

– Jika tidak terdapat cara untuk memenuhi semua permintaan

Page 23: SISTEM OPERASI - blogriki.files.wordpress.com · Tabel Deadlock SyaratSyarat Langkah Langkah KelemahanKelemahan Mutual Exclusion Spooling resourceSpooling resource Dapat menyebabkan

Metode Penghindaran Deadlock (2)

• Membutuhkan sistem yang memiliki informasi

resource yang tersedia.

– Masing-masing proses memastikan jumlah maksimum

resource yang diperlukan.

– Algoritma penghindaran (avoidence) deadlock memastikan – Algoritma penghindaran (avoidence) deadlock memastikan

tidak akan terjadi kondisi circular wait.

• Kondisi (state) alokasi resource didefinisikan sebagai

jumlah dan alokasi resource yang tersedia dan

maksimum permintaan resource oleh proses.

Page 24: SISTEM OPERASI - blogriki.files.wordpress.com · Tabel Deadlock SyaratSyarat Langkah Langkah KelemahanKelemahan Mutual Exclusion Spooling resourceSpooling resource Dapat menyebabkan

Basic Facts

• Jika sistem dalam kondisi aman (safe state) ⇒ tidak

ada deadlock.

• Jika sistem dalam kondisi tidak aman (unsafe state)

⇒ kemungkinan dapat terjadi deadlockkemungkinan dapat terjadi deadlock

• Pendekatan penghindaran (avoidence) memastikan

bahwa sistem tidak akan pernah masuk ke dalam

kondisi unsafe state.

Page 25: SISTEM OPERASI - blogriki.files.wordpress.com · Tabel Deadlock SyaratSyarat Langkah Langkah KelemahanKelemahan Mutual Exclusion Spooling resourceSpooling resource Dapat menyebabkan

Safe, Unsafe , Deadlock State

Page 26: SISTEM OPERASI - blogriki.files.wordpress.com · Tabel Deadlock SyaratSyarat Langkah Langkah KelemahanKelemahan Mutual Exclusion Spooling resourceSpooling resource Dapat menyebabkan

Algoritma Bankir (1)

• Dijkstra (1965) : algoritma penjadwalan dapat

menghindari deadlock, dikenal dengan Algoritma

Bankir.

• Algoritma ini digambarkan : bank sebagai OS,

pinjaman sebagai resource, dan peminjam sebagai pinjaman sebagai resource, dan peminjam sebagai

proses yang membutuhkan resource.

• Deadlock akan terjadi apabila terdapat seorang

peminjam yang belum mengembalikan uangnya dan

ingin meminjam kembali, padahal uang yang belum

dikembalikan tadi dibutuhkan oleh peminjam lain

yang juga belum mengembalikan uang pinjamannya.

Page 27: SISTEM OPERASI - blogriki.files.wordpress.com · Tabel Deadlock SyaratSyarat Langkah Langkah KelemahanKelemahan Mutual Exclusion Spooling resourceSpooling resource Dapat menyebabkan

Algoritma Bankir (2)

• Jadi algoritma bankir ini mempertimbangkan apakah

permintaan mereka itu sesuai dengan jumlah dana

yang ia miliki, sekaligus memperkirakan jumlah dana

yang mungkin diminta lagi. Jangan sampai ia sampai

pada kondisi dimana dananya habis dan tidak dapat pada kondisi dimana dananya habis dan tidak dapat

meminjamkan uang lagi. Jika demikian maka akan

terjadi kondisi Deadlock. Agar kondisi aman, maka

asumsi setiap pinjaman harus dikembalikan waktu

yang tepat.

Page 28: SISTEM OPERASI - blogriki.files.wordpress.com · Tabel Deadlock SyaratSyarat Langkah Langkah KelemahanKelemahan Mutual Exclusion Spooling resourceSpooling resource Dapat menyebabkan

Struktur Algoritma Bankir

• Tersedia

– Jumlah sumber daya/dana yang tersedia.

• Maksimum

– Jumlah sumber daya maksimum yang diminta oleh setiap

proses.proses.

• Alokasi

– Jumlah sumber daya yang dibutuhkan oleh setiap proses.

• Kebutuhan

– Maksimum-alokasi, sisa sumber daya yang dibutuhkan

oleh proses setelah dikurangi dengan yang dialokasikan.

Page 29: SISTEM OPERASI - blogriki.files.wordpress.com · Tabel Deadlock SyaratSyarat Langkah Langkah KelemahanKelemahan Mutual Exclusion Spooling resourceSpooling resource Dapat menyebabkan

Kelemahan Algoritma Bankir

• Sulit mengetahui seluruh resource yang dibutuhkan

proses pada awal eksekusi.

• Jumlah proses yang tidak tetap dan berubah-ubah.

Mulai dari user login hingga logout.

• Resource yang tadinya tersedia dapat saja menjadi • Resource yang tadinya tersedia dapat saja menjadi

tidak tersedia kembali.

• Proses-proses yang dieksekusi haruslah tidak dibatasi

oleh kebutuhan sinkronisasi antar proses.

• Algoritma bankir menghendaki memberikan semua

permintaan selama waktu yang berhingga.

Page 30: SISTEM OPERASI - blogriki.files.wordpress.com · Tabel Deadlock SyaratSyarat Langkah Langkah KelemahanKelemahan Mutual Exclusion Spooling resourceSpooling resource Dapat menyebabkan

Deteksi dan Pemulihan Deadlock

• Menentukan apakah deadlock sedang terjadi,

kemudian proses-proses dan resource yang terlibat

dalam deadlock tersebut.

• Setelah kondisi deadlock terdeteksi, maka langkah

pemulihan deadlock dilakukan.pemulihan deadlock dilakukan.

Page 31: SISTEM OPERASI - blogriki.files.wordpress.com · Tabel Deadlock SyaratSyarat Langkah Langkah KelemahanKelemahan Mutual Exclusion Spooling resourceSpooling resource Dapat menyebabkan

Cara Pemulihan Deadlock

• Ada beberapa cara untuk pemulihan deadlock :

– Menggagalkan semua proses yang deadlock

– Mem-backup semua proses yang deadlock dan me-restart semua proses tersebut

– Menggagalkan proses-proses yang deadlock secara berturut-turut hingga tidak ada deadlock.

– Menggagalkan pengalokasian resource-resource secara – Menggagalkan pengalokasian resource-resource secara berturut-turut hingga tidak ada deadlock.

• Kriteria proses-proses yang akan disingkirkan :

– Memiliki waktu proses (yang telah berjalan) kecil.

– Jumlah keluaran sedikit

– Memiliki estimasi sisa waktu eksekusi terbesar.

– Jumlah total resource terkecil yang telah dialokasikan

– Memiliki prioritas terkecil

Page 32: SISTEM OPERASI - blogriki.files.wordpress.com · Tabel Deadlock SyaratSyarat Langkah Langkah KelemahanKelemahan Mutual Exclusion Spooling resourceSpooling resource Dapat menyebabkan

Latihan

1. Sebutkan faktor-faktor apa saja yang dapatmenimbulkan terjadinya deadlock!

2. Dengan menghindari adanya mutual exclusion apakah menjamin bahwa deadlock tidak akan terjadi ? Jelaskan!

3. Kapan Algoritma Resource-Allocation Graph 3. Kapan Algoritma Resource-Allocation Graph dapat digunakan untuk menunjukkan adanyadeadlock?

4. Apakah dengan menggunakan AlgoritmaBanker dapat menjamin bahwa deadlock dapat dihindari? Jelaskan