Sinkronisasi Proses
1. Manfaat utama adanya sinkronisasi proses!
Sinkronisasi diperlukan untuk menghindari terjadinya ketidakkonsistenan data akibat adanya akses data secara konkuren. Diperlukan adanya suatu mekanisme untuk memastikan urutan / giliran pengaksesan suatu data yang saling bekerjasama sehingga terjadi sinkronisasi
2. Pengertian tentang crirical section, dan persyaratan yang harus dipenuhi dalam penyelesaian masalah critical section!
Lebih dari satu proses berlomba-lomba pada saat yang sama untuk menggunakan data yang sama. Setiap proses memiliki segmen kode yang digunakan untuk mengakses data yang digunakan secara bersama-sama. Segmen kode tersebut disebut critical section.
Mutual Exclusion : Tidak ada dua proses yang berada di critical section pada saat yang bersamaan.
Terjadi kemajuan (Progress) :Jika tidak ada proses yang sedang berada di critical section, maka proses lain yang ingin menjalankan critical section dapat masuk ke dalam critical section tersebut.
Ada batas waktu tunggu (Bounded Waiting): Tidak ada proses yang menunggu selama-lamanya untuk masuk ke dalam critical section, Assume that each process executes at a non zero speed, Tidak ada asumsi lain mengenai kecepatan relative setiap proses ataupun jumlah CPU.
3. Cara kerja algo 1,2,3 peterson, dan bakery. Apakah masing2 algo memenuhi persyaratan penyelesaian masalah crirical section!
Algoritma 1
Pemecahan ini menjamin hanya satu proses pada satu waktu yang dapat berada di critical section. Tetapi hal ini tidak memuaskan kebutuhan progress, karena hal ini membutuhkan proses lain yang tepat pada eksekusi dari critical section. Sebagai contoh, apabila turn=0 dan P1 siap untuk memasuki critical section, P1 tidak dapat melakukannya, meskipun P0 mungkin di dalam remainder section – nya.
Algoritma 2
Kelemahan dengan algoritma 1 adalah tidak adanya informasi yang cukup tentang state dari masing-masing proses. Untuk mengatasi masalah ini dilakukan penggantian variabel turn dengan array. Pemecahan ini menjamin mutual exclusion, tetapi masih belum memenuhi progress .
Algoritma 3
Algoritma ini merupakan kombinasi algoritma 1 dan algoritma 2. Harapannya akan didapatkan solusi yang benar untuk masalah critical-section, dimana proses ini menggunakan dua variabel Algoritma ketiga ini memenuhi ketiga kebutuhan diatas yaitu mutual exclusion, progress dan bounded waiting dan memecahkan permasalahan critical section untuk dua proses.
Algoritma bakery
Algoritma Bakery adalah algoritma yang digunakan untuk pemecahan permasalahan critical section pada n proses. Sebelum memasuki critical section, proses menerima nomo. Proses yang mempunyai nomor terkecil dapat memasuki critical section. Jika proses Pi dan Pj menerima nomor yang sama, jika i < j maka Pi dilayani lebih dahulu, sebaliknya Pj akan dilayani lebih dahulu. Skema pemberian nomor selalu membangkitkan nomor dengan menaikkan nilai urut misalnya 1, 2, 3, 3, 3, 3, 4, 5, …..
4. Diskripsi konsep semaphore untuk sinkronisasi
Semaphore S – integer variable untuk menghitung berapa banyak proses yang aktif atau pasif. Semaphore digunakan untuk memberi sinyal. Jika proses menunggu sinyal, maka dia akan ditunda sampai sinyal yg ditunggu tersebut terkirim. Operasi: wait dan signal. Wait dan signal operations tidak dapat diinterupt. Queue digunakan untuk menahan proses proses yang sedang menunggu semaphore
0 Response to "Sinkronisasi Proses"
Posting Komentar