13.07.2015 Views

resume - Teknik Elektro UGM

resume - Teknik Elektro UGM

resume - Teknik Elektro UGM

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Sekarang kita lihat jika pada server mengandung dua buah thread. Kita asumsikan jika threadtersebut terjadwal bebas, sebuah thread dapat dijadwalkan ketika yang lainnya menjadi di-block selamainput-output. Kemudain thread nomor dua dapat memroses request selama sedetik ketika thread nomorsatu di-block ataupun sebaliknya. Hal ini meningkatkan throughput pada server. Pada contoh yangdiberikan, thread di-block pada sebuah disk drive. Jika semua request diserialkan dan memerlukan 8miliseconds masing-masingnya, maka maksimum throughput-nya adalah 1000/8 = 125 request/detik.Sekarang kita asumsikan terdapat chaching. Server menyimpan data yang dibacanya pada bufferpada lokasi alamatnya. Suatu server thread yang meminta data pertama-tama mengamati cache yang disharedan menghindari mengakses disk jika menemukannya. Jika terdapat 75% hit rate, rata-rata waktuinput-output per request berkurang hingga (0.75x0 + 0.25x8) = 2 miliseconds, dan maksimal throughputsecara teori meningkat hingga 500 request per detik. Tapi jika rata-rata waktu processor untuk sebuahrequest meningkat hingga 2.5 miliseconds per request sebagai hasil dari caching maka hasil tersebut takdapat dicapai. Server yang terbatasi oleh processor sekarang dapat menangani paling banyak 1000/2.5=400 request per detik.Throughput dapat ditingkatkan dengan menggunakan suatu shared memory multiprocessor untukmemudahkan processor bottleneck. Suatu proses multi-thread biasanya memetakan ke suatu sharedmemory multiprocessor. Lingkungan eksekusi berbagi dapat diimplementasikan pada shared memory,dan banyak thread dapat dijadwalkan untuk berjalan pada banyak processor.4.3.1 Arsitektur Server Multi-ThreadMulti-thread dapat memungkinkan server untuk memaksimalkan throughput-nya yang dihitungberdasarkan jumlah request yang diproses tiap detiknya. Gambar di atas memperlihatkan salah satukemungkinan arsitektur threading, worker pool architecture. Pada bentuk paling sederhananya, servermembentuk suatu kelompok yang tetap dari „worker‟ thread untuk memroses request ketika iamemulainya. Modul menandai „receipt dan queuing‟ pada gambar di atas biasanya diimplementasikanpada suatu thread I/O yang menerima request dari suatu kumpulan socket atau port dan meletakkannyapada suatu shared request untuk retrieval oleh para worker.Kadang terdapat suatu persyaratan untuk memberi request berbagai prioritas. Kita dapat menanganiberbagai prioritas request dengan menggunakan banyak antrian ke dalam arsitektur worker pool sehinggaworker thread memindai antrian dalam suatu urutan untuk menurunkan prioritas. Kelemahan dariarsitektur ini adalah ketidakfleksibilitasnya. Kelemahan lainnya adalah level yang tinggi dari switchingantara I/O dan worker thread seperti saat memanipulasi antrian yang berbagi.Pada arsitektur thread-per-request, thread I/O menggunakan thread worker yang baru pada tiaprequest, dan worker tersebut menghancurkan dirinya ketika telah memroses request daripada mendesainremote object. Arsitektur ini mempunyai keuntugan yaitu thread tidak berisi shared queue, danDukungan Sistem Operasi 7

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!