“MUTUAL
EXCLUSION DAN DEADLOCK”
A.
MUTUAL EXCLUSION
Mutual
Exclusion merupakan upaya menjamin pengaksesan sumber daya dedicated
benar-benar hanya oleh satu proses tunggal atau jaminan hanya satu proses yang
mengakses sumber daya pada satu interval tertentu.
Pada
system uniprosessor, status sumber daya dan pemakai dapat tesedia dimemori
bersama dan solusi terhadap mutual-exclusion dapat diimplementasikan
menggunakan variable bersama (mislanya semaphore)
secara mudah.
Semaphore
adalah pendekatan yang diajukan oleh
Djikstra, dengan prinsip bahwa dua proses atau lebih dapat bekerja sama dengan
menggunakan penanda-penanda sederhana. Seperti proses dapat dipaksa berhenti
pada suatu saat, sampai proses mendapatkan penanda tertentu itu. Sembarang
kebutuhan koordinasi kompleks dapat dipenuhi dengan struktur penanda yang cocok
untuk kebutuhan itu. Variabel khusus untuk penanda ini disebut
semaphore.Semaphore mempunyai dua sifat, yaitu:
- Semaphore dapat diinisialisasi dengan nilai non-negatif.
- Terdapat dua operasi terhadap semaphore, yaitu Down dan Up.
·
Pendekatan penjamin mutual Exclusion di
system tersebar :
o
Algoritma Terpusat
o
Algoritma Tersebar
·
Syarat penting solusi penjaminan
mutual-exclusion adalah :
o
Bebas dari deadlock
o
Bebas dari starvation
o
Fairness
o
Fault-tolerance
Deadlock ialah suatu kondisi permanen dimana proses tidak berjalan lagi
ataupun tidak ada komunikasi lagi antar proses.
Starvation
adalah suatu proses meninggalkan critical
section dan lebih dari satu proses menunggu (waiting).Beberapa proses dapat
ditolak aksenya dalam waktu tak terbatas.
( YASSER )
(Sumber :
Bambang Harianto,”Sistem Operasi” )
v Token
based algorithm
Satu token unik dipakai bersama diantara semua
situs. Proses diijinkan untuk memasuki critical-section bila memiliki token.
§ Beberapa
pendekatan token based algorithm
-
Token Ring Algorhitm
-
Suzuki-Kasami’s broadcast algorithm
-
Singhal’s heuristic algorithm
-
Raymond’s tree based algorithm
a. Algortima
Token Ring
Terdapat
ring logic secara perangkat lunak.
Keunggulan :
-
Algoritma ini menjamin hanya satu proses
masuk critical region, karena hanya satu proses yang dapat mempunyai token.
-
Starvation tak terjadi karena adanya
pengurutan peoses
Kelemahan
:
-
Jika token hilang, token harus
dibangkitkan lagi. Mendeteksi token hilang sulit, karena jumlah antara kedua
kemunculan tak dibatasi.
-
Proses yang crash akan menimbulkan
kesulitan
b. Suzuki-Kasami’s
broadcast algorithm
Algoritma
ini, pada situs yang ingin memasuki critical region yang tidak mempunyai token membroadcast pesan
REQUEST untuk token ke semua sitis lain.
Masalah
yang harus diselesaikan :
-
Pembedaan antara pesan usang dan pesan
saat it (baru).
-
Penentuan situs yang mempunyai pesan
REQUEST paling perlu.
c. Singhal’s
heuristic algorithm
Pada
algoritma ini, masing-masing situs mengelola informasi tentang state dari
situs lain dan menggunkannya untuk
memilih sekumpulan situs yang paling
berpelunag memiliki token.
d. Raymond’s
tree based algorithm
Pada
algoritma ini situs-situs secara logic disusun dalam satu pohon berarah
sehingga busur-busur pohon berarah ke situs yang mempunyai token.
( PRAYITNO)
(Sumber : Bambang Harianto,”Sistem Operasi” )
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 diberikan
kepada P2 , karena didalam melakukan eksekusi kita memerlukan kedua sumber 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 proses dalam
kondisi Deadlock yang tidak dapat
membuat kemajuan apapun, dan Deadlock merupakan kondisi terparah karena dapat
melibatkan banyak proses dan semuanya tidak mengakhiri proses secara benar.
Urutan
kejadian pengoperasian perangkat input/output adalah Sbb:
- 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
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
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.
( OKKY)
(Sumber : Bambang Harianto,”Sistem Operasi” )
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 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 .
( IRWAN )
(Sumber : Bambang Harianto,”Sistem Operasi” )
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 sumber
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
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 :
( GALIH )
(Sumber : Bambang Harianto,”Sistem Operasi” )
* 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
|
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
|
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
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 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
( PRAYITNO)
(Sumber : Bambang Harianto,”Sistem Operasi” )
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.
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.
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.)
( OKKY)
TGL 21-4-2013 15.40
Daftar Kelompok
Ketua : YASSER (12.5.00102)
Anggota:
1.
MUHAMMAD IRWAN Z. (12.5.00065)
2.
OKKY IGITYA R. (12.5.00076)
3.
PRAYITNO TRI U. (12.5.00077)
4. GALIH ICHTIAR S.
(12.5.00106)