--- "I.B. Darmasakti" <[EMAIL PROTECTED]> schrieb: > > Waktu m
> 
> Ok..lah, apa yang anda katakan di atas memang benar.
> manajemen kernel emang kayak gitu. Tapi coba anda liat
> dari aplikasi, misalnya:
> 
> kalau saya pake non-blocking,
> 
> dev = open("/dev/blah", O_RDONLY|O_NONBLOCK, arg);
> ret = read(dev, buffer, size);
> process(buffer);
> 
> apakah anda bisa menjamin bahwa ret = size hanya
> dengan sekali read()?
> 
Bukankah ret memang enggak harus sama dengan size. Kalaupun ret harus
sama size, itukan spesifikasi dari pemrogramnya, jadi enggak ada
hubungan dengan non-blocking. Coba lihat skenario alternatif:

Thread A kirim data 8 bytes tiap detik, Thread B yang punya periode,
katakan, 100 ms harus membaca message dari Thread A sebesar 16 bytes.
Walau secepat apapun, Thread B ini tetep aja harus nunggu 2 detik untuk
dapat menerima 16 byte.

> dengan blocking,
> 
> dev = open("/dev/blah", O_RDONLY, arg);
> ret = read(dev, buffer, size);
> process(buffer);
> 
> di sini bisa yakin ret = size, namun seberapa lama
> fungsi process() harus menunggu hingga buffer menjadi
> penuh?
> 
> Nah, kalo kita nggak bisa mengisi buffer dalam sekali
> read() pada non-blocking dan harus menunggu read()
> pada blocking, itu namanya apa? apakah itu bukan
> termasuk polling? apakah nggak buang waktu?
>
Bukankah polling itu akan selalu menyakan status kondisi dengan cara
loop? Skenario yang anda uraikan di atas kan enggak ada loop dari
fungsi yang memanggilnya, tidak juga fungsi di sys callnya. Dengan cara
ini tidak ada cpu-resource yang terbuang dengan percuma (bukan waktu). 
Dan itu kan sebenarnya yang dimaksudkan dengan kelemahan polling, yaitu
menghabiskan resource cpu. Atau mungkin kita punya persepsi lain dengan
istilah "poling"?

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