Sinkronisasi merupakan suatu proses secara
bersama-sama dan saling berbagi data bersama yang dapat mengakibatkan race
condition atau inkosistensi data. Sinkronisasi di perlukan untuk menghindari
terjadinya ketidak konsistenan data akibat adanya akses secara konkuren. Proses-Proses
tersebut disebut konkukuren jika Proses itu ada dan berjalan pada waktu yang
bersamaan.
Pada sinkronisasi terdapat beberapa masalah,
diantara masalah tersebut ialah masalah klasik sinkronisasi yang dapat dibedakan
menjadi 3, yaitu :
1. Bounded
– Buffer Problem
2. Readers
and Writers Problem
3. Dining
Philosophers Problem
Bounded–Buffer
Problem
Bounded-Buffer
merupakan keadaan dimana mampu menyimpan beberapa nilai dan mengeluarkannya
kembali ketika diperlukan. Urutan yang terjadi pada Bounded-Buffer adalah yang
menjadi proses terakhir maka akan dipanggil terlebih dahulu. Dapat diibaratkan
seperti sebuah cucian piring, bila kita menaruh piring secara berurutan maka
yang terambil adalah piring paling terakhir diletakkan.
Contoh
Kasus Bounded - Buffer
Contoh
kasus kali ini adalah produsen dan konsumer. produser akan menghasilkan suatu
barang dan konsumer akan mengkonsumsi barang yang dihasilkan oleh produser. Produser
dan konsumer ini akan mengakses Bounde-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.
Readers
and Writers Problem
Readers and Writers Problem adalah masalah yang
dalam 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
1.
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.
2.
Penulis di prioritaskan : Di mana
suatu writer sedang dijalankan oleh sistem, maka tidak boleh ada reader yang
memulai untuk membaca data.
3.
Kedua jenis diprioritaskan : Tidak
ada prioritas khusus yang diberikan kepada kedua jenis proses.
Dining-Philosophers
Prolem
Masalah Dining-Philosophers
Problem diakibatkan oleh terjadinya enkapsulasi dari ketergantungan mesin dan
masalah portabilitas. Dalam masalah Dining--Philosophers, diketahui sejumlah
(N) filusuf yang hanya memiliki dua status, diantaranya : berpikir dan menulis.
Semua filusuf berada di sebuah meja bundar yang ditata sehingga di depan setiap
filusuf ada tiga kertas kosong dan sebuah pena.
Solusi Dining-Philosophers Problem
a. Solusi
Waiter
Solusi Waiter
: solusi sederhana ini dilakukan dengan mengadakan
seorang waiter yang senantiasa mengawasi penggunaan pena di meja bundar. Ketika
kedua pena sedang digunakan oleh kedua orang, orang berikutnya yang ingin
memakai pena harus meminta izin kepada sang waiter, yang hanya dapat diberi
ketika salah satu pena telah selesai terpakai.
b. Solusi
Hierarki Resource
Solusi Hirarki
Resource : resources (pena) di meja bundar telah diberi
susunan hirarki. Setiap permintaan orang terhadap sebuah pena harus dilakukan
pada susunan tertentu, dan dikembalikan pada susunan sebaliknya. Dalam hal ini,
setiap orang dapat mengambil pena dimanapun diatas meja. Misalkan setiap pena
diberi nomor sebagai tingkat hirarki dari 1 sampai 5, seseorang hanya dapat
mengambil sumpit dengan nomor yang paling rendah, kemudian mengambil pena yang
setingkat lebih tinggi. Ketika ia hendak mengembalikannya, orang itu harus
meletakkan pena dengan nomor yang lebih tinggi terlebih dahulu, lalu yang
rendah.
Contoh Kasus Dining-Philosophers
Problem
Pada sebuah
computer 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.
Komentar
Posting Komentar