Pages

Sabtu, 26 April 2014

Sinkronisasi Sistem Operasi

Assalamualaikum wr.wb
Kali ini saya akan mencoba menjelaskan mengenai sinkronisasi yang ada pada sebuah sistem operasi,

 Race Condition: Keadaan dimana lebih dari satu proses meng-update data secara “concurrent” dan hasilnya sangat bergantung dari urutan proses mendapat jatah CPU (run).
Untuk menghindari Race Condition, proses-proses secara bersamaan harus disinkronisasikan .
      Sinkronisasi diperlukan untuk menghindari terjadinya ketidakkonsistenan data akibat adanya akses data secara konkuren (Proses-proses disebut konkuren jika proses-proses berada pada saat yang sama)
      —Untuk menjaga kekonsistenan data tersebut, diperlukan adanya suatu mekanisme untuk memastikan urutan pengaksesan suatu data yang saling bekerjasama sehingga terjadi sinkronisasi

Ada tiga hal problem klasik pada sinkronisasi Yaitu :
1. Problem Bounded buffer 
Proses yang kooperatif bisa berbagi data melalui penukaran pesan. Pesan-pesan yang dikirim antar proses akan disimpan dalam sebuah antrian sementara, yaitu buffer. Jika kapasitas buffertersebut terbatas, maka dia disebut bounded-buffer. Untuk mencegah inkonsistensi data yang terjadi akibat akses data oleh proses kooperatif yang berjalan secara konkuren, maka diperlukan sinkronisasi antar proses-proses tersebut.
 
2. Problem Reades and Writer
Readers/Writers merupakan sebuah masalah klasik dalam contoh sinkronisasi untuk menjaga validitas data. Jika reader sedang mengakses data, reader-reader yang lain boleh ikut mengakses data, tapi writer harus menunggu sampai data tidak diakses siapapun. Jika writer sedang mengakses data, tidak boleh ada thread lain yang mengakses data. Semaphore digunakan untuk sinkronisasi antar thread (baik readers maupun writers).
Problem readers-writer adalah 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).
3. Problem Dining Philosophers.
Program ini menggunakan sebuah array dari semaphore yang dapat ditahan