Sinkronasi
Pengertian sinkronasi
Sinkronisasi merupakan suatu
proses secara bersama sama dan saling berbagi data bersama dapat mengakibatkan
race condition atau inkosistensi data.
Sinkornisasi 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.
1) Bounded –Buffer Problem
Bounded buffer merupakan suatu
struktur data yang mampu untuk menyimpan beberapa nilai dan
mengeluarkannya kembali ketika diperlukan . Pengaturan itu dilakukan
dengan menerapkan konsep semaphore yang menjamin hanya ada satu proses dalam
suatu waktu yang boleh mengakses buffer sehingga tidak terjadi race condition.
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.
2) Dining Philosophers
Contoh Kasus Dining Philosophers
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 ada 2 :
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
3) Readers and Writers
Problem
Readers/Writers
adalah salah satu masalah sinkronisasi klasik yang sering digunakan untuk
mendiskusikan dan membandingkan berbagai cara untuk menyelesaikan masalah
sinkronisasi.
Contoh kasus Readers and Writers Problem
permasalahan ini
adalah adanya beberapa pembaca dan penulis yang ingin mengakses suatu berkas
secara simultan. Sebagai syarat bahwa data yang terkandung dalam berkas
tersebut tetap konsisten, maka setiap kali berkas tersebut ditulis, maka hanya
ada boleh maksimal satu penulis yang menulisnya. Untuk pembaca, hal ini tidak
perlu dikhawatirkan sebab membaca suatu berkas tidak mengubah isinya. Dengan
kata lain, pada suatu saat diperbolehkan untuk beberapa pembaca untuk membaca
berkas tersebut. Akan tetapi, ketika ada yang sedang menulis, tidak boleh ada
satupun yang membaca. Ini berarti bahwa thread penulis menjalankan tugasnya
secara eksklusif.
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)
Jika terdapat writer dalam critical section dan terdapat n reader yang menunggu, maka satu reader akan antri di wrt dan n-1 reader akan antri di mutex. Jika writer mengeksekusi signal(wrt), maka dapat disimpulkan bahwa eksekusi adalah menunggu reader atau menunggu satu writer.
Solusi Readers and Writers Problem
a.Pembaca di
prioritaskan
b.Penulis di
prioritaskan
c.Kedua jenis proses mempunyai
prioritas yang sama.
Daftar Pustaka:
Pengertian
Sinkronisasi Sistem Operasi Lengkap (gurupendidikan.co.id)
Masalah
Klasik Sinkronisasi (stessedout.blogspot.com)
Komentar
Posting Komentar