Perbedaan Bounded-Buffer, Readers and Writers, and Dining-Philosophers Problem dalam Konsep Sinkronisasi Sistem Operasi
Masalah Klasik Sinkronisasi
PENGERTIAN SINKRONISASI
Sinkronisasi adalah suatu proses dimana proses tersebut
saling bersamaan dan saling berbagi data bersama yang mengakibatkan race
condition atau lebih dikenal dengan inkonsistensi data atau suatu proses
pengaturan jalannya beberapa proses pada waktu yang bersamaan untuk menyamakan
waktu dan data supaya tidak terjadi inconsitensi (ketidak konsistenan) data
akibat adanya akses data secara konkuren agar hasilnya bagus dan sesuai dengan
apa yang diharapkan.
MANFAAT SINKRONISASI.
Bermanfaat untuk menyimpan data, baik sementara atau pemanen
sehingga memudahkan pekerjaan.
Jadi dengan menggunakan sistem ini pekerjaan Anda akan lebih
terbantu dan lebih efektif karena bisa menghemat waktu.
TUJUAN SINKRONISASI
Kenapa Sistem Operasi membutuhkan Sinkronisasi ?
Tujuan dari sinkronisasi itu sendiri ialah untuk menghindari
terjadinya inkonsitensi data karena pengaksesan oleh beberapa proses yang
berbeda serta untuk mengatur urutan jalannya proses-proses sehingga dapat
berjalan dengan baik dan sesuai apa yang di harapkan.
Perbedaan Bounded-Buffer, Readers and Writers, and Dining-Philosophers Problem dalam Konsep Sinkronisasi Sistem Operasi
1. Problem Bounded - Buffer
Buffer
adalah tempat penampung data yang ukurannya terbatas. Bounded-Buffer problem
dapat terjadi jika dua proses berbeda, yaitu produsen dan konsumen, berusaha
mengakses buffer tersebut dalam waktu bersamaan. 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.
Solusi Bounded – Buffer Problem
Solusi Shared Memory untuk Bounded –
Buffer, mengijinkan (n-1) items di dalam buffer untuk suatu waktu
tertentu.
2. Problem Readers-Writers
Problem lain yang
terkenal adalah readers-writer problem yang memodelkan proses yang mengakses
database. Sebagai contoh sebuah sistem pemesanan sebuah perusahaan penerbangan,
dimana banyak proses berkompetisi berharap untuk membaca (read) dan menulis (write).
Hal ini dapat diterima bahwa banyak proses membaca database pada saat yang
sama, tetapi jika suatu proses sedang menulis database, tidak boleh ada proses
lain yang mengakses database tersebut, termasuk membaca database tersebut.
Solusi Readers and Writers Problem
a. Pembaca di prioritaskan
Reader tidak akan menunggu reader(s) lain yang sedang
membaca, walaupun ada writer yang sedang menunggu. Dengan katalain, 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.
b. Penulis di prioritaskan
Di mana suatu writer sedang dijalankan oleh sistem, maka
tidak boleh ada reader yang memulai untuk membaca data. Kedua jenis proses
mempunyai prioritas yang sama. Tidak ada prioritas khusus yang diberikan kepada
kedua jenis proses
3. Problem Dining
Philosopers
Pada tahun 1965,
Djikstra menyelesaikan sebuah masalah sinkronisasi yang beliau sebut dengan
dining philisophers problem. Dining philosophers dapat diuraikan sebagai
berikut: Lima orang filosuf duduk mengelilingi sebuah meja bundar.
Masing-masing filosof mempunyai sepiring spageti. Spageti-spageti tersebut
sangat licin dan membutuhkan dua garpu untuk memakannya. Diantara sepiring
spageti terdapat satu garpu. Kehidupan para filosof terdiri dari dua periode,
yaitu makan atau berpikir. Ketika seorang filosof lapar, dia berusaha untuk
mendapatkan garpu kiri dan garpu kanan sekaligus. Jika sukses dalam mengambil
dua garpu, filosof tersebut makan untuk sementara waktu, kemudian meletakkan
kedua garpu dan melanjutkan berpikir. Pertanyaan kuncinya adalah, dapatkah anda
menulis program untuk masing-masing filosof yang melakukan apa yang harus
mereka lakukan dan tidak pernah mengalami kebuntuan. Prosedur take-fork
menunggu sampai garpu-garpu yang sesuaididapatkan dan kemudian menggunakannya.
Sayangnya dari solusi ini ternyata salah. Seharusnya lima orang filosof
mengambil garpu kirinya secara bersamaan. Tidak akan mungkin mereka mengambil
garpu kanan mereka, dan akan terjadi deadlock.
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.







Komentar
Posting Komentar