Anda di halaman 1dari 10

DEADLOCK

Diajukan Untuk Memenuhi Tugas

Mata Kuliah Sistem Operasi

Dosen Pengampu Harya Gusdevi, S.Kom., M.Kom.

Disusun Oleh :

Dimas Aji Permadi 19552011212

KELAS TIFRP19A

SEKOLAH TINGGI TEKNOLOGI BANDUNG


FAKULTAS TEKNIK
JURUSAN INFORMATIKA
2020

Sistem Operasi | 1
1. Definisi Deadlock
Deadlock adalah suatu kondisi dimana dua proses atau lebih saling
menunggu proses yang lain untuk melepaskan resource yang sedang dipakai.
Karena beberapa proses itu saling menunggu, maka tidak terjadi kemajuan dalam
kerja proses-proses tersebut. Deadlock dalam arti sebenarnya adalah kebuntuan.
Kebuntuan yang dimaksud dalam sistem operasi adalah kebuntuan proses.
Deadlock adalah masalah yang biasa terjadi ketika banyak proses yang membagi
sebuah resource yang hanya boleh dirubah oleh satu proses saja dalam satu waktu.
Jadi deadlock ialah suatu kondisi dimana proses tidak berjalan lagi ataupun tidak
ada komunikasi lagi antar proses. Salah satu contoh sebuah deadlock.
2. Analogi atau contoh suatu proses dikatakan deadlock

Terlihat dari gambar 2.1(Skenario Dunia Nyata Jalanan). terdapat 4 unit


mobil yang saling memblokir jalurnya satu sama lain sehingga masing – masing
mobil tersebut tidak dapat melaju seperti yang seharusnya, ini adalah situasi
deadlock dalam situsi kondisi dunia nyata.
Terlihat dari gambar 2.2(Skenario Sistem Operasi). Dalam lingkaran D dan
C merupakan proses, dimana D merupakan proses 1 dan C merupakan proses 2.
Dan terdapat dua sumber daya dimana T merupakan sumber daya D dan U
merupakan sumber daya dari C. dimana C memiliki hak akses penuh atas sumber
daya U dan D memiliki hak akeses penuh atas sumber daya T. pada saat Ketika D
menginginkan akses sumber daya T ataupun C ingin mengakses sumber daya U
tidak bisa dilakukan dan menyebabkan pola lingkaran lain yang menyebabkan D
tidak dapat mengakses sumber daya T ataupun C tidak dapat mengakses U karena
masing – masing mereka telah dialokasikan dengan sumber daya masing – masing
yang berbeda.

3. Resources
Situasi proses diberikan akses eksklusif ke device, device tersebut
resourcenya atau sumber dayanya, Sumber daya terdapat 2 jenis, sebagai berikut.

Sistem Operasi | 2
3.1. Preemptable
Sumber daya dikatakan preemptable jika sumber daya tersebut dapat
diambil (dilepas) dari proses yang sedang memakainya tanpa memberi efek
apapun pada proses tersebut. Sumber daya ini tidak habis dipakai oleh proses
mana pun. Tetapi setelah proses berakhir, sumber daya ini dikembalikan untuk
dipakai oleh proses lain yang sebelumnya tidak kebagian sumber daya ini.
Contohnya Ketika sebuah proses memakai disk A dan B, maka akan terjadi
deadlock jika setiap proses sudah memiliki salah satu disk dan meminta disk
yang lain. Contoh dari alat Preemptable yaitu prosesor, kanal M/K, disk,
semafor.
3.2. Nonpreemtable
Sumber daya tidak dapat diambil dari proses yang sedang membawanya
karena akan menimbulkan kegagalan komputasi. Printer adalah salah satu
contohnya. Jika suatu proses sedang menggunakan printer untuk mencetak
sesuatu, maka printer tersebut tidak dapat diambil untuk mencetak sesuatu
dari proses lain. Sumber daya jenis ini biasanya berpotensi terjadinya
deadlock.

4. Penyebab Deadlock
Deadlock itu akan terjadi apabila syarat - syarat dari deadlock tersebut
terpenuhi. Adapun 4 kondisi penyebab deadlock adalah sebagai berikut:

4.1. Mutual Exclusion


Hanya ada satu proses yang boleh memakai sumber daya, dan
proses lain yang ingin memakai sumber daya tersebut harus menunggu hingga
sumber daya tadi dilepaskan atau tidak ada proses yang memakai sumber
daya tersebut

4.2. Hold and Wait


Proses yang sedang memakai sumber daya boleh meminta sumber daya
lagi maksudnya menunggu hingga benar - benar sumber daya yang diminta
tidak dipakai oleh proses lain, hal ini dapat menyebabkan kelaparan sumber
daya sebab dapat saja sebuah proses tidak mendapat sumber daya dalam waktu
yang lama.

