SIMULASI PENGHINDARAN DEADLOCK DENGAN METODA SAFE
STATE
Abstraksi : Sistem Operasi di definisikan sebagai kumpulan program-program (software/perangkat
lunak) yang membantu para pemakai komputer untuk berkomunikasi dengan komputernya. Fungsi dan
tugas sistem operasi yang pertama adalah pengelola seluruh sumber daya sistem komputer (sebagai
resource manager). Sebagai pengelola sumber daya tugas sistem operasi mengelola penggunaan
sumber daya menjadi lebih efisien.
Kedua sebagai penyedia layanan (sebagai extended/virtual machine) Sebagai penyedia layanan sistem
operasi bertugas memudahkan user dalam memanfaatkan sumber daya.
Deadlock merupakan kondisi dimana proses tidak berjalan lagi ataupun tidak ada komunikasi lagi
antar proses di dalam sistem operasi. Deadlock disebabkan karena proses yang satu menunggu sumber
daya yang sedang dipegang oleh proses lain begitu juga proses lain itu juga menunggu sumber daya
yang dipegang oleh proses tersebut.
Untuk mengatasi deadlock salah satunya adalah menghidari deadlock. Menghidari deadlock dapat
dilakukan dengan menjalankan proses yang tidak menyebabkan circular wait. Program Simulasi ini
dibuat bertujuan untuk menunjukkan bagaimana sistem operasi mengindari deadlock dengan safe state.
Kata kunci : Sistem Operasi, resource manager, deadlock, circular wait, safe state.
DEADLOCK AVOIDANCE SIMULATION METHOD WITH SAFE STATE
Abstract : Operating system is defined as a collection of programs (software) that help computer
users to communicate with the computer. The functions and duties of the first operating system is
managing the entire computer system resources (as resource manager). As resource managers the task
of managing the operating system resource usage becomes more efficient.
Both as a service provider (as extended / virtual machine) as a service provider in charge of the
operating system allow a user in utilizing resources.
Deadlock is the a condition in which the process is not running anymore or no longer have
communication of both process in the operating system. Deadlock caused by a processes waiting for
resources that are held by other process as well as other process that are also waiting for resources
held by the process.
To solve the deadlock one of the tips is avoid deadlock. Avoid deadlocks can be done by running a
process that does not cause a circular wait. This simulation program was created aims to show how
107 Jurnal TSI, Vol.1, No.2, Juli 2010
the operating system avoid the deadlock with the safe state.
Keyword : Operating system , resource manager, deadlock, circular wait, safe state
I. PENDAHULUAN
1.1 Latar Belakang Masalah
Di dalam sistem operasi suatu proses adalah program yang dieksekusi. Proses dapat meminta
dan menggenggam sumber daya untuk menjalankan prosesnya. Suatu proses dapat meminta
sumber daya baru walaupun proses tersebut sedang menggenggam sumber daya yang lain
(hold and wait condition). Sumber daya yang telah diberikan sebelumnya kepada proses tidak
boleh diambil paksa (non-preemption condition), kecuali proses tersebut telah melepaskannya.
Deadlock dapat dihindari dengan menutup kemungkinan terjadinya kondisi-kondisi yang
memicu deadlock, salah satu dari pemicu deadlock adalah kondisi menunggu secara sirkuler
(circular wait condition) yaitu dua proses atau lebih, masing-masing saling menunggu sumber
daya yang digenggam oleh proses yang lain. Jika sistem operasi mengetahui bahwa alokasi
sumber daya menimbulkan resiko deadlock, sistem akan menolak untuk menjalankan proses
tersebut.
Menghidari terjadinya deadlock dapat dilakukan dengan menggunakan algoritma safe state.
Algoritma ini digunakan untuk menentukan apakah suatu keadaan (state) mempunyai potensi
menuju ke deadlock atau tidak. Sistem operasi memeriksa semua permintaan sumber daya
secara hati-hati.Suatu keadaan dinyatakan state selamat bila terdapat cara untuk memenuhi
semua permintaan proses tanpa menghasilkan deadlock dengan menjalankan proses-proses
secara hati-hati mengikuti suatu urutan tertentu. Kebaliktan dari keadaan ini adalah state tak
selamat (unsafe state). Bila keadaan yang dihasilkan adalah unsafe state, maka permintaan
proses akan diblocked sampai suatu waktu permintaannya aman diberikan.
Simulasi ini dibuat untuk menentukan apakah suatu proses dapat dijalankan atau tidak. Dengan
menggunakan algoritma safe state, sistem operasi mengalokasikan sumber daya ke setiap
proses yang memerlukan dan memperhatikan apakah sumber daya yang minta memicu
deadlock atau tidak.
1.2. Tujuan
1. Mensimulasikan setiap proses yang masuk, apakah dapat dijalankan atau tidak.
2. Membantu untuk memahami algoritma safe state
1.3. Batasan Masalah
Simulasi ini dibatasi maksimal 6 buah proses dan 3 jenis sumber daya. Setiap proses yang
dieksekusi dibuatkan laporan berupa teks.
II. LANDASAN TEORI
2.1 Deadlock
Deadlock adalah suatu keadaan menunggu yang tidak akan pernah berakhir (kebuntuan).
Menurut Coffman dalam bukunya “Operating System” menyebutkan empat syarat bagi
terjadinya
deadlock, yaitu:
- Mutual Exlusion
Sebuah resource hanya dpat digunakan oleh sebuah proses pada suatu waktu tertentu
(resource yang non-shareable).
- Hold and Wait
Terdapat proses yang sedang menunggu dan memegang esource
- Non preemption
Resorce tidak dapat digunakan sebelum proses yang menggunakan telah selesai
menggunakan dan kemudian melepaskannya.
- Circular wait
Proses-proses berada dalam lingkaran. Terjadi saling menunggu resource yang sedang
digunakan oleh proses berikutnya.
Gambar 1. Analogi Deadlock
Ada 3 cara mengendalikan deadlock
- Strategi Ostrich, yaitu mengabaikan menganggap bahwa deadlock tidak akan pernah
terjadi.
- Mencegah deadlock dengan menggunakan protocol untuk meyakinkan bahwa sistem
tidak akan pernah deadlock.
- Membiarkan terjadinya deadlock, lalu kemudian segera memperbaikinya.
2.2 Strategi Ostrich
Pendekatan yang paling sederhana adalah dengan menggunakan strategi burung unta:
masukkan kepala dalam pasir dan seolah-olah tidak pernah ada masalah sama sekali. Beragam
pendapat muncul berkaitan dengan strategi ini. Menurut para ahli Matematika, cara ini sama
sekali tidak dapat diterima dan semua
keadaan deadlock harus ditangani. Sementara menurut para ahli Teknik, jika komputer lebih
sering mengalami kerusakkan disebabkan oleh kegagalan hardware, error pada kompilator
atau bugs pada sistem operasi. Maka ongkos yang dibayar untuk melakukan penanganan
deadlock sangatlah besar dan
lebih baik mengabaikan keadaan deadlock tersebut yaitu dengan merestart komputer. Metode
ini diterapkan pada sistem operasi UNIX dan MINIX.
2.3 Mencegah Deadlock
Metode ini merupakan metode yang paling sering digunakan. Metode Pencegahan dianggap
sebagai solusi yang bersih dipandang dari sudut tercegahnya deadlock. Tetapi pencgahan 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 Coffman (1971).
Syarat pertama yang akan dapat ditiadakan adalah Mutual Exclusion, jika tidak ada sumber
daya yang secara khusus diperuntukkan bagi suatu proses maka tidak akan 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:
- Tidak semua dapat di-spool, tabel proses sendiri tidak mungkin untuk di-spool
- 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.
Cara kedua dengan 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 tersebut
tidak dapat memulai prosesnya.
Masalah yang mungkin terjadi:
- Sulitnya mengetahui berapa sumber daya yang dibutuhkan pada awal proses
- Tidak optimalnya pengunaan sumber daya jika ada sumber daya yang digunakan hanya
beberapaWaktu dan tidak digunakan tapi tetap dimiliki oleh suatu proses yang telah
memintanya dari awal.
Meniadakan syarat ketiga non preemptive ternyata tidak lebih menjanjikan dari meniadakan
syarat kedua, karena dengan meniadakan syarat ketiga maka suatu proses dapat dihentikan
ditengah jalan. Halini tidak dimungkinkan karena hasil dari suatu proses yang dihentikan
menjadi tidak baik.
Cara terakhir adalah dengan meniadakan syarat keempat circular wait. Terdapat dua
pendekatan, yaitu:
- 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.
- 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. 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.
2.4 Menghindari 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.
III PERANCANGAN PROGRAM
Proses Permintaan Sumber Daya
Sebuah proses dapat berjalan apabila sumber daya yang dibutuhkan sudah terpenuhi. Untuk
memenuhi permintaan proses sistem operasi akan melakukan langkah-langkah sebagai berikut:
1. Sistem operasi menyeleksi request resource dari proses-proses, apabila request itu
memicu deadlock maka requestnya akan ditunda dahulu hingga keadaan aman.
2. Membutuhkan informasi tambahan mengenai aliran resource yang diminta.
Simulasi Penghindaran deadlock
Simulasi Penghindaran deadlock
IV IMPLEMENTASI
Struktur menu program merupakan suatu gambaran dalam bentuk bagan program yang dibuat
untuk mengidentifikasi dan mengilustrasikan program simulasi
Perancangan struktur menu program ini untuk menggambarkan modul-modul yang menyusun
program sistem informasi yang dibuat, dan menggambarkan hirarki kontrol diantara modulmodul
tersebut. Berikut adalah struktur menu program Aplikasi Pengendali Lampu Led
menggunakan port printer:
Gambar 5. Implementasi program
V. KESIMPULAN
Setelah dilakukan perancangan program simulasi deadlock ini, dapat diambil kesimpulan
sebagai berikut:
1. Mensimulasikan proses yang masuk, apakah menimbulkan deadlock atau tidak.
2. Program aplikasi ini, dapat membantu bagi mereka yang ingin mempelajari metoda
safety state.
VI. DAFTAR PUSTAKA
[1] Adi Kurniadi, Pemrograman Microsoft Visual Basic 6, Penerbit PT. Elex Media
Komputindo, Jakarta, 2000
[2] Bambang Hariyanto, Sistem Operasi, Penerbit Informatika Bandung Edisi kedua, 1999.
Ni Nyoman Smrti : Simulasi Penghindaran deadlock ....................................................... 116
[3] M. Agus J. Alam, Student Guide Series Pemrograman Database dengan Visual Basic,
Penerbit PT Elex Media Komputindo, Jakarta, 2006.
[4] Roger S. Pressman, Ph. D, Rekayasa Perangkat lunak Pendekatan Praktisi (Buku I),
Edisi Bahasa Indonesia, Penerbit Andi, 2002
[5] Bambang Hariyanto, Sistem Operasi, Penerbit Informatika Bandung Edisi kedua, 1999.
117 Jurnal TSI, Vol.1, No.2, Juli 2010