Desain Buffer Multithread

Sedikit teknis barangkali, saya memiliki masalah dengan sinkronisasi dua buah thread. Katakanlah thread A, dan B dimana thread A memiliki dengan prioritas lebih tinggi akan menerima kiriman data untuk selanjutnya diproses dan hasilnya akan dikirimkan ke thread B. Masalah muncul ketika timing thread A tidak sama dengan B, dimana thread A dipicu oleh interrupt yang akan muncul saat kedatangan data, sedangkan thread B tidak memiliki karakteristik khusus pada timingnya (unpredictable) sehingga diasumsikan thread B memiliki waktu kemunculan (eksekusi) lebih lama dibanding thread A. Kemungkinan terburuk yang terjadi adalah ketika thread B sedang membaca data, thread A sudah melakukan penulisan ulang (overwrite) terhadap data yang dimiliki sehingga terjadi inkonsistensi yang membahayakan.

Didesainlah sebuah solusi menggunakan multibuffer kompleks menggunakan indeks dan sistem kunci, seperti banyak dicontohkan di internet namun ternyata sulit sekali diimplementasikan. Kendala utama adalah sistem yang masih belum stabil sehingga penambahan suatu subsistem yang sedemikian kompleks cenderung mengeluarkan banyak effort baik untuk desain implementasi maupun pengujian dan debugging-nya. Dengan waktu yang sedemikian singkat diputuskan menggunakan buffer statik sederhana yang hanya terdiri atas array dua dimensi dengan indeks dan stack penampung. Namun desain ini belum sempat dicobakan karena satu dan lain hal teknis lainnya.

Pesan moral dari cerita ini adalah jangan terlalu fokus pada hal kecil, tetap berpegang teguh pada gambar besarnya dan biarkan hati kecilmu bicara.

cakaran sederhana dengan satu jam perdebatan

Iklan

About imelwa


Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: