sistem operasi isg2b3 thread · pdf fileasynchronous cancellation : satu thread memberhentikan...
TRANSCRIPT
SISTEM OPERASIISG2B3
THREAD
Agus Setiawan
Program Studi Sistem Informasi
Fakultas Rekayasa Industri
Telkom University
KONSEP DASAR [1]
Berbicara tentang process, terdapat beberapaketerkaitan dengan hal berikut :
1. Resource Ownership, process memiliki alokasiresource sendiri, misal alokasi alamat memory, I/O channel, I/O devices, dan files.
2. Scheduling/execution, process dapat memilikistate dan terdapat mekanisme panjadwalan danprioritas.
KONSEP DASAR [2]
Multithreading merujuk kepada kemampuan OS untuk mendukung multipel dan eksekusi secaraconcurrency 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 sendiridan sedangkan Thread tidak.
THREAD DAN PROSES [1]
THREAD & PROCESS [2]
Di dalam process, dapat terdiri sari satu atau lebihThread, dimanamasing-masingThread :
Thread memilikiexecution state.
Access shared memory danresource yang dimiliki olehprocess, danberbagi denganThread yang lainya.
CONTOH MULTI-THREADING
• Banyak perangkat lunak yang berjalan pada PC modern dirancang secara multi-threading
• Contohnya sebuah web browser mempunyai threaduntuk menampilkan gambar atau tulisan sedangkanthread yang lain berfungsi sebagai penerima data dari network.
CONTOH MULTI-THREADING
• Situasi dimana sebuah aplikasi diperlukan untukmenjalankan beberapa tugas yang serupa
• Contohnya adaah sebuah web server yang dapatmempunyai ratusan klien yang mengaksesnyasecara concurrent
CONTOH MULTI-THREADING
PERFORMANCE DENGANTHREAD
Pembentukan Thread membutuhkan waktu yang lebih sedikit daripada pembentukan process.
Membutuhkan waktu yang lebih sedikit untukmengakhiri Thread daripada process.
Lebih mudah dan cepat untuk melakukan switch antar Thread daripada switch antar process.
THREAD SYNCHRONIZATION [1]
Concurrent merupakanmekanisme penjadwalanterhadap beberapaprocess dalam kondisihendak dieksekusi secarabersamaan maupunhendak menggunakansuatu resource bersamaan.
Key Word dariConcurrent adalahpenjadwalan atauscheduling.
Parallel merupakan
mekanisme eksekusi
process yang dikerjakan
secara bersama-sama.
Kondisi ini sulit sekali
dicapai, karena biarpun
menggunakan multi-
processor jika beberapa
task hendak
menggunakan resource
yang sama, tetap musti
dijadwalkan.
THREAD SYNCHRONIZATION [2]
Merupakan mekanisme digunakan untuk mengaturConcurrent Access.
Bertujuan untuk menjaga Consistency.
Simple Synchronization :
Terdapat dua buah Thread yang menggunakanresource 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 dandiimplementasi oleh thread library pada user level
• Library menyediakan fasilitas untuk pembuatanthread, penjadualan thread, dan managementhread tanpa dukungan dari kernel
• Kelemahannya yaitu apabila kernelnyamerupakan thread tunggal maka apabila salahsatu user-level thread menjalankan blocking system call maka akan mengakibatkan seluruhproses diblok walau pun ada thread lain yang dapat jalan dalam aplikasi tersebut
USER VS KERNEL THREADS
• Kernel thread didukung langsung oleh sistemoperasi
• Pembuatan, penjadualan, dan managementhread dilakukan oleh kernel pada kernel space.
• Pembuatan dan pengaturan kernel thread lebihlambat dibandingkan user thread
USER VS KERNEL THREADS
• Keuntungannya adalah jika sebuah threadmenjalankan blocking system call maka kernel dapat menjadwalkan thread lain di aplikasiuntuk melakukan eksekusi
• Keuntungan lainnya adalah pada lingkunganmultiprocessor, kernel dapat menjadual thread-thread 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 satukernel thread
• Pengaturan thread dilakukan di user space
• Efisien tetapi ia mempunyai kelemahan yang sama dengan user thread
• tidak dapat berjalan secara pararel padamultiprocessor
MULTITHREADING MODELS
MULTITHREADING MODELS
One-to-One Model
• memetakan setiap user thread ke kernel thread
• menyediakan lebih banyak concurrencydibandingkan Many-to-One model
• Keuntungannya sama dengan keuntungankernel thread
• Kelemahannya setiap pembuatan user threadmembutuhkan pembuatan kernel thread yang dapat menurunkan performa dari sebuahaplikasi
• Sistem operasi yang mendukung One-to-One model adalah Windows NT dan OS/2
MULTITHREADING MODELS
MULTITHREADING MODELSMany-to-Many Model
• multiplexes banyak user-level thread ke kernel thread yang jumlahnya lebih kecil atau samabanyaknya dengan user-level thread
• Jumlah kernel thread dapat spesifik untuk sebagianaplikasi atau sebagian mesin
• Developer dapat membuat user thread sebanyakyang diperlukan, dan kernel thread yang bersangkutan dapat bejalan secara pararel padamultiprocessor.
• Ketika suatu thread menjalankan blocking system call maka kernel dapat menjadualkan thread lain untuk melakukan eksekusi.
• Sistem operasi yang mendukung model ini adalahSolaris, IRIX, dan Digital UNIX.
MULTITHREADING MODELS
THREAD POOLS
• Pada web server yang multithreading adadua masalah yang timbul:
1. Ukuran waktu yang diperlukan untukmenciptakan thread untuk melayanipermintaan yang diajukan terlebih padakenyataannya thread dibuang ketika iaseketika sesudah ia menyelesaikantugasnya.
2. Pembuatan thread yang tidak terbatasjumlahnya dapat menurunkan performadari sistem.
THREAD POOLS• Solusinya adalah dengan penggunaan
Thread Pools :
Membuat beberapa thread pada prosesstartup dan menempatkan mereka ke pools, dimana mereka duduk diam dan menunggu untukbekerja
Ketika server menerima permintaan maka ia akanmembangunkan thread dari pool dan jika threadtersedia maka permintaan tersebut akan dilayani
Ketika thread sudah selesai mengerjakan tugasnyamaka ia kembali ke pool dan menunggu pekerjaanlainnya
THREAD POOLS• Keuntungan thread pool:
1. Biasanya lebih cepat untuk melayanipermintaan dengan thread yang adadibanding dengan menunggu thread barudibuat.
2. Thread pool membatasi jumlah thread yang ada pada suatu waktu. Hal ini pentingpadasistem yang tidak dapat mendukung banyakthread yang berjalan secara concurrent.
• Jumlah thread dalam pool dapattergantung dari jumlah CPU dalam sistem, jumlah memori fisik, dan jumlah permintaanklien 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 peristiwatertentu sedang terjadi.
• Pola sinyal :
- Sebuah sinyal diaktifkan oleh munculnyasuatu peristiwa.
- Sinyal yang diaktifkan dikirim ke proses.
- Sesudah dikirim, sinyal tersebut harusditangani.
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 seharusnyadikirim :
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 semuasinyal yang ditujukan pada proses tersebut.