THREAD-BASED PARALLELISM
DEVI MEGA RISDIANA
PROSES
PRESENTATION TITLE
Dalam menyelesaikan tugas secara digital, kita dibantu oleh aplikasi komputer agar hasil tugas kita dapat di selesaikan secara efisien dan akurat seperti Microsoft Word, Microsoft Excel, calculator, notetaking Evernote, dan lain-lain.
Namun dalam sudut padang sistem operasi, setiap aplikasi hanyalah suatu proses. setiap proses akan
THREAD
Thread adalah unit dasar dari pemanfaatan CPU. Sebuah thread dalam proses akan menjalankan satu tugas (job) pada satu waktu. pada proses tradisional, setiap proses hanya memilki satu thread, sehingga program hanya dapat menjalankan satu tugas dalam satu waktu. namun jika
proses memilki beberapa thread, maka prosesnya dapat menjalakan kan beberapa tugas pada satu waktu dan hal ini disebut multithreading.
3 PRESENTATION TITLE
PRESENTATION TITLE • Pada prosesor dengan singlecore mengeksekusi proses yang memilki thread lebih dari satu, maka CPU akan mengeksekusi
thread-thread tersebut akan bergantian secara bersisipan dalam mengeksesusi setiap threadnya. Seakan-akan sistem terdapat
processing unit yang banyak namun kenyataannya processing unit bergantian menjalankan tugas secara cepat tanpa menyelesaikan masing-masing tugas. Hal ini disebut dengan concurrency.
• jika suatu proses memilki 6 thread dalam eksekusinya dan
dieksekusi dengan 2 core prosesor, maka setiap corenya dalam processornya akan mengeksekusi 3 thread secara concurrent.
Proses pembagian thread dalam proses kepada beberapa prosesing unit disebut dengan parallelism, mengekseksi beberapa tugas secara bersamaan.
5 PRESENTATION TITLE
BENEFITS
multithreading sangat berguna untuk memperbolehkan processing unit unutk mengerjakan tugas yang lebih banyak dan
multicore system berguna untuk membagi tugas dari proses secara bagi rata, berikut adalah 4 bagian alasan besar untuk menjalankan sistem dengan kemampuan multithreading.
PRESENTATION TITLE
RESOURCE SHARING
7 PRESENTATION TITLE
Sebuah proses yang terdiri dari banyak thread akan memilki resource yang sama. resource ini adalah termasuk data di storage, ruang memory dan proses heap dan stack. Dengan ini setiap tugas yang
dijalankan oleh thread tidak perlu memesan resources tambahan dari sistem memory namun mengunakan resource yang telah berada dalam memory yang telah diambil oleh thread yang lain. saling membagi resource ini juga memungkinkan untuk efesiensi dalam dalam komputasi data yang sama. jika ada suatu data yang diperlukan untuk digunakan oleh beberapa tugas, maka thread-thread tersebut dapat mengakses data yang sama tanpa komputasi atau mengambil dari storage tanpa mengambil data dari storage.
PARALLELISM
Seperti pernyataan yang di atas, multithreading sangat berguna untuk mempercepat eksekusi proses secara pararel. Parallel yang dimasud ini terdapat dua tipe, yaitu parallel data dan
parallel tugas (task).
PRESENTATION TITLE
MULTITHREAD MODELS
Pada sebenarnya, terdapat dua macam thread, yaitu user thread dan kernel thread. user thread adalah thread yang mejalankan
proses milih pengguna, dan kernel thread adalah thread yang di atur langusung oleh sistem operasi. Dengan itu terdapat bergai macam relasi antara thread space tersebut
9 PRESENTATION TITLE
MANY TO ONE MODEL
• Model ini dimana beberapa user thread memilki relasi dengan satu kerel thread. dengan ini thread kernel kan menjalankan satu user thread pada satu saat. Namun kelemahan model ini adalah ketika kernel thread terkena lock oleh user thread, dan user thread
lainnya harus menunggu kernel thread untuk menyelesakan tugas pada thread yang saat itu. Contoh library Green thread yang
menggunakan model ini dan berjalan di pada Java Runtime
Environment. Namun karena thread blocking tersebut model ini mulai di tinggalkan.
PRESENTATION TITLE
ONE TO ONE MODEL
• Model ini dimana setiap user thread memilki relasi dengan hanya satu kernel thread. sehinggal user thread memiliki jumlah yang sama dengan jumlah kernel thread. dengan ini jika salah satu thread kernel sedang di block, thread lain bisa berjalan secara parallel. Namun kekurangan dari model ini adalah sistem akan menanggung beban yang berat jika jumlah kernel thread terlalu banyak. Model ini banyak digunakan oleh sistem operasi Microsoft Windows, Linux/GNU, dan Apple MacOS.
1 1 PRESENTATION TITLE
MANY TO MANY MODEL
• Model ini dimana terdapat banyak user thread dan setiap
threadnya dapat dijalankan oleh salah satu thread yang di kernel space. Kernel thread memilki jumlah yang sama atau lebih sedikit dari jumlah user thread. dalam model ini sangat flexible
dibandingkan dengan model sebelumnya namun untuk programmer untuk mengimplementasikannya lebih sulit.
PRESENTATION TITLE