Anda di halaman 1dari 25

THREADS

Nama
Nama
Kelompok NIM
1. I Putu Gede Maysa Putra 2008561086
2. I Dewa Agung Adwitya Prawangsa 2008561091
3. Ida Bagus Made Surya Widnyana 2008561092
4. Albertus Ivan 2008561093
5. Dewa Nyoman Agung Adipurwa Mahandiri 2008561096
6. Muhammad Arrysatrya Yusuf Putranda 2008561097
7. Anak Agung Hendra Widiastana Tusan 2008561102
8. I Putu Marcel Wiguna 2008561103
9. Marcellino Rivaldo Pelaupessy 2008561104
10. Pande Putu Devo Punda Maheswara 2008561107
1
Pengenalan Thread
Pengenalan
Thread
Proses dibagi menjadi 2, yakni Proses Berat (Heavyweight) yang juga dikenal sebagai
proses tradisional dan Proses Ringan (Lightweight) yang juga dikenal sebagai Thread.

Thread adalah unit dasar dari CPU dan merupakan sebuah status
eksekusi (Ready,Running, Suspend, Block,Queue,dll). Thread
terdiri dari : Thread ID, Program Counter, Register Set, dan Stack.
Beberapa task dengan aplikasi dapat diimplementasikan oleh
beberapa thread seperti : Mengupdate display, Mengambil Data,
Melakukan koreksi ejaan, dan merespon network request.

Dalam satu proses yang sama, sebuah Thread dapat


berbagi code section data section, dan resource system
dengan thread yang lainnya. Adapun perbedaan dari
proses yang menggunakan thread tunggal dan thread
banyak, proses dengan thread banyak dapat melakukan
lebih dari satu task secara bersamaan.
Thread

Keuntungan
Responsi
Dapat membuat suatu program terus berjalan meskipun
Berbagi Sumber Daya
sebagian dari proses dalam program itu ter-block.
Thread dapat berbagi sumber daya dengan thread
yang lain yang dimiliki oleh proses yang sama.
Ekonomis
Alokasi Memori dan sumber daya Thread jauh lebih murah
daripada proses, hal ini karena thread berbagi sumber daya
dan memori di proses yang sama. Pemberdayaan Arsitektur Multiproses
Keuntungan dari Multihtread dapat
ditingkatkan pada Arstitektur Multiprocessor
dimana setiap thread dapat berjalan secara
pararel pada processor yang berbeda.
2
Multithreading Models
Multithreading
Models
Thread pengguna
thread
merupakan thread yang pengaturannya
dilakukan oleh pustaka thread pada tingkatan
pengguna. Karena pustaka yang menyediakan Thread kernel
fasilitas untuk pembuatan dan penjadwalan thread,
thread pengguna cepat dibuat dan dikendalikan. merupakan thread yang didukung langsung
oleh kernel. Pembuatan, penjadwalan dan
manajemen thread dilakukan oleh kernel pada
kernel space. Karena dilakukan oleh sistem
operasi, proses pembuatannya akan lebih lambat
jika dibandingkan dengan thread pengguna.
Multithreading Models
Multithreading memiliki 3 macam model yaitu

Model many-to-one
Model one-to-one

Model many-to-many
Multithreading Models
Model many-to-one

Model ini memetakan beberapa thread tingkatan


pengguna ke sebuah thread. tingkatan kernel.
Pengaturan thread dilakukan dalam ruang pengguna
sehingga efisien. Hanya satu thread pengguna yang
dapat mengakses thread kernel pada satu saat. Jadi
Multiple thread tidak dapat berjalan secara paralel
pada multiprosesor. Contoh: Solaris Green Threads
dan GNU Portable Threads.
Multithreading Models
Model one-to-one

Model ini memetakan setiap thread tingkatan


pengguna ke setiap thread. Ia menyediakan lebih
banyak concurrency dibandingkan model Many-to-
One. Keuntungannya sama dengan keuntungan thread
kernel. Kelemahan model ini ialah setiap pembuatan
thread pengguna memerlukan tambahan thread
kernel. Karena itu, jika mengimplementasikan sistem
ini maka akan menurunkan kinerja dari sebuah
aplikasi sehingga biasanya jumlah thread dibatasi
dalam sistem. Contoh: Windows NT/XP/2000 ,
Linux, Solaris 9.
Multithreading Models
Model many-to-many

Model ini memultipleks banyak thread tingkatan


pengguna ke thread kernel yang jumlahnya sedikit
atau sama dengan tingkatan pengguna. Model ini
mengizinkan developer membuat thread sebanyak
yang ia mau tetapi concurrency tidak dapat diperoleh
karena hanya satu thread yang dapat dijadwalkan
oleh kernel pada suatu waktu. Keuntungan dari
sistem ini ialah kernel thread yang bersangkutan
dapat berjalan secara paralel pada multiprosessor.
3
Thread Libraries
Thread Libraries
Application Programming Interface (API) untuk
pembuatan dan manajemen thread dua jenis
implementasi
01 Library diimplementasi di level user

02 Library diimplementasi di level kernel. Bisa


dipianggil dengan dengan system call
Thread Libraries
Strategi Implementasi
Asynchronous Threading
- Setelah thread induk membuat thread anak, proses
induk kembali melanjutkan eksekusi
- Thread induk dan thread anak berjalan independen
- Proses induk tidak perlu tahu status thread anak

Synchronous Threading
- Proses induk menunggu semua thread anak
selesai sebelum melanjutkan eksekusi (fork-join)
- Setelah thread anak selesai, join ke thread induk
Thread Libraries
Pthreads

• Tersedia untuk user-level dan kernel-level thread


• Spesifikasi, bukan implementation
• API menspesifikasi behaviour, untuk implementasi
tergantung developer
• Banyak digunakan pada OS berbasis UNIX seperti Solaris,
Linux, Mac OS X
Thread Libraries
Contoh Pthreads
Contoh Pthreads (Cont.) Pthreads
4
Permasalahan Dalam
Thread
Permasalahan Dalam Thread
Pada thread terdapat 5 permasalahan

01 System call fork() dan exec()


02Signal handling

03 Pembatalan thread
04Thread local storage

05Schedulers activation
Permasalahan Dalam Thread
01System call fork() dan exec()
Permasalahan
Jika fungsi fork() dipanggil oleh salah satu
thread, apakah semua thread diduplikasi
atau hanya thread yang memanggil saja?

Solusi
- Jika fungsi exec() dipanggil setelah fork(),
duplikasi hanya untuk thread yang memanggil
- Program yang dipanggil di exec() akan
menggantikan seluruh proses
- Jika tidak memanggil exec(), duplikasi semua t
thread
Permasalahan Dalam Thread
02 Signal handling
Signals digunakan pada UNIX system untuk memberitahu sebuah proses bahwa
sebuah even terjadi.
• Divide by zero
• Buffer overflow
Signal handler digunakan untuk menangani signal
• Signal dibuat oleh event tertentu
• Signal diberikan ke sebuah process
• Signal ditangani oleh satu dari dua jenis handler : default handler atau user-
defined handler
Masalah : Kemana signal harus diberikan pada proses dengan multi-thread?
• Berikan signal ke satu thread dimana signal tersebut digunakan
• Berikan signal ke setiap thread
• Berikan signal ke beberapa thread
• Tunjuk satu thread untuk menangani semua signal
Permasalahan Dalam Thread
03 Pembatalan thread
• Pemusnahan thread sebelum selesai menjalankan • Pthread code to create and cancel a thread:
tugas
• Thread yang akan dibatalkan disebut target thread
• Dua pendekatan:
- Asynchronous cancellation memusnahkan target
thread segera
- Deferred cancellation membuat target thread untuk
mengecek secara periodik apakah dia harus
mengakhiri eksekusi
• Default type adalah deferred
• Pemusnahan thread bergantung status thread Pemusnahan terjadi hanya ketika thread mencapai
cancellation point
- I.e. pthread_testcancel()
- Then cleanup handler is invoked
 
• Pada Linux systems, pemusnahan thread ditangani
melalui signals
Permasalahan Dalam Thread

04 Thread local storage
Thread-local storage (TLS) membuat setiap thread mempunyai duplikat datanya
sendiri
 
• Berguna jika programmer tidak bisa mengontrol pembuatan thread (ketika
menggunakan thread pool)

• Beda dengan local variable


-Lingkup local variabel hanya dalam satu fungsi
-Lingkup TLS meliputi berbagai fungsi

• Mirip static data


-TLS unik untuk setiap thread
Permasalahan Dalam Thread

05 Thread local storage
M:M dan two-level model butuh komunikasi untuk menjaga
alokasi jumlah kernel thread dari sebuah aplikasi

• Biasanya menggunakan perantara data structure antara user


dan kernel threads – lightweight process (LWP)
 
- Terlihat sebagai virtual processor yang dapat menjadwalkan
user- thread mana yang berjalan
- Setiap LWP ditempelkan ke kernel thread
- Berapa jumlah LWP yang harus dibuat

• Scheduler activations menyediakan upcalls -Sebuah


mekanisme komunikasi dari kernel ke upcall handler dalam
library thread.

• Komunikasi ini membuat aplikasi dapat menjaga jumlah kernel


thread yang dibuat
TERIMAKASIH
DAFTAR PUSTAKA
Silberschatz, P. B. Galvin, and G. Gagne, “Operating
Systems Concepts (Essentials)”, 9th
Edition, John Wiley & Sons, 2012.
INFORMATICS GIRL. (2015, 1 Oktober). THREAD PADA
SISTEM OPERASI. Diakses pada 1 Maret 2021, dari
https://vivimargaretha494.wordpress.com/2015/10/01/thread-p
ada-sistem-operasi-2/

Anda mungkin juga menyukai