Pertemuan 6 Server dengan Multi Thread

Slides:



Advertisements
Presentasi serupa
KONSEP PROSES Minggu ke 5.
Advertisements

SI 325 Konsep Sistem Operasi Minggu 3
Fungsi Lecture 7. Motivation Complexity of programming problem  more difficult to consider the solution as a whole  clue: dividing the problem into.
Pertemuan 5 Server dengan Multi Proses pada Linux
ARRAY OF STRUCT Apabila hendak menggunakan 1 struct untuk beberapa kali, ada 2 cara : Deklarasi manual #include typedef struct Mahasiswa { char.
PROCESS DAN THREADS Pengertian : Program Proses MonoProgramming
Pointer Memory Dinamic.
Socket Programming Isbat Uzzin.
Pengembang aplikasi memiliki kemampuan untuk memperbaiki beberapa parameter TCP, seperti buffer dan maksimum ukuran segmen maksimum Socket Programming.
Matakuliah : H0483 / Network Programming Tahun : 2008 Versi : 2.0
Pertemuan 6 Server dengan Multi Thread pada Linux
Sistem Operasi (Operating Systems) Minggu 4
Matakuliah : T0456 ~ Algoritma dan Metode Object Oriented Programming
1 Pertemuan 18 Matriks Matakuliah: T0016/Algoritma dan Pemrograman Tahun: 2005 Versi: versi 2.
1 Pertemuan 14 Operator Overloading Matakuliah: T0456 ~ Algoritma dan Metode Object Oriented Programming Tahun: 2005 Versi: 5.
Structure Data - Array Pertemuan 7 Matakuliah: T0456 / Algoritma dan Metode Object Oriented Programming Tahun: 2007.
STRUCT OF ARRAY Apabila hendak menggunakan 1 struct untuk beberapa kali, ada 2 cara : Deklarasi manual #include typedef struct Mahasiswa { char.
FUNCTIONS Pertemuan 9 Matakuliah: T0456 / Algoritma dan Metode Object Oriented Programming Tahun: 2007.
PROCESS DAN THREADS PROCESS Multiprogramming Pseudoparallelism
1 Pertemuan 1 Algoritma Matakuliah: T0456 ~ Algoritma dan Metode Object Oriented Programming Tahun: 2005 Versi: 5.
1 Pertemuan 9 Inheritance Matakuliah: T0044/Pemrograman Berorientasi Obyek Tahun: 2005 Versi: 1.0.
Pertemuan 3 ELEMENTARY TCP SOCKETS
DASAR SOCKET PROGRAMMING
1 Pertemuan Fungsi Matakuliah: T0016 / Algoritma dan Pemrograman Tahun: 2007 Versi: 6.
Matakuliah : T0534/Struktur Data Tahun : 2005 Versi : September 2005
1 Pertemuan 10 Pemrograman Jaringan pada Windows dengan VC ) Matakuliah: H0483 – Network Programming Tahun: 2008 Versi: 2.0.
PERNYATAAN PERULANGAN
Matakuliah : T0016 / Algoritma dan Pemrograman Tahun : 2007 Versi : 6
PENJADWALAN PROSES.
1 Pertemuan 7 Name and Address Conversion Matakuliah: H0483 / Network Programming Tahun: 2005 Versi: 1.0.
1 Pertemuan 8 Advanced I/O function Matakuliah: H0483 / Network Programming Tahun: 2005 Versi: 1.0.
Fungsi, Array dan String
Pertemuan 8 Stack dengan Array
Pertemuan 9 Stack dengan Linked-list
1 Pertemuan 5 Encapsulation Matakuliah: T0044/Pemrograman Berorientasi Obyek Tahun: 2005 Versi: 1.0.
Bina Nusantara Mata Kuliah: K0194-Pemodelan Matematika Terapan Tahun : 2008 Aplikasi Model Markov Pertemuan 22:
Pertemuan 5 Balok Keran dan Balok Konsol
Fungsi Logaritma Pertemuan 12
1 Pertemuan 5 PPh PASAL 21 Matakuliah: A0572/ Perpajakan Tahun: 2005 Versi: Revisi 1.
Pertemuan 5 I/O Multiplexing
1 Pertemuan 8 JARINGAN COMPETITIVE Matakuliah: H0434/Jaringan Syaraf Tiruan Tahun: 2005 Versi: 1.
Matakuliah : R0022/Pengantar Arsitektur Tahun : Sept 2005 Versi : 1/1
1 Pertemuan 5 Komunikasi antar Proses / Interprocess Communication (IPC) Matakuliah: T0316/sistem Operasi Tahun: 2005 Versi/Revisi: 5 OFFCLASS01.
1 Pertemuan 14 APLIKASI BACK PROPAGATION Matakuliah: H0434/Jaringan Syaraf Tiruan Tahun: 2005 Versi: 1.
1 Pertemuan 8 Array & Pointer of Class Matakuliah: T0044/Pemrograman Berorientasi Obyek Tahun: 2005 Versi: 1.0.
1 Minggu 10, Pertemuan 20 Normalization (cont.) Matakuliah: T0206-Sistem Basisdata Tahun: 2005 Versi: 1.0/0.0.
1 Pertemuan 9 Unix Domain Protocol Matakuliah: H0483 / Network Programming Tahun: 2005 Versi: 1.0.
1 Pertemuan 7 Diferensial Matakuliah: R0262/Matematika Tahun: September 2005 Versi: 1/1.
Pertemuan 04 Fungsi-fungsi Microsoft Excel
1 Pertemuan 10 Pemrograman Berorientasi Objek Matakuliah: >/ > Tahun: > Versi: >
1 Pertemuan 12 Membuat Program Client dan Server pada Win32 Console Application Matakuliah: H0483 – Network Programming Tahun: 2008 Versi: 2.0.
PROSES & THREADS Disajikan Oleh :.
Matakuliah : H0112 – Pemrograman Bahasa Tingkat Tinggi
Matakuliah : K0074/Kalkulus III Tahun : 2005 Versi : 1/0
Matakuliah : H0483 – Network Programming Tahun : 2008 Versi : 2.0
Pertemuan 2 SINTAKS BAHASA, TIPE DATA, DAN OPERATOR
Pertemuan 10 PAJAK PERTAMBAHAN NILAI dan PPn BM
Matakuliah : T0534/Struktur Data Tahun : 2005 Versi : September 2005
Pengujian Hipotesis (I) Pertemuan 11
Pertemuan 4 Modularitas
THREAD (Multi Threading).
Pertemuan 24 Teknik Searching
Pertemuan 2 Socket Introduction
Matakuliah : T0456 ~ Algoritma dan Metode Object Oriented Programming
Matakuliah : T0534/Struktur Data Tahun : 2005 Versi : September 2005
Soal Latihan Pertemuan 03 Network Programming
Matakuliah : A0114/ Sistem Akuntansi Tahun : 2005 Versi : Revisi 1
Aplikasi dan Pemrograman Jaringan
Tahun : <<2005>> Versi : <<1/2>>
KONSEP PROSES Minggu ke 5.
Transcript presentasi:

Pertemuan 6 Server dengan Multi Thread Matakuliah : H0483 / Network Programming Tahun : 2008 Versi : 2.0 Pertemuan 6 Server dengan Multi Thread

mendemonstrasikan program aplikasi client- server dengan multithread Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : mendemonstrasikan program aplikasi client- server dengan multithread

Beda multiproses vs multithread Kasus: Server dengan multithread Outline Materi Pengertian program Pengertian proses Pengertian threads Beda multiproses vs multithread Kasus: Server dengan multithread

Multiprogramming of four programs The Process Model Multiprogramming of four programs Conceptual model of 4 independent, sequential processes Only one program active at any instant

Possible process states running blocked ready Transitions between states shown

Threads The Thread Model (a) Three processes each with one thread (b) One process with three threads

The Thread Model Items shared by all threads in a process Items private to each thread

Each thread has its own stack The Thread Model Each thread has its own stack

A word processor with three threads Thread Usage (1) A word processor with three threads

Pop-Up Threads Creation of a new thread when message arrives (a) before message arrives (b) after message arrives

CONTOH PROGRAM #include <stdio.h> #include <sys/ioctl.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <pthread.h> void* thread_proc(void *arg); int main(int argc, char *argv[]) { struct sockaddr_in sAddr; int listensock; int newsock; int result; pthread_t thread_id; int val; listensock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);

CONTOH PROGRAM val = 1; result = setsockopt(listensock, SOL_SOCKET, SO_REUSEADDR, &val, sizeof(val)); if(result < 0){ perror("serverthread1"); return 0; } sAddr.sin_family = AF_INET; sAddr.sin_port = htons(1972); sAddr.sin_addr.s_addr = INADDR_ANY; result = bind(listensock, (struct sockaddr *) &sAddr, sizeof(sAddr)); if(result < 0) { perror("serverthread1"); result=listen(listensock, 5); if(result < 0) { perror("serverthread1");

CONTOH PROGRAM while(1){ newsock = accept(listensock, NULL ,NULL); result = pthread_create(&thread_id, NULL, thread_proc, (void *) newsock); if(result != 0){ printf("Could not create thread.\n"); return 0; } pthread_detach(thread_id); // melepaskan/detach a thread sched_yield(); /*function shall force the running thread to relinquish the processor until it again becomes the head of its thread lis */

CONTOH PROGRAM void* thread_proc(void *arg) { int sock; char buffer[25]; int nread; printf("child thread %u with pid %i created.\n", pthread_self(), getpid()); sock = (int) arg; nread = recv(sock, buffer, 25, 0); buffer[nread] = '\0'; printf("%s\n", buffer); send(sock, buffer, nread, 0); close(sock); printf("child thread %u with pid %i finished.\n", pthread_self(), getpid()); }

Latihan Perhatikan contoh program diatas, bolehkan variabel newsocket diatas dibuat menjadi variabel global?, sehingga pada fungsi “thread_proc” variabel newsocket bisa digunakan ? Setelah accept mengapa tidak perlu close(listensocket) ?, seperti pada server dengan fork() ? Variabel int sock pada fungsi “thread_proc”, digunakan untuk menyimpan socket dari client yang connect dengan server. Jelaskan mengapa bisa demikian ?