People Innovation Excellence
 

I/O Multiplexing Model

I/O multiplexing merupakan kapabilitas untuk memberi instruksi ke kernel bahwa kita ingin diberi notifikasi ketika satu atau beberapa kondisi I/O telah tercapai. Beberapa scenario dimana I/O multiplexing dipakai :

  • Ketika klient sedang meng-handling beberapa deskriptor sekaligus
  • Ketika klient menghandle beberapa socket bersamaan
  • Ketika TCP server menghandle listening dan socket ang terkoneksi
  • Ketika server menghandle TCP dan UDP bersamaan
  • Ketika server menghandle lebih dari satu service dan protocol secara bersamaan

Terdapat 5 model I/O

  • Blocking I/O
  • Nonblocking I/O
  • I/O Multiplexing
  • Signal Driven I/O
  • Asynchronous I/O

Pada semua metode input terdapat 2 phase

  • Menunggu data siap
  • Mencopy data dari kernel ke process

Blocking I/O Model

Untuk model ini process di block dari saat aplikasi melakukan systemcall recvfrom sampai datagram telah tercopy ke buffer aplikasi

Nonblocking I/O Model

Untuk Nonblocking I/O model kita menginformasikan kernel bahwa , jika sebuah I/O request akan membuat process sleep , kernel akan meng-return sebuah error daripada melakukan blocking process , di gambar diatas dapat dilihat bahwa applikasi melakukan 2 systemcall yang mendapatkan sebuah respons error message, pada systemcall ketiga datagram telah siap dan kernel tidak meng-return sebuah error message.

Multiplexing I/O model

Model ini mengunakan function “select” untuk memberi notifikasi ketika sebuah descriptor telah berstatus siap, dengan mengunakan “select” kita dapat menuggu lebih dari satu descriptor untuk berstatus siap sebelum mencopy data ke buffer applikasi, ini merupakan kelebihan utama dari I/O multiplexing.

Signal Driven I/O model

pada model ini kita pertama mengenable signal driven I/O untuk socket dan menginstall sebuah signal handler mengunakan systemcall sygaction, return dari systemcall ini bersifat instan dan process berlanjut tanpa di block , ketika sebuah datagram siap diread signal SIGIO akan dikirim untuk process , selanjutnyakita dapat membaca datagram dari signal handler dengan mengcall recvfrom dan memberitahu loop utama bahwa data siap diprocess atau kita dapat memberitahu loop utama dan membiarkanya membaca datagram.

Asynchronous I/O model

Model ini bekerja dengan menginstruksi kernel untuk memulai operasi dan mengnotifikasi process saat operasi tersebut selesai.

Referensi :

https://www.thedailyprogrammer.com/2016/09/network-programming-io-multiplexing.html

Christopher Daryl Wunan, Bayu Kanigoro


Published at : Updated
Written By
Bayu Kanigoro, S.Kom., M.T
Concentration Content Coordinator Network Technology | School of Computer Science

Periksa Browser Anda

Check Your Browser

Situs ini tidak lagi mendukung penggunaan browser dengan teknologi tertinggal.

Apabila Anda melihat pesan ini, berarti Anda masih menggunakan browser Internet Explorer seri 8 / 7 / 6 / ...

Sebagai informasi, browser yang anda gunakan ini tidaklah aman dan tidak dapat menampilkan teknologi CSS terakhir yang dapat membuat sebuah situs tampil lebih baik. Bahkan Microsoft sebagai pembuatnya, telah merekomendasikan agar menggunakan browser yang lebih modern.

Untuk tampilan yang lebih baik, gunakan salah satu browser berikut. Download dan Install, seluruhnya gratis untuk digunakan.

We're Moving Forward.

This Site Is No Longer Supporting Out-of Date Browser.

If you are viewing this message, it means that you are currently using Internet Explorer 8 / 7 / 6 / below to access this site. FYI, it is unsafe and unable to render the latest CSS improvements. Even Microsoft, its creator, wants you to install more modern browser.

Best viewed with one of these browser instead. It is totally free.

  1. Google Chrome
  2. Mozilla Firefox
  3. Opera
  4. Internet Explorer 9
Close