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.
Tidak ada komentar:
Posting Komentar