Wednesday, November 23, 2022

Tugas 4 Socket Programming

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

Hasil program 










No comments:

Post a Comment