4. thread
TRANSCRIPT
PemrosesanParalel
HaddadSammir,M.Kom
Pemrosesan ParalelThread
Haddad Sammir, M.Kom
March 10, 2015
PemrosesanParalel
HaddadSammir,M.Kom
Definisi ThreadEtimologi
PemrosesanParalel
HaddadSammir,M.Kom
Definisi ThreadAkademis
• Thread adalah urutan terkecil instruksi terprogram yangdapat dikelola secara indepeden oleh scheduler.
• Dua atau lebih thread dapat dieksekusi secara paraleldengan menggunakan cara time slice atau multiproses.
• Time Slice dilakuan dengan berpindah dari satu thread kethread yang lain.
• Multiproses dilakukan dengan mengekseskusi thread secarabersamaan dengan menggunakan prosesor yang berbeda.
PemrosesanParalel
HaddadSammir,M.Kom
Thread, Process - Time
PemrosesanParalel
HaddadSammir,M.Kom
Perbedaan Thread Dan Proses
• Proses secara umum bersifat independen, sedangkanthread adalah bagian dari proses.
• Poses memiliki lebih banyak informasi status dibandingkanthread, sedangkan beberapa thread yang berada dalamsebuah proses dapat saling berbagi status proses.
• Proses memiliki address space nya sendiri-sendiri,sedangkan thread saling berbadi address space.
• Proses saling berkomuniikasi dengan memanfaatkanfasilitas yang disediakan oleh sistem operasi yaitumekanisme: inter-process mechanism.
PemrosesanParalel
HaddadSammir,M.Kom
Eksekusi Thread Prosesor Tunggal
• Pada prosesor tunggal, multithreading dilakukan denganmemanfaatkan time division multiplexing.
• Prosesor bekerja dengan berganti-ganti dari sebuah threadke thread yang lain.
• Proses pergantian ini dilakukan dengan sangat cepatsehingga dari sudut pandang user, thread / taskberlangsung pada waktu yang bersamaan.
PemrosesanParalel
HaddadSammir,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 secarasimultan.
PemrosesanParalel
HaddadSammir,M.Kom
Multithreading
• Multithreading adalah model pemprograman dan eksekusiyang memungkinkan banyak thread berada dalam kontekssebuah proses tunggal.
• Setiap thread dapat saling berbagi sumber daya proses,namun juga dapat dieksekusi secara independen.
• Multithreading juga dapat diterapkan dalam sistemprosesor tunggal.
PemrosesanParalel
HaddadSammir,M.Kom
Kelebihan Multithreading
• Responsif.Jika sebuah main execution thread (thread utama) bekerjadalam waktu lama, maka hal tersebut akan mengakibatkankeseluruhan aplikasi menjadi beku (freeze). Denganmenjadikan thread tersebut menjadi worker thread danmemindahkannya ke belakang layar (background), makaaplikasi tersebut akan tetap responsif.
• Eksekusi lebih cepat.Kelebihan program yang dirancang multithreading adalaheksekusi lebih cepat pada komputer multiprosesor.
PemrosesanParalel
HaddadSammir,M.Kom
Kelebihan MultithreadingCont.
• Mengkonsumsi lebih sedikit sumber daya.Menggunakan thread, sebuah aplikasi dapat melayani lebihbanyak client secara bersamaan dengan lebih sedikitsumberdaya dari pada menggunakan multiple processdengan cara menggandakan dirinya sendiri.
• Menyederhanakan komunikasi dan berbagi sumber daya.Tidak seperti proses yang membutuhkan mekanismemessage passing atau shared memory untuk salingberkomunikasi, komunikasi antar thread dilakukan dengancara yang sangat sederhana karena setiap thread salingberbagi data, kode dan file.
• Paralelisasi.Aplikasi multi-thread akan menggunakan sistem multi coresecara efektif yang akan meningkatkan performa aplikasi.
PemrosesanParalel
HaddadSammir,M.Kom
Kelemahan Multithreading
• Sinkronisasi.Karena setiap thread saling berbagi address space, makaprogrammer harus berhati-hati dalam mengatur danurutan memproses data agar tidak ada thread yangmemanipulasi data yang sama secara besamaan.
• Thread dapat merusak keseluruhan proses.Operasi ilegal dari sebuah thread dapat dapat merusakkeseluruhan proses.
PemrosesanParalel
HaddadSammir,M.Kom
Tipe Multithreading
• Block Mulithreading.Multithreading paling sederhana terjadi ketika sebuahthread berjalan hingga di-tahan oleh sebuah aktifitas yangmemakan waktu lama (contoh: mengakses data dariharddisk). Alih-alih menunggu thread siap untuk berjalankembali, prosesor berpindah ke thread lain yang siap untukdijalankan (ready to run). Jika aktifitas thread yangsebelumnya telah selesai, thread tersebut akan diletakkanke daftar ready to run untuk menunggu dieksekusi kembali.
• Interleave Mutithreading.Interleave multithreading dilakukan dengan mengeksekusibeberapa thread secara bergantian pada setiap cycle.
PemrosesanParalel
HaddadSammir,M.Kom
Tipe MultithreadingCont.
• Simultaneous Multithreading.Sebuah prosesor superscalar akan mengeksekusi banyakthread pada setiap cycle-nya.
PemrosesanParalel
HaddadSammir,M.Kom
Scheduling
Proses penjadwalan (scheduling) dilakukan dengan salah satudari cara berikut:
• Preemptive Multitasking.Secara umum dianggap sebagai teknik yang superior.Teknik ini memperbolehkan sistem operasi menentukankapan context switch (peralihan dari sebuah thread kethread yang lain) dapat terjadi. Kelemahannya adalahsistem operasi dapat melakukan context switch pada saatyang tidak tepat.
• Cooperative Multithreading.Teknik ini mempersilahkan thread untuk melepaskankendali ketika thread berada pada titik berhenti (stoppingpoint). Teknik ini dapat memunculkan masalah jika threadmenunggu sebuah sumberdaya menjadi tersedia.
PemrosesanParalel
HaddadSammir,M.Kom
SekianTerima Kasih