Anda di halaman 1dari 17

KELOMPOK 7

DEADLOCK
Di susun oleh:

1) Nadif Rayhan Julio Mohede (NPM 20081011035)

2) Reyhan Dela Masyhuri (NPM 20081010182)

3) Muhammad Rayhan Muharram (NPM 20081010204)

4) Muhammad Fernanda Naufal Fathoni (NPM 20081010257)


PENGERTIAN DEADLOCK

Permasalahan deadlock terjadi karena sekumpulan proses-proses yang


diblok dimana setiap proses membawa sebuah sumber daya dan menunggu
mendapatkan sumber daya yang dibawa oleh proses lain. Misalnya sistem
mempunyai 2 tape drive dan terdapat dua proses P1 dan P2 yang masing
masing membawa satu tape drive dan masing-masing memerlukan tape drive
yang dibawa proses lain sehingga terjadi keadaan saling menunggu resource
dan sistem di-blok.
Contoh lain, misalnya terdapat semaphore A dan B yang diinisialisasi 1 dan terdapat
dua proses P0 dan P1 masing-masing membawa semaphore A dan B. Kemudian P0
dan P1 meminta semaphore B dan A dengan menjalankan operasi wait. Hal ini
mengakibatkan proses di-blok dan terjadi deadlock

Pada windows, deteksi deadlock yaitu berupa


BSOD (Blue Screen Of Dead). Cara
merecovery atau mengembalikannya dengan
cara reboot sederhana
KONDISI TERJADINYA DEADLOCK

Kondisi terjadinya deadlock :

1. Mutual exclusion (mutual exclusion condition)

Hanya ada satu proses yang boleh memakai sumberdaya, dan proses lain
yang ingin memakai sumberdaya tersebut harus menunggu hingga
sumberdaya tadi dilepaskan

2. kondisi Genggam dan tunggu (hold and wait condition)

Hold and wait adalah proses yang sedang memakai sumber daya boleh
meminta sumberdaya lagi. Maksudnya menunggu hingga sumber daya yang
diminta sudah tidak dipakai oleh proses yang lainnya
3. Kondisi Non Preemption (non-preemtive condition)

Sumberdaya yang ada pada sebuah proses tidak boleh diambil


begitu saja oleh proses lainnya. Untuk mendapatkan sumberdaya
tersebut maka harus dilepaskan sumberdaya salah satunya supaya
bisa terproses

4. Kondisi menunggu secara sirkuler (circular wait condition)

Kondisi seperti rantau, yaitu proses membutuhkan sumberdaya


yang dipegang dan diproses berikutnya
CARA MENGATASI DEADLOCK

1. Mengabaikan masalah deadlock


2. Mendeteksi dan memperbaiki deadlock
3. Menghindari deadlock
4. Mencegah deadlock
TAHAPAN PRAKTIKUM
1. Buka aplikasi OS Simulator
File deadlock 2:
2. Buatlah code ini pada complier

File deadlock 1:
Program P2
Program P1
resource(2,allocate)
resource(1,allocate)
wait(3)
wait(3)
resource(3,allocate)
resource(2,allocate)

for n=1 to 20
for n=1 to 20
next
next
end
end
File deadlock 3: File deadlock 4:

Program P3 Program P4

resource(3,allocate) resource(4,allocate)

wait(3) wait(3)

resource(4,allocate) resource(1,allocate)

for n=1 to 20 for n=1 to 20

next next

end end
3. Compile program tersebut, lalu muat ke dalam memory satu persatu program diatas
4. Setelah program sudah di muat, klik OS 0
5. Lalu muncul program seperti ini
6. Setelah itu klik satu satu pada menu program name dan create new process
7. Setelah program masuk ke dalam kolom ready Process

8. Pilih menu pada SCHEDULER lalu klik centang pada round robin dan memilih waktunya 10
9. Lalu klik start
10. Klik menu view dan klik kolom view resource
11. Jika terjadi hal tersebut bisa diatasi dengan
Akan muncul table proses seperti ini :
mengklik release untuk mengatasi deadlock

-Dalam menu tersebut terdapat prevent dan recovery


Pada table diatas terjadi proses deadlock,
dimana ada tulisan peringatan terjadi Prevent : berfungsi untuk mencegah deadlock
proses deadlock
Recovery : mengatasi saat terjadinya deadlock
12. Lalu pada percobaan kedua kita akan mengklik pada menu prevent hold and wait
Dan hasil dari percobaaan kedua dengan mengklik menu tersebut adalah

- Ketika kita menggunakan


menu prevent hold and wait akan
tidak terjadi deadlock dan program
berjalan dengan baik

- Jadi hold and wait bisa


mengatasi deadlock

13. Mengatasi deadlock dengan menu prevent circular


wait
14. setelah mengklik menu circular wait, dan mengulangi proses yang sama maka:

- Terjadi proses deadlock, jadi kita harus


melepaskan secara manual salah satunya
dengan mengklik release

- Setelah di klik release akan mengatasi


terjadinya deadlock

15. Pada percobaan selanjutnya, klik pada menu prevent bagian use total
ordering
16. Lakukan seperti sebelumnya, dan hasilnya tidak terjadi deadlock

Jadi jika berwarna hijau tidak terjadi


deadlock

17. Pada tahap berikutnya kita mengklik menu recovery pada abort processes

18. Dan ulangi seperti tahap sebelumnya


19. Pada saat di klik start akan terjadi hal seperti ini

- Pada saat baru di proses terjadi deadlock,


- Hal ini dikarenakan pada menu recovery
dan selang beberapa saat deadlock diatasi fungsinya untuk mengatasi proses deadlock

- Dan selang beberapa saat berubah dan deadlock diatasi menjadi


hijau.
20. Lalu pada tahap selanjutnya pilih Pre-empt resource, dan ulangi seperti sebelumnnya
21. Dan hasilnya seperi ini:

- Disimpulkan bahwa jika recovery terjadi maka deadlock dapat diatasi dengan cara recovery untuk mencegah
terjadinya deadlock
PENUTUP

KESIMPULAN

1. Prevent merupakan upaya pencegahan deadlock, akan tetapi tidak semua deadlock dapat diatasi .
karena tergantung deadlocknya gimana

2. Pada recovery akan mengatasi terjadinya deadlock dan mencegah terjadinya deadlock, jadi Ketika
terjadi deadlock akan diatasi supaya tidak terjadi deadlock

Anda mungkin juga menyukai