Monday, November 21, 2022

TUGAS 4 - SOCKET PROGRAMMING

Posted by Amelia Rahmadhini on November 21, 2022 with No comments

 Tugas 4


1. Multiplexing

Multiplexing merupakan sebuah proses dimana protokol pada sebuah layer dapat melakukan proses encapsulation terhadap paket data dari beberapa buah protokol dilayer atas secara bersamaan dalam satu waktu. Multiplexing juga merupakan strategi untuk menghandle banyak koneksi selain itu 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 merupakan  sebuah array deskriptor soket.Kemudian sistem operasi memberitahu aplikasi klien (jika ada) yang perlu dilayani atau jika klien baru telah membuat koneksi

Terdapat problem yaitu dari soket mana server harus menerima koneksi atau menerima

pesan dan terdapat soolusinya adalah dengan menggunakan select(). Select() merupakan sebuah fungsi sistem yang memungkinkan programmer untuk menentukan socket descriptor yang akan digunakan.

Fungsi select()

● select() merupakan sebuah fungsi sistem yang memungkinkan programmer

untuk menentukan socket descriptor yang akan digunakan.

● menetapkan daftar deskriptor untuk memeriksa operasi I / O yang tertunda

● blok sampai salah satu deskriptor siap

● returns which descriptors are ready

● Prototype fungsi select() :

import select

Panggilan select() memungkinkan untuk menggunakan pemblokiran I/O pada satu set deskriptor.

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 menangani beberapa deskriptor sekaligus

-          Ketika klient menangani beberapa socket bersamaan

-          Ketika TCP server menangani listening dan socket ang terkoneksi

-          Ketika server menangani TCP dan UDP bersamaan

-      Ketika server menangani lebih dari satu service dan protocol secara bersamaan

Tujuan dari komunikasi data secara multiplexing yaitu meningkatkan effisiensi penggunaan bandwidth atau kapasitas saluran transmisi dengan cara berbagi akses bersama dan menghemat jumlah saluran fisik. 

2. Preforking

Saat terdapat masalah pada forking  seperti masalah performa, terjadinya delay dalam menjalankan child process ketika client terhubung ke server dalam jumlah besar maka kita dapat mengatasinya menggunakan preforking. Preforking merupakan 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.

Konsep client-server merupakan dasar dari setiap transaksi yang terjadi pada setiap aplikasi jaringan. Socket merupakan antarmuka antara application process dan transport layer. Merupakan cara tradisional untuk menghandle multiple clients. Ketika sebuah aplikasi memanggil fork (),  maka dibuat copyan dari calling program, sampai ke program counter(PC), dan child process baru dimulai dengan copyan tsb. • Hasil kembalian dari fork() : sekali dalam program pemanggil dan waktu berikutnya dalam child process. Nilai kembalian dalam program pemanggil adalah PID dari child process baru, sementara dalam child process itu adalah 0.



3. Berikan contoh program menggunakan python untuk Multiplexing dan preforking

a. Multiplexing

- Server

- Client

- Output

b. Preforking

- Server

- Client



0 comments:

Post a Comment