• Tidak ada hasil yang ditemukan

SISTEM OPERASI. Deadlock.

N/A
N/A
Protected

Academic year: 2021

Membagikan "SISTEM OPERASI. Deadlock."

Copied!
32
0
0

Teks penuh

(1)

SISTEM OPERASI

Deadlock

[email protected]

(2)

Pembahasan

• System Model

• Karakteristik Deadlock

• Metode-metode Penanganan Deadlock

• Deadlock Prevention

• Deadlock Prevention

• Deadlock Avoidance

• Deadlock Detection

(3)

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 menunggu

membawa 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

(4)

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

(5)

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)

(6)

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

(7)

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

(8)

System Model

• Tipe resource R

1

, R

2

, . . ., R

m

– CPU cycles, memory space, I/O devices

• Masing-masing proses melakukan utilisasi

resources

resources

1. Meminta (request) resource 2. Menggunakan resource

(9)

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 – 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–1 menunggu resource yang dipegang oleh Pn . Dan Pn menunggu resource yang dipegang oleh P0 .

(10)

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 P

1

R

j

• Assignment edge – directed edge R

j

P

(11)

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

(12)
(13)
(14)

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

(15)

Resource Allocation Graph

Cycle - Tidak Deadlock

(16)

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.

(17)

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.

(18)

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;

(19)

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

(20)

Metode Pencegahan Deadlock

(2)

• No Preemption

– Jika suatu proses yang memegang beberapa resource me-request resource yang lain yang tidak dapat secara

langsung dialokasikan, maka semua resource yang sedang dipegang 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 mengakses resource. Suatu proses dimungkinkan untuk dapat

meminta resource kapanpun, tetapi permintaannya harus dibuat terurut.

(21)

Tabel Deadlock

Syarat

Syarat

Langkah

Langkah

Kelemahan

Kelemahan

Mutual Exclusion

Mutual Exclusion Spooling resourceSpooling resource Dapat menyebabkan Dapat menyebabkan chaos

chaos

Hold & Wait

Hold & Wait Meminta resource Meminta resource diawal

diawal

Sulit memperkirakan di Sulit memperkirakan di awal dan tidak optimal awal dan tidak optimal diawal

diawal awal dan tidak optimalawal dan tidak optimal

No Pre

No Pre--emptiveemptive Mengambil Mengambil

resource di tengah resource di tengah jalan

jalan

Hasil proses tidak akan Hasil proses tidak akan baik

baik

Circular Wait

Circular Wait Penomoran Penomoran permintaan permintaan resource resource

Tidak ada penomoran Tidak ada penomoran yang memuaskan semua yang memuaskan semua pihak

(22)

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-suspend

sampai 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

(23)

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

(24)

Basic Facts

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

ada deadlock.

• Jika sistem dalam kondisi tidak aman (unsafe state)

kemungkinan dapat terjadi deadlock

kemungkinan dapat terjadi deadlock

• Pendekatan penghindaran (avoidence) memastikan

bahwa sistem tidak akan pernah masuk ke dalam

kondisi unsafe state.

(25)
(26)

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.

(27)

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.

(28)

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.

(29)

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.

(30)

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.

(31)

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

(32)

Latihan

1. Sebutkan faktor-faktor apa saja yang dapat

menimbulkan 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 adanya

deadlock?

4. Apakah dengan menggunakan Algoritma

Banker dapat menjamin bahwa deadlock

dapat dihindari? Jelaskan

Gambar

Tabel Deadlock

Referensi

Dokumen terkait

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

panitia adalah sesuai dengan usulan yang telah diajukan. g. Mengundang pemeriksa keuangan independen untuk

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

terkendala kondisi yang ada, rencana yang di perlukan untuk pola pelaksanaan (fisik), kepercayaan pemerintah pada BKM, hambatan ada LPM kegiatan bersinergi dengan

Perempuan anggota Simpan Pinjam Kelompok Perempuan (SPP) yang tidak mengalami peningkatan pendapatan adalah mereka yang tidak menggunakan pinjaman untuk usaha, sehingga

16  Prosedur Operasi Standart yaitu dokumen yang berisi tata cara kerja yang terperinci dan harus diikuti demi mencapai keseragaman dalam menjalankan suatu aktivitas atau

1.2 Petugas Pelayanan Sanitasi adalah tenaga atau relawan atau pekerja kemanusiaan yang memiliki kemampuan dan kualifikasi sebagai sanitarian dengan ruang lingkup

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