Model Sistem Sumber daya

Contoh deadlock pada rel kereta api: Gambar 2.18 Deadlock pada rel kereta api. Kedua kereta tidak dapat berjalan karena keduanya saling menunggu kereta lain agar dapat lewat sehingga terjadi deadlock.

2.4.1 Model Sistem

Untuk memodelkan kondisi deadlock, maka bayangkan sebuah sistem dengan: 1. Sekumpulan proses, P = {P 1 , P 2 , ..., P n } 2. Sekumpulan tipe sumber daya yang berbeda, R = {R 1 , R 2 , ..., R m } 3. Sumber daya R i memiliki n bagian instans yang identik dan masing-masing digunakan. Pada model operasi normal, sebuah proses menggunakan sumber daya dengan urutan sebagai berikut: 1. Mengajukan permohonan request: Bila permohonan tidak dapat dikabulkan dengan segera misal karena sumber daya sedang digunakan proses lain, maka proses itu harus menunggu sampai sumber daya yang dimintanya tersedia. 2. Menggunakan sumber daya use: Proses dapat menggunakan sumber daya, misal: printer untuk mencetak, disk drive untuk melakukan operasi IO, dan sebagainya. Universitas Sumatera Utara 3. Melepaskan sumber daya relase: Setelah proses menyelesaikan penggunaan sumber daya, maka sumber daya harus dilepaskan sehingga dapat digunakan oleh proses lain.

2.4.2 Sumber daya

Deadlock bisa terjadi pada saat proses akan mengakses obyek secara tidak semestinya. Obyek tersebut dinamakan sumber daya. Sumber daya ada dua jenis, yaitu: 1. Preemptable dapat diambil. Sumber daya dikatakan preemptable jika sumber daya tersebut dapat diambil dilepas dari proses yang sedang memakainya tanpa memberi efek apapun pada proses tersebut. Salah satu contoh preemptable adalah memori. Sebagai contoh, andaikan suatu sistem terdiri atas 512K user memori, satu printer, dan 2 proses masing-masing berukuran 512K dan ingin mencetak sesuatu. Proses A meminta printer dan mendapatkannya. Kemudian proses A tersebut segera menghitung suatu nilai yang akan dicetak. Sebelum ia selesai menghitung nilai tersebut, waktu yang diberikan ke proses tersebut telah habis sehingga proses A harus di swapped-out ditukar keluar Sekarang proses B mulai berjalan dan mencoba untuk mendapatkan printer, namun gagal karena printer telah dibawa oleh proses A. Hal ini sangat potensial untuk terjadi deadlock, sebab proses A membawa printer dan proses B menempati memori. Untungnya, karena memori bersifat preemptable dapat diambil dari proses B dengan cara swapped-out ditukar keluar proses B dan swapped-in ditukar masuk proses A ke memori, maka proses A dapat segera diselesaikan, sehingga tidak akan terjadi deadlock. 2. Nonpreemtable tidak dapat diambil. Pada sumber daya jenis ini, 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. Universitas Sumatera Utara

2.4.3 Penyebab dan penanggulangan Deadlock