> Maksudnya loop besar gimana ya? Maksudnya program dengan state yang sangat panjang dan tidak bisa dipisah/dipecah menjadi proses terpisah.
> Di POSIX Thread ada cara untuk ini, namanya > condition variable atau > objek sinkronisasi/ objek messaging. Thread yang > nungguin kondisi > variabel tertentu tinggal waiting saja, sampai > variabel itu di set/ di > signaled oleh thread lainnya. Oh.. yang ini kan datangnya dari user mode ke user mode, apakah ada datang dari kernel mode dan bisa sampai ke user mode? > > > > > sejak linux menggunakan metode file system untuk > > mengakses driver termasuk socket. Metode ini > > menggunakan cara polling. Polling berarti > menghabiskan > Wah ini kesimpulan atau baca dari mana mas :) dari kesimpulan saya sendiri. Setahu saya interrupt, DMA dan resource hardware hanya berlaku di kernel mode. Di user mode, kita cuman bisa akses device dengan file system (open, read, write, etc). Nah itu kan polling, dan linux menyediakan 2 metode untuk itu, yaitu blocking dan non-blocking. kalo blocking berarti prosesnya bakalan nunggu sampai permintaannya terpenuhi. sedangkan kalo non-blocking, proses segera kembali bila keadaan tidak terpenuhi. mirip seperti yang anda jelaskan. > Fungsi select() bisa digunakan untuk tujuan di atas. > Atau kalau pakai > multithread, fungsi read() dengan blocking methoda > juga bisa memnuhi > spesifikasi di atas. Yah, dari pengalaman saya. Saya menggunakan select untuk akses device dengan metoda non-blocking. dan menggunakan multithread bila memakai metoda blocking. karena meskipun nge-block tapi ada context switching sehingga proses lain nggak harus nunggu. Tapi kedua cara itu belumlah memuaskan untuk system yang perlu real-time. :( ===== Salam, I.B. Darmasakti DSP Engineer __________________________________________________ Do You Yahoo!? Everything you'll ever need on one web page from News and Sport to Email and Music Charts http://uk.my.yahoo.com -- Utk berhenti langganan, kirim email ke [EMAIL PROTECTED] Informasi arsip di http://www.linux.or.id/milis.php3
