sistem operasi_thread campur sari

41
thread_cam pursari SISTEM OPERASI “THREAD, SMP, & MICROKERNEL Kelompok Campursari Member: 1. Arif Indra Kurnia 2. Earlan Brillianto 3. Eka Ariyansyah 4. Jakti Kinayung Prasojo

Upload: eka-ariyansyah

Post on 11-Jun-2015

761 views

Category:

Education


3 download

DESCRIPTION

thread

TRANSCRIPT

Page 1: Sistem Operasi_Thread campur sari

thread_campursariTIF J-UB

SISTEM OPERASI“THREAD, SMP, & MICROKERNEL“

Kelompok

CampursariMember:

1. Arif Indra Kurnia2. Earlan Brillianto3. Eka Ariyansyah4. Jakti Kinayung

Prasojo

Page 2: Sistem Operasi_Thread campur sari

thread_campursariTIF J-UB

thread_campursariTIF J-UB

OUTLINE MATERI…• Pengertan thread• State pada thread• Prioritas thread• Perbedaan thread dengan proses• Multithreading & model-modelnya • Keuntungan & Kerugian multithreading• Pembatalan thread

Page 3: Sistem Operasi_Thread campur sari

thread_campursariTIF J-UB

thread_campursariTIF J-UB

….OUTLINE MATERI• Thread pools• Penjadwalan thread • Symmetrics Multiprocessing (SMP)• Microkernel

Page 4: Sistem Operasi_Thread campur sari

thread_campursariTIF J-UB

THREADAPA ITU

THREAD..??

Page 5: Sistem Operasi_Thread campur sari

thread_campursariTIF J-UB

Pengertian Thread• THREAD adalah sebuah mini proses dari

sebuah proses. • Jadi bisa dikatakan bahwa Thread merupakan

bagian dari sebuah proses.

Page 6: Sistem Operasi_Thread campur sari

thread_campursariTIF J-UB

thread_campursariTIF J-UB

Page 7: Sistem Operasi_Thread campur sari

thread_campursariTIF J-UB

thread_campursariTIF J-UB

State Pada Thread1. Running, sebuah thread yang pada saat ini

sedang dieksekusi dan di dalam control dari CPU.

2. Ready to run, thread yang sudah siap untuk dieksekusi, tetapi masih belum ada kesempatan untuk melakukannya.

3. Resumed, setelah sebelumnya di block atau diberhentikan sementara, state ini kemudian siap untuk dijalankan.

Page 8: Sistem Operasi_Thread campur sari

thread_campursariTIF J-UB

thread_campursariTIF J-UB

4. Suspended, sebuah thread yang berhenti sementara, dan kemudian memperbolehkan CPU untuk menjalankan thread lain bekerja.

5. Blocked, sebuah thread yang di-block merupakan sebuah thread yang tidak mampu berjalan, karena ia akan menunggu sebuah resource tersedia atau sebuah event terjadi.

State Pada Thread

Page 9: Sistem Operasi_Thread campur sari

thread_campursariTIF J-UB

thread_campursariTIF J-UB

Prioritas Thread• Untuk menentukan thread mana yang akan

menerima control dari CPU dan akan dieksekusi pertama kali, setiap thread akan diberikan sebuah prioritas.

• Sebuah prioritas adalah sebuah nilai integer dari angka 1 sampai dengan 10, dimana semakin tinggi prioritas dari sebuah thread, berarti semakin besar kesempatan dari thread tersebut untuk dieksekusi terlebih dahulu.

Page 10: Sistem Operasi_Thread campur sari

thread_campursariTIF J-UB

thread_campursariTIF J-UB

Perbedaan Thread dengan Proses

• Thread berbeda dengan proses karena thread memiliki address space yang sama yang artiya mereka berbagi variable global.

• Karenanya masing2 thread dapat saling mengakses virtual address, membaca, menulis bahkan menghentikan thread lain.

• sedangkan proses bisa dimiliki oleh user dan kemungkinan proses tersebut menunggu atau ditahan proses yang lain. • Proses selalu dimiliki oleh satu user sehingga

mereka dapat saling bekerja sama tidak saling berbenturan.

Page 11: Sistem Operasi_Thread campur sari

thread_campursariTIF J-UB

thread_campursariTIF J-UB

Perbedaan Thread dengan Proses

Page 12: Sistem Operasi_Thread campur sari

thread_campursariTIF J-UB

MULTITHREADING

Page 13: Sistem Operasi_Thread campur sari

thread_campursariTIF J-UB

thread_campursariTIF J-UB

Definisi• Multithreadhing adalah kemampuan OS untuk

menjalankan 2 atau lebih thread dalam waktu yang bersamaan dalam sekali eksekusi proses tunggal.

Page 14: Sistem Operasi_Thread campur sari

thread_campursariTIF J-UB

Page 15: Sistem Operasi_Thread campur sari

thread_campursariTIF J-UB

thread_campursariTIF J-UB

Model-Model Multitreadhing

Model Many to one

Page 16: Sistem Operasi_Thread campur sari

thread_campursariTIF J-UB

thread_campursariTIF J-UB

Model Many to one

Page 17: Sistem Operasi_Thread campur sari

thread_campursariTIF J-UB

thread_campursariTIF J-UB

Model Many to Many

Page 18: Sistem Operasi_Thread campur sari

thread_campursariTIF J-UB

Keuntungan & Kerugian

Multithreading

Page 19: Sistem Operasi_Thread campur sari

thread_campursariTIF J-UB

thread_campursariTIF J-UB

Keuntungan Multithreadhing

a. Responsifb. Berbagi Sumber Dayac. Ekonomisd. Utilisasi Arsitektur Multiprosesor

Page 20: Sistem Operasi_Thread campur sari

thread_campursariTIF J-UB

thread_campursariTIF J-UB

Keuntungan Multithreadhing

a. Responsif Aplikasi interaktif menjadi tetap

responsif meskipun sebagian dari program sedang diblok atau melakukan operasi lain yang panjang. Umpamanya, sebuah thread dari web browser dapat melayani permintaan pengguna sementara thread yang lain berusaha menampilkan gambar.

Page 21: Sistem Operasi_Thread campur sari

thread_campursariTIF J-UB

thread_campursariTIF J-UB

Keuntungan Multithreadhing

b. Berbagi Sumber DayaBeberapa thread yang melakukan

proses yang sama akan berbagi sumber daya. Keuntungannya adalah mengizinkan sebuah aplikasi untuk mempunyai beberapa thread yang berbeda dalam lokasi memori yang sama.

Page 22: Sistem Operasi_Thread campur sari

thread_campursariTIF J-UB

thread_campursariTIF J-UB

Keuntungan Multithreadhing

c. EkonomisPembuatan sebuah proses memerlukan

pengalokasian memori dan sumber daya. Alternatifnya adalah dengan

menggunakan thread, karena thread membagi memori dan sumber daya yang dimilikinya sehingga lebih ekonomis untuk membuat thread dan context switching thread.

Page 23: Sistem Operasi_Thread campur sari

thread_campursariTIF J-UB

thread_campursariTIF J-UB

Keuntungan Multithreadhing

d. Utilisasi Arsitektur MultiprosesorKeuntungan dari multithreading dapat

sangat meningkat pada arsitektur multiprosesor, dimana setiap thread dapat berjalan secara paralel di atas procesor yang berbeda.

Page 24: Sistem Operasi_Thread campur sari

thread_campursariTIF J-UB

thread_campursariTIF J-UB

Kerugian Multithreadhing

a. Pemborosan resource dan CPU yang dialokasikan untuk switching threads, jika digunakan berlebihan

b. Sistem yang memiliki kecepatan prosesor dan memory yang cenderung sama, sehingga tidak ada efisiensi yang hilang (mengacu kepada latency), tidak akan memperoleh peningkatan bandwidth yang signifikanjika menggunakan multithreading.

Page 25: Sistem Operasi_Thread campur sari

thread_campursariTIF J-UB

thread_campursariTIF J-UB

Kerugian Multithreadhing

c. Multithreading menghasilkan program yang lebih kompleks. Menggunakan multiple thread sendiri tidak akan menciptakan kerumitan, tapi interaksi antar thread-lah yang mengakibatkan kompleksitas tersebut.

d. Thread yang banyak bisa saling berinterferensi ketika saling berbagi sumber daya hardware seperti cache.

Page 26: Sistem Operasi_Thread campur sari

thread_campursariTIF J-UB

Pembatalan Thread

Page 27: Sistem Operasi_Thread campur sari

thread_campursariTIF J-UB

thread_campursariTIF J-UB

• Merupakan pembatalan thread sebelum tugasnya selesai.

• Misalnya hendak mematikan Java Virtual Machine (JVM) pada program Java, maka sebelum JVM dimatikan, seluruh thread yang berjalan harus dibatalkan terlebih dahulu.• Contoh lain adalah pada masalah search.

Apabila sebuah thread mencari sesuatu dalam database dan menemukan serta mengembalikan hasilnya, thread sisanya akan dibatalkan. Thread yang akan diberhentikan biasa disebut Target Thread.

Page 28: Sistem Operasi_Thread campur sari

thread_campursariTIF J-UB

thread_campursariTIF J-UB

Pemberhentian Target Thread

Pemberhentian target Thread dapat dilakukan dengan 2 cara:

a. Asynchronous cancellation.Suatu thread seketika itu juga membatalkan target thread.

b. Deferred cancellation.Suatu thread secara periodik memeriksa apakah ia harus batal, cara ini memperbolehkan target thread untuk membatalkan dirinya secara terurut.

Page 29: Sistem Operasi_Thread campur sari

thread_campursariTIF J-UB

thread_campursariTIF J-UB

• Hal yang sulit dari pembatalan thread ini adalah ketika terjadi situasi dimana sumber daya sudah dialokasikan untuk thread yang akan dibatalkan. Selain itu kesulitan lain adalah ketika thread yang dibatalkan sedang meng-update data yang ia bagi dengan thread lain. Hal ini akan menjadi masalah yang sulit apabila digunakan asynchronous cancellation. Sistem operasi akan mengambil kembali sumber daya dari thread yang dibatalkan tetapi seringkali sistem operasi tidak mengambil kembali semua sumber daya dari thread yang dibatalkan.

Page 30: Sistem Operasi_Thread campur sari

thread_campursariTIF J-UB

thread_campursariTIF J-UB

• Alternatifnya adalah dengan menggunakan deffered cancellation. Cara kerja dari deffered cancellation adalah dengan menggunakan satu thread yang berfungsi sebagai pengindikasi bahwa target thread hendak dibatalkan. Tetapi pembatalan hanya akan terjadi jika target thread memeriksa apakah ia harus batal atau tidak. Hal ini memperbolehkan thread untuk memeriksa apakah ia harus batal pada waktu dimana ia dapat dibatalkan secara aman yang aman.

• Pthread merujuk sebagai cancellation points.

Page 31: Sistem Operasi_Thread campur sari

thread_campursariTIF J-UB

thread_campursariTIF J-UB

• Pada umumnya sistem operasi memperbolehkan proses atau thread untuk dibatalkan secara asynchronous. Tetapi Pthread API menyediakan deferred cancellation. Hal ini berarti sistem operasi yang mengimplementasikan Pthread API akan mengizinkan deferred cancellation.

Page 32: Sistem Operasi_Thread campur sari

thread_campursariTIF J-UB

Thread Pool

Page 33: Sistem Operasi_Thread campur sari

thread_campursariTIF J-UB

thread_campursariTIF J-UB

• Pada web server yang menerapkan multithreading ada dua masalah yang timbul:

a. Ukuran waktu yang diperlukan untuk menciptakan thread yang melayani permintaan yang diajukan pada kenyataannya thread dibuang seketika sesudah ia menyelesaikan tugasnya.

b. Pembuatan thread yang tidak terbatas jumlahnya dapat menurunkan performa dari sistem.

Page 34: Sistem Operasi_Thread campur sari

thread_campursariTIF J-UB

thread_campursariTIF J-UB

• Solusinya adalah dengan penggunaan Thread Pools, yaitu sekumpulan thread yang mengantri untuk mengerjakan tugas.

• Cara kerjanya adalah dengan membuat beberapa thread pada proses startup dan menempatkan mereka ke pools, dimana mereka duduk diam dan menunggu untuk bekerja.

• Jadi, ketika server menerima permintaan, 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. Bila tidak ada thread yang tersedia pada saat dibutuhkan maka server menunggu sampai ada satu thread yang bebas.

Page 35: Sistem Operasi_Thread campur sari

thread_campursariTIF J-UB

thread_campursariTIF J-UB

Keuntungan thread pool

a. Biasanya lebih cepat untuk melayani permintaan dengan thread yang ada dibandingkan menunggu thread baru dibuat.

b. Thread pool membatasi jumlah thread yang ada pada suatu waktu. Hal ini penting pada 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.

c. Pembuatan jumlah thread yang tepat dapat meningkatkan performa serta sistem yang lebih stabil.

Page 36: Sistem Operasi_Thread campur sari

thread_campursariTIF J-UB

Penjadwalan Thread

Page 37: Sistem Operasi_Thread campur sari

thread_campursariTIF J-UB

thread_campursariTIF J-UB

• Begitu dibuat, thread baru dapat dijalankan dengan berbagai macam penjadwalan. Kebijakan penjadwalanlah yang menentukan setiap proses, di mana proses tersebut akan ditaruh dalam daftar proses sesuai proritasnya dan bagaimana ia bergerak dalam daftar proses tersebut.

Page 38: Sistem Operasi_Thread campur sari

thread_campursariTIF J-UB

thread_campursariTIF J-UB

• Untuk menjadwalkan thread, sistem dengan model multithreading many to many atau many to one menggunakan:

a. Process Contention Scope (PCS). Pustaka thread menjadwalkan thread pengguna untuk berjalan pada LWP (lightweight process) yang tersedia.

b. System Contention Scope (SCS). SCS berfungsi untuk memilih satu dari banyak thread, kemudian menjadwalkannya ke satu thread tertentu (CPU / Kernel).

Page 39: Sistem Operasi_Thread campur sari

thread_campursariTIF J-UB

Simetric Processing

Unit

Page 40: Sistem Operasi_Thread campur sari

thread_campursariTIF J-UB

thread_campursariTIF J-UB

• Symetric multiprocessing (SMP) sangat diharapkan dapat mencapai efisiensi & reabilitas maksimum

• Sistem operasi SMP menjadwalkan proses & thread di seluruh prosesor.

• Kelebihan SMP : kinerja, ketersediaan, pertumbuhan, pengskalaan

Page 41: Sistem Operasi_Thread campur sari

WassalamThank You…! !