Optimasi Algoritma Banker dengan Algoritma Greedy

dokumen-dokumen yang mirip
Pencegahan Deadlock pada Alokasi Resource dalam Sistem Operasi Menggunakan Algoritma Greedy

Penggunaan Algoritma Greedy untuk menyelesaikan Permainan Othello

Optimisasi Penjadwalan Proses Pada Central Processing Unit Dengan Menggunakan Algoritma Greedy

PERBANDINGAN APLIKASI ALGORITMA BRUTE-FORCE DAN KOMBINASI ALGORITMA BREADTH FIRST SEARCH DAN GREEDY DALAM PENCARIAN SOLUSI PERMAINAN TREASURE HUNT

Penyelesaian Permainan Sliding Puzzle 3x3 Menggunakan Algoritma Greedy Dengan Dua Fungsi Heuristik

Algoritma Greedy pada Penjadwalan Real-Time untuk Earliest Deadline First Scheduling dan Rate Monotonic Scheduling serta Perbandingannya

Perbandinganan Penggunaan Algoritma Greedy dan Modifikasi Algoritma Brute Force pada Permainan Collapse XXL

Penggunaan Algoritma Greedy dalam Optimasi Masalah Perkebunan

Aplikasi Algoritma Greedy dalam Penjurusan Mahasiswa Tingkat Pertama Institut Teknologi Bandung

PENGGUNAAN ALGORITMA GREEDY DALAM PERMAINAN KARTU BLACK JACK

Penerapan Algoritma Greedy untuk Permainan Halma

Penggunaan Algoritma Greedy untuk Mencari Solusi Optimal dalam Permainan Brick Breaker

Penerapan Algoritma Greedy dalam Pencarian Rantai Penjumlahan Terpendek

Algorima Greedy Pada Self Serve Gas Station

Penerapan Algoritma Greedy untuk Permainan Flood It

Analisis Pengimplementasian Algoritma Greedy untuk Memilih Rute Angkutan Umum

Aplikasi Algoritma Greedy pada Optimasi Pelaksanaan Misi dalam Permainan Assassins Creed : Revelations

Penerapan Algoritma Greedy dalam Permainan Othello

Implementasi Algoritma Greedy dalam Pembagian kerja pada Mesin yang Identik

IMPLEMENTASI ALGORITMA GREEDY PADA PERMAINAN OTHELLO

Penerapan Algoritma Greedy pada Permainan Tower Defense

Penerapan Algoritma Greedy dalam Permainan Connect 4

ALGORITMA GREEDY DALAM PERMAINAN DOTS AND BOXES

Penerapan Algoritma Greedy Pada Game Tower Defense: Tower of Greece

Penggunaan Brute Force untuk Mendeteksi Potensi Terjadinya Deadlock

IMPLEMENTASI ALGORITMA GREEDY PADA PERMAINAN CONGKLAK

Penerapan Algoritma Greedy dan Algoritma BFS untuk AI pada Permainan Greedy Spiders

Penerapan Algoritma Greedy dalam Optimasi Keuntungan Perusahaan Pengiriman Barang

Penggunaan Algoritma Greedy Dalam Perancangan Papan Teka Teki Silang

Pendeteksian Deadlock dengan Algoritma Runut-balik

Penerapan Algoritma Greedy pada Permainan Bubble Breaker

Strategi Perancangan Bot Player pada Permainan Tradisional Congklak dengan Algoritma Greedy

Pemilihan Monster yang Akan Digunakan dalam Permainan Yu-Gi-Oh! Capsule Monster Coliseum

Aplikasi Algoritma Greedy untuk Pergerakan Musuh pada Permainan Pac-Man

Penerapan Algoritma Greedy dalam Algoritma Penjadwalan Prosesor Tunggal Shortest Job First

Kompleksitas Algoritma untuk Penyelesaian Persoalan Penukaran Koin dengan Algoritma Greedy

Penerapan Algoritma Greedy pada Intelegensia Buatan untuk Transfer Pemain dalam Permainan Simulasi Sepakbola

