SlideShare a Scribd company logo
1 of 12
DEADLOCK
Deadlock adalah proses menunggu suatu kejadian tertentu yang tak akan pernah terjadi.
Contoh :
Misalkan terdapat dua buah proses , yaitu P1 dan P2 dan dua buah sumber daya kritis
Yaitu R1 dan R2 . Proses P1 dan P2 harus mengakses kedua sumber daya tersebut,
dengan kondisi ini maka akan terjadi R1 akan diberikan kepada P1, dan R2 akan di
berikan kepada P2 , karena didalam melakukan eksekusi kita memerlukan kedua sum-
ber daya tersebut sekaligus maka kedua proses akan saling menunggu sumber daya
lain selamanya, proses tidak melepaskan sumber daya yang telah dipegangnya
karena menunggu sumber daya lain yang tak pernah diperolehnya. Maka kedua pro-
ses dalam kondisi Deadlock yang tidak dapat membuat kemajuan apapun, dan Dead-
lock merupakan kondisi terparah karena dapat melibatkan banyak proses dan semua-
nya tidak mengakhiri proses secara benar.
Urutan kejadian pengoperasian perangkat input/output adalah Sbb:
a. Meminta (request) :meminta pelayanan perangkat input/output
b Memakai (user) :memakai perangkat input/output
c Melepaskan (release) :melepaskan pemakaian perangkat input/output
1.Model Deadlock
Model deadlock dua proses dan dua sumber daya
Misalnya :
a. Dua buah proses P1 dan P2
b Dua buah sumber daya R1 dan R2
Gbr a Gbr b
Gambar. 1 Deadlock dua proses dan dua sumber daya
- 1 -
R0
P0
R0
P1
Dari gambar diatas dapat kita lihat bahwa P0 meminta sumber daya pada R0, sedangkan P1
meminta sumber daya pada R1 , kemudian P0 sambil menggenggam sumber daya R0
meminta sumber daya R1 sedangkan P1 sambil mengenggam sumber dayaR1 juga meminta
sumber daya pada R0 kejadian inilah yang mengakibatkan Deadlock seperti kita lihat pada
gambar dibawah ini graph deadlock ini digambarkan sebagai graph melingkar dan
terjadinya deadlock ini juga ditandai dengan muncul nya graph melingkar:
Gambar 2. Graph Deadlock dengan dua prose dan dua sumber daya
Deadlock dapat juga terjadi dengan melibatkan lebih dari dua proses dan dua sumber daya.
Syarat-Syarat terjadinya Deadlock
Coffman.et al. Menyatakan ada 4 syarat terjadinya deadlock
1. Mutual exclusion
2. Kondisi genggam dan tunggu
3. Kondisi non preemption
4. Kondisi menunggu secara sirkular
Mutual Exclusion : Tiap sumber daya pada saat itu diberikan tepat pada satu proses.
Kondisi genggam & tunggu : Proses-prose yang sedang menggenggam sumber daya me.-
nunggu s umber daya yang baru
Kondisi non preemption : Sumber daya-sumber daya yang sebelumnya diberikan tidak
- 2 -
R0
R1
P0
P1
Dapat diambil paksa dari proses itu, sumber daya harus secara
explisitdilepaskan dari proses yang menggenggamnya.
Kondisi menunggu secara sirkular: harus terdapat rantai sirkular dari dua proses atau lebih
masing-masing menunggu sumber daya yang digenggam
oleh anggota berikutnya pada rantai tersebut.
Ketiga syarat tersebut sangat diperlukan bagi terjadinya deadlock,tetapi ketiga kondisi itu
belum berarti terjadinya deadlock, deadlock baru benar-benar terjadi jika dipenuhi syarat yang
keempat,karena syarat keempat ini merupakan keharusan bagi terjadinya peristiwa deadlock.
Bila salah satu kondisi ini saja tidak terpenuhi maka deadlock tidak terjadi.
2. Metode Mengatasi Deadlock
Tiga metode dalam mengatasi Deadlock:
a.Metode pencegahan terjadinya Deadlock (Deadlock Preventation)
Metode ini banyak dipakai, dan metode ini berhubungan dengan pengkondisian sistem agar
menghilangkan kemungkinan terjadinya deadlock, pencegahan adalah sulusi yang terbaik
dipandang dari sudut tercegahnya deadlock. Dan metode ini sering menghasilkanutilisasi
sumber daya yangburuk.
b.Metode penghindaran terjadinya Deadlock (Deadlock Avoidence)
Tujuan dari metoda ini adalah untuk menghindari terjadinya kondisi-kondisi yang me-
mungkinkan terjadinya deadlock, dan memperoleh utilisasi sumber daya yg baik.
Penghindaran bukan berarti menghilangkan semua kemungkinan terjadinya deadlock,
Secara teoritis deadlock dimungkinkan.
Sistem operasi memeriksa semua permintaan sumber daya secara hati-hati, jika sistem
operasi mengetahui bahwa alokasi sumber daya menimbulkan resiko deadlock, maka
sistem akan menolak pengaksesan dan dengan demikian menghindari terjadinya deadlock
c. Metode deteksi dan pemulihan Deadlock (Deadlock detection and recovery)
Metode deteksi ini digunakan pada sistem yang mengizinkan terjadinya deadlock, Tujuan
dari metode ini adalah untuk memeriksa apakah telah terjadi deadlock dan menentukan
proses serta sumber daya yang terlibat dalam deadlock secara presisi setelah ditemukan
sistem dipulihkan dari deadlock dengan metode pemulihan. (metode pemulihan dari dead
lock adalah untuk menghilangkan deadlock sistem sehingga dapat beroperasi kembali)
Proses yang terlibat dalam deadlock mungkin akan dapat menyelesaikan eksekusi dan mem
bebaskan sumber daya dari sumber dayanya.
3 .Strategi burung onta
Strategi ini diasumsikan bahwa deadlock jarang terjadi jika dibandingkan dengan kejadian
komputer crash. Jadi mengapa kita harus bersusah payah mengatasi deadlock sedangkan
- 3 -
sistem lebih sering rusak karena crash, disebut dengan strategi burung onta karena burung
onta akan menyembunyikan kepalanya ketanah apabila akan terjadi bahaya yang mengancam
dirinya. Jadi sebenarnya strategi ini adalah sama sekali tidak berusaha mengatasi deadlock .
4.Pencegahan Deadlock.
Havendar mengemukakan bahwa jika keempat syarat tersebut diatas tidak dipenuhi maka
tidak akan terjadi deadlock, sehingga Havendar menyarankan strategi – strategi untuk
meniadakan dengan syarat :
A.Setiap proses harus meminta semua sumber yang diperlukan sekaligus dan tidak berlanjut
sampai semua diberikan.
B Jika proses telah/sedang memegang sumber daya tertentu , untuk permintaan berikutnya
Proses harus melepas sumber daya yang dipegangnya , jika diperlukan proses harus me-
Minta kembali sekaligus dengan sumber daya yang baru.
C.Buat urutan yang linear untuk semua sumber daya pada semua proses, jika proses telah di-
alokasikan pada suatu type sumber daya maka proses berikutnya boleh meminta type sum
ber daya berikutnya.
Metode pencegahan Deadlock :
a.Meniadakan mutual exclusion : yaitu mencegah hanya satu proses yang mengakses sum-
ber daya pada suatu interval waktu tertentu,
b.Meniadakan syarat Hold dan Wait, cara ini dapat dilakukan dengan : mengalokasikan se-
mua sumber daya atau tidak sama sekali dan hold and release.
proses untuk mengalokasikan semua sumber daya atau tidak sama sekali permintaan ini
hanya dapat dilayani bila semua sumber daya tersedia ,jika sumber daya tersedia proses
dialokasikan jika diperlukan dan berjalan sampai selesai. Jika sumber daya tidak tersedia
atau hanya satu sumber daya maka proses harus menunggu sampai semua sumber daya yg
diperlukan tersedia untuk dialokasikan padanya,
yang menjadi permasalahan adalah sukar untuk mengetahui lebih dulu sumber daya yang
diperlukan suatu proses karena pada awal proses tidak diketahui berapa sumber daya yg
diperlukan, jika proses hanya butuh satu disk diawal eksekusi (atau lebih buruk lagi tanpa
disk) dan menistrahatkan disk-disk yang lain. Perlunya proses utnuk menerima seluruh
disk yang diperlukan sebelum eksekusi dimulai menyebabkan sumber daya komputer me
nganggur dalam waktu yang lama, sementara proses yg memerlukan harus menunggu.
Hold and release (genggam dan lepas)yaitu pada saat terjadi permintaan satu sumber daya
Maka proses harus melepaskan sumber daya lain yg telah digunakan, jadi hanya satu sum –
ber daya yg dialokasikan untuk proses. Cara ini tidak mungkin karena ada proses yang di
Syaratkan harus memegang beberapa sumber daya sekaligus,misalnya menggambar pada
Plotter yang memerlukan plotter serta disk untuk menyimpan data gambar yang diplot.
c.meniadakan kondisi non preempation :yaitu mencegah proses lain harus menunggu me
- 4 -
nunggu proses preemption sehingga tidak ada tunggu menunggu. Contohnya : saat proses
A menulis ke printer tiba-tiba di stop oleh proses B yang juga akan menulis ke printer
yang sama bila dimungkinkan preemption ini maka kedua proses akan mencetak seca
ra tidak benar.
d.Meniadakan kondisi menunggu sirkular: Kondisi ini dapat ditiadakan dengan cara yaitu
proses hanya dibolehkan menggenggam satu sumber daya pada satu saat , jika perlu sum
ber daya yang kedua maka proses harus melepaskan sumber daya pertama. (sama dengan
hold & release), cara ini tidak dimungkinakn karena terdapat proses yang mengharuskan
memegang lebih dari satu sumber daya pada saat yg sama untuk menyelesaikan prosenya.
Untuk meniadakan kondisi sirkular juga dapat dilakukan dengan penomoran global semua
Sumber daya, karena proses dapat meminta kapanpun proses menginginkan,tetapi perminta
an dibuat terurut secara numerik, cara ini tidak menimbulkan siklus , permasalah yang
timbul tidak ada cara pengurutan nomor sumber daya yang memuaskan semua pihak.
5.Penghindaran Deadlock
Gagasan dasar penghindaran deadlock adalah untuk memberi akses ke permintaan sumber
daya yang tidak menimbulkan deadlock, cara ini biasa digunakan dengan mengalokasikan
sumber daya dan memeriksa dampak pemberian akses ke suatu permintaan
Jika pemberian akses sumber daya tidak mungkin menimbulkan deadlock maka sumber
daya diberikan ke peminta sumber daya, jika timbul deadlock maka proses yang meminta di
suspend sampai waktu permintaannya aman (tidak timbul deadlock) baru diberikan, kondisi
ini biasanya terjadi setelah satu suimber daya atau lebih yang semula dipegang oleh proses-
yang aktif liannya dilepas.
Untuk penghindaran deadlock diperlukan pengertian mengenai state selamat (safe state) dan
dan state tak selamat (unsafe state), dinyatakan sebagai state selamat jika state tidak terjadi
deadlock dan terdapat cara untuk memenuhi semua permintaan yang ditunda tanpa
menghasilkan deadlock dengan menjalankan proses secara hati-hati & mengikuti urutan
tertentu. Contohnya :
* State selamat (safe state) dan state tak selamat (unsafe state)
Safe State adalah cara untuk memenuhi permintaan yang ditunda tanpa menghasilkan
deadlock dengan menjalankan proses secara hati-hati mengikuti urutan tertentu.
Contoh:
Pada sistem yang memiliki 10 sumber daya se type , proses A memerlukan sumber daya
maksimum 10 , sedangkan pada saat ini ia menggenggam 2 sumber daya, sedangkan proses
B memerlukan sumber daya maksimum 3 sedangkan saat ini menggenggam 1 sumber daya,
proses C memerlukan sumber daya maksimum 7 sedangkan saat ini mengenggam 3 sumber
daya ,maka masih tersedia sumber daya 4 seperti pada tabel dibawah ini :
Proses Jlh sumber daya yg digenggam Maks sumber daya yang
dibutuhkan
A 2 10
- 5 -
B 1 3
C 3 7
Tersedia 4
Gbr 5.1 state selamat
Gambar 5.1 disebut safe state karena ditemukan barisan pengalokasian yang memungkinkan
semua proses selesai. Dengan penjadwalan secara hati-hati sistem terhindar dari deadlock.
Sistem terhindar dari deadlock adalah dengan langkah sbb:
1.Alokasikan 4 sumber daya pada proses C sehingga sumber daya tersedia tinggal 1,nanti
sampai proses C berakhir sehingga
Proses Jlh Sumber daya yg
digenggam
Maks sumber daya yang
dibutuhkan
A 2 10
B 1 3
C 7 7
Tersedia 0
Setelah selesai proses pada C maka diperoleh
Proses Jlh sumber daya yg digenggam Maks Sumber daya yang
dibutuhkan
A 2 10
B 1 3
C 0 -
Tersedia 7
1Alokasikan 5 sumber daya nantikan sampai proses B berakhir
Proses Jlh Sumber daya yg di
genggam
Maks sumber daya yang
dibutuhkan
A 2 10
B
3 3
C 0 -
Tersedia 5
Setelah proses B selesai maka hasilnya
Proses Jlh Sumber daya yg di
genggam
Maks sumber daya yang
dibutuhkan
A 2 10
- 6 -
B 0 -
C 0 -
Tersedia 8
3. Alokasikan 8 sumber daya pada proses A nantikan sampai selesai
Proses Jlh Sumber daya yg di
genggam
Maks sumber daya yang
dibutuhkan
A 10 10
B - -
C - -
Tersedia 0
Setelah proses A selesai maka hasilnya
Proses Jlh sumber daya yg di
genggam
Maks sumber daya yang
dibutuhkan
A 0 -
B 0 -
C 0 -
Tersedia 0
Dengan tiga langkah proses dan penjadwalan yang hati-hati dapat menyelesaikan proses
dengan sempurna.
State tak selamat jika tidak terdapat cara untuk memenuhi semua permintaan yang saat ini
ditunda dan menjalankan proses sesuai urutan. State tak selamat bila alokasi sumber daya
tak terkendali.
Proses Jml sumber daya yg
digenggam
Maks sumber daya yang di
butuhkan
A 2 10
B 1 3
C 3 7
Tersedia 4
State berubah menjadi tak selamat :
• Dua permintaan sumber daya oleh proses A dilayani dan
• Satu permintaan sumber daya oleh proses B dilayani maka state berubah menjadi
- 7 -
Proses Jlh sumber daya yg digenggam Maks sumber daya dibutuhkan
A 4 10
B 2 3
C 3 7
Tersedia 1
Pada state ini tidak terdapat baris pengalokasian yang dapat membuat semua proses
selesai ,
Contohnya :
Langkah : 1 Alokasikan satu sumber daya pada proses B sehingga sumber daya tersedia
Hanya 1 dan nantikan proses B selesai.
Proses Jlh sumber daya yg digenggam Maks sumber daya dibutuhkan
A 4 10
B 3 3
C 3 7
Tersedia 0
Setelah selesai proses B maka menjadi
Proses Jml sumber daya yg di
genggam
Maks sumber daya dibutuhkan
A 4 10
B 0 -
C 3 7
Tersedia 3
Sekarang tersedia 3 sumber daya sementara proses A membutuhakn 6 sumber daya dan proses
C membutuhkan 4 sumber daya. Keterangan diatas tadi adalah untuk alokasi sumber daya
sejenis , pengertian state selamat dan tak selamat dapat diperluas untuk sumber daya tak
sejenis. Yang perlu diingat bahwa state tak selamat bukan berarti telah terjadi deadlock, tetapi
state tersebut kemungkinan menuju deadlock.
* Algoritma bunker olek Dijkstra
Disebut algoritma karena memodelkan bunker disebuah kota kecil yang berurusan dengan
sekumpulan nasabah yang memohon kredit, pada algoritma ini kondisi mutual exclusion, hold
and wait dan non preemption diizinkan dan proses melakukan klaim penggunaan sumber daya
eksklusif yang diperlukan, proses diizinkan menggenggam sumber daya sambil meminta dan
menunggu sumber daya yang lain. Serta sumber daya itu tidak diizinkan di preemption proses
- 8 -
lain. Proses dapat meminta sumber daya pada suatu waktu, sistem operasi dapat mengakses dan
menolak sumber daya permintaan, jika ditolak proses masih menggenggam sumber daya yg
telah dialokasikan dan menunggu sampai waktu yg tak terhingga sampai permintaan dipenuhi.
Dan sistem hanya meberikan permintaan yang menghasilkan state selamat, sedangkan
permintaan yang menghasilkan state tak selamat ditolak sampai permintaan dipenuhi. Karena
sistem selalu memelihara agar dalam kondisi state selamat maka cepat atau lambat dalam
waktu yang tak terhingga semua permintaan dapat dipenuhi dan semua proses berakhir.
* Kelemahan Algoritma Banker
1.Proses jarang mengetahui jumlah sumber daya maksimum diperlukan di awalnya.
2.Jumlah proses tidak tetap
3.Sumber daya yang tersedia tiba tiba dapat saja dicopot
4.Proses harus independen yaitu urutan proses eksekusi tidak dibatasi kebutuhan sinkronisasi
antar proses.
5.Algoritma menghendaki memberikan semua permintaan pada waktu yang tak terhingga
6.Algoritma menghendaki client mengembalikan sumber daya setelah waktu yang tak
terhingga
6. Deteksi dan pemulihan Deadlock
Deteksi adanya dealock adalah cara untuk menentukan apakah deadlock terjadi serta
mengidentifikasi proses dan sumber daya yang terlibat dalam deadlock. Umumnya algoritma
yang dibutuhkan untuk deteksi adalah menentukan keberadaan menunggu sirkular (circular
wait), penggunaan algoritma ini melibatkan over head run time karena secara kontinyu
dijalankan untuk mendeteksi menunggu sirkular, sembaranag algoritma pendeteksian siklus
graph berarah dapat digunakan. Perioda yang biasa dilakukan adalah memonitor permintaan
dan pelepasan sumber daya. Setiap terdapat permintaan & pelepasan maka dilakukan
pembaharuan graph dan deteksi adanya siklus. Bila terdapat siklus berarti terjadi menunggu
sirkular dan deadlock terjadi.
Pemulihan dari deadlock yaitu begitu sistem terdapat deadlock maka deadlock harus
diputuskan denagn menghilangkan salah satu atau lebih persyaratannya.
Pemulihan dari deadlock ditentukan oleh beberapa faktor :
- Belum tentu secepatnya dapat menentukan deadlock
- Kebanyakan sistem tidak memilki fasiltas atau fasilitasnya buruk untuk mensuspend
proses,menghilangkan dari sistem dan meresume proses dilain waktu, pada sistem waktu
nyata yang harus berfungsi kontinyu proses tidak dapat di suspend dan resume.
- Jika terdapat kemampuan sistem resume dan suspend yang efektif kemampuan ini dapat
melibatkan sejumlah overhead, berarti memerlukan perhatian operator yang
berkemampuan tinggi,operator ini tidak selalu tersedia.
- Pemulihan memerlukan sejumlah kerja yang berarti.
- 9 -
Pada sistem operasi yang hanya tiga state dasar (running,ready dan blocked) maka tak ada
cara lain kecuali menyingkirkan proses itu, proses akan hilang dari memori dan harus dimuat
kembali, sedangkan pada operasi modern sistem biasanya menerapkan state supended
blocked dan suspended ready diman sumber dayanya dilepas tetapi proses masih di memory
dan akan ditetapkan kembali proses untuk sumber daya begitu terjadi resume.
Pendekatan yang digunakan untuk pemulihan deadlock :
• Singkirkan semua proses yang melibatkan deadlock (cara ini sering digunakan)
• Backup semua proses yang terlibat deadlock ke suatu check point yang didefinisikan
sebelumnya dan jalankan kembali semua proses itu, cara ini memerlukan mekanisme
rollback dan restart,resikonya deadlock semula dapat terjadi lagi , tetapi karena tidak
tertentu pemrosesan kong kuren ,biasa tidak akan terjadi deadlock serupa.
• Secara berurutan singkirkan proses sampai tidak terjadi deadlock lagi, urutan proses
yang disingkirkan berdasarkan kriteria ongkos minimum, setelah penyingkiran algoritma
deteksi harus dijaalankan untuk melihat apakah masih terjadi deadlock.
• Secara berurutan preemp sumber daya tidak ada deadlock lagi,
Kriteria-kriterianya sebagai berikut:
- Waktu pemrosesan yang telah dijalankan paling kecil
- Jumlah baris keluaran yang diproduksi kecil
- Mempunyai estimasi sisa waktu eksekusi besar
- Jumlah total sumber daya terkecil yang telah dialokasikan
- Prioritas terkecil.
7. Startegi Penanggulanag Deadlock Terpadu
Silberschatz menyarankan satu pendekatan terpadu yaitu:
- Kelompokkan sumber daya menjadi kelas sumber daya
- Gunakan strategi pengurutan linear seperti yg dijelaskan pada pencegahan menunggu
sirkular, strategi ini untuk mencegah deadlock diantara kelas sumber daya yang berbeda.
- Dalam satu kelas sumber daya gunakan algoritma yang sesuai untuk kelas sumber daya
tsb.
- 10 -
8. Starvation
Ilustarsi dead clock misalnya:
• Terdapat tiga buah proses yaitu P1, P2 dan P3.
• P1,P2 dan P3 memerlukan pengaksesan sumber daya R secara kontinyu:
Skenario berikutnya adalah :
• P1 sedang diberi sumber daya R maka P2 dan P3 di blocked menunggu sumber daya R
• Ketika P1 keluar dari critical section maka P2 dan P3 diizinkan mengakses R
• Asumsi kita P3 diberi hak akses kemudian setelah selesai maka hak akses diberikan
kembali kepada P1 yang saat itu kembali membutuhkan sumber daya R.
• Jika hak akses hanya bergantian P1 dan P3 saja secara terus menerus maka P2 tidak
memperoleh akses sumber daya R, kondisi ini tidak terjadi deadlock , hanya saja P2
mengalami startvation (tidak ada kesempatan untuk dilayani.)
Daftar Pustaka :
1.Haryanto,Bambang,Ir sistim operasi Penerbit informatika Bandung 1999
2.Tanenbaum Andrew,S Modern operating system,prentic hall Inc 1992
DIKERJAKAN:
NAMA ; ABDUL MUNIR
NRP ;2299 205 004
- 11 -
- 12 -

