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