Penentuan Lokasi Pemasaran Produk dengan Media Periklanan Menggunakan Algoritma Greedy

Penentuan Keputusan dalam Permainan Gomoku dengan Program Dinamis dan Algoritma Greedy

Penerapan Algoritma Brute force dan Greedy pada Penjadwalan Disk

Sistem Operasi. Deadlock

Bab 6. Deadlock POKOK BAHASAN: TUJUAN BELAJAR:

Implementasi Algoritma Greedy Dua Sisi pada Permainan 2048

Penyempurnaan Intelegensa Buatan Mode AI ++ Ragnapolis dengan Langkah Penjualan Kota Berbasiskan Algoritma Greedy

Penerapan Algoritma Runut-Balik (Backtracking) pada Permainan Nurikabe

Penerapan Algoritma Backtracking untuk Menyelesaikan Permainan Hashiwokakero

Penerapan Algoritma Greedy dalam Penyetokan Barang

Penentuan Langkah Sederhana dalam Permainan Kartu Hearthstone dengan Algoritma Greedy

Penerapan Algoritma Greedy dalam Algoritma Disk Scheduling Shortest Seek Time First

Implementasi Algoritma Greedy pada Permainan Ludo

Penerapan Algoritma DFS pada Permainan Sudoku dengan Backtracking

Penerapan Greedy pada Jalan Jalan Di Bandung Yuk! V1.71

Algoritma Greedy pada Board Game Saboteur

Pengaturan Sistem Lampu Lalu Lintas dengan Algoritma Branch and Bound dengan Waktu Tunggu Menggunakan Algoritma Greedy

Pencarian Solusi Permainan Flow Free Menggunakan Brute Force dan Pruning

DEADLOCK PADA WINDOWS DAN LINUX

PERBANDINGAN ALGORITMA GREEDY DAN BRUTE FORCE DALAM SIMULASI PENCARIAN KOIN

Penentuan Langkah dengan Greedy dalam Permainan Ludo

Penerapan Algoritma Greedy pada Permainan Kartu 100

Perbandingan Algoritma Brute Force dan Breadth First Search dalam Permainan Onet

Penerapan Algoritma Greedy dalam Permainan Tradisional Congklak

Strategi Algoritma Penyelesaian Puzzle Hanjie

APLIKASI ALGORITMA GREEDY DALAM PERMAINAN JAWBREAKER

IF3051 Strategi Algoritma Penerapan Algoritma Greedy untuk Peletakan Tanaman dalam Game Harvest Moon: Back to Nature

Algoritma Greedy untuk AI dalam Permainan DotA

Aplikasi Algoritma Greedy untuk Menyelesaikan Permainan Magic Wingdom

Perbandingan BFS, DFS dan Greedy pada Permainan Logika Crossing Bridge

Implementasi Algoritma Runut Balik dalam Pengenalan Citra Wajah pada Basis Data

Penerapan algoritma Greedy dalam penentuan Porter Generic Strategies untuk suatu perusahaan

Algoritma Greedy untuk Pengambilan Keputusan dalam Permainan Kartu Hearts

Penggunaan Algoritma Greedy Untuk Menyelesaikan Permainan Cluedo

APLIKASI ALGORITMA GREEDY DALAM PENENTUAN SPESIFIKASI KOMPUTER RAKITAN

Aplikasi Algoritma Greedy untuk Optimasi Sistem Booking Hotel Online

Solusi Terbaik Permainan Rocket Mania Deluxe dengan Pendekatan Algoritma BFS dan Algoritma Greedy

Penerapan Algoritma Greedy dalam Permainan Bantumi

Sistem Operasi Komputer. Pembahasan Deadlock

Memecahkan Puzzle Hidato dengan Algoritma Branch and Bound

PENERAPAN ALGORITMA GREEDY DALAM PENCARIAN SOLUSI TERBAIK PADA PERMAINAN TETRIS

Penerapan Algoritma Greedy dalam Pembuatan Artificial Intelligence Permainan Reversi

Penyelesaian Sum of Subset Problem dengan Dynamic Programming

PENGGUNAAN EXHAUSTIVE SEARCH SEBAGAI SOLUSI PERMAINAN SCRAMBLE

Deadlock. Pada kasus ini juga bisa terjadi kelaparan, yaitu ada proses yang tidak terlayani

Penerapan Algoritma Greedy dalam Permainan Tetris

Analisis Penerapan Algoritma Kruskal dalam Pembuatan Jaringan Distribusi Listrik

Penggunaan Algoritma Greedy untuk Menyelesaikan Permainan UNO Kartu (Klasik)

Pemanfaatan Algoritma Runut-Balik dalam Menyelesaikan Puzzle NeurOn dalam Permainan Logical Cell

Aplikasi Algoritma Greedy dalam Permainan Kartu Truf

PENERAPAN KRIPTOGRAFI DAN GRAF DALAM APLIKASI KONFIRMASI JARKOM

Implementasi Brute Force dan Greedy dalam Permainan Big Two (Capsa)

PERMAINAN KNIGHT S TOUR DENGAN ALGORITMA BACKTRACKING DAN ATURAN WARNSDORFF

Analisis Beberapa Algoritma dalam Menyelesaikan Pencarian Jalan Terpendek

Algoritma Puzzle Pencarian Kata

Optimalisasi Susunan Tempat Duduk Kereta Api Menggunakan Algoritma Greedy dan Program Dinamis

Penerapan Algoritma Greedy dan Breadth First Search pada Permainan Kartu Sevens

Implementasi Algoritma BFS dan DFS dalam Penyelesaian Token Flip Puzzle

Penerapan algoritma greedy pada berbagai macam tugas sistem operasi

Penerapan Algoritma Greedy Pada Permainan Killbots

Penerapan Algoritma DFS dan BFS untuk Permainan Wordsearch Puzzle

PENGGUNAAN ALGORITMA GREEDY PADA MESIN PENCARI

Metode Path Finding pada Game 3D Menggunakan Algoritma A* dengan Navigation Mesh

Transkripsi:

Optimasi Algoritma Banker dengan Algoritma Greedy Daniel Prihartoni 1359088 Program Studi Teknik Informatika Sekolah Teknik lektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132, Indonesia 13509088@std.stei.itb.ac.id Abstrak Pada konsep sistem operasi, dikenal adanya istilah deadlock. Deadlock terjadi pada sejumlah proses ketika masing-masing proses saling menunggu suatu kejadian yang hanya dapat terjadi jika disebabkan oleh proses lainnya. Salah satu strategi untuk mengatasi deadlock adalah dengan melakukan penjadwalan penggunaan resource oleh proses. Algoritma penjadwalan ini dikenal dengan nama Algoritma Banker yang akan dioptimasi dengan menggunakan algoritma Greedy. Kata kunci Sistem operasi, deadlock, algoritma Banker, algoritma Greedy. I. PNDAHULUAN Salah satu peran sistem operasi adalah berkaitan dengan manajemen proses dan resource. Ketika komputer dijalankan, sejumlah proses akan dilakukan oleh CPU dengan menggunakan resource yang ada sesuai dengan kebutuhan. Suatu resource dapat berupa sebuah perangkat keras (contoh : printer) yang terhubung dengan komputer ataupun sepenggal informasi yang tersimpan pada media penyimpanan. Peran sistem operasi adalah untuk mengalokasikan satu atau lebih resource untuk digunakan oleh proses tertentu. Pada praktiknya, sering kali sebuah proses membutuhkan suatu resource yang juga dibutuhkan oleh proses lain. Hal ini biasa dikenal dengan nama resource sharing. Jika penjadwalan berjalan dengan baik, maka setiap proses akan mendapatkan resource yang dibutuhkan sehingga proses-proses tersebut dapat selesai. Secara formal, deadlock didefinisikan sebagai kejadian yang terjadi pada sejumlah proses ketika masing-masing proses menunggu suatu kejadian yang disebabkan oleh proses lain [1]. Masing-masing proses tidak akan menyebabkan kejadian yang diharapkan proses lain karena proses tersebut juga menunggu sebuah kejadian dari proses lain. Hal ini menyebabkan masing-masing proses akan saling menunggu selamanya. Yang dimaksud dengan kejadian pada makalah ini adalah kondisi ketika sebuah proses melepaskan satu atau lebih resource. Dengan kata lain definisi sebelumnya menjadi masing-masing proses akan menunggu sebuah resource yang sedang digunakan proses yang juga sedang menunggu. Deadlock semacam ini dikenal dengan nama resource deadlock. Ada empat kondisi yang harus dipenuhi ketika sejumlah proses dikatakan dalam keadaan resource deadlock [2], yaitu : 1. Mutual exclusion, setiap resource sedang digunakan oleh tepat satu proses. 2. Hold and wait, proses yang sedang menggunakan resource meminta hak akses untuk resource lain. 3. No preemption, setiap resource tidak dapat diambil secara paksa. 4. Circular wait, terdapat lintasan sirkuler dari dua atau lebih proses yang sedang menunggu hak akses penggunaan dari proses lain yang ada di lintasan sirkuler. Gambar 1 Kondisi deadlock Ada empat strategi untuk menangani deadlock yaitu : 1. Mengabaikan kejadian deadlock, yaitu dengan prediksi bahwa deadlock hannya terjadi sekali dalam lima tahun 2. Detection and recovery, yaitu apabila terjadi deadlock, lakukan sesuatu. 3. Dynamic avoidance, yaitu dengan melakukan perhitungan matang sebelum mengalokasi resource. 4. Mencegah, yaitu dengan melanggar salah satu dari empat kodisi terjadinya deadlock. II. DASAR TORI Pada makalah ini hanya akan dibahas mengenai strategi yang ketiga yaitu dynamic avoidance. Pada dynamic avoidance dikenal istilah stata aman dan stata tidak aman. Suatu kondisi dikatakan aman jika urutan penjadwalan penggunaan resource menjamin setiap proses untuk dapat diselesaikan. Contohnya pada gambar 2, jika proses B meminta 2 resource, sedangkan resource yang tersisa adalah 3, maka proses B akan selesai dan mengembalikan resource yang telah dipakai yaitu sebanyak 4. Dengan melakukan hal yang sama selanjutnya pada proses A dan

C, maka keseluruhan proses dapat diselesaikan Gambar 2 Contoh kondisi aman Sementara itu kondisi yang dikatakan tidak aman adalah jika setiap proses tidak dapat dijamin dapat diselesaikan tanpa menghadapi kondisi deadlock. Kondisi tidak aman bukan berarti sedang mengalami deadlock, tetapi berpotensi untuk terjadi deadlock. Contohnya pada gambar 3, ketika proses B diseleasikan, resource yang dikembalikan tidak cukup untuk menyelesaikan proses A maupun proses C. Gambar 3 Contoh kondisi tidak aman Untuk menghindari terjadinya kondisi deadlock digunakan algoritma penjadwalan yang dikenal dengan nama algoritma Banker. Algoritma ini memodelkan seorang bankir yang melayani peminjaman uang untuk beberapa orang di suatu kota kecil. Bankir akan memeriksa agar setiap pemberian pinjaman uang tidak menyebabkannya ke kondisi tidak aman. Bankir tidak menyediakan semua pinjaman yang dibutuhkan sekaligus tetapi secara bertahap. Dengan asumsi si peminjam akan mengembalikan pinjamannya ketika urusannya sudah selesai, maka pinjaman yang lain dapat dipenuhi. Meskipun pada penjelasan sebelumnya selalu diasumsikan bahwa masing-masing proses menggunakan satu resource namun pada kenyataannya yang sering terjadi adalah sejumlah proses berbagi sejumlah resource [3]. Alokasi resource untuk setiap proses dimodelkan dengan matriks seperti pada gambar 3. Gambar 4 Model alokasi untuk sejumlah resource Untuk setiap kondisi dibutuhkan dua buah matriks yang menunjukkan jumlah resourcre yang sudah dialokasikan (gambar 4, matriks sebelah kiri) dan resource yang masih dibutuhkan oleh sejumlah proses (gambar 4, matriks sebelah kanan). Adapun keterangan lainnya yang dibutuhkan adalah : 1., yaitu jumlah resource yang tersedia pada awalnya. 2. P, yaitu jumlah resource yang dialokasikan untuk seluruh proses yang ada. 3. A, yaitu jumlah resource yang tersisa setelah dialokasikan. Adapun penerapan algoritma Banker yang digunakan adalah sebagai berikut : 1. Cari satu baris, misal R, pada matriks resource yang masih dibutuhkan dengan kriteria setiap nilai berurutannya lebih kecil atau sama dengan A. Jika tidak ada yang memenuhi, maka sistem dalam keadaan deadlock. 2. Asumsikan proses menggunakan semua resource yang dibutuhkan sekaligus pada satu waktu. 3. Ulangi langkah 1 dan langkah 2 hingga semua proses selesai. Pada langkah pertama dari algoritma Banker, sangat dimungkinkan terjadi beberapa kandidat proses yang memungkinkan untuk dimasukkan ke tahap selanjutnya. Makalah ini akan membahas mengenai optimasi pilihan yang diambil dengan memanfaatkan algoritma Greedy. III. ANALISIS PMCAHAN MASALAH Algoritma Greedy adalah metode untuk memecahkan persoalan yang berhubungan dengan optimasi. Algoritma ini sangat populer karena sederhana dan lempang (straightforward). Dari asal katanya greedy berarti rakus atau tamak. Prinsip utama greedy adalah mengambil langkah yang paling baik yang dapat diambil pada suatu saat tertentu. Algoritma Greedy akan menghasilkan solusi langkah per langkah yang paling optimum dari sekumpulan kemungkinan solusi. Pendekatan yang digunakan pada algoritma Greedy adalah dengan membentuk pilihan terbaik untuk setiap langkah (optimum lokal) dengan harapan selanjutnya menghasilkan langkah-langkah yang paling optimum (optimum global). Persoalan optimasi dengan menggunakan algoritma Greedy dimodelkan dengan beberapa elemen [4] yaitu : 1. Himpunan kandidat (C), yaitu berisi elemen - elemen pembentuk solusi. 2. Himpunan solusi (S), yaitu berisi kandidat - kandidat yang terpilih sebagai solusi persoalan. 3. Fungsi seleksi, yaitu fungsi untuk memilih kandidat yang memungkinkan mencapai solusi. 4. Fungsi kelayakan, yaitu fungsi untuk memeriksa kandidat agar tidak melanggar kendala. 5. Fungsi obyektif, yaitu fungsi yang mengoptimumkan pilihan yang ada.

Untuk dapat menggunakan algoritma Greedy, pertama permasalahan terkait alokasi resource untuk masingmasing proses ini akan dimodelkan pada elemen-elemen yang telah disebutkan sebelumnya : 1. Himpunan kandidat adalah semua proses yang masih menunggu untuk mendapatkan akses resource. 2. Himpunan solusi adalah satu proses yang dipilih untuk setiap kali giliran pengalokasian resource. 3. Fungsi seleksi adalah fungsi yang memilih nilai paling besar untuk setiap kemungkinan. 4. Fungsi kelayakan adalah fungsi yang menentukan kriteria layak untuk sebuah proses. 5. Fungsi obyektif adalah fungsi yang memberikan penilaian terhadap setiap proses yang mungkin untuk diselesaikan Strategi Greedy yang digunakan adalah dengan selalu memilih proses yang telah dan akan menggunakan resource paling banyak yang masih mungkin untuk dipilih. Dengan memilih proses yang total resource-nya paling banyak, proses tersebut akan mengembalikan resource yang paling banyak pula sehingga diharapkan untuk memenuhi kebutuhan proses akan resource selanjutnya hingga selesai. Di bawah ini adalah pseudocode hasil pemodelan masalah alokasi resource dengan algoritma Banker dengan menggunakan algoritma Greedy. function Layak(proc : array of process, avail_res : array of process) à boolean { Fungsi ini adalah fungsi kelayakan dari model algoritma Greedy. Fungsi ini menentukan layak atau tidaknya sebuah proses untuk dikerjakan dengan batasan jumlah resource yang dibutuhakan suatu proses yang akan dikerjakan tidak melebihi jumlah resource yang tersedia.} value : boolean i value ß true i ß 1 while (value and (i <= sizeof(proc))) do if (proc[i] > avail_res[i]) then value <-- false i <-- i + 1 function Obyektif(assgned : array of process, still_needed : array of process) à integer { Fungsi ini adalah fungsi obyektif dari model algoritma Greedy. Fungsi ini memberi nilai terhadap setiap proses berdasarkan strategi Greedy yang digunakan yaitu dengan menjumlahkan resource yang sudah dialokasi dengan resource yang akan dialokasi. } i value value ß 0 for i ß 1 to sizeof(assgned) do value ß assgned[i] + still_needed[i] function Seleksi(assgned : array of array of process, still_needed : array of array of process, avail_res : array of process) --> array of process { Fungsi ini adalah fungsi seleksi pada dari model algoritma Greedy. Fungsi ini akan memilih satu dari sejumlah kemungkinan proses yang mungkin untuk dikerjakan berdasarkan strategi Greedy yang digunakan yaitu dengan memilih proses yang memiliki nilai Obyektif paling besar. } i, temp, value value ß 1 temp ß Obyektif(assgned[1],still_needed[1]) for i ß 1 to sizeof (assgned) do if (Layak(assgned[i], avail_res)) then if (Obyektif(assgned[i],still_needed[i]) > temp) then value ß i temp ß Obyektif(assgned[i],still_needed[i]) function CountAvailRes (existingres : array of process, assgned : array of array of process) à array of process { Fungsi ini digunakan untuk menghitung jumlah resource yang masih tersedia setelah dilakukan alokasi pertama kali terhadap proses yang ada. } usedres i,j, temp : array of process for i ß 1 to sizeof(existingres) do temp ß 0 for j ß 1 to sizeof(assgned) do temp ß temp + assgned[j][i] usedres[i] ß temp for i ß 1 to sizeof(usedres) do usedres[i] ß existingres[i] - usedres[i] à usedres procedure AssignRes(turn, assgned : array of array of process, still_needed : array of array of process, avail_res : array of process) { Prosedur ini digunakan untuk melakukan alokasi resource terhadap proses dari hasil fungsi seleksi. Prosedur ini juga akan memperbaharui nilai resource yang tersedia setelah dilakukan alokasi dan nilai resource yang dibutuhkan oleh suatu proses }

i finish ß false A ß CountAvailRes(, assgned) for i ß 1 to sizeof(assgned) do assgned[turn][i] ß assgned[turn][i] + still_needed[turn][i] avail_res[i] <-- avail_res[i] - still_needed[turn][i] still_needed[turn][i] ß 0 à turn procedure TakeResBack(idx, assgned : array of array of process, avail_res : array of process) { Prosedur ini digunakan untuk mengembalikan resource yang diasumsikan sudah selesai digunakan oleh suatu proses. } i for i ß 1 to sizeof(avail_res) do avail_res[i] ß avail_res[i] + assgned[idx][i] assgned[idx][i] ß 0 function isfinish(proc : array of array of process) à boolean { Fungsi ini menentukan keberadaan proses yang masih membutuhkan resource. } i,j,c i ß 1 c ß 0 for each (proc) do j ß 1 for each (proc[i]) do if (proc[i][j] = 0) then c ß c + 1 j ß j+1 i ß i + 1 if (c = sizeof(proc[1]) * sizeof(proc[1][1])) then à true else à false while not finish do turn ß Seleksi (assgned, still_needed, A) AssignRes(assgned, still_needed, A) TakeResBack(turn, assgned, A) if (isfinish(still_needed)) then finish ß true Sebagai prakondisi, diasumsikan bahwa masalah berupa tabel proses dan jumlah resource yang dimilki sudah terdefinisi. Pada saat dijalankan, program akan melakukan iterasi hingga seluruh proses selesai. Untuk setiap iterasi, program akan memilih satu proses yang memenuhi kriteria Greedy yang telah ditetapkan sebelumnya, lalu melakukan alokasi resource dan mengembalikan resource tersebut sebagai resource yang dapat digunakan lagi. IV. HASIL PNGUJIAN Untuk contoh kasus akan digunakan kasus seperti pada gambar 5. Penggunaan algoritma Greedy tidak berpengaruh karena pada langkah pertama, hanya terdapat satu proses yang mungkin diselesaikan yaitu proses D. Pada langkah selanjutnya nilai A akan berubah menjadi (2121) dan terdapat 2 pilihan proses untuk diseleksaikan yaitu proses A dan proses. Algoritma Greedy akan memilih proses A untuk diselesaikan terlebih dulu karena proses A memiliki nilai 7 sementara proses memiliki nilai 4. Pada langkah ketiga, nilai A berubah menjadi (5132) dan seterusnya hingga semua proses selesai. Dari analisis terhadap setiap kemungkinan pilihan yang muncul untuk setiap langkah pada kondisi seperti gambar 4, algoritma Greedy baru akan bekerja ketikia pilihan proses yang ada lebih dari satu. Pada gambar 6 ditunjukkan pohon yang menunjukkan langkah pengalokasian resource untuk setiap proses. {PROGRAM UTAMA}, A : array of process assgned : array of array of process still_needed : array of array of process turn finish : boolean { isi dengan nilai pre-defined } { isi assgned dengan nilai pre-defined } { isi still_needed dengan nilai pre-defined } Gambar 5 Contoh kasus untuk menguji algoritma Greedy

D x = 7 x = 4 A x = 5 x = 7 x = 4 B C A = (2121) A = (5132) DAFTAR RFRNSI [1] Tanenbaum, A., Modern Operating System, 3 rd ed, New Jersey : Prentice-Hall, 2009, bab 6, hal. 431 464. [2] Coffman,.G., lphick, M.J., dan Shoshani, A., System Deadlocks, Computing Surveys, vol. 3, hal. 67-78, Juni 1971. [3] Holt, R. C., Some Deadlok Properties of Computer Systems, Computing Surveys, vol. 4, hal, 179 196, September 1972. [4] Munir, R., Diktat Kuliah IF3051 Strategi Algoritma, Bandung, 2009. B x = 5 x = 4 A = (6242) A = (6342) Gambar 6 Pohon penelusuran langkah untuk kasus pada gambar 5 Pada gambar 6, didapat bahwa algoritma Greedy akan bekerja pada node level 2, 3, dan 4. Untuk setiap langkah dengan pilihan lebih dari satu, algoritma Greedy akan memilih proses dengan nilai x yang terbesar. PRNYATAAN Dengan ini saya menyatakan bahwa makalah yang saya tulis ini adalah tulisan saya sendiri, bukan saduran, atau terjemahan dari makalah orang lain, dan bukan plagiasi. Bandung, 9 Desember 2011 ttd Daniel Prihartoni 13509088 V. KSIMPULAN Algoritma Banker pada dasarnya akan menangani alokasi resource dengan mangkus. Dapat dikatakan bahwa tanpa menggunakan algoritma Greedy sekalipun tidak akan menyebabkan deadlock pada sistem. Adapun penggunaan algoritma Greedy di sini hanya bertujuan untuk mengoptimasi pengalokasian resource agar selalu digunakan sebanyak mungkin pada kesempatan pertama. Pada kenyataannya, permintaan proses untuk mendapat resource tidak akan pernah statis seperti pada contoh. Jika melihat pada contoh sebuah komputer yang digunakan untuk berbagai keperluan seperti membuat dokumen, memutar musik, dan melakukan kompresi terhadap berkas secara bersamaan, suatu proses akan selalu datang bergantian. Dengan strategi Greedy, sistem operasi akan selalu mempunyai resource dengan nilai optimal yang mungkin dimiliki, sehingga ketika proses baru dengan kebutuhan resource yang tinggi masuk ke daftar proses, sistem dapat mengerjakanya langsung tanpa menunggu proses lain selesai dan mengembalikan resource hingga cukup.