STIMIK
SINAR
NUSANTARA
T U G A S S T U D I
S I S T E M O P E R A S I
Deadlock
Mata
Kuliah
:
Sistem Operasi
Disusn
Oleh:
:
|
Muhammad Al
Farsi
|
12.5.00191
|
|
Muldianto
|
12.5.00169
|
|
Rio
Adi Arnomo
|
12.5.00175
|
|
Rizki
Nur Rohim
|
12.5.00176
|
|
Harry
Chandra Mukti
|
12.5.00230
|
SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER
STMIK SINAR NUSANTARA
SURAKARTA
Deadlock
Proses
terlibat di dalam deadlock jika proses menunggu suatu kejadian tertentu yang
tidak akan pernah terjadi. Deadlock terjadi ketika proses-proses mengakses
sumber daya secara eksklusif. Terjadi trade-off antara overhead mekanisme
penyelesaian deadlock dan manfaat-manfaat yang diperoleh. Pada kasus-kasus
tertentu seperti pada sistem pengendalian proses waktu nyata ( real-time
procces control system ).
I.
Model
Deadlock
Urutan
kejadian operasi perangkat masukkan/keluaran adalah
1. Meminta
( request ) : meminta layanan
perangkat masukkan/keluaran.
2. Memakai
( use ) : memakai perangkat
masukkan/keluaran.
3. Melepaskan
( release ) : melepaskan pemakaian perangkat masukkan/keluaran.
Model
deadlock dua proses dan dua sumber daya. Deadlock dapat digambarkan sebagai
graph.
Misalnya
:
1. Dua
proses P0 dan P1
2. Dua
sumber daya R0 dan R1
|
R0
|
|
P0
|
|
P1
|
|
R1
|
(A)
( B )
Gambar
( A ) menunjukkan P0 meminta daya R0, ditandai busur daerah dari proses P0 ke
sumber daya R0. Gambar ( B ) sumber daya R1 dialokasikan ke P1, ditandai busur
berarah dari sumber daya R1 ke proses P1.
Skenario
yang menimbulkan deadlock
Dapat
terjadi scenario berikut :
1. P0
dialokasikan R0
2. P1
dialokasikan R1
Scenario
ini digambarkan pada gambar diatas ( A ).
Kemudian
1. P0
sambil masih menggenggam R0, meminta R1.
2. P1
sambil masih menggenggam R1, meminta R0.
Kejadian
ini mengakibatka deadlock karena sama-sama prose P0 dan P1 akan saling
menunggu.
|
R0
|
|
P0
|
|
P1
|
|
R1
|
|
R0
|
|
P0
|
|
P1
|
|
R1
|
Graph
deadlock ini digambarkan sebagai graph melingkar. Terjadinya deadlock ditandai munculnya
(terjadinya) graph melingkar. Deadlock tidak hanya terjadi pada dua proses dan
dua sumber daya, deadlock dapat terjadi dengan melibatkan lebih dari dua proses
dan dua sumber daya.
I.1.
Syarat-syarat perlu bagi terjadinya deadlock
Coffman, et al.
menyatakan empat syarat terjadinya deadlock, yaitu :
1. Mutual
exclusion (mutual exclusion condition)
2. Kondisi
genggam dan tunggu (hold and wait condition)
3. Kondisi
non-preemption (non-preemption condition)
4. Kondisi
menunggu secara sirkuler (circular wait condition)
Mutual exclusion
(mutual exclusion condition)
Sumber
daya saat itu diberikan pada tepat satu proses.
Kondisi genggam
dan tunggu (hold and wait condition)
Proses-proses
yang sedang menggenggam sumber daya, menunggu sumber daya-sumber daya baru.
Kondisi
non-preemption (non-preemption condition)
Sumber
daya-sumber daya yang sebelumnya diberikan tidak dapat diambil paksa dari
proses yang sedang menggenggamnya. Sumber daya-sumber daya harus secara
eksplisit dilepaskan dari proses yang menggenggamnya.
Kondisi menunggu
secara sirkuler (circular wait condition)
Harus
terdapat rantai sirkuler dari dua proses atau lebih, masing-masing menunggu
sumber daya yang digenggam oleh anggota berikutnya pada rantai itu.
Ketiga
syarat pertama merupakan syarat perlu (necessary condition) bagi terjadinya
deadlock. Bila tidak ada ketiga kondisi itu, maka tdak mungkin terjadi
deadlock. Deadlock baru benar-benar terjadi bila kondisi keempat terpenuhi.
Bila salah satu dari keempat kondisi itu tidak terpenuhi maka deadlock tidak
terjadi.
II.
Metode
–metode mengatasi deadlock
Ragam
metode untuk mengatasi deadlock dapat dikelompokkan menjadi tiga, yaitu :
1. Metode
pencegahan terjadinya deadlock (deadlock prevention)
2. Metode
penghindaran terjadinya deadlock (Deadlock avoidance)
3. Metode
deteksi dan pemulihan dari deadlock (deadlock detection and recovery)
Metode
pencegahan terjadinya deadlock (deadlock prevention)
Metode
ini berkaitan dengan pengkondisian sistem sehingga menghilangkan kemungkinan
terjadinya deadlock. Namun metode ini sering menghasilkan penggunaan sumber
daya yang buruk.
Metode
penghindaran terjadinya deadlock (Deadlock avoidance)
Tujuan metode ini adalah menghindarkan
kondisi-kondisi yang paling mungkin menimbulkan deadlock agar memperoleh
utilasi sumber daya yang lebih baik. Penghindaran bukan berarti menghilangkan
semua kemungkinan terjadinya deadlock.
Sistem operasi memeriksa semua permintaan sumber daya secara hati-hati.
Jika sistem operasi mengetahui bahwa alokasi sumber daya menimbulkan resiko deadlock.
Metode deteksi
dan pemulihan dari deadlock (deadlock detection and recovery)
Metode deteksi digunakan pada sistem yang menijinkan
terjadinya deadlock danmenetukan proses-proses dan sumber daya-sumber daya yang
terlibat deadlock secara presisi. Metode pemulihan dari deadlock berupaya untuk
menghilangkan deadlock dari sistem beroperasi kembali, bebas dari deadlock.
III.
Pencegahan
Deadlock
Havender
(HAV-68) mengemukakan bahwa jika sembarang syarat dari keempat syarat
terjadinya deadlock tidak terpenuhi maka tidak akan terjadi terpenuhi, berikut
strategi-strategi dari Havender :
1. Tiap
proses harus meminta semua sumber daya yang diperlakukan sekaligus dan tidak
berlanjut sampai semuanya diberikan.
2. Jika
proses telah sedang memegang sumber daya tertentu, untuk permintaan berikutnya
proses harus melepas dulu sumber daya yang dipegangnya.
3. Memberi
pengurutan linear terhadap tipe-tipe sumber daya pada sema proses, yaitu jika
proses telah dialokasikan uatu tipe sumber daya, proses hanya boleh berikutnya
meminta sumber daya-sumber daya tipe pada urutan yang berikutnya.
Saran
yang diberikan Havender merupakan cara meniadakan salah satu dari syarat perlu.
Syaat perlu pertama jelas tidak bias ditiadakan kalau tidak menghendaki
kekacauan hasil.
III.1. Meniadakan
Mutual Exclusion
Deadlock
disebabkan terdapatnya pengaksesan eksklusif terhadap sumber daya. Jika tidak
ada sumber daya eksklusif untuk satu proses tunggal maka tidak pernah akan
dijumpai deadlock.pengaksesan sumber daya seolah-olah tidak eksklusif walau
sebenarnya tetap eksklusif, hanya dengan spooting berarti permintaan-permintaan
itu diantrikan di harddisk. Job-job di antrian spooler akan dilayani satu
persatu.
Terdapat
masalah terhadap teknik ini adalah
1. Tidak
setiap sumber daya eksklusif dapat di-spooling, misalnya tabel proses.
2. Kompetisi
terhadap ruang harddisk untuk spooling dapat menuntun ke deadlock.
Mutual
exclution benar-benar tidak dapat dihndari, hanya mampu diperkecil
granularitas/lama waktu berlangsungnya.
III.2. Meniadakan
Syarat Hold and Wait
Metode
untuk meniadakan syarat hold and wait dapat dilakukan dengan cara
1. Mengalokasikan
semua sumber daya atau tidak sama sekali
2. Hold
and release
Mengalokasikan
semua sumber daya atau tidak sama sekali
Proses
hanya dilayani permintaanya bila semua sumber daya yang diperlukan terseia.
Teknik ini berbasis pada kaidah memperoleh semua atau tidak sama sekali.
1. Jika
semua sumber daya tersedia, proses dialokasikan semua sumber daya yang
diperlukannhya dan berjalan sampai selesai.
2. Jika
tidak tersedia sedikitnya satu sumber daya maka proses harus menunggu sampai
semua sumber daya yang diperlikannya tersedia untuk dialokasikan padanya.
Masalah
1. Sukar
mengetahui lebih dulu semua sumber daya yang diperlukan suatu proses karena di
awal proses tidak diketahui berapa sumber daya yang akan diperlukan.
2. Cara
ini dapat mengakibatkan penggunaan sumber daya yang sangat tidak efisien.
Cara
ini dapat menjadi sangat tidak efisien
Msalnya
proses memerlukan sepuluh disk maka proses meminta sepuluh disk dan menerima
disk di awal proses.
1. Jika
kesepuluh disk memang diperlukan sepanjang eksekusi proses maka tidak ada
pemborosan yang serius.
2. Jika
proses meminta dan menerima seluruh disk yang diperlukan sebelum eksekusi
dimulai menyebabkan sumber daya-sumber daya menganggur selama waktu yang lama,
sementara proses-proses yang memerlukan harus menunggu.
Hold and release
Setiap
kali terjadi permintaan suatu sumber maka proses harus melepas sumber daya lain
yang telah digunakan. Pada saat itu, hanya satu sumber daya yang sialokasikan
untuk proses.
Masalah
Teknik
ini idak mungkin sebab terdapat proses yang mensyaratkan harus memegang
beberapa sumber daya sekaligus untuk melanjutkan eksekusinya.
III.3. Meniadakan
Non-preemption
Peniadaaan
non-preemption mencegah proses-proses lain harus menunggu. Seluruh proses
menjadi pre-emption agar tidak ada kejadian tunggu menunggu.
Masalah
Tidak
mungkin meniadakan non-preemption
Misalnya
:
Saat
proses A menulis ke printer, tiba-tiba dihentikan oleh proses B yang juga akan
menulis ke printer yang sama. Bila kondisi pre-emption ini dimungkinkan maka
kedua proses akan mencetak secara tidak benar.
III.4. Meniadakan
Menunggu Sirkular
Kondisi
ini dapat ditiadakan dengan bermacam cara, antara lain :
1. Proses
hanya dibolehkan menggenggam satu sumber daya pada suatu saat
2. Penomoran
global semua sumber daya
Proses
hanya dibolehkan menggemgam satu sumber daya pada satu saat
Jika perlu sumber daya yangke dua,
proses harus melepas sumber daya yang pertama (sama dengan hold and release).
Tehnik ini tidak dimungkinkan karena terdapat proses yang mengharuskan memegang
lebih dari satu sumber daya pada saat yang sama saat menyelesaikan prosesnya.
Penomoran
global semua sumber daya
Proses dapat meminta proses
kapanpun menginginkan tapi permintaan harus dibuat terurut secara numerik. Cara
ini tidak akan menimbulkan siklus.
Masalah
Tidak ada cara pengurutan nomor
sumber daya yang memuaskan semua pihak.
IV.
Penghidaran
Deadlock
Gagasan penghindaran deadlock
adalah hanya memberi akses ke permintaan sumber daya yang tidak mungkin
menimbulkan deadlock. Strategi ini biasanya diimplementasikan dengan
pengalokasi sumber daya memeriksa dampak-dampak pemberian akses ke suatu
permintaan.
·
Jika pemberiaan akses sumber daya tidak
mungkin menuju deadlock, sumber daya diberikan ke peminta.
·
Jika tidak aman (memungkin timbulnya
deadlock), proses yang meminta di suspend sampai suatu waktu permintaannya aman
diberikan. kondisi ini biasanya terjadi
setelah satu sumber daya atau lebih yang semula dipegang oleh proses-proses
aktif lain dilepaskan.
Agar
dapat mengevaluasi safe-nya state sistem individu, penghindaran deadlock
mengharuskan semua proses menyatakan jumlah kebutuhan sumber daya maksimum
sebelum di eksekusi.begitu eksekusi dimulai, tiap prosesapakah pemberian dapat
menuntun ke deadlock dengan memeriksa apakah proses-proses yang telah aktif
dapat secara selamat selesai. Jika dapat berakhir secara selamat, state sistem
setelah alokasi adalah selamat(safe) maka sumber daya dialokasikan ke proses
yang meminta. Jika pemberian sumber daya mempunyai potensi menuntun ke state
deadlock, maka pengalokasi sumber daya men-suspend proses yang meminta sampai
sumber daya dapat diberikan dengan selamat.
Untuk
penghidaran deadlock diperlikan pengertian mengenai state selamat(safe
state) dan state tak selamat(unsafe
state).
IV.1. State selamat dan State tak
selamat
State selemata (safe state)
Dinyatakan
safe state jika tidak deadlock dan terdapat cara yang memenuhi semua permintaan
yang di tunda tanpa menghasilkan deadlock dengan menjalankan proses-proses
secara hati-hati menikuti suatu urutan tertentu.
Contoh :
Pada sistem dengan 10 sumber daya
yang setipe, proses A memerluka sumber daya maksimum sebanyak 10, sedang saat ini menggemgam 2, proses B
memerlikan sumber daya maksimum sebanyak 3, sedang saat ini menggemgam 1 sumber
daya. Proses C memerlukan sumber daya sebanyak 7 sedang saat ini menggenggam
sumber daya 3. Masih tersedia 4 sumber daya.
|
Proses
|
Jumlah sumber daya
|
Maksimum sumber daya dibtuhkan
|
|
A
|
2
|
10
|
|
B
|
1
|
3
|
|
C
|
3
|
7
|
|
Tersedia
4
|
||
Gambar
7.3 Contoh state selamat (safe state)
State pada gambar 7-3
dinyatakan sebagai selamat (safe) karena terdapat barisan pegalokasian yang
dapat memungkinkan semua proses selesai. Dengan penjadwalan secara hati-hati,
system dapat terhindarkan dari deadlock. Barisan tersebut adalah:
Langkah
satu : Aloasikan 4 sumber daya ke C,
sehingga sumber daya tertinggal 1 dan nantikan sampai proses C berakhir.
|
Proses
|
Jumlah sumber daya digemgang
|
Maksimum sumber daya dibutuhkan
|
|
A
|
2
|
10
|
|
B
|
1
|
3
|
|
C
|
7
|
7
|
|
Tersedia 0
|
||
Maka setelah proses C selesai
menjadi
|
Proses
|
Jumlah sumber daya digemgang
|
Maksimum sumber daya dibutuhkan
|
|
A
|
2
|
10
|
|
B
|
1
|
3
|
|
C
|
0
|
-
|
|
Tersedia 7
|
||
Langkah 2 : Alokasikan 5 sumber
daya ke proses B, nantikan proses B sampai berakhir
|
Proses
|
Jumlah sumber daya digemgang
|
Maksimum sumber daya dibutuhkan
|
|
A
|
2
|
10
|
|
B
|
3
|
3
|
|
C
|
0
|
-
|
|
Tersedia 5
|
||
Maka setelah proses B selesai
menjadi
|
Proses
|
Jumlah sumber daya digemgang
|
Maksimum sumber daya dibutuhkan
|
|
A
|
2
|
10
|
|
B
|
0
|
-
|
|
C
|
0
|
-
|
|
Tersedia 8
|
||
Langkah 3 : Alokasikan 8 sumber
daya ke A, nantikan proses sampai berakhir.
|
Proses
|
Jumlah sumber daya digemgang
|
Maksimum sumber daya dibutuhkan
|
|
A
|
10
|
10
|
|
B
|
0
|
-
|
|
C
|
0
|
-
|
|
Tersedia 0
|
||
Maka setelah proses A menjadi
|
Proses
|
Jumlah sumber daya digemgang
|
Maksimum sumber daya dibutuhkan
|
|
A
|
0
|
-
|
|
B
|
0
|
-
|
|
C
|
0
|
-
|
|
Tersedia 0
|
||
State Tak Selamat (unsafe state)
State
dinyatakan sebagai state tak selamat jika tidak ada terdapat cara untuk
memenuhi semua permintaan yang saat ini ditunda dengan menjalankan
proses-proses dengan suatu urutan.
Contoh :
Gambar di bawah ini seperti gambar
7-2 menunjukan state selamat. State ini dapat berubah menjadi state tak selamat
bila alokasi sumber daya tak terkendali.
|
Proses
|
Jumlah sumber daya digemgang
|
Maksimum sumber daya dibutuhkan
|
|
A
|
2
|
10
|
|
B
|
1
|
3
|
|
C
|
3
|
7
|
|
Tersedia 4
|
||
State tersebut dapat menjadi state
tak selamat apabila
·
Dua permintaan sumber daya oleh proses A
dilayani, kemudian
·
Permintaan satu sumber daya oleh proses
B dilayani
Maka state menjadi
|
Proses
|
Jumlah sumber daya digemgang
|
Maksimum sumber daya dibutuhkan
|
|
A
|
4
|
10
|
|
B
|
1
|
3
|
|
C
|
3
|
7
|
|
Tersedia 1
|
||
Gambar
7-4 contoh state tak selamat (unsafe state)
State
ini pada gambar 7-4 adalah state tak selamat, pada state ini tidak terdapat
barisan pengalokasian yang dapat membuat semua proses selesai. Misalnya barisan
pengalokasian yang ditempuh adalah :
Langkah 1 : Alokasi 1 sumber daya
ke proses B, sehingga sumber daya tersedia tinggal 1 dan nantikan sampai proses
B berakhir.
|
Proses
|
Jumlah sumber daya digemgang
|
Maksimum sumber daya dibutuhkan
|
|
A
|
4
|
10
|
|
B
|
3
|
3
|
|
C
|
3
|
7
|
|
Tersedia 0
|
||
Maka setelah proses B selesai
menjadi
|
Proses
|
Jumlah sumber daya digemgang
|
Maksimum sumber daya dibutuhkan
|
|
A
|
4
|
10
|
|
B
|
0
|
-
|
|
C
|
3
|
7
|
|
Tersedia 3
|
||
Saat ini hanya tersedia tiga sumber
daya sementara dua proses yang sedang aktif masing-masing memutuhkan enam dan
empat sumber daya. Rangkain keterangan di atas adalah untuk alokasi sumber daya
sejenis. Alokasi dan pengertian-pengertian mengenai state selamat dan state tak
selamat dapat diperluas untuk sumber daya yang sejenis.
Perlu diketahui bahwa state tak
selamat bukan berarti deadlock, hanya menyatakn bahwa state tersebut berkemungkinan
meuju deadlock.
IV.2. Algoritma Banker oleh
Dijkstra
Algoritma
ini disebut algoritma banker karena memodelkan banker di kota kecil yang berurusan dengan dengan sekumpulan
nasabah yang memoho kredit. Pada algoritma banker ini, kondisi mutual exclusion, hold and wait, dan
preemption diijinkan dan proses-proses melakukan klaim pengguna ekslusive
sumber daya-sumber daya yang diperlukan. Proses-proses diijinkan menggenggam
sumber daya sambil meminta dan menunggu sumber daya lain serta sumber daya itu
tidak dijinkan di-preempt proses lain.
Proses-proses
dapat meminta satu sumber daya pada suatu waktu. Sistemoperasi dapat meberikan
aksessumber daya atau menolak permintaan. Jika ditolak, proses masih menggengam
sumber daya yang telah dialokasikan untuknya dan menunggu selama waktu sehingga
permintaanya dapat diberikan.
Sistem
hanya memberikan permintaan yang menghasilhkan, state selamat. Permintaan
proses yang akan menghasilkan state tak selamat secara berulang ditolak sampai
permintaan dipenuhi. Tentunya karena sistem selalu memelihara agar dalm state
safe, cepat atau lambat semua permintaan dapat terpenuhi dan semua proses dapat
berakhir.
Implementasi
algoritma ini dijelaskan secara rinci pada buku stallings [STA-95].
IV.3. Kelemahan Algoritma Banker
1. Proses-proses
jarang mengetahui di awal roses jmlah maksimum sumber daya yang akan diperlukan.
2. Jumlah
proses tidak tetap, secara dinamis beragam begitu pemakai-pemakai baru login
dan logout.
3. Sumber
daya yang dihitung sebagai tersedia dapat saja tiba-tiba ditingalkan sehingga
sebenarnya menjadi tidak tersedia.
V.
Deteksi
dan Pemulihan Deadlock
V.1. Deteksi adanya Deadlock
Deteksi
deadlock Adalah tehnik untuk menentukan apakah deadlock terjadi serta
mengindentifikasi proses-proses dan sumber daya- sumber daya yang terlihat
deadlock. Umumnya algoritma-algoritma deteksi yang digunakan adlah menentukan
keberadaan menunggu sirkular (circular
wait). Penggunaan algortma deadlock melibatkan overhead pada saat berjalan
karena secara periodik dijalankan mendeteksi menunggu sirkular. Sembarang
algoritma pendeteksian siklus pada graph berarah dapat digunakan.
Periodik
yang biasa dilakukan adalah memonitor permintaan dan pelepasan sumber daya.
Setiap terdapat permintaaan dan pelepasan maka dilakukan pembaruan graph dan
deteksi adanya silklus. Bila terdapat siklus berarti terjadi kondisi menunggu
sirkular deadlockterjadi.
V.2.
Pemulihan dari deadlock
Begitu
sistem terdapat deadlock, harus diputuskan dengan menghilangkan satu syarat
perlu atau lebih. Biasanya
beberapaproses akan kehilangan sebagian atau semua kerja yang telah
dilakukan. Hal ini merupakan ongkos yang harus di bayar dibanding terjadi
deadlock yang berarti semua proses tidak menghasilkan apa pun. Pemulihan dari
deadlock dirumitkan oleh faktor-faktor berikut :
Ø Belum
tentu dapat menentukan adanya deadlock secepatnya.
Ø Kebanyakan
system tidak memiliki fasilitas atau mempunyai fasilitas-fasilitas buruk untuk
men-suspend proses, menghilangkan dari system dan me-resume proses di lain
waktu. Pada system waktu nyata yang harus berfungsi terus-menerus,
proses-proses tidak dapat di suspend dan di resume.
Ø Bahkan
jika terdapat kemampuan suspend dan resume yang efektif. Kemampuan ini
melibatkan sejumlah overhead berarti dan memerlukan perhatian operator yang
berkemampuan tinggi(operator seperti ini tidak selalu tersedia).
Ø Pemulihan
memerlukan sejumlah kerja yang berarti.
Pada system operasi dengan hanya 3
state dasar (running, ready, blocked), maka tidak ada cara lain kecuali
dilakukan penyingkiran terhadap proses itu (kill proses). Pada system operasi
modern, system biasanya menerapkan state suspendedblocked dan suspendedready,
dimana sumber daya dilepas tetapi proses masih di memori dan akan ditetapkan
kembali sumber daya untuk proses itu begitu terjadi resume.
Teknik pemulihan yang biasa
digunakan adalah menghilangkan proses-proses dari system dan pengklaiman
kembali (reclaim) sumber daya-sumber daya yang dipegang proses-proses itu.
Proses yang dihilangkan biasanya akan cacat, tapi proses-proses lain dapat
menyelesaikan prosesnya.
Pendekatan dibawah ini dapat
dilakukan untuk pemulihan deadlock :
1.
Abaikan semua proses yang terlibat
deadlock. Teknik ini merupakan cara termudah dan solusi yang paling sering
dipilih.
2. Back-up
semua proses yang terlibat deadlock kesuatu checkpoint yang didefinisikan
sebelumnya dan dijalankan kembali semua proses itu. Teknik ini memerlukan
mekanisme rollback dan restart. Resiko pendekatan ini adalah deadlock semula
dapat terjadi lagi. Tetapi karena ketidaktentuan pemrosesan kongkuren, biasanya
menjamin tidak akn terjadi deadlock serupa.
3. Secara
berurutan abaikan proses-proses sampai deadlock tidak ada lagi. Setelah
masing-masing penyingkiran, algoritma deteksi harus dijalankan untuk melihat
apakah masih terdapat deadlock.
4.
Secara berturutan preempt sumber daya-sumber
daya sampai tidak deadkock lagi. Sebagaimana item 3, pemilihan berdasrkan
ongkos yang digunakan dan algoritma deteksi harus dijalankan setelah tiap
preempt. Proses yang kehilangan sumber daya karena preemption harus
dikembalikan (roll-back) ketitik sebelum memperoleh sumber daya.
Untuk item 3 dan 4, criteria
pemilihan proses yang akan disingkirkan atau disupend adalah dengan
criteria-kriteria sebagai berikut:
Ø Waktu
pemrosesan yang telah dijalankan paling kecil
Ø Jumlah
baris keluaran yang diproduksi paling kecil
Ø Mempunyai
estimasi sisa waktu eksekusi terbesar.
Ø Jumlah
total sumber daya terkecil yang telah dialokasikan
Ø Prioritas
terkecil
Hal
yang harus diperhatikan dalam penyingkiran proses-proses adalah sistem harus mengembalikan berkas yang
dimodifikasi ke keadaan asli karena berpengaruh terhadap konsisten data sistem
itu.
VI.
Strategi
penanggulangan deadlock terpadu
Teknik mempunyai
keunggulan dan kelemahan, maka dalam penanggulangan deadlock lebih efisien
menggunakan strategi-strategi berbeda untuk situasi yang berbeda pula.
Silberchatz menyarankan satu pendekatan terpadu, yaiu :
Ø Kelompok sumber
daya menjadi sejumlah kelas sumber daya.
Ø Gunakan strategi
pengurutan linear seperti yang didefinisikan pada pencegahan menunngu sirkular.
Strategi ini digunakan untuk mencegah deadlock di antara kelas sumber daya
bebeda.
Ø Dalam satu kelas
daya, gunakan algoritma yang paling cocok untuk kelas sumber daya itu.
Metode-metode
penanggulangan deadlock
|
Prinsip
|
Kebijaksanaan
alokasi sumber daya
|
Skema-skema
|
Keunggulan
utama
|
Kelemahan
utama
|
|
Pencegahan
|
Konservatif,
menurunkan efisiensi sumber daya
|
Meminta
semua sumber daya sekaligus
|
Bekerja
bagus untuk proses-proses yang melakukan satu barisan aktifitas tunggal.
Tidak
diperlukan preemption.
|
Tidak
efisien
Memerlukan
waktu tunda inisiasi proses.
|
|
Preemption
|
Cocok
ketika diterapkan ke sumber daya yang statenya dapat disimpan dan
dikembalikan dengan mudah
|
Preemt
akan lebih sering terjadi dari yang diperlukan.
Dapat
menjadi restart yang siklus.
|
||
|
Pengurutan
sumber daya
|
Layak
dipaksakan lewat pemeriksaan lewat komplikasi.
Tidak
perlu komputasi saat berjalan karena masalah diselesaikan sewaktu perancangan
sistem.
|
Preempt
tanpa banyak penggunaan
Tak
mengijinkan permintaan sumber daya yang meningkat.
|
||
|
Deteksi
|
Lebih
bebas, sumber daya yang diminta diberikan bila mungkin
|
Dijalankan
secara periodik
|
Tak
pernah terdapat waktu tunda inisiasi proses
Memberi
fasilitas penanganan on-line
|
Kehilangan
preempt yang inheren
|
|
Penghindaran
|
Memilih
jalan tengah antara deteksi dan pencegahan
|
Memanipulasi
untuk menemukan pada setidaknya satu jalur selamat
|
Tidak
diperlikan preemption
|
Kebutuhan-kebutuhsn
sumber daya masa datang harus diketahui
Proses-proses
dapat di-block untuk periode yang lama
|
Read more...