4.3. No Preemption
Sumber daya yang ada pada sebuah proses tidak boleh diambil
begitu saja oleh proses lainnya. Untuk mendapatkan sumber daya tersebut,
maka harus dilepaskan terlebih dahulu oleh proses yang memegangnya,

Sistem Operasi | 3
selain itu seluruh proses menunggu dan mempersilahkan hanya proses
yang memiliki sumber daya yang boleh berjalan.
4.4. Circular wait condition
Kondisi seperti rantai, yaitu sebuah proses membutuhkan sumber daya
yang dipegang proses berikutnya. Kondisi untuk Terjadinya Deadlock

a) Terjadi deadlock bila terdapat ketiga kondisi itu, tetapi adanya ketiga
kondisi itu belum berarti terjadi deadlock.
b) Deadlock benar-benar terjadi bila syarat keempat terpenuhi. Kondisi
keempat  merupakan keharusan bagi terjadinya deadlock.
c) Deadlock bisa terjadi pada saat proses akan mengakses objek seperti
file,device, dll secara tidak semestinya. Objek tersebut dinamakan resource.

5. Penanganan Deadlock

5.1. Mengabaikan Masalah Deadlock/ Ignore( Algoritma Ostrich )


sistem dapat menggunakan pencegahan deadlock atau penghindaran
deadlock. Penghindaran deadlock membutuhkan informasi tentang sumber
daya yang mana yang akan suatu proses meminta dan berapa lama akan
digunakan. Dengan informasi tersebut dapat diputuskan apakah suatu proses
harus menunggu atau tidak. Hal ini disebabkan oleh keberadaan sumber
daya, apakah ia sedang digunakan oleh proses lain atau tidak. Metode ini
lebih dikenal dengan Algoritma Ostrich. Dalam algoritma ini dikatakan
bahwa untuk menghadapi Deadlock ialah dengan berpura - pura bahwa tidak
ada masalah apa pun. Hal ini seakan - akan melakukan suatu hal yang fatal,
tetapi sistem operasi Unix menanggulangi Deadlockdengan cara ini dengan
tidak mendeteksi Deadlock dan membiarkannya secara otomatis
mematikanprogram sehingga seakan - akan tidak terjadi apa pun. Jadi jika
terjadi Deadlock, maka tabel akan penuh, sehingga proses yang menjalankan
proses melalui operator harus menunggu pada waktutertentu dan mencoba
lagi.

5.2. Mendeteksi dan Memperbaiki


Mendeteksi jika terjadi Deadlock pada suatu proses maka dideteksi
sistem mana yang terlibat di dalamnya. Setelah diketahui sistem mana saja
yang terlibat makadiadakan proses untuk memperbaiki dan menjadikan
sistem berjalan kembali. Jika sebuah sistem tidak memastikan deadlock akan

Sistem Operasi | 4
terjadi, dan juga tidak didukung dengan pendeteksian deadlock serta
pencegahannya, maka kita akan sampai pada kondisi deadlock yang dapat
berpengaruh terhadap performance sistem karena sumber daya tidak dapat
digunakan oleh proses sehingga proses - proses yang lain juga terganggu.
Akhirnya sistem akan berhenti dan harus direstart.

5.3. Penghindaran Deadlock


Pendekatan metode ini adalah dengan hanya memberi kesempatan
ke permintaan sumber daya yang tidak mungkin akan menyebabkan deadlock.
Metode ini memeriksa dampak pemberian akses pada suatu proses, jika
pemberian akses tidak mungkin menuju kepada deadlock, maka sumber daya
akan diberikan pada proses yang meminta. Jika tidak aman, proses yang
meminta akan di- suspend sampai suatu waktu permintaannya aman untuk
diberikan. Kondisi ini terjadi ketika setelah sumber daya yang sebelumnya
dipegang oleh proses lain telah dilepaskan. Kondisi aman yang dimaksudkan
selanjutnya disebut sebagai safe-state, sedangkan keadaan yang tidak
memungkinkan untuk diberikan sumber daya yang diminta disebut unsafe-state.
5.3.1. Kondisi aman (Safe State)
Suatu keadaan dapat dinyatakan sebagai safe state jika tidak
terjadi deadlock dan terdapat cara untuk memenuhi semua permintaan
sumber daya yang ditunda tanpa menghasilkan deadlock. Dengan cara
mengikuti urutan tertentu.
5.3.2. Kondisi tidak aman (Unsafe State)
Suatu state dinyatakan sebagai state tak selamat (unsafe state)
jika tidak terdapat cara untuk memenuhi semua permintaaan yang
saat ini ditunda dengan menjalankan proses-proses dengan suatu urutan
Pada sistem kebanyakan permintaan terhadap sumber daya
dilakukan sebanyak sekali saja. Sistem sudah harus dapat mengenali
bahwa sumber daya itu aman atau tidak (tidak terkena deadlock), setelah
itu baru dialokasikan
Pada sistem deadlock avoidance (penghindaran) dilakukan dengan cara
memastikan bahwa program memiliki maksimum permintaan. Dengan kata
lain cara sistem ini memastikan terlebih dahulu bahwa sistem akan selalu
dalam kondisi aman. Baik mengadakan permintaan awal atau pun saat
meminta permintaan sumber daya tambahan, sistem harus selalu berada
dalam kondisi aman. Status Aman Status ini terjadi jika sistem dapat