More Related Content

What's hot

Analisa dan Perancangan Sistem Informasi
Analisa dan Perancangan Sistem InformasiAnalisa dan Perancangan Sistem Informasi
Analisa dan Perancangan Sistem InformasiFarichah Riha
 
Ch 04 (Siklus Instruksi dan Interrupt)
Ch 04 (Siklus Instruksi dan Interrupt)Ch 04 (Siklus Instruksi dan Interrupt)
Ch 04 (Siklus Instruksi dan Interrupt)Tri Sugihartono
 
Diagram Konteks dan DFD Sistem Informasi Penjualan
Diagram Konteks dan DFD Sistem Informasi PenjualanDiagram Konteks dan DFD Sistem Informasi Penjualan
Diagram Konteks dan DFD Sistem Informasi PenjualanRicky Kusriana Subagja
 
Materi Basis Data - Anomali dan Normalisasi
Materi Basis Data - Anomali dan NormalisasiMateri Basis Data - Anomali dan Normalisasi
Materi Basis Data - Anomali dan NormalisasiDerina Ellya R
 
Pertemuan Ke-5 - Sistem Operasi - Sinkronisasi Proses.pptx
Pertemuan Ke-5 - Sistem Operasi - Sinkronisasi Proses.pptxPertemuan Ke-5 - Sistem Operasi - Sinkronisasi Proses.pptx
Pertemuan Ke-5 - Sistem Operasi - Sinkronisasi Proses.pptxYaya610291
 
