Multiplexing
Multiplexing adalah cara menangani beberapa klien dalam satu proses server. Aplikasi ini memungkinkan klien untuk terhubung ke server dan menambahkannya ke watch list. Watch list hanyalah sebuah array deskriptor soket. Kemudian sistem operasi memberitahu aplikasi klien (jika ada) yang perlu dilayani atau jika klien baru telah membuat koneksi. Untuk menangani permintaan dari client, server menggunakan fungsi select(). Fungsi select() merupakan sebuah fungsi sistem yang memungkinkan programmer untuk menentukan socket descriptor yang akan digunakan.
Preforking
Preforking : Membuat proses anak dengan jumlah tertentu pada saat aplikasi dimulai,Preforking membatasi semua cost yang terkait dengan pembuatan child process ke bagian inisialisasi aplikasi ketika sebuah client terkoneksi, maka proses yang menanganinya telah terbentuk. Preforking menciptakan salinan sebuah proses membutuhkan biaya kinerja yang cukup besar, tambah lagi jika dilakukan pada aplikasi yang besar. Biaya kinerja akan semakin mahal seiring banyaknya jumlah client yang terhubung dengan server. Untuk mengurangi biaya kinerja yang dipergunakan untuk menggandakan proses induk digunakan strategi preforking, yaitu dengan membuat proses anak dengan jumlah tertentu pada saat aplikasi dimulai, kemudian proses anak akan melayani client yang terhubung. Fungsi accept() tidak dipanggil pada parent process, tapi pada setiap child process. Listening socket descriptor tidak di close di child process.
Contoh program menggunakan python untuk Multiplexing dan preforking
Server
Client
No comments:
Post a Comment