Sinkronisasi Proses
Banyak proses yang mengakses satu data pada
saat yang bersamaan Sehingga terjadi ketidakkonsistenan data .Untuk itulah,
sinkronisasi proses dipelukan untuk menjaga agar data tersebut tetap konsisten .
Masalah
yang seringkali muncul yaitu Masalah Bounded Buffer , Masalah Race
Condition .
Apa
itu Critical Section ?? Kunci untuk mencegah terjadinya Race Condition adalah
dengan mencegah suatu proses melakukan manipulasi data secara bersamaan Suatu
code proses terdiri dari beberapa bagian :Proses, Entry section, critical
section exit section, remainder section. Critical Section adalah bagian dari
code proses yang berisi code-code untuk memanipulasi suatu data. Solusi yang
baik harus memenuhi 3 syarat berikut:
¢ Mutual Exclution
Tidak ada proses yang menjalankan
critical section bersamaan
¢ Terjadi Kemajuan (
Progress )
Proses yang sedang menjalankan
Remainder Sectionnya, tidak boleh menjalankan Critival Section berikutnya
sebelum proses lain menyelesaikan Critical Sectionnya
¢ Ada Batas Waktu ( Bounded
Waiting )
Ada batas waktu suatu proses dapat
menjalankan critical sectionnya
Dua Jenis Solusi Critical Section
Ø Solusi Perangkat Keras
Ø Solusi Perangkat Lunak
Solusi sinkronisasi untuk 2 proses :
v Algoritma Turn
v Algoritma Flag
v Algoritma Turn-Flag
Solusi sinkronisasi untuk banyak
proses :
¢ Bakery Algorithm (
Algoritma Tukang Roti )
Algoritma
Turn Hanya proses yang mempunyai
ID yang sama dengan ID giliran (Turn) yang boleh masuk ke critical sectionnya
Algoritma
Flag - Setiap proses berusaha untuk mengecek state (keadaan) proses yg lain.
Jika proses lain sedang berada di critical sectionnya, maka dia akan menunggu
sampai proses lain tersebut keluar dari state critical sectionnya.
Algoritma Turn – Flag Merupakan penggabungan
antara algoritma Turn dan algoritma Flag.
Solusi
perangkat keras Ada 2 metode yang umum digunakan :
ü Processor Synchronous
ü Memory Synchronous
Processor Syncronous
¢ Central Processing Unit (CPU) mempunyai suatu
mekanisme yang dinamakan interrupt yang digunakan secara intensif.
¢ Sistem time-shared
yang sering diimplementasikan dengan algoritma RR (Round Robin),
memanfaatkan mekanisme interrupt di CPU
¢ Teknisnya, akan ada suatu
interrupt ( yang biasanya adalah timer interrupt ) yang secara berkala akan
menginterrupt sistem
¢ Jika kita dapat
menon-aktifkan interrupt pada saat sebuah proses berada di dalam critical
section maka permasalahan dari sinkronisasi dapat diselesaikan
¢ Contoh program dari
prosesor Atmel ARMtm
mainModul:
00
CLI ' masuk ke Critical
Section dengan cara '
men-disable interrupt
01
ADD r1,r2 ' Critical Section
02
.... ' Critical Section
03
SBI ' pergi dari Critical
Section dengan cara
'
meng-enable interrupt
04
.. ' Remainder
Section
¢ Mekanisme ini sudah cukup
mengatasi isu yang ada
¢ Mekanisme ini tidak dapat
diterapkan dengan baik di lingkungan multiprocessor
¢ Hal ini disebabkan jika
kita menon-aktifkan interrupt, maka yang akan dinon-aktifkan hanyalah satu
prosesor saja, sehingga dapat mengakibatkan terjadinya hal-hal yang tidak diinginkan
Sedangkan untuk Memory Synchronous
¢ Mekanisme memory
synchronous memakai suatu nilai yang disimpan di dalam memori, dan jika
suatu proses berhasil mengubah nilai ini, maka proses tersebut akan meneruskan
ke instruksi selanjutnya
¢ jika tidak, maka proses
ini akan berusaha terus untuk mengubah nilai tersebut
¢ Keunggulan dari memory
synchronous adalah pada lingkungan multiprocessor, semua processor
akan terkena dampak ini
¢ Semua proses yang berada
di processor, yang ingin mengakses critical section, meskipun berada di
processor yang berbeda-beda, akan berusaha untuk mengubah nilai yang dimaksud
¢ Mekanisme ini memiliki
suatu syarat yang harus dipenuhi yaitu perlunya perangkat keras mempunyai
kemampuan untuk membuat suatu instruksi dijalankan secara atomic
¢ Instruksi atomic adalah satu atau
sekelompok instruksi yang tidak dapat diberhentikan sampai instruksi tersebut
selesai
Peran
Perangkat Keras Dalam Proses Sinkronisasi
Sebelum
adanya berbagai macam teknik sinkronisasi seperti saat ini, para programmer cenderung
menggunakan fasilitas yang disediakan oleh perangkat keras dari komputer untuk
melakukan sinkronisasi . Pendekatan melalui perangkat lunak cenderung sulit dan
kompleks diimplementasikan, selain itu dapat menyebabkan turunnya kinerja dari
suatu produk yang dibuat .
0 komentar:
Posting Komentar