Sistem Operasi | 5
mengalokasikan sumber daya bagi tiap proses dalam keadaan tertentu dan
masih dapat terjadi deadlock. Status aman bukanlah status deadlock, jadi
status deadlock merupakan status tidak aman, tetapi tidak selamanya status
tidak aman mengakibatkan status deadlock melainkan ada kemungkinan dapat
terjadi.

5.4. Pencegahan Deadlock


Metode Pencegahan dianggap sebagai solusi yang bersih dipandang dari
sudut tercegahnya deadlock. Tetapi pencegahan akan mengakibatkan
kinerja utilisasi sumber daya yang buruk. Metode pencegahan
menggunakan pendekatan dengan cara meniadakan empat syarat yang
dapat menyebabkan deadlock terjadi pada saat eksekusi.

5.4.1. Deadlock Prevention / Metode pencegahan terjadinya deadlock


Pengkondisian sistem agar menghilangkan kemungkinan
terjadinya deadlock. Pencegahan merupakan solusi yang bersih dipandang
dari sudut tercegahnya deadlock. Jika mulainya satu atau lebih proses
akan menyebabkan terjadinya deadlock, proses tersebut tidak akan
dimulai sama sekali.
a) Tiap proses harus meminta resource yang dibutuhkan sekaligus dan
tidak bisa berjalan sampai semua didapat (untuk “wait for”)
b) Jika ada resource tidak terpenuhi , yang lainnya harus dilepas (untuk
no preemption)
c) Urutkan tipe-tipe resource secara linier / linier ordering ( untuk
“circular wait”)

5.4.1.1. Mutual Exclusion


Syarat pertama yang akan dapat ditiadakan adalah
Mutual Exclusion, jika tidak ada sumber daya yang secara
khusus diperuntukkan bagi suatu proses maka tidak akan

Sistem Operasi | 6
pernah terjadi deadlock. Namun jika membiarkan ada dua
atau lebih proses mengakses sebuah sumber daya yang sama
akan menyebabkan chaos. Langkah yang digunakan adalah
dengan spooling sumber daya, yaitu dengan mengantrikan job
- job pada antrian dan akan dilayani satu - satu. Beberapa
masalah yang mungkin terjadi adalah:

a) Tidak semua dapat di-spool, tabel proses sendiri tidak


mungkin untuk di-spool.
b) Kompetisi pada ruang disk untuk spooling sendiri dapat
mengarah pada deadlock.
Hal inilah yang menyebabkan mengapa syarat pertama tidak dapat
ditiadakan, jadi mutual exclusion benar-benar tidak dapat dihilangkan

5.4.1.2. Hold and Wait


Meniadakan kondisi hold and wait terlihat lebih
menjanjikan. Jika suatu proses yang sedang menggunakan
sumber daya dapat dicegah agar tidak dapat menunggu
sumber daya yang lain, maka deadlock dapat dicegah.
Langkah yang digunakan adalah dengan membuat proses agar
meminta sumber daya yang mereka butuhkan pada awal
proses sehingga dapat dialokasikan sumber daya yang dibutuhkan.
Namun jika terdapat sumber daya yang sedang terpakai maka
proses tersebuttidak dapat memulai prosesnya. Beberapa masalah
yang mungkin terjadi adalah:
a) Sulitnya mengetahui berapa sumber daya yang akan
dibutuhkan pada awal proses.
b) Tidak optimalnya penggunaan sember daya jika ada sumber
daya yang digunakan hanya beberapa waktu dan tidak
digunakan tapi tetap dimiliki oleh suatu proses yang
dihentikan dari awal.

5.4.1.3. Non Preemptive


Meniadakan non preemptive ternyata tidak lebih
menjanjikan dari meniadakan syarat kedua, karena dengan
meniadakan syarat ketiga maka suatu proses dapat dihentikan
ditengah jalan. Hal ini tidak dimungkinkan karena hasil dari suatu
proses yang dihentikan menjadi tidak baik.

