--- "I.B. Darmasakti" <[EMAIL PROTECTED]> schrieb: > --- Ariya Hidayat <[EMAIL PROTECTED]> wrote: >
> Jadi kepikir kalo transfer data yang diperlukan > melalui socket cukup kencang sementara aplikasi > utamanya merupakan loop yang sangat besar. Apakah > solusi multithread dan select masih bisa bermanfaat? Maksudnya loop besar gimana ya? Pada intinya multithread itu bagus untuk mengoptimumkan pembagian resource prosesor. > Apakah di linux nggak ada cara buat bikin event thread > (semacam ISR) di user mode (mengambil dari OS > sederhana)? 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. > > 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 :) > resource CPU. meskipun menggunakan macem2 metode-nya > seperti blocking dan non-blocking. tapi masih saja > menghabiskan resource. > Implementasi driver yang benar tidak menggunakan cara polling, tapi langsung di support oleh OS nya (baca scheduler). Beda blocking ama non-blocking, waktu handler dari driver menerima message, maka pada blocking methoda, controlnya belum dikembalikan ke program yang memanggil sebelum data yang mau di baca belum ada, sedang pada non-blocking, kalau data yang mau dibaca belum ada, messagenya bakalan di queue dan control langsung dikembalikan ke program yang memanggil. Dua2nya tidak akan menghabiskan resource CPU. > Apakah bisa dalam linux membuat software interrupt SWI > yang memiliki context switch yang ringan dan bisa > diteruskan ke user level dari kernel level? misalnya > bila buffer socket penuh atau kosong akan digenerate > SWI untuk mebangunkan fungsi read/write sehingga > resource CPU untuk polling bisa dihemat. > Atau mungkin harus dibuat driver khusus untuk > menangani proses ini? > Fungsi select() bisa digunakan untuk tujuan di atas. Atau kalau pakai multithread, fungsi read() dengan blocking methoda juga bisa memnuhi spesifikasi di atas. ebs __________________________________________________________________ Gesendet von Yahoo! Mail - http://mail.yahoo.de Möchten Sie mit einem Gruß antworten? http://grusskarten.yahoo.de -- Utk berhenti langganan, kirim email ke [EMAIL PROTECTED] Informasi arsip di http://www.linux.or.id/milis.php3