Rabu, 24 Maret 2010

Multi Threading

Diposting oleh zaki di 09.38
Arti istilah Multithreading dianggap berkaitan erat dengan pengertian multi thread merupakan jalannya beberapa proses dengan urutan yang cepat (multitasking) dalam satu program. Multithreading ini merupakaan teknik pada manipulasi data dimana node-node pada struktur pohon data berisi penunjuk ke node yang lebih tinggi untuk membuat lintasan struktur menjadi lebih efisien.

Kalau sebelumnya kita telah mempelajari tentang proses, namun seiring berjalannya waktu dan tuntutan teknologi ternyata ditemukan kelemahan yang sebenarnya bisa diminimalisir pada proses. Untuk itulah diciptakan thread yang merupakan cara dari komputer untuk menjalankan dua atau lebih task dalam waktu bersamaan, sedangkan multithreading adalah cara komputer untuk membagi-bagi pekerjaan yang dikerjakan sebagian-sebagian dengan cepat sehingga menimbulkan efek seperti menjalakan beberapa task secara bersamaan walaupun otaknya hanya satu.

Keuntungan MultiThreading

Multiprocessing merupakan penggunaan dua atau lebih CPU dalam sebuah sistem komputer. Multitasking merupakan metode untuk menjalankan lebih dari satu proses dimana terjadi pembagian sumberdaya seperti CPU. Multithreading adalah cara pengeksekusian yang mengizinkan beberapa thread terjadi dalam sebuah proses, saling berbagi sumber daya tetapi dapat dijalankan secara independen.

Keuntungan dari sistem yang menerapkan multithreading dapat kita kategorikan menjadi 4 bagian:

1. Responsif. Aplikasi interaktif menjadi tetap responsif meskipun sebagian dari program sedang diblok atau melakukan operasi lain yang panjang. Umpamanya, sebuah thread dari web browser dapat melayani permintaan pengguna sementara thread yang lain berusaha menampilkan gambar.

2. Berbagi sumber daya. Beberapa thread yang melakukan proses yang sama akan berbagi sumber daya. Keuntungannya adalah mengizinkan sebuah aplikasi untuk mempunyai beberapa thread yang berbeda dalam lokasi memori yang sama.

3. Ekonomis. Pembuatan sebuah proses memerlukan pengalokasian memori dan sumber daya. Alternatifnya adalah dengan menggunakan thread, karena thread membagi memori dan sumber daya yang dimilikinya sehingga lebih ekonomis untuk membuat thread dan context switching thread. Akan susah mengukur perbedaan waktu antara thread dan switch, tetapi secara umum pembuatan dan pengaturan proses akan memakan waktu lebih lama dibandingkan dengan thread. Pada Solaris, pembuatan proses memakan waktu 30 kali lebih lama dibandingkan pembuatan thread sedangkan proses context switch 5 kali lebih lama dibandingkan context switching thread.

4. Utilisasi arsitektur multiprosesor. Keuntungan dari multithreading dapat sangat meningkat pada arsitektur multiprosesor, dimana setiap thread dapat berjalan secara paralel di atas procesor yang berbeda. Pada arsitektur processor tunggal, CPU menjalankan setiap thread secara bergantian tetapi hal ini berlangsung sangat cepat sehingga menciptakan ilusi paralel, tetapi pada kenyataanya hanya satu thread yang dijalankan CPU pada satu-satuan waktu.

Model MultiThreading

Beberapa terminologi yang akan dibahas:

1. Thread pengguna: Thread yang pengaturannya dilakukan oleh pustaka thread pada tingkatan pengguna. Karena pustaka yang menyediakan fasilitas untuk pembuatan dan penjadwalan thread, thread pengguna cepat dibuat dan dikendalikan.

2. Thread Kernel: Thread yang didukung langsung oleh kernel. Pembuatan, penjadwalan dan manajemen thread dilakukan oleh kernel pada kernel space. Karena dilakukan oleh sistem operasi, proses pembuatannya akan lebih lambat jika dibandingkan dengan thread pengguna.

Model-Model MultiThreading:

1. Model Many-to-One. Model ini memetakan beberapa thread tingkatan pengguna ke sebuah thread. tingkatan kernel. Pengaturan thread dilakukan dalam ruang pengguna sehingga efisien. Hanya satu thread pengguna yang dapat mengakses thread kernel pada satu saat. Jadi Multiple thread tidak dapat berjalan secara paralel pada multiprosesor. Contoh: Solaris Green Threads dan GNU Portable Threads.

2. Model One-to-One. Model ini memetakan setiap thread tingkatan pengguna ke setiap thread. Ia menyediakan lebih banyak concurrency dibandingkan model Many-to-One. Keuntungannya sama dengan keuntungan thread kernel. Kelemahan model ini ialah setiap pembuatan thread pengguna memerlukan tambahan thread kernel. Karena itu, jika mengimplementasikan sistem ini maka akan menurunkan kinerja dari sebuah aplikasi sehingga biasanya jumlah thread dibatasi dalam sistem. Contoh: Windows NT/XP/2000 , Linux, Solaris 9.

3. Model Many-to-Many. Model ini memultipleks banyak thread tingkatan pengguna ke thread kernel yang jumlahnya sedikit atau sama dengan tingkatan pengguna. Model ini mengizinkan developer membuat thread sebanyak yang ia mau tetapi concurrency tidak dapat diperoleh karena hanya satu thread yang dapat dijadwalkan oleh kernel pada suatu waktu. Keuntungan dari sistem ini ialah kernel thread yang bersangkutan dapat berjalan secara paralel pada multiprosessor.

Kesimpulan

Thread adalah alur kontrol dari suatu proses.

Keuntungan menggunakan Multithreading:
1. Meningkatkan respon dari pengguna.
2. Pembagian sumber daya.
3. Ekonomis.
4. Mengambil keuntungan dari arsitektur multiprosessor.

Tiga model Multithreading:
1. Model Many-to-One.
2. Model One-to-One.
3. Model Many-to-Many.

Pembatalan Thread: Tugas untuk membatalkan Thread sebelum menyelesaikan tugasnya.

Pembatalan Thread terdiri dari 2 jenis:
1. Asynchronous cancellation.
2. Deffered cancellation.

Thread Pools menciptakan sejumlah Thread yang ditempatkan di dalam pool dimana Thread menunggu untuk dipanggil.

Thread Schedulling ada 2 macam:
1. Local Schedulling.
2. Global Schedulling.

Istilah thread di Linux adalah task.
Pembuatan Thread di Linux menggunakan System call clone().

Mirip seperti sistem operasi desktop, Symbian OS mampu melakukan operasi secara multithreading, multitasking dan pengamanan terhadap memori. Dan semua pemrograman pada Symbian dilakukan secara event-based, artinya hardware CPU menjadi tidak aktif ketika tidak ada inputan berupa aktivitas tertentu. Namun perlu dipahami sistem operasi ini memang ditujukan untuk diinstal pada peralatan mobile dengan keterbatasan sumber daya. Multithread dan multitasking memberikan kemampuan Symbian OS untuk menjalankan lebih dari satu aplikasi sekaligus. Namun khusus ini, adanya preemptive multitasking kernel akan memberi tiap-tiap program suatu pembagian waktu pemprosesan yang dilakukan bergantian dengan cepat sehingga nampak bagi pemakai seolah-olah proses ini dieksekusi secara bersamaan. Untuk itu telah didefinisikan penjadwalan berdasar prioritas tertentu untuk menentukan proses mana yang berjalan terlebih dahulu dan proses apa berikutnya serta berapa banyak waktu akan jadi diberi.

0 komentar:

Posting Komentar

 

my story Copyright © 2010 Design by Ipietoon Blogger Template Graphic from Enakei