Saya pernah bikin sniffer ..tapi di Windows konsepnya sama seperti mas Andrew.. kita bisa menggunakan "bounded buffer"
namun , rasanya kok ada cara yg lebih mudah ya pake API message queue di Linux saja.. tidak repot2 , harus bikin buffer dan sinkronisasi capture_engine -----> queue ----> processor ----- Original Message ----- From: "Andrew Hadinyoto" <[EMAIL PROTECTED]> To: <[email protected]> Sent: Sunday, February 13, 2005 4:35 PM Subject: Re: [linux-programming] Thread di C/C++ > Hi, > > durung_lulus wrote: > > > memang sepertinya ada hubungan dengan time slice dari OS-nya, dan > > sayangnya saya ngga tahu cara setting timeslice ini. Kebetulan saya > > make freebsd 5.1. > > > > Sebenarnya permasalahan saya seperti ini, saya membuat 2 buah program. > > program pertama adalah sniffer, yang selalu menyimpan packet yang datang > > dari eth kedatabase/file/memory. Dan process ini harus meminimalisasi > > packet loss, karena akan sangat berpengaruh pada program yang kedua. > > > > Program yang kedua akan berjalan, jika sebuah koneksi telah berakhir dan > > melakukan analisa koneksi yang berakhir tersebut. Berhubung pada tahap > > ini processnya cukup banyak perhitungan matematis, maka jika menggunakan > > loop program bagian pertama akan ketinggalan dalam menangkap paket, dan > > dapat membuat program kedua salah dalam analisa. > > > > Mungkin ada masukan gimana enaknya metode untuk invoke/signalling > > program ke-2? > > Anda perlu metode sinkronisasi "Producer/Consumer" atau dikenal juga > sebagai "Bounded Buffer". > > Intinya, anda pake semacam buffer, lalu buffer tersebut di sinkronisasi. > Program pertama sniff lalu datanya disimpan di buffer. Program kedua > ngebaca dari buffer tersebut. > Kalo buffer lagi kosong - program no. 2 di-block (berhenti) > Kalo buffer ada isisnya - program no. 2 disignal utk memprosess > Kalo buffer-nya penuh - program no. 1 di-block (mungkin dalam kasus > anda, sniffernya berhenti sniff dulu). > > Utk thread, anda bisa lihat di: man pthread_cond_wait (dan kawan2) > Kalo pake interprocess communication: man sem_wait (dan kawan2) > > Salam, > Andrew... > > > > -- > Berhenti langganan: [EMAIL PROTECTED] > Arsip dan info: http://linux.or.id/milis.php -- Berhenti langganan: [EMAIL PROTECTED] Arsip dan info: http://linux.or.id/milis.php
