
Dalam pemrograman komputer, sebuah thread adalah informasi terkait
dengan penggunaan sebuah program tunggal yang dapat menangani beberapa
pengguna secara bersamaan. Dari program point-of-view, sebuah thread
adalah informasi yang dibutuhkan untuk melayani satu pengguna individu
atau permintaan layanan tertentu. Jika beberapa pengguna menggunakan
program atau permintaan bersamaan dari program lain yang sedang terjadi,
thread yang dibuat dan dipelihara untuk masing-masing proses. Thread
memungkinkan program untuk mengetahui user sedang masuk didalam program
secara bergantian dan akan kembali masuk atas nama pengguna yang
berbeda. Salah satu informasi thread disimpan dengan cara menyimpannya
di daerah data khusus dan menempatkan alamat dari daerah data dalam
register. Sistem operasi selalu menyimpan isi register saat program
interrupted dan restores ketika memberikan program kontrol lagi.
Sebagian besar komputer hanya dapat mengeksekusi satu instruksi
program pada satu waktu, tetapi karena mereka beroperasi begitu cepat,
mereka muncul untuk menjalankan berbagai program dan melayani banyak
pengguna secara bersamaan. Sistem operasi komputer memberikan setiap
program “giliran” pada prosesnya, maka itu memerlukan untuk menunggu
sementara program lain mendapat giliran. Masing-masing program dipandang
oleh sistem operasi sebagai suatu tugas dimana sumber daya tertentu
diidentifikasi dan terus berlangsung. Sistem operasi mengelola setiap
program aplikasi dalam sistem PC (spreadsheet, pengolah kata, browser
Web) sebagai tugas terpisah dan memungkinkan melihat dan mengontrol item
pada daftar tugas. Jika program memulai permintaan I / O, seperti
membaca file atau menulis ke printer, itu menciptakan thread. Data
disimpan sebagai bagian dari thread yang memungkinkan program yang akan
masuk kembali di tempat yang tepat pada saat operasi I / O selesai.
Sementara itu, penggunaan bersamaan dari program diselenggarakan pada
thread lainnya. Sebagian besar sistem operasi saat ini menyediakan
dukungan untuk kedua multitasking dan multithreading. Mereka juga
memungkinkan multithreading dalam proses program agar sistem tersebut
disimpan dan menciptakan proses baru untuk setiap thread.
Static Threading
Teknik ini biasa digunakan untuk komputer dengan chip multiprocessors
dan jenis komputer shared-memory lainnya. Teknik ini memungkinkan
thread berbagi memori yang tersedia, menggunakan program counter dan
mengeksekusi program secara independen. Sistem operasi menempatkan satu
thread pada prosesor dan menukarnya dengan thread lain yang hendak
menggunakan prosesor itu. Mekanisme ini terhitung lambat, karenanya disebut dengan static.
Selain itu teknik ini tidak mudah diterapkan dan rentan kesalahan.
Alasannya, pembagian pekerjaan yang dinamis di antara thread-thread
menyebabkan load balancing-nya cukup rumit. Untuk memudahkannya
programmer harus menggunakan protocol komunikasi yang kompleks untuk
menerapkan scheduler load balancing. Kondisi ini mendorong pemunculan
concurrency platforms yang menyediakan layer untuk mengkoordinasi,
menjadwalkan, dan mengelola sumberdaya komputasi paralel. Sebagian platform dibangun sebagai runtime libraries atau sebuah
bahasa pemrograman paralel lengkap dengan compiler dan pendukung
runtime-nya.
Dynamic Multithreading
Teknik ini merupakan pengembangan dari teknik sebelumnya yang
bertujuan untuk kemudahan karena dengannya programmer tidak harus pusing
dengan protokol komunikasi, load balancing, dan kerumitan lain yang ada
pada static threading. Concurrency platform ini menyediakan scheduler
yang melakukan load balacing secara otomatis. Walaupun platformnya masih
dalam pengembangan namun secara umum mendukung dua fitur : nested
parallelism dan parallel loops. Nested parallelism memungkinkan sebuah
subroutine di-spawned (ditelurkan dalam jumlah banyak seperti telur
katak) sehingga program utama tetap berjalan sementara subroutine
menghitung hasilnya. Sedangkan parallel loops seperti halnya fungsi for
namun memungkinkan iterasi loop dilakukan secara bersamaan.
Nama Kelompok :
A Firdha Shafridhi (50412441)
Ahmad Syaiful Irsyad (50412473)
Marcellina Yoanita C (54412414)
Muhammad Andry Mahdison (54412876)
Timothy Abraham Yoseph (57412390)
Referensi :
http://djuneardy.blogspot.co.id/2015/05/konsep-arsitektur-paralel-pemrosesan.html
http://djuneardy.blogspot.co.id/2015/05/konsep-arsitektur-paralel-pemrosesan.html
Tidak ada komentar:
Posting Komentar