Pertemuan 05 Teknik Pencarian (Search) -lanjutan
Pertemuan 05 Teknik Pencarian (Search) -lanjutanPertemuan 05 Teknik Pencarian (Search) -lanjutan
Pertemuan 05 Teknik Pencarian (Search) -lanjutanEndang Retnoningsih
 
Testing&implementasi 4
Testing&implementasi 4Testing&implementasi 4
Testing&implementasi 4aiiniR
 
Penggunaan SUBQUERY SQL SERVER (USING SUBQUERIES)
Penggunaan SUBQUERY SQL SERVER (USING SUBQUERIES)Penggunaan SUBQUERY SQL SERVER (USING SUBQUERIES)
Penggunaan SUBQUERY SQL SERVER (USING SUBQUERIES)difa febri
 
Bab 2 Aljabar Relasional
Bab 2   Aljabar RelasionalBab 2   Aljabar Relasional
Bab 2 Aljabar RelasionalRatzman III
 
Analisis sistem-informasi
Analisis sistem-informasiAnalisis sistem-informasi
Analisis sistem-informasiryanprasetya
 
Demo Komparasi Row dan Table Locking pada MySQL dengan Oracleg11
Demo Komparasi Row dan Table Locking pada MySQL dengan Oracleg11Demo Komparasi Row dan Table Locking pada MySQL dengan Oracleg11
Demo Komparasi Row dan Table Locking pada MySQL dengan Oracleg11Philo Mushofi El Haries
 
