sistem operasi isg2b3 thread · pdf fileasynchronous cancellation : satu thread memberhentikan...

27
SISTEM OPERASI ISG2B3 THREAD Agus Setiawan Program Studi Sistem Informasi Fakultas Rekayasa Industri Telkom University

Upload: ngonga

Post on 05-Mar-2018

287 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: SISTEM OPERASI ISG2B3 THREAD · PDF fileAsynchronous cancellation : satu thread memberhentikan target thread seketika itu ... •Setiap sinyal bisa ditangani oleh salah satu dari 2

SISTEM OPERASIISG2B3

THREAD

Agus Setiawan

Program Studi Sistem Informasi

Fakultas Rekayasa Industri

Telkom University

Page 2: SISTEM OPERASI ISG2B3 THREAD · PDF fileAsynchronous cancellation : satu thread memberhentikan target thread seketika itu ... •Setiap sinyal bisa ditangani oleh salah satu dari 2

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.

Page 3: SISTEM OPERASI ISG2B3 THREAD · PDF fileAsynchronous cancellation : satu thread memberhentikan target thread seketika itu ... •Setiap sinyal bisa ditangani oleh salah satu dari 2

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.

Page 4: SISTEM OPERASI ISG2B3 THREAD · PDF fileAsynchronous cancellation : satu thread memberhentikan target thread seketika itu ... •Setiap sinyal bisa ditangani oleh salah satu dari 2

THREAD DAN PROSES [1]

Page 5: SISTEM OPERASI ISG2B3 THREAD · PDF fileAsynchronous cancellation : satu thread memberhentikan target thread seketika itu ... •Setiap sinyal bisa ditangani oleh salah satu dari 2

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.

Page 6: SISTEM OPERASI ISG2B3 THREAD · PDF fileAsynchronous cancellation : satu thread memberhentikan target thread seketika itu ... •Setiap sinyal bisa ditangani oleh salah satu dari 2

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.

Page 7: SISTEM OPERASI ISG2B3 THREAD · PDF fileAsynchronous cancellation : satu thread memberhentikan target thread seketika itu ... •Setiap sinyal bisa ditangani oleh salah satu dari 2

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

Page 8: SISTEM OPERASI ISG2B3 THREAD · PDF fileAsynchronous cancellation : satu thread memberhentikan target thread seketika itu ... •Setiap sinyal bisa ditangani oleh salah satu dari 2

CONTOH MULTI-THREADING

Page 9: SISTEM OPERASI ISG2B3 THREAD · PDF fileAsynchronous cancellation : satu thread memberhentikan target thread seketika itu ... •Setiap sinyal bisa ditangani oleh salah satu dari 2

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.

Page 10: SISTEM OPERASI ISG2B3 THREAD · PDF fileAsynchronous cancellation : satu thread memberhentikan target thread seketika itu ... •Setiap sinyal bisa ditangani oleh salah satu dari 2

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.

Page 11: SISTEM OPERASI ISG2B3 THREAD · PDF fileAsynchronous cancellation : satu thread memberhentikan target thread seketika itu ... •Setiap sinyal bisa ditangani oleh salah satu dari 2

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).

Page 12: SISTEM OPERASI ISG2B3 THREAD · PDF fileAsynchronous cancellation : satu thread memberhentikan target thread seketika itu ... •Setiap sinyal bisa ditangani oleh salah satu dari 2

ULTS DAN KLTS

Page 13: SISTEM OPERASI ISG2B3 THREAD · PDF fileAsynchronous cancellation : satu thread memberhentikan target thread seketika itu ... •Setiap sinyal bisa ditangani oleh salah satu dari 2

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

Page 14: SISTEM OPERASI ISG2B3 THREAD · PDF fileAsynchronous cancellation : satu thread memberhentikan target thread seketika itu ... •Setiap sinyal bisa ditangani oleh salah satu dari 2

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

Page 15: SISTEM OPERASI ISG2B3 THREAD · PDF fileAsynchronous cancellation : satu thread memberhentikan target thread seketika itu ... •Setiap sinyal bisa ditangani oleh salah satu dari 2

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.

Page 16: SISTEM OPERASI ISG2B3 THREAD · PDF fileAsynchronous cancellation : satu thread memberhentikan target thread seketika itu ... •Setiap sinyal bisa ditangani oleh salah satu dari 2

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

Page 17: SISTEM OPERASI ISG2B3 THREAD · PDF fileAsynchronous cancellation : satu thread memberhentikan target thread seketika itu ... •Setiap sinyal bisa ditangani oleh salah satu dari 2

MULTITHREADING MODELS

Page 18: SISTEM OPERASI ISG2B3 THREAD · PDF fileAsynchronous cancellation : satu thread memberhentikan target thread seketika itu ... •Setiap sinyal bisa ditangani oleh salah satu dari 2

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

Page 19: SISTEM OPERASI ISG2B3 THREAD · PDF fileAsynchronous cancellation : satu thread memberhentikan target thread seketika itu ... •Setiap sinyal bisa ditangani oleh salah satu dari 2

MULTITHREADING MODELS

Page 20: SISTEM OPERASI ISG2B3 THREAD · PDF fileAsynchronous cancellation : satu thread memberhentikan target thread seketika itu ... •Setiap sinyal bisa ditangani oleh salah satu dari 2

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.

Page 21: SISTEM OPERASI ISG2B3 THREAD · PDF fileAsynchronous cancellation : satu thread memberhentikan target thread seketika itu ... •Setiap sinyal bisa ditangani oleh salah satu dari 2

MULTITHREADING MODELS

Page 22: SISTEM OPERASI ISG2B3 THREAD · PDF fileAsynchronous cancellation : satu thread memberhentikan target thread seketika itu ... •Setiap sinyal bisa ditangani oleh salah satu dari 2

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.

Page 23: SISTEM OPERASI ISG2B3 THREAD · PDF fileAsynchronous cancellation : satu thread memberhentikan target thread seketika itu ... •Setiap sinyal bisa ditangani oleh salah satu dari 2

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

Page 24: SISTEM OPERASI ISG2B3 THREAD · PDF fileAsynchronous cancellation : satu thread memberhentikan target thread seketika itu ... •Setiap sinyal bisa ditangani oleh salah satu dari 2

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.

Page 25: SISTEM OPERASI ISG2B3 THREAD · PDF fileAsynchronous cancellation : satu thread memberhentikan target thread seketika itu ... •Setiap sinyal bisa ditangani oleh salah satu dari 2

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.

Page 26: SISTEM OPERASI ISG2B3 THREAD · PDF fileAsynchronous cancellation : satu thread memberhentikan target thread seketika itu ... •Setiap sinyal bisa ditangani oleh salah satu dari 2

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.

Page 27: SISTEM OPERASI ISG2B3 THREAD · PDF fileAsynchronous cancellation : satu thread memberhentikan target thread seketika itu ... •Setiap sinyal bisa ditangani oleh salah satu dari 2

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.