Sistem Operasi | 7
5.4.1.4. Circular wait
Dengan meniadakan circular wait, terdapat dua pendekatan,
yaitu.
a) Mengatur agar setiap proses hanya dapat menggunakan
sebuah sumber daya pada suatu waktu, jika
menginginkan sumber daya lain maka sumber daya yang
dimiliki harus dilepas.
b) Membuat penomoran pada proses-proses yang mengakses
sumber daya. Suatu proses dimungkinkan untuk dapat
meminta sumber daya kapan pun, tetapi permintaannya
harus dibuat terurut.

Masalah yang mungkin terjadi dengan mengatur bahwa


setiap proses hanya dapat memiliki satu proses adalah bahwa tidak
semua proses hanya membutuhkan satu sumber daya, untuk suatu
proses yang kompleks dibutuhkan banyak sumber daya pada
saat yang bersamaan. Sedangkan dengan penomoran masalah
yang dihadapi adalah tidak terdapatnya suatu penomoran yang
dapat memuaskan semua pihak
6. Algoritma Banker
Algoritma banker adalah suatu metode untuk mengatasi deadlock yang
dikemukakan oleh W.Dijkstra. Disebut banker karena memodelkan banker di
sebuah kota kecil yang berhubungan dengan sekumpulan nasabah yang memohon
pinjaman / kredit yang dapat dianalogikan sebagai berikut :
a) Sistem operasi sabagai bank
b) Resource sebagai uang
c) Proses sebagai nasabah

6.1. Analogi Cara Kerja Algoritma Banker


Cara kerja algoritma banker adalah dengan mempertimbangkan permintaan
pinjaman yang diajukan oleh nasabah tersebut sesuai dangan uang yang dimiliki
oleh bank, sekaligus mempertimbangkan jumlah pinjaman yang akan diajukan
lagi oleh nasabah tersebut/nasabah lain.
Setiap nasabah memiliki batas kredit dan apabila nasabah telah mencapai
batas kredit pinjaman, maka diasumsikan bahwa nasabah tersebut telah
menyelesaikan bisnisnya dan dapat mengembalikan pinjamannya kepada
bank.Jangan sampai dana yang ada pada bank habis dan tidak dapat melakukan
pinjaman lagi atau yang disebut deadlock

Sistem Operasi | 8
6.2. Contoh kasus penanganan menggunakan algoritma banker
Terdapat 5 proses yaitu P0 sampai P4, 3 Tipe sumber daya yaitu, A(10
Anggota),
B(5 Anggota), C(7 Anggota).
Nilai Allocation = Sudah diketahui
Nilai Max = Sudah diketahui
Nilai Available = Isi jumlah Sumber daya – Jumlah Baris Allocation
Nilai Need = Max – Allocation
Safe State = Need ≤ Available (Jika proses dapat dieksekusi, Maka
proses akan melepaskan alokasinya untuk penambahn
kepada available baru) / jika aturan proses tidak terpenuhi
maka akan lanjut ke proses selanjutnya.

PROSE ALLOCATION MAX AVAILBALE NEED


S A B C A B C A B C A B C
P0 0 1 0 7 5 3 3 3 2 7 4 3
P1 2 0 0 3 2 2 5 3 2 1 2 2
P2 3 0 2 9 0 2 7 4 3 6 0 0
P3 2 1 1 2 2 2 7 4 5 0 1 1
P4 0 0 2 4 3 3 7 5 5 4 3 1
Total Available 1047

P0 → need ≤ available
743 ≤ 332
( tidak dapat di eksekusi / unsafe)
P1 → need ≤ available
122 ≤ 332
(dapat di eksekusi / safe)
Available baru = available+allocation
Available baru = 322+200 = 532
P2 → need ≤ available
600 ≤ 532
(Tidak dapat di eksekusi / Unsafe)
P3 → need ≤ available
011 ≤ 532
(dapat di eksekusi / safe)
Available baru = available+allocation
Available baru = 532+211 = 743
P4 → need ≤ available

Sistem Operasi | 9
431 ≤ 743
(dapat di eksekusi / safe)
Available baru = available+allocation
Available baru = 743+002 = 745
P0 → need ≤ available
431 ≤ 745
(dapat di eksekusi / safe)
Available baru = available+allocation
Available baru = 745+010 = 755
P2 → need ≤ available
600 ≤ 755
(dapat di eksekusi / safe)
Available baru = available+allocation
Available baru = 755+302= 1057
Urutan Eksekusi {P1,P3,P4,P0,P2}
Sehingga Sistem dalam keadaan state selamat dan memenuhi kriteria safety.

Sistem Operasi | 10

Anda mungkin juga menyukai