Laporan praktikum modul 2 (membuat table, primary key,foreign key menggunakan...
Laporan praktikum modul 2 (membuat table, primary key,foreign key menggunakan...Laporan praktikum modul 2 (membuat table, primary key,foreign key menggunakan...
Laporan praktikum modul 2 (membuat table, primary key,foreign key menggunakan...Devi Apriansyah
 
Proses di Sistem Operasi
Proses di Sistem OperasiProses di Sistem Operasi
Proses di Sistem Operasieddie Ismantoe
 
Kebutuhan perangkat lunak
Kebutuhan perangkat lunakKebutuhan perangkat lunak
Kebutuhan perangkat lunakAinul Yaqin
 
Sistem Operasi _ Mendeteksi deadlock
Sistem Operasi _ Mendeteksi deadlockSistem Operasi _ Mendeteksi deadlock
Sistem Operasi _ Mendeteksi deadlockSamuel Bosawer
 
Kamus data (data dictionary) - (Bambang Sugianto - Politeknik Sawunggalih Aji...
Kamus data (data dictionary) - (Bambang Sugianto - Politeknik Sawunggalih Aji...Kamus data (data dictionary) - (Bambang Sugianto - Politeknik Sawunggalih Aji...
Kamus data (data dictionary) - (Bambang Sugianto - Politeknik Sawunggalih Aji...Bambang Sugianto
 

What's hot (20)

Algoritma penjadwalan proses
Algoritma penjadwalan prosesAlgoritma penjadwalan proses
Algoritma penjadwalan proses
 
Analisa dan Perancangan Sistem Informasi
Analisa dan Perancangan Sistem InformasiAnalisa dan Perancangan Sistem Informasi
Analisa dan Perancangan Sistem Informasi
 
Ch 04 (Siklus Instruksi dan Interrupt)
Ch 04 (Siklus Instruksi dan Interrupt)Ch 04 (Siklus Instruksi dan Interrupt)
Ch 04 (Siklus Instruksi dan Interrupt)
 
Diagram Konteks dan DFD Sistem Informasi Penjualan
Diagram Konteks dan DFD Sistem Informasi PenjualanDiagram Konteks dan DFD Sistem Informasi Penjualan
Diagram Konteks dan DFD Sistem Informasi Penjualan
 
Materi Basis Data - Anomali dan Normalisasi
Materi Basis Data - Anomali dan NormalisasiMateri Basis Data - Anomali dan Normalisasi
Materi Basis Data - Anomali dan Normalisasi
 
Pertemuan Ke-5 - Sistem Operasi - Sinkronisasi Proses.pptx
Pertemuan Ke-5 - Sistem Operasi - Sinkronisasi Proses.pptxPertemuan Ke-5 - Sistem Operasi - Sinkronisasi Proses.pptx
Pertemuan Ke-5 - Sistem Operasi - Sinkronisasi Proses.pptx
 
Pertemuan 05 Teknik Pencarian (Search) -lanjutan
Pertemuan 05 Teknik Pencarian (Search) -lanjutanPertemuan 05 Teknik Pencarian (Search) -lanjutan
Pertemuan 05 Teknik Pencarian (Search) -lanjutan
 
Testing&implementasi 4
Testing&implementasi 4Testing&implementasi 4
Testing&implementasi 4
 
Penggunaan SUBQUERY SQL SERVER (USING SUBQUERIES)
Penggunaan SUBQUERY SQL SERVER (USING SUBQUERIES)Penggunaan SUBQUERY SQL SERVER (USING SUBQUERIES)
Penggunaan SUBQUERY SQL SERVER (USING SUBQUERIES)
 
Secondary storage
Secondary storageSecondary storage
Secondary storage
 
Bab 2 Aljabar Relasional
Bab 2   Aljabar RelasionalBab 2   Aljabar Relasional
Bab 2 Aljabar Relasional
 
Memory
MemoryMemory
Memory
 
Analisis sistem-informasi
Analisis sistem-informasiAnalisis sistem-informasi
Analisis sistem-informasi
 
Demo Komparasi Row dan Table Locking pada MySQL dengan Oracleg11
Demo Komparasi Row dan Table Locking pada MySQL dengan Oracleg11Demo Komparasi Row dan Table Locking pada MySQL dengan Oracleg11
Demo Komparasi Row dan Table Locking pada MySQL dengan Oracleg11
 
Laporan praktikum modul 2 (membuat table, primary key,foreign key menggunakan...
Laporan praktikum modul 2 (membuat table, primary key,foreign key menggunakan...Laporan praktikum modul 2 (membuat table, primary key,foreign key menggunakan...
Laporan praktikum modul 2 (membuat table, primary key,foreign key menggunakan...
 
Arsitektur basis data
Arsitektur basis dataArsitektur basis data
Arsitektur basis data
 
Proses di Sistem Operasi
Proses di Sistem OperasiProses di Sistem Operasi
Proses di Sistem Operasi
 
Kebutuhan perangkat lunak
Kebutuhan perangkat lunakKebutuhan perangkat lunak
Kebutuhan perangkat lunak
 
Sistem Operasi _ Mendeteksi deadlock
Sistem Operasi _ Mendeteksi deadlockSistem Operasi _ Mendeteksi deadlock
Sistem Operasi _ Mendeteksi deadlock
 
Kamus data (data dictionary) - (Bambang Sugianto - Politeknik Sawunggalih Aji...
Kamus data (data dictionary) - (Bambang Sugianto - Politeknik Sawunggalih Aji...Kamus data (data dictionary) - (Bambang Sugianto - Politeknik Sawunggalih Aji...
Kamus data (data dictionary) - (Bambang Sugianto - Politeknik Sawunggalih Aji...
 

Similar to OPTIMASI DEADLOCK

Deadlock rahmawati
Deadlock   rahmawatiDeadlock   rahmawati
Deadlock rahmawatisarman yahya
 
6.deadlockdan starvation
6.deadlockdan starvation6.deadlockdan starvation
6.deadlockdan starvationnasib silaban
 
42519051 bab 7 dead_lock
42519051 bab 7 dead_lock42519051 bab 7 dead_lock
42519051 bab 7 dead_lockAbdulRahman1543
 
Sistem Operasi - 9 [Deadlock]
Sistem Operasi - 9 [Deadlock]Sistem Operasi - 9 [Deadlock]
Sistem Operasi - 9 [Deadlock]beiharira
 
Chapter 12 - SISTER
Chapter 12 - SISTERChapter 12 - SISTER
Chapter 12 - SISTERbeiharira
 
MF427_10_172043.ppt
MF427_10_172043.pptMF427_10_172043.ppt
MF427_10_172043.pptAdanImam1
 
Slide3 manajemen proses
Slide3 manajemen prosesSlide3 manajemen proses
Slide3 manajemen prosesHz Tena
 
Deadlock_Arya Putra Abshari (210209501101) PTIK C 2021.pdf
Deadlock_Arya Putra Abshari (210209501101) PTIK C 2021.pdfDeadlock_Arya Putra Abshari (210209501101) PTIK C 2021.pdf
Deadlock_Arya Putra Abshari (210209501101) PTIK C 2021.pdfARYAPUTRAABSHARI
 
Chapter 13 - SISTER
Chapter 13 - SISTERChapter 13 - SISTER
Chapter 13 - SISTERbeiharira
 
Helen Alida Abilio - Deadlock
Helen Alida Abilio - DeadlockHelen Alida Abilio - Deadlock
Helen Alida Abilio - Deadlockbelajarkomputer
 
6. Konkurensi_deadlock & starvation (pert 9 & 10)
6. Konkurensi_deadlock & starvation (pert 9 & 10)6. Konkurensi_deadlock & starvation (pert 9 & 10)
6. Konkurensi_deadlock & starvation (pert 9 & 10)Novian Anggis
 
deadlock-150817101004-lva1-app6891.pptx
deadlock-150817101004-lva1-app6891.pptxdeadlock-150817101004-lva1-app6891.pptx
deadlock-150817101004-lva1-app6891.pptxDhiyaAlfiyyahAnsar1
 

Similar to OPTIMASI DEADLOCK (20)

Deadlock rahmawati
Deadlock   rahmawatiDeadlock   rahmawati
Deadlock rahmawati
 
6.deadlockdan starvation
6.deadlockdan starvation6.deadlockdan starvation
6.deadlockdan starvation
 
Os ppt.7
Os ppt.7Os ppt.7
Os ppt.7
 
Pert.6 deadlock lanjutan
Pert.6 deadlock lanjutanPert.6 deadlock lanjutan
Pert.6 deadlock lanjutan
 
42519051 bab 7 dead_lock
42519051 bab 7 dead_lock42519051 bab 7 dead_lock
42519051 bab 7 dead_lock
 
Sistem Operasi - 9 [Deadlock]
Sistem Operasi - 9 [Deadlock]Sistem Operasi - 9 [Deadlock]
Sistem Operasi - 9 [Deadlock]
 
Chapter 12 - SISTER
Chapter 12 - SISTERChapter 12 - SISTER
Chapter 12 - SISTER
 
Deadlock
DeadlockDeadlock
Deadlock
 
MF427_10_172043.ppt
MF427_10_172043.pptMF427_10_172043.ppt
MF427_10_172043.ppt
 
Pertemuan ke 7
Pertemuan ke 7Pertemuan ke 7
Pertemuan ke 7
 
Deadlock
DeadlockDeadlock
Deadlock
 
Slide3 manajemen proses
Slide3 manajemen prosesSlide3 manajemen proses
Slide3 manajemen proses
 
Deadlock kelompok 3
Deadlock   kelompok 3Deadlock   kelompok 3
Deadlock kelompok 3
 
Deadlock_Arya Putra Abshari (210209501101) PTIK C 2021.pdf
Deadlock_Arya Putra Abshari (210209501101) PTIK C 2021.pdfDeadlock_Arya Putra Abshari (210209501101) PTIK C 2021.pdf
Deadlock_Arya Putra Abshari (210209501101) PTIK C 2021.pdf
 
Chapter 13 - SISTER
Chapter 13 - SISTERChapter 13 - SISTER
Chapter 13 - SISTER
 
7 deadlock uplod
7 deadlock uplod7 deadlock uplod
7 deadlock uplod
 
Helen Alida Abilio - Deadlock
Helen Alida Abilio - DeadlockHelen Alida Abilio - Deadlock
Helen Alida Abilio - Deadlock
 
Tugas terdistribusi
Tugas terdistribusiTugas terdistribusi
Tugas terdistribusi
 
6. Konkurensi_deadlock & starvation (pert 9 & 10)
6. Konkurensi_deadlock & starvation (pert 9 & 10)6. Konkurensi_deadlock & starvation (pert 9 & 10)
6. Konkurensi_deadlock & starvation (pert 9 & 10)
 
deadlock-150817101004-lva1-app6891.pptx
deadlock-150817101004-lva1-app6891.pptxdeadlock-150817101004-lva1-app6891.pptx
deadlock-150817101004-lva1-app6891.pptx
 

OPTIMASI DEADLOCK

  • 1. DEADLOCK Deadlock adalah proses menunggu suatu kejadian tertentu yang tak akan pernah terjadi. Contoh : Misalkan terdapat dua buah proses , yaitu P1 dan P2 dan dua buah sumber daya kritis Yaitu R1 dan R2 . Proses P1 dan P2 harus mengakses kedua sumber daya tersebut, dengan kondisi ini maka akan terjadi R1 akan diberikan kepada P1, dan R2 akan di berikan kepada P2 , karena didalam melakukan eksekusi kita memerlukan kedua sum- ber daya tersebut sekaligus maka kedua proses akan saling menunggu sumber daya lain selamanya, proses tidak melepaskan sumber daya yang telah dipegangnya karena menunggu sumber daya lain yang tak pernah diperolehnya. Maka kedua pro- ses dalam kondisi Deadlock yang tidak dapat membuat kemajuan apapun, dan Dead- lock merupakan kondisi terparah karena dapat melibatkan banyak proses dan semua- nya tidak mengakhiri proses secara benar. Urutan kejadian pengoperasian perangkat input/output adalah Sbb: a. Meminta (request) :meminta pelayanan perangkat input/output b Memakai (user) :memakai perangkat input/output c Melepaskan (release) :melepaskan pemakaian perangkat input/output 1.Model Deadlock Model deadlock dua proses dan dua sumber daya Misalnya : a. Dua buah proses P1 dan P2 b Dua buah sumber daya R1 dan R2 Gbr a Gbr b Gambar. 1 Deadlock dua proses dan dua sumber daya - 1 - R0 P0 R0 P1
  • 2. Dari gambar diatas dapat kita lihat bahwa P0 meminta sumber daya pada R0, sedangkan P1 meminta sumber daya pada R1 , kemudian P0 sambil menggenggam sumber daya R0 meminta sumber daya R1 sedangkan P1 sambil mengenggam sumber dayaR1 juga meminta sumber daya pada R0 kejadian inilah yang mengakibatkan Deadlock seperti kita lihat pada gambar dibawah ini graph deadlock ini digambarkan sebagai graph melingkar dan terjadinya deadlock ini juga ditandai dengan muncul nya graph melingkar: Gambar 2. Graph Deadlock dengan dua prose dan dua sumber daya Deadlock dapat juga terjadi dengan melibatkan lebih dari dua proses dan dua sumber daya. Syarat-Syarat terjadinya Deadlock Coffman.et al. Menyatakan ada 4 syarat terjadinya deadlock 1. Mutual exclusion 2. Kondisi genggam dan tunggu 3. Kondisi non preemption 4. Kondisi menunggu secara sirkular Mutual Exclusion : Tiap sumber daya pada saat itu diberikan tepat pada satu proses. Kondisi genggam & tunggu : Proses-prose yang sedang menggenggam sumber daya me.- nunggu s umber daya yang baru Kondisi non preemption : Sumber daya-sumber daya yang sebelumnya diberikan tidak - 2 - R0 R1 P0 P1
  • 3. Dapat diambil paksa dari proses itu, sumber daya harus secara explisitdilepaskan dari proses yang menggenggamnya. Kondisi menunggu secara sirkular: harus terdapat rantai sirkular dari dua proses atau lebih masing-masing menunggu sumber daya yang digenggam oleh anggota berikutnya pada rantai tersebut. Ketiga syarat tersebut sangat diperlukan bagi terjadinya deadlock,tetapi ketiga kondisi itu belum berarti terjadinya deadlock, deadlock baru benar-benar terjadi jika dipenuhi syarat yang keempat,karena syarat keempat ini merupakan keharusan bagi terjadinya peristiwa deadlock. Bila salah satu kondisi ini saja tidak terpenuhi maka deadlock tidak terjadi. 2. Metode Mengatasi Deadlock Tiga metode dalam mengatasi Deadlock: a.Metode pencegahan terjadinya Deadlock (Deadlock Preventation) Metode ini banyak dipakai, dan metode ini berhubungan dengan pengkondisian sistem agar menghilangkan kemungkinan terjadinya deadlock, pencegahan adalah sulusi yang terbaik dipandang dari sudut tercegahnya deadlock. Dan metode ini sering menghasilkanutilisasi sumber daya yangburuk. b.Metode penghindaran terjadinya Deadlock (Deadlock Avoidence) Tujuan dari metoda ini adalah untuk menghindari terjadinya kondisi-kondisi yang me- mungkinkan terjadinya deadlock, dan memperoleh utilisasi sumber daya yg baik. Penghindaran bukan berarti menghilangkan semua kemungkinan terjadinya deadlock, Secara teoritis deadlock dimungkinkan. Sistem operasi memeriksa semua permintaan sumber daya secara hati-hati, jika sistem operasi mengetahui bahwa alokasi sumber daya menimbulkan resiko deadlock, maka sistem akan menolak pengaksesan dan dengan demikian menghindari terjadinya deadlock c. Metode deteksi dan pemulihan Deadlock (Deadlock detection and recovery) Metode deteksi ini digunakan pada sistem yang mengizinkan terjadinya deadlock, Tujuan dari metode ini adalah untuk memeriksa apakah telah terjadi deadlock dan menentukan proses serta sumber daya yang terlibat dalam deadlock secara presisi setelah ditemukan sistem dipulihkan dari deadlock dengan metode pemulihan. (metode pemulihan dari dead lock adalah untuk menghilangkan deadlock sistem sehingga dapat beroperasi kembali) Proses yang terlibat dalam deadlock mungkin akan dapat menyelesaikan eksekusi dan mem bebaskan sumber daya dari sumber dayanya. 3 .Strategi burung onta Strategi ini diasumsikan bahwa deadlock jarang terjadi jika dibandingkan dengan kejadian komputer crash. Jadi mengapa kita harus bersusah payah mengatasi deadlock sedangkan - 3 -
  • 4. sistem lebih sering rusak karena crash, disebut dengan strategi burung onta karena burung onta akan menyembunyikan kepalanya ketanah apabila akan terjadi bahaya yang mengancam dirinya. Jadi sebenarnya strategi ini adalah sama sekali tidak berusaha mengatasi deadlock . 4.Pencegahan Deadlock. Havendar mengemukakan bahwa jika keempat syarat tersebut diatas tidak dipenuhi maka tidak akan terjadi deadlock, sehingga Havendar menyarankan strategi – strategi untuk meniadakan dengan syarat : A.Setiap proses harus meminta semua sumber yang diperlukan sekaligus dan tidak berlanjut sampai semua diberikan. B Jika proses telah/sedang memegang sumber daya tertentu , untuk permintaan berikutnya Proses harus melepas sumber daya yang dipegangnya , jika diperlukan proses harus me- Minta kembali sekaligus dengan sumber daya yang baru. C.Buat urutan yang linear untuk semua sumber daya pada semua proses, jika proses telah di- alokasikan pada suatu type sumber daya maka proses berikutnya boleh meminta type sum ber daya berikutnya. Metode pencegahan Deadlock : a.Meniadakan mutual exclusion : yaitu mencegah hanya satu proses yang mengakses sum- ber daya pada suatu interval waktu tertentu, b.Meniadakan syarat Hold dan Wait, cara ini dapat dilakukan dengan : mengalokasikan se- mua sumber daya atau tidak sama sekali dan hold and release. proses untuk mengalokasikan semua sumber daya atau tidak sama sekali permintaan ini hanya dapat dilayani bila semua sumber daya tersedia ,jika sumber daya tersedia proses dialokasikan jika diperlukan dan berjalan sampai selesai. Jika sumber daya tidak tersedia atau hanya satu sumber daya maka proses harus menunggu sampai semua sumber daya yg diperlukan tersedia untuk dialokasikan padanya, yang menjadi permasalahan adalah sukar untuk mengetahui lebih dulu sumber daya yang diperlukan suatu proses karena pada awal proses tidak diketahui berapa sumber daya yg diperlukan, jika proses hanya butuh satu disk diawal eksekusi (atau lebih buruk lagi tanpa disk) dan menistrahatkan disk-disk yang lain. Perlunya proses utnuk menerima seluruh disk yang diperlukan sebelum eksekusi dimulai menyebabkan sumber daya komputer me nganggur dalam waktu yang lama, sementara proses yg memerlukan harus menunggu. Hold and release (genggam dan lepas)yaitu pada saat terjadi permintaan satu sumber daya Maka proses harus melepaskan sumber daya lain yg telah digunakan, jadi hanya satu sum – ber daya yg dialokasikan untuk proses. Cara ini tidak mungkin karena ada proses yang di Syaratkan harus memegang beberapa sumber daya sekaligus,misalnya menggambar pada Plotter yang memerlukan plotter serta disk untuk menyimpan data gambar yang diplot. c.meniadakan kondisi non preempation :yaitu mencegah proses lain harus menunggu me - 4 -
  • 5. nunggu proses preemption sehingga tidak ada tunggu menunggu. Contohnya : saat proses A menulis ke printer tiba-tiba di stop oleh proses B yang juga akan menulis ke printer yang sama bila dimungkinkan preemption ini maka kedua proses akan mencetak seca ra tidak benar. d.Meniadakan kondisi menunggu sirkular: Kondisi ini dapat ditiadakan dengan cara yaitu proses hanya dibolehkan menggenggam satu sumber daya pada satu saat , jika perlu sum ber daya yang kedua maka proses harus melepaskan sumber daya pertama. (sama dengan hold & release), cara ini tidak dimungkinakn karena terdapat proses yang mengharuskan memegang lebih dari satu sumber daya pada saat yg sama untuk menyelesaikan prosenya. Untuk meniadakan kondisi sirkular juga dapat dilakukan dengan penomoran global semua Sumber daya, karena proses dapat meminta kapanpun proses menginginkan,tetapi perminta an dibuat terurut secara numerik, cara ini tidak menimbulkan siklus , permasalah yang timbul tidak ada cara pengurutan nomor sumber daya yang memuaskan semua pihak. 5.Penghindaran Deadlock Gagasan dasar penghindaran deadlock adalah untuk memberi akses ke permintaan sumber daya yang tidak menimbulkan deadlock, cara ini biasa digunakan dengan mengalokasikan sumber daya dan memeriksa dampak pemberian akses ke suatu permintaan Jika pemberian akses sumber daya tidak mungkin menimbulkan deadlock maka sumber daya diberikan ke peminta sumber daya, jika timbul deadlock maka proses yang meminta di suspend sampai waktu permintaannya aman (tidak timbul deadlock) baru diberikan, kondisi ini biasanya terjadi setelah satu suimber daya atau lebih yang semula dipegang oleh proses- yang aktif liannya dilepas. Untuk penghindaran deadlock diperlukan pengertian mengenai state selamat (safe state) dan dan state tak selamat (unsafe state), dinyatakan sebagai state selamat jika state tidak terjadi deadlock dan terdapat cara untuk memenuhi semua permintaan yang ditunda tanpa menghasilkan deadlock dengan menjalankan proses secara hati-hati & mengikuti urutan tertentu. Contohnya : * State selamat (safe state) dan state tak selamat (unsafe state) Safe State adalah cara untuk memenuhi permintaan yang ditunda tanpa menghasilkan deadlock dengan menjalankan proses secara hati-hati mengikuti urutan tertentu. Contoh: Pada sistem yang memiliki 10 sumber daya se type , proses A memerlukan sumber daya maksimum 10 , sedangkan pada saat ini ia menggenggam 2 sumber daya, sedangkan proses B memerlukan sumber daya maksimum 3 sedangkan saat ini menggenggam 1 sumber daya, proses C memerlukan sumber daya maksimum 7 sedangkan saat ini mengenggam 3 sumber daya ,maka masih tersedia sumber daya 4 seperti pada tabel dibawah ini : Proses Jlh sumber daya yg digenggam Maks sumber daya yang dibutuhkan A 2 10 - 5 -
  • 6. B 1 3 C 3 7 Tersedia 4 Gbr 5.1 state selamat Gambar 5.1 disebut safe state karena ditemukan barisan pengalokasian yang memungkinkan semua proses selesai. Dengan penjadwalan secara hati-hati sistem terhindar dari deadlock. Sistem terhindar dari deadlock adalah dengan langkah sbb: 1.Alokasikan 4 sumber daya pada proses C sehingga sumber daya tersedia tinggal 1,nanti sampai proses C berakhir sehingga Proses Jlh Sumber daya yg digenggam Maks sumber daya yang dibutuhkan A 2 10 B 1 3 C 7 7 Tersedia 0 Setelah selesai proses pada C maka diperoleh Proses Jlh sumber daya yg digenggam Maks Sumber daya yang dibutuhkan A 2 10 B 1 3 C 0 - Tersedia 7 1Alokasikan 5 sumber daya nantikan sampai proses B berakhir Proses Jlh Sumber daya yg di genggam Maks sumber daya yang dibutuhkan A 2 10 B 3 3 C 0 - Tersedia 5 Setelah proses B selesai maka hasilnya Proses Jlh Sumber daya yg di genggam Maks sumber daya yang dibutuhkan A 2 10 - 6 -
  • 7. B 0 - C 0 - Tersedia 8 3. Alokasikan 8 sumber daya pada proses A nantikan sampai selesai Proses Jlh Sumber daya yg di genggam Maks sumber daya yang dibutuhkan A 10 10 B - - C - - Tersedia 0 Setelah proses A selesai maka hasilnya Proses Jlh sumber daya yg di genggam Maks sumber daya yang dibutuhkan A 0 - B 0 - C 0 - Tersedia 0 Dengan tiga langkah proses dan penjadwalan yang hati-hati dapat menyelesaikan proses dengan sempurna. State tak selamat jika tidak terdapat cara untuk memenuhi semua permintaan yang saat ini ditunda dan menjalankan proses sesuai urutan. State tak selamat bila alokasi sumber daya tak terkendali. Proses Jml sumber daya yg digenggam Maks sumber daya yang di butuhkan A 2 10 B 1 3 C 3 7 Tersedia 4 State berubah menjadi tak selamat : • Dua permintaan sumber daya oleh proses A dilayani dan • Satu permintaan sumber daya oleh proses B dilayani maka state berubah menjadi - 7 -
  • 8. Proses Jlh sumber daya yg digenggam Maks sumber daya dibutuhkan A 4 10 B 2 3 C 3 7 Tersedia 1 Pada state ini tidak terdapat baris pengalokasian yang dapat membuat semua proses selesai , Contohnya : Langkah : 1 Alokasikan satu sumber daya pada proses B sehingga sumber daya tersedia Hanya 1 dan nantikan proses B selesai. Proses Jlh sumber daya yg digenggam Maks sumber daya dibutuhkan A 4 10 B 3 3 C 3 7 Tersedia 0 Setelah selesai proses B maka menjadi Proses Jml sumber daya yg di genggam Maks sumber daya dibutuhkan A 4 10 B 0 - C 3 7 Tersedia 3 Sekarang tersedia 3 sumber daya sementara proses A membutuhakn 6 sumber daya dan proses C membutuhkan 4 sumber daya. Keterangan diatas tadi adalah untuk alokasi sumber daya sejenis , pengertian state selamat dan tak selamat dapat diperluas untuk sumber daya tak sejenis. Yang perlu diingat bahwa state tak selamat bukan berarti telah terjadi deadlock, tetapi state tersebut kemungkinan menuju deadlock. * Algoritma bunker olek Dijkstra Disebut algoritma karena memodelkan bunker disebuah kota kecil yang berurusan dengan sekumpulan nasabah yang memohon kredit, pada algoritma ini kondisi mutual exclusion, hold and wait dan non preemption diizinkan dan proses melakukan klaim penggunaan sumber daya eksklusif yang diperlukan, proses diizinkan menggenggam sumber daya sambil meminta dan menunggu sumber daya yang lain. Serta sumber daya itu tidak diizinkan di preemption proses - 8 -
  • 9. lain. Proses dapat meminta sumber daya pada suatu waktu, sistem operasi dapat mengakses dan menolak sumber daya permintaan, jika ditolak proses masih menggenggam sumber daya yg telah dialokasikan dan menunggu sampai waktu yg tak terhingga sampai permintaan dipenuhi. Dan sistem hanya meberikan permintaan yang menghasilkan state selamat, sedangkan permintaan yang menghasilkan state tak selamat ditolak sampai permintaan dipenuhi. Karena sistem selalu memelihara agar dalam kondisi state selamat maka cepat atau lambat dalam waktu yang tak terhingga semua permintaan dapat dipenuhi dan semua proses berakhir. * Kelemahan Algoritma Banker 1.Proses jarang mengetahui jumlah sumber daya maksimum diperlukan di awalnya. 2.Jumlah proses tidak tetap 3.Sumber daya yang tersedia tiba tiba dapat saja dicopot 4.Proses harus independen yaitu urutan proses eksekusi tidak dibatasi kebutuhan sinkronisasi antar proses. 5.Algoritma menghendaki memberikan semua permintaan pada waktu yang tak terhingga 6.Algoritma menghendaki client mengembalikan sumber daya setelah waktu yang tak terhingga 6. Deteksi dan pemulihan Deadlock Deteksi adanya dealock adalah cara untuk menentukan apakah deadlock terjadi serta mengidentifikasi proses dan sumber daya yang terlibat dalam deadlock. Umumnya algoritma yang dibutuhkan untuk deteksi adalah menentukan keberadaan menunggu sirkular (circular wait), penggunaan algoritma ini melibatkan over head run time karena secara kontinyu dijalankan untuk mendeteksi menunggu sirkular, sembaranag algoritma pendeteksian siklus graph berarah dapat digunakan. Perioda yang biasa dilakukan adalah memonitor permintaan dan pelepasan sumber daya. Setiap terdapat permintaan & pelepasan maka dilakukan pembaharuan graph dan deteksi adanya siklus. Bila terdapat siklus berarti terjadi menunggu sirkular dan deadlock terjadi. Pemulihan dari deadlock yaitu begitu sistem terdapat deadlock maka deadlock harus diputuskan denagn menghilangkan salah satu atau lebih persyaratannya. Pemulihan dari deadlock ditentukan oleh beberapa faktor : - Belum tentu secepatnya dapat menentukan deadlock - Kebanyakan sistem tidak memilki fasiltas atau fasilitasnya buruk untuk mensuspend proses,menghilangkan dari sistem dan meresume proses dilain waktu, pada sistem waktu nyata yang harus berfungsi kontinyu proses tidak dapat di suspend dan resume. - Jika terdapat kemampuan sistem resume dan suspend yang efektif kemampuan ini dapat melibatkan sejumlah overhead, berarti memerlukan perhatian operator yang berkemampuan tinggi,operator ini tidak selalu tersedia. - Pemulihan memerlukan sejumlah kerja yang berarti. - 9 -
  • 10. Pada sistem operasi yang hanya tiga state dasar (running,ready dan blocked) maka tak ada cara lain kecuali menyingkirkan proses itu, proses akan hilang dari memori dan harus dimuat kembali, sedangkan pada operasi modern sistem biasanya menerapkan state supended blocked dan suspended ready diman sumber dayanya dilepas tetapi proses masih di memory dan akan ditetapkan kembali proses untuk sumber daya begitu terjadi resume. Pendekatan yang digunakan untuk pemulihan deadlock : • Singkirkan semua proses yang melibatkan deadlock (cara ini sering digunakan) • Backup semua proses yang terlibat deadlock ke suatu check point yang didefinisikan sebelumnya dan jalankan kembali semua proses itu, cara ini memerlukan mekanisme rollback dan restart,resikonya deadlock semula dapat terjadi lagi , tetapi karena tidak tertentu pemrosesan kong kuren ,biasa tidak akan terjadi deadlock serupa. • Secara berurutan singkirkan proses sampai tidak terjadi deadlock lagi, urutan proses yang disingkirkan berdasarkan kriteria ongkos minimum, setelah penyingkiran algoritma deteksi harus dijaalankan untuk melihat apakah masih terjadi deadlock. • Secara berurutan preemp sumber daya tidak ada deadlock lagi, Kriteria-kriterianya sebagai berikut: - Waktu pemrosesan yang telah dijalankan paling kecil - Jumlah baris keluaran yang diproduksi kecil - Mempunyai estimasi sisa waktu eksekusi besar - Jumlah total sumber daya terkecil yang telah dialokasikan - Prioritas terkecil. 7. Startegi Penanggulanag Deadlock Terpadu Silberschatz menyarankan satu pendekatan terpadu yaitu: - Kelompokkan sumber daya menjadi kelas sumber daya - Gunakan strategi pengurutan linear seperti yg dijelaskan pada pencegahan menunggu sirkular, strategi ini untuk mencegah deadlock diantara kelas sumber daya yang berbeda. - Dalam satu kelas sumber daya gunakan algoritma yang sesuai untuk kelas sumber daya tsb. - 10 -
  • 11. 8. Starvation Ilustarsi dead clock misalnya: • Terdapat tiga buah proses yaitu P1, P2 dan P3. • P1,P2 dan P3 memerlukan pengaksesan sumber daya R secara kontinyu: Skenario berikutnya adalah : • P1 sedang diberi sumber daya R maka P2 dan P3 di blocked menunggu sumber daya R • Ketika P1 keluar dari critical section maka P2 dan P3 diizinkan mengakses R • Asumsi kita P3 diberi hak akses kemudian setelah selesai maka hak akses diberikan kembali kepada P1 yang saat itu kembali membutuhkan sumber daya R. • Jika hak akses hanya bergantian P1 dan P3 saja secara terus menerus maka P2 tidak memperoleh akses sumber daya R, kondisi ini tidak terjadi deadlock , hanya saja P2 mengalami startvation (tidak ada kesempatan untuk dilayani.) Daftar Pustaka : 1.Haryanto,Bambang,Ir sistim operasi Penerbit informatika Bandung 1999 2.Tanenbaum Andrew,S Modern operating system,prentic hall Inc 1992 DIKERJAKAN: NAMA ; ABDUL MUNIR NRP ;2299 205 004 - 11 -