Masalah Klasik Sinkronisasi
Masalah Klasik Sinkronisasi dapat dibedakan menjadi 3
:
1.Bounded –
Buffer Problem
2.Readers
and Writers Problem
3.Dining
Philosophers Problem
Pengertian
Bounded –Buffer Problem
Bounded buffer merupakan suatu struktur data yang
mampu untuk menyimpan beberapa nilai dan mengeluarkannya kembali ketika
diperlukan . Jika dianalogikan bounded buffer ini akan mirip dengan sebuah
tumpukan piring. Kita menaruh piring dan menaruh lagi sebuah piring, ketika
ingin mengambil piring maka tumpukan yang paling atas yang akan terambil. Jadi
piring terakhir yang dimasukan akan pertama kali diambil.
Contoh Kasus
Bounded - Buffer
Pada bagian ini akan dicontohkan suatu produser
konsumer. produser akan menghasilkan suatu barang dan konsumer akan
mengkonsumsi barang yang dihasilkan oleh produser. produser dan konsumer ini
akan mengakses bounded buffer yang sama. produser setelah menghasilkan suatu
barang dia akan menaruh barang itu di bounded buffer sebaliknya konsumer ketika
membutuhkan suatu barang, dia akan mengambilkannya dari bounded buffer.
Solusi Bounded – Buffer Problem
Solusi Shared Memory untuk Bounded –
Buffer, mengijinkan (n-1) items di dalam buffer untuk suatu waktu
tertentu.
Pengertian Readers and Writers 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.
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.
Sejarah Dining Philosophers Prolem
Masalah ini pertama 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.
Contoh Kasus Dining – Philosophers Problem
Pada sebuah komputer tentunya terdapat
aplikasi-aplikasi yang dapat memudahkan kita untuk melakukan suatu
pekerjaan. Namun disamping kemudahan yang diberikan, terdapat ancaman negative
yang dapat aplikasi-aplikasi itu berikan pada computer kita jika kita tidak
menggunakannya dengan benar. Suatu contoh ketika kita mengerjakan suatu tugas.
Kita membuka dan menjalankan beberapa aplikasi secara bersamaan. Aplikasi yang
kita gunakan misalnya ms. Word (membuka 6 file word sebagai sumber tugas),
winamp untuk memainkan lagu, firefox untuk browsing internet, pidgin untuk
sesekali chating, sementara itu aplikasi start up yang berjalan juga banyak dan
RAM yang tersedia tidak begitu besar sehingga hal ini akan membuat computer
menjalankan aplikasi itu terus-menerus jika kita tidak mematikannya. Hal ini
akan membuat computer berjalan semakin lambat dan memungkinkan terjadinya
starvation atau deadlock dalam beberapa waktu kemudian.
Tidak ada komentar:
Posting Komentar