Pada postinga saya kali ini, saya akan memposting mengenai permasalahan klasik yang terjadi pada proses Sinkronisasi. ada 3 masalah utama, yaitu Bounded Buffer, Reader Writer dan Dining Philosopher yang akan dijelaskan berikutini.
1. Bounded-Buffer (Producer-Consumer) Problem
Produsen menghasilkan barang dan konsumen yang akan menggunakannya. Ada beberapa batasan yang harus dipenuhi, antara lain :
- Barang yang dihasilkan oleh produsen terbatas
- Barang yang dipakai konsumen terbatas
- Konsumen hanya boleh menggunakan barang yang dimaksud setelah produsen menghasilkan barang dalam jumlah tertentu
- Produsen hanya boleh memproduksi barang jika konsumen sudah kehabisan barang
download .pptx here
2. Reader and Writer Problem
Readers and Writers Problem adalah problem yang memodelkan proses yang mengakses database. Masalah ini timbul ketika ada dua proses atau lebih berbagi data yang sama. Data yang dimaksud disini bisa berbentuk buffer, file atau objek dari suatu program
Terdapat dua variasi pada masalah ini, yaitu :
- seorang reader tidak perlu menuggu reader lain untuk selesai hanya karena ada writer menunggu (reader memiliki prioritas lebih tinggi disbanding dengan writer)
- Jika ada writer yang sedang menunggu, maka tidak boleh ada reader lain yang bekerja (writer memiliki prioritas yang lebih tinggi)
Solusi Readers and Writers Problem
a.Pembaca di prioritaskan
b.Penulis di prioritaskan
c.Kedua jenis proses mempunyai prioritas yang sama.
Solusi Pembaca di Prioritaskan
Reader tidak akan menunggu reader(s) lain yang sedang
membaca, walaupun ada writer yang sedang menunggu. Dengan kata lain,
Jika ada reader yang datang ketika reader lain sedang membaca dan sebuah
writer sedang menunggu, maka reader yang baru datang tersebut akan
langsung mendapat giliran untuk membaca. Writer akan ditunda
pengerjaannya.
Solusi Penulis di Prioritaskan
Di mana suatu writer sedang dijalankan oleh sistem, maka tidak boleh ada reader yang memulai untuk membaca data.
Solusi Kedua Jenis Punya Prioritas Sama
Tidak ada prioritas khusus yang diberikan kepada kedua jenis proses.
3. Dining Philosophers Prolem
Masalah ini pertama kali ditulis dan diselesaikan
oleh Djikstra pada tahun 1965.Masalah ini memodelkan masalah
enkapsulasi dari ketergantungan mesin dan masalah portabilitas. Dalam
masalah Dining Philosophers, diketahui sejumlah (N) filusuf yang hanya
memiliki tiga status, berpikir, lapar, dan makan. Semua filusuf berada
di sebuah meja makan bundar yang ditata sehingga di depan setiap filusuf
ada sebuah piring berisi mie dan di antara dua piring yang bersebelahan
terdapat sebuah sumpit.
> Solusi Dining Philosophers Problem
Solusi Dining – Philosophers Problem ada dua, yakni :
a.Solusi Waiter
Solusi Waiter : solusi sederhana ini dilakukan dengan mengadakan
seorang waiter yang senantiasa mengawasi penggunaan sumpit di meja
makan. Ketika empat buah (dua pasang) sumpit sedang dipakai,orang
berikutnya yang ingin memakai sumpit harus meminta izin kepada sang
waiter, yang hanya dapat diberi ketika salah satu sumpit telah selesai
terpakai.
b.Solusi Hierarki Resource
Solusi Hirarki Resource: resources (sumpit) di meja makan telah diberi
susunan hirarki. Setiap permintaan orang terhadap sebuah sumpit harus
dilakukan pada susunan tertentu, dan dikembalikan pada susunan
sebaliknya. Dalam hal ini, setiap orang dapat mengambil sumpit dimanapun
diatas meja. Misalkan setiap sumpit diberi nomor sebagai tingkat
hirarki dari 1 sampai 5, seseorang hanya dapat mengambil sumpit dengan
nomor yang paling rendah, kemudian mengambil sumpit yang setingkat lebih
tinggi. Ketika ia hendak mengembalikannya, orang itu harus meletakkan
sumpit dengan nomor yang lebih tinggi terlebih dahulu, lalu yang rendah.
Sekian bahasan tentang permasalahan sinkronisasi, semoga bermanfaat.
Recomended Link :
Tidak ada komentar:
Posting Komentar