Dokumen tersebut membahas tentang pemrosesan paralel menggunakan multithreading. Ia menjelaskan definisi thread dan perbedaan antara thread dan proses. Dokumen juga menjelaskan eksekusi thread pada prosesor tunggal dan multiprosesor serta kelebihan dan kelemahan penggunaan multithreading. Terakhir dibahas pula tipe dan penjadwalan multithreading.
3. Pemrosesan
Paralel
Haddad
Sammir,
M.Kom
Definisi Thread
Akademis
• Thread adalah urutan terkecil instruksi terprogram yang
dapat dikelola secara indepeden oleh scheduler.
• Dua atau lebih thread dapat dieksekusi secara paralel
dengan menggunakan cara time slice atau multiproses.
• Time Slice dilakuan dengan berpindah dari satu thread ke
thread yang lain.
• Multiproses dilakukan dengan mengekseskusi thread secara
bersamaan dengan menggunakan prosesor yang berbeda.
5. Pemrosesan
Paralel
Haddad
Sammir,
M.Kom
Perbedaan Thread Dan Proses
• Proses secara umum bersifat independen, sedangkan
thread adalah bagian dari proses.
• Poses memiliki lebih banyak informasi status dibandingkan
thread, sedangkan beberapa thread yang berada dalam
sebuah proses dapat saling berbagi status proses.
• Proses memiliki address space nya sendiri-sendiri,
sedangkan thread saling berbadi address space.
• Proses saling berkomuniikasi dengan memanfaatkan
fasilitas yang disediakan oleh sistem operasi yaitu
mekanisme: inter-process mechanism.
6. Pemrosesan
Paralel
Haddad
Sammir,
M.Kom
Eksekusi Thread Prosesor Tunggal
• Pada prosesor tunggal, multithreading dilakukan dengan
memanfaatkan time division multiplexing.
• Prosesor bekerja dengan berganti-ganti dari sebuah thread
ke thread yang lain.
• Proses pergantian ini dilakukan dengan sangat cepat
sehingga dari sudut pandang user, thread / task
berlangsung pada waktu yang bersamaan.
7. Pemrosesan
Paralel
Haddad
Sammir,
M.Kom
Eksekusi Thread Pada Multiprosesor / Multicore
• Pada sistem yang memiliki multiprosesor / multi-core,
thread dapat dieksekusi secara benar-benar bersamaan.
• Setiap core / prosesor mengeksekusi thread secara
simultan.
8. Pemrosesan
Paralel
Haddad
Sammir,
M.Kom
Multithreading
• Multithreading adalah model pemprograman dan eksekusi
yang memungkinkan banyak thread berada dalam konteks
sebuah proses tunggal.
• Setiap thread dapat saling berbagi sumber daya proses,
namun juga dapat dieksekusi secara independen.
• Multithreading juga dapat diterapkan dalam sistem
prosesor tunggal.
9. Pemrosesan
Paralel
Haddad
Sammir,
M.Kom
Kelebihan Multithreading
• Responsif.
Jika sebuah main execution thread (thread utama) bekerja
dalam waktu lama, maka hal tersebut akan mengakibatkan
keseluruhan aplikasi menjadi beku (freeze). Dengan
menjadikan thread tersebut menjadi worker thread dan
memindahkannya ke belakang layar (background), maka
aplikasi tersebut akan tetap responsif.
• Eksekusi lebih cepat.
Kelebihan program yang dirancang multithreading adalah
eksekusi lebih cepat pada komputer multiprosesor.
10. Pemrosesan
Paralel
Haddad
Sammir,
M.Kom
Kelebihan Multithreading
Cont.
• Mengkonsumsi lebih sedikit sumber daya.
Menggunakan thread, sebuah aplikasi dapat melayani lebih
banyak client secara bersamaan dengan lebih sedikit
sumberdaya dari pada menggunakan multiple process
dengan cara menggandakan dirinya sendiri.
• Menyederhanakan komunikasi dan berbagi sumber daya.
Tidak seperti proses yang membutuhkan mekanisme
message passing atau shared memory untuk saling
berkomunikasi, komunikasi antar thread dilakukan dengan
cara yang sangat sederhana karena setiap thread saling
berbagi data, kode dan file.
• Paralelisasi.
Aplikasi multi-thread akan menggunakan sistem multi core
secara efektif yang akan meningkatkan performa aplikasi.
11. Pemrosesan
Paralel
Haddad
Sammir,
M.Kom
Kelemahan Multithreading
• Sinkronisasi.
Karena setiap thread saling berbagi address space, maka
programmer harus berhati-hati dalam mengatur dan
urutan memproses data agar tidak ada thread yang
memanipulasi data yang sama secara besamaan.
• Thread dapat merusak keseluruhan proses.
Operasi ilegal dari sebuah thread dapat dapat merusak
keseluruhan proses.
12. Pemrosesan
Paralel
Haddad
Sammir,
M.Kom
Tipe Multithreading
• Block Mulithreading.
Multithreading paling sederhana terjadi ketika sebuah
thread berjalan hingga di-tahan oleh sebuah aktifitas yang
memakan waktu lama (contoh: mengakses data dari
harddisk). Alih-alih menunggu thread siap untuk berjalan
kembali, prosesor berpindah ke thread lain yang siap untuk
dijalankan (ready to run). Jika aktifitas thread yang
sebelumnya telah selesai, thread tersebut akan diletakkan
ke daftar ready to run untuk menunggu dieksekusi kembali.
• Interleave Mutithreading.
Interleave multithreading dilakukan dengan mengeksekusi
beberapa thread secara bergantian pada setiap cycle.
14. Pemrosesan
Paralel
Haddad
Sammir,
M.Kom
Scheduling
Proses penjadwalan (scheduling) dilakukan dengan salah satu
dari cara berikut:
• Preemptive Multitasking.
Secara umum dianggap sebagai teknik yang superior.
Teknik ini memperbolehkan sistem operasi menentukan
kapan context switch (peralihan dari sebuah thread ke
thread yang lain) dapat terjadi. Kelemahannya adalah
sistem operasi dapat melakukan context switch pada saat
yang tidak tepat.
• Cooperative Multithreading.
Teknik ini mempersilahkan thread untuk melepaskan
kendali ketika thread berada pada titik berhenti (stopping
point). Teknik ini dapat memunculkan masalah jika thread
menunggu sebuah sumberdaya menjadi tersedia.