Template PPT MK untuk FRI

advertisement
SISTEM OPERASI
ISG2B3
THREAD
Agus Setiawan
Program Studi Sistem Informasi
Fakultas Rekayasa Industri
Telkom University
KONSEP DASAR [1]
Berbicara tentang process, terdapat beberapa
keterkaitan dengan hal berikut :
1. Resource Ownership, process memiliki alokasi
resource sendiri, misal alokasi alamat memory, I/O
channel, I/O devices, dan files.
2. Scheduling/execution, process dapat memiliki
state dan terdapat mekanisme panjadwalan dan
prioritas.
KONSEP DASAR [2]
Multithreading merujuk kepada kemampuan OS
untuk mendukung multipel dan eksekusi secara
concurrency di dalam suatu single process.
Thead seringkali disebut sebagai lightweight
process.
Dengan bahasa yang lebih sederhana, Thread
merupakan bagian dari process.
Dimana process memiliki alokasi resource sendiri
dan sedangkan Thread tidak.
THREAD DAN PROSES [1]
THREAD & PROCESS [2]
 Di dalam process,
dapat terdiri sari
satu atau lebih
Thread, dimana
masing-masing
Thread :
 Thread memiliki
execution state.
 Access shared
memory dan
resource yang
dimiliki oleh
process, dan
berbagi dengan
Thread yang
lainya.
CONTOH MULTI-THREADING
• Banyak perangkat lunak yang berjalan pada PC
modern dirancang secara multi-threading
• Contohnya sebuah web browser mempunyai thread
untuk menampilkan gambar atau tulisan sedangkan
thread yang lain berfungsi sebagai penerima data
dari network.
CONTOH MULTI-THREADING
• Situasi dimana sebuah aplikasi diperlukan untuk
menjalankan beberapa tugas yang serupa
• Contohnya adaah sebuah web server yang dapat
mempunyai ratusan klien yang mengaksesnya
secara concurrent
CONTOH MULTI-THREADING
PERFORMANCE DENGAN
THREAD
Pembentukan Thread membutuhkan waktu yang
lebih sedikit daripada pembentukan process.
Membutuhkan waktu yang lebih sedikit untuk
mengakhiri Thread daripada process.
Lebih mudah dan cepat untuk melakukan switch
antar Thread daripada switch antar process.
THREAD SYNCHRONIZATION [1]
 Concurrent merupakan
mekanisme penjadwalan
terhadap beberapa
process dalam kondisi
hendak dieksekusi secara
bersamaan maupun
hendak menggunakan
suatu resource
bersamaan.
 Key Word dari
Concurrent adalah
penjadwalan atau
scheduling.
 Parallel merupakan
mekanisme eksekusi
process yang dikerjakan
secara bersama-sama.
 Kondisi ini sulit sekali
dicapai, karena biarpun
menggunakan multiprocessor jika beberapa
task hendak
menggunakan resource
yang sama, tetap musti
dijadwalkan.
THREAD SYNCHRONIZATION [2]

Merupakan mekanisme digunakan untuk mengatur
Concurrent Access.
Bertujuan untuk menjaga Consistency.

Simple Synchronization :

Terdapat dua buah Thread yang menggunakan
resource yang sama. Untuk menjaga konsistensi, maka
diinginkan agar Thread kedua akan dieksekusi jika dan
hanya jika Thread pertama selesai dieksekusi. Tanpa
adanya komunikasi antara kedua Thread tersebut
(Non Inter-Thread-Communication).
ULTS DAN KLTS
USER VS KERNEL THREADS
• User thread didukung di atas kernel dan
diimplementasi oleh thread library pada user
level
• Library menyediakan fasilitas untuk pembuatan
thread, penjadualan thread, dan managemen
thread tanpa dukungan dari kernel
• Kelemahannya yaitu apabila kernelnya
merupakan thread tunggal maka apabila salah
satu user-level thread menjalankan blocking
system call maka akan mengakibatkan seluruh
proses diblok walau pun ada thread lain yang
dapat jalan dalam aplikasi tersebut
USER VS KERNEL THREADS
• Kernel thread didukung langsung oleh sistem
operasi
• Pembuatan, penjadualan, dan managemen
thread dilakukan oleh kernel pada kernel space.
• Pembuatan dan pengaturan kernel thread lebih
lambat dibandingkan user thread
USER VS KERNEL THREADS
• Keuntungannya adalah jika sebuah thread
menjalankan blocking system call maka kernel
dapat menjadwalkan thread lain di aplikasi
untuk melakukan eksekusi
• Keuntungan lainnya adalah pada lingkungan
multiprocessor, kernel dapat menjadual threadthread pada processor yang berbeda.
• Contoh sistem operasi yang mendukung kernel
thread adalah Windows NT, Solaris, Digital UNIX.
MULTITHREADING MODELS
Many-to-One Model
• memetakan banyak user-level thread ke satu
kernel thread
• Pengaturan thread dilakukan di user space
• Efisien tetapi ia mempunyai kelemahan yang
sama dengan user thread
• tidak dapat berjalan secara pararel pada
multiprocessor
MULTITHREADING MODELS
MULTITHREADING MODELS
One-to-One Model
• memetakan setiap user thread ke kernel thread
• menyediakan lebih banyak concurrency
dibandingkan Many-to-One model
• Keuntungannya sama dengan keuntungan
kernel thread
• Kelemahannya setiap pembuatan user thread
membutuhkan pembuatan kernel thread yang
dapat menurunkan performa dari sebuah
aplikasi
• Sistem operasi yang mendukung One-to-One
model adalah Windows NT dan OS/2
MULTITHREADING
MODELS
MULTITHREADING MODELS
Many-to-Many Model
• multiplexes banyak user-level thread ke kernel
thread yang jumlahnya lebih kecil atau sama
banyaknya dengan user-level thread
• Jumlah kernel thread dapat spesifik untuk sebagian
aplikasi atau sebagian mesin
• Developer dapat membuat user thread sebanyak
yang diperlukan, dan kernel thread yang
bersangkutan dapat bejalan secara pararel pada
multiprocessor.
• Ketika suatu thread menjalankan blocking system
call maka kernel dapat menjadualkan thread lain
untuk melakukan eksekusi.
• Sistem operasi yang mendukung model ini adalah
Solaris, IRIX, dan Digital UNIX.
MULTITHREADING
MODELS
THREAD POOLS
•
Pada web server yang multithreading ada
dua masalah yang timbul:
1. Ukuran waktu yang diperlukan untuk
menciptakan thread untuk melayani
permintaan yang diajukan terlebih pada
kenyataannya thread dibuang ketika ia
seketika sesudah ia menyelesaikan
tugasnya.
2. Pembuatan thread yang tidak terbatas
jumlahnya dapat menurunkan performa
dari sistem.
THREAD POOLS
• Solusinya adalah dengan penggunaan
Thread Pools :
 Membuat beberapa thread pada proses
startup dan menempatkan mereka ke pools,
dimana mereka duduk diam dan menunggu untuk
bekerja
Ketika server menerima permintaan maka ia akan
membangunkan thread dari pool dan jika thread
tersedia maka permintaan tersebut akan dilayani
Ketika thread sudah selesai mengerjakan tugasnya
maka ia kembali ke pool dan menunggu pekerjaan
lainnya
•
Keuntungan thread pool:
THREAD POOLS
1. Biasanya lebih cepat untuk melayani
permintaan dengan thread yang ada
dibanding dengan menunggu thread baru
dibuat.
2. Thread pool membatasi jumlah thread yang
ada pada suatu waktu. Hal ini pentingpada
sistem yang tidak dapat mendukung banyak
thread yang berjalan secara concurrent.
•
Jumlah thread dalam pool dapat
tergantung dari jumlah CPU dalam sistem,
jumlah memori fisik, dan jumlah permintaan
klien yang concurrent.
CANCELLATION
• Thread cancellation adalah sebuah tugas untuk
memberhentikan thread sebelum thread tersebut selesai.
• Thread yang akan diberhentikan disebut target thread.
• Dua skenario thread cancellationn :
1. Asynchronous cancellation :
satu thread memberhentikan target thread seketika itu
juga.
2. Deferred cancellation :
target thread secara periodik dapat mengecek apakah
ia harus berhenti, skenario ini memberi kesempatan
kepada target thread untuk memberhentikan dirinya
sendiri.
SIGNAL HANDLING (1)
• Sebuah sinyal digunakan di sistem UNIX untuk
memberitahu sebuah proses kalau peristiwa
tertentu sedang terjadi.
• Pola sinyal :
- Sebuah sinyal diaktifkan oleh munculnya
suatu peristiwa.
- Sinyal yang diaktifkan dikirim ke proses.
- Sesudah dikirim, sinyal tersebut harus
ditangani.
SIGNAL HANDLING (2)
• Setiap sinyal bisa ditangani oleh salah satu dari 2 handler
yang ada :
1. A default signal handler
2. A user defined signal handler
• Beberapa pilihan kemana sebuah sinyal seharusnya
dikirim :
1. Mengirim sinyal ke thread yang dituju.
2. Mengirim sinyal ke semua thread dalam proses.
3. Mengirim sinyal ke thread tertentu dalam proses.
4. Menugaskan thread khusus untuk menerima semua
sinyal yang ditujukan pada proses tersebut.
Download