BAB I
PENDAHULUAN
1.1 Latar Belakang
Suatu proses disebut deadlock jika proses menunggu satu kejadian tertentu yang tidak akan pernah terjadi. Sekumpulan proses berkondisi deadlock bila setiap proses yang ada di kumpulan itu menunggu suatu kejadian yang hanya dapat dilakukan proses lain yang juga berada di kumpulan itu. Deadlock terjadi ketika proses-proses mengakses secara ekslusif sumber daya, sedang menggenggam sumber daya dan meminta sumber daya lain (yang sedang dipegang oleh proses lain). Salah satu metode untuk mencegah deadlock adalah algoritma Banker.
Algoritma Banker dikemukakan oleh Edsger W.Dijkstra dan merupakan salah satu metode untuk menghindari deadlock. Algoritma ini disebut algoritma Banker karena memodelkan sebuah bank di kota kecil yang berurusan dengan sekumpulan nasabah yang memohon kredit. Analogi dari algoritma Banker dengan sistem operasi adalah, nasabah merupakan proses-proses yang sedang berjalan, uang (dana yang dimiliki bank) merupakan sumber daya, dan bankir merupakan sistem operasi. Setiap nasabah memiliki batas kredit. Apabila seorang nasabah telah mencapai batas kredit pinjaman, maka diasumsikan nasabah tersebut telah menyelesaikan semua permasalahan bisnisnya dan dapat mengembalikan semua pinjamannya kepada bank. Setiap nasabah dapat memohon kredit pada suatu waktu dan bankir dapat menyetujui atau menolak permohonan tersebut. Jika ditolak, nasabah masih menggenggam dana yang telah dipinjamkan untuknya dan menunggu selama waktu berhingga sampai permohonannya dapat disetujui. Bankir hanya memberikan permintaan yang menghasilkan state selamat. Permohonan kredit yang akan menghasilkan state tidak selamat secara berulang ditolak sampai permohonan tersebut dapat dipenuhi. Persetujuan atau penolakan permohonan kredit ditentukan dengan menggunakan algoritma Safety dan algoritma Resource Request.
Berdasarkan uraian di atas, penulis ingin merancang suatu perangkat lunak yang mampu untuk mensimulasikan proses kerja dari algoritma Banker dengan judul “Perangkat Lunak Simulasi Algoritma Banker”.
1.2 Perumusan Masalah
Uraian masalah dari judul skripsi ini adalah:
1. bagaimana menerapkan algoritma Banker yang terdiri dari algoritma Safety dan algoritma Resource Request untuk menentukan keputusan apakah sumber daya dipinjamkan atau tidak.
2. bagaimana membuat atau menggambar objek-objek simulasi dan merancang animasi pergerakan objek dalam sebuah perangkat lunak simulasi.
1.3 Tujuan dan Manfaat Penulisan
Tujuan penyusunan skripsi ini adalah untuk merancang suatu perangkat lunak simulasi algoritma Banker.
Manfaat dari penyusunan skripsi ini, yaitu :
1. Untuk membantu pemahaman mengenai algoritma Banker.
2. Perangkat lunak juga dapat digunakan sebagai fasilitas pendukung dalam proses belajar mengajar, terutama mengenai mata kuliah Sistem Operasi.
1.4 Pembatasan Masalah
Adapun batasan-batasan yang diberikan agar penyelesaian masalah tidak terlalu kompleks adalah sebagai berikut:
1. Input dari perangkat lunak adalah,
a. Jumlah tipe resource minimal 1 dan maksimal 5.
b. Available, menunjukkan resource-resource yang tersedia untuk setiap tipe, memiliki batasan nilai minimal 1 dan maksimal 100.
c. Maximum, mendefinisikan jumlah resource maksimum yang dialokasikan untuk setiap nasabah, memiliki batasan nilai minimal 1 dan maksimal 30.
2. Kondisi simulasi (kondisi awal, permohonan resources, besarnya resources dan pengembalian resources) dapat di-input oleh user atau dihasilkan secara acak (random) oleh komputer.
3. Jumlah tempat pelayanan nasabah (counter) dibatasi sebanyak 5 buah.
4. Perangkat lunak akan menampilkan laporan mengenai data-data nasabah yang melakukan transaksi.
5. Laporan tersebut dapat disimpan ke dalam bentuk text file.
6. Kecepatan animasi dapat diatur secara manual.
7. Waktu atau lamanya proses simulasi dapat di-input oleh user dan dibatasi maksimal 3 digit.
1.5 Metodologi Penyelesaian Masalah
Langkah – langkah pembuatan perangkat lunak ini antara lain :
a. Membaca dan mempelajari buku – buku yang berhubungan dengan Sistem Operasi.
b. Mempelajari proses kerja dari algoritma Banker.
c. Mempelajari teknik-teknik dasar pemrograman dengan menggunakan bahasa pemrograman Microsoft Visual Basic 6.0.
d. Merancang interface untuk perangkat lunak simulasi.
e. Merancang suatu perangkat lunak simulasi algoritma Banker dengan menggunakan bahasa pemrograman Microsoft Visual Basic 6.0.
f. Menguji perangkat lunak dan memperbaiki kesalahan (error) yang muncul.