4. thread

15

Click here to load reader

Upload: haddad-sammir

Post on 20-Aug-2015

79 views

Category:

Education


1 download

TRANSCRIPT

Page 1: 4. Thread

PemrosesanParalel

HaddadSammir,M.Kom

Pemrosesan ParalelThread

Haddad Sammir, M.Kom

March 10, 2015

Page 2: 4. Thread

PemrosesanParalel

HaddadSammir,M.Kom

Definisi ThreadEtimologi

Page 3: 4. Thread

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.

Page 4: 4. Thread

PemrosesanParalel

HaddadSammir,M.Kom

Thread, Process - Time

Page 5: 4. Thread

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.

Page 6: 4. Thread

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.

Page 7: 4. Thread

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.

Page 8: 4. Thread

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.

Page 9: 4. Thread

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.

Page 10: 4. Thread

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.

Page 11: 4. Thread

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.

Page 12: 4. Thread

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.

Page 13: 4. Thread

PemrosesanParalel

HaddadSammir,M.Kom

Tipe MultithreadingCont.

• Simultaneous Multithreading.Sebuah prosesor superscalar akan mengeksekusi banyakthread pada setiap cycle-nya.

Page 14: 4. Thread

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.

Page 15: 4. Thread

PemrosesanParalel

HaddadSammir,M.Kom

SekianTerima Kasih