--- "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

Kirim email ke