Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
1
THREAD
2
KELOMPOK E AKBAR ALI SHOHIBUL CHAERUL SUTAMI GAGAN GALIH MARGAN
YOHANES
3
CONTENT THREAD MULTITHREADING MODEL MULTITHREADING
SYMETRIC MULTITPROCESSING ASYMETRIC MULTITPROCESSING PROSES & THREAD KOMPONEN & JENIS THREAD STATE PADA THREAD PEMBUATAN & PENGHENTIAN THREAD KEUNTUNGAN & KERUGIAN THREAD STUDI KASUS
4
THREAD Thread (menurut beberapa sumber) adalah :
Merupakan sebuah status eksekusi (running, ready, dll) Merupakan sebuah pengontrol aliran program Sering disebut dengan lightweight process (proses ringan) Merupakan unit dasar dari penggunaan CPU yang terdiri dari Thread_ID, program counter, register set, dan stack Ada pula yang menyebutkan bahwa thread adalah sebuah mini proses dari sebuah proses
5
THREAD Secara informal, proses adalah program yang sedang dieksekusi. Ada 2 jenis proses, proses berat (heavyweight) & proses ringan atau kadang disebut thread. Thread saling berbagi bagian program, bagian data & sumber daya SO dengan thread lain yang mengacu pada proses yang sama. Dengan banyak kontrol, thread dapat melakukan lebih dari satu pekerjaan pada waktu yang sama
6
THREAD Single-threading Multi-threading
sebuah proses tradisional (heavyweight) mempunyai thread tunggal yang berfungsi sebagai pengendali Multi-threading sebuah proses dengan thread yang banyak & mengerjakan lebih dari satu tugas pada satu satuan waktu
7
MULTITHREADING Many-to-One
Memetakan beberapa thread tingkatan pengguna kesebuah thread tingkatan kernel Pengaturan thread dilakukan dalam ruang pengguna, sehingga efisien Hanya satu thread pengguna yang dapat mengakses thread kernel pada satu saat.
8
MULTITHREADING One-to-One
Memetakan setiap thread tingkatan pengguna ke thread kernel Model ini menyediakan lebih banyak concurrency dibandingkan model Many-to-One
9
MULTITHREADING Many-to-Many
Mengelompokkan banyak thread pengguna untuk dipetakan ke thread kernel yang jumlahnya lebih sedikit atau sama dengan tingkatan pengguna Mengijinkan sistem operasi untuk membuat sejumlah thread kernel
10
SYMMETRIC MULTITPROCESSING
Merupakan tipe arsitektur komputer dimana dua atau lebih processor berbagi link pada memory yang sama Keunggulan utama sistem SMP ini adalah bahwa sistem SMP mengoptimalkan kerja semua processornya dalam tingkatan yang sama, sehingga memberikan kualitas akses yang sama pada hardware komputer yang lain Banyak software saat ini terbagi ke dalam bagian-bagian yang lebih kecil yang disebut dengan thread. Ketika program-program ini berjalan pada sistem SMP, setiap processor dapat menjalankan satu thread program, sehingga dapat meningkatkan performa keseluruhan
11
ASYMMETRIC MULTITPROCESSING
Setiap processor diberikan suatu tugas yang spesifik. Processor master mengontrol sistem, processor lain menunggu instruksi master atau mempunyai tugas yang ditentukan oleh master. Skema ini merupakan hubungan master-slave. Prosessor master menjadwal dan mengalokasikan pekerjaan dari processor slave.
12
PERBEDAAN PROSES DAN THREAD
Thread berbeda dengan proses karena thread memiliki address space yang sama yang artinya mereka berbagi variable global. Karenanya masing-masing 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.
13
PERBEDAAN PROSES DAN THREAD
14
JENIS-JENIS THREAD User Thread (Thread Pengguna)
Thread pengguna didukung kernel serta diimplementasikan dengan pustaka (library) thread pada tingkatan pengguna Pustaka (library) menyediakan fasilitas untuk pembuatan thread, penjadwalan thread, dan manajemen thread tanpa dukungan dari kernel Semua pembuatan dan penjadwalan thread dilakukan dalam ruang pengguna tanpa campur tangan kernel. Thread pengguna biasanya dapat cepat dibuat dan dikendalikan
15
JENIS-JENIS THREAD Kernel Threads (Thread Kernel)
Thread kernel didukung langsung oleh sistem operasi Pembuatan, penjadwalan, dan manajemen thread dilakukan oleh kernel pada kernel space Pengaturan thread dilakukan oleh sistem operasi, sehingga pembuatan dan pengaturan kernel thread lebih lambat dibandingkan user thread
16
STATE PADA THREAD Sebuah thread memungkinkan untuk memiliki beberapa state : Running Sebuah thread yang pada saat ini sedang dieksekusi dan didalam control dari CPU Ready to run Thread yang sudah siap untuk dieksekusi, tetapi masih belum ada kesempatan untuk melakukannya Resumed Setelah sebelumnya di block atau diberhenti kan sementara, state ini kemudian siap untuk dijalankan Suspended Sebuah thread yang berhenti sementara, dan kemudian memperbolehkan CPU untuk menjalankan thread lain bekerja Blocked Sebuah thread yang diblock merupakan sebuah thread yang tidak mampu berjalan, karena ia akan menunggu sebuah resource tersedia atau sebuah event terjadi
17
THREAD POOL Pembuatan thread yang tidak terbatas jumlahnya dapat menurunkan performa dari sistem. Solusinya adalah dengan penggunaan Thread Pools, cara kerjanya adalah dengan membuat beberapa thread pada proses startup dan menempatkan mereka ke pools, dimana thread tersebut menunggu untuk bekerja. Jadi ketika server menerima permintaan maka akan membangunkan thread dari pool dan jika thread tersebut tersedia, permintaan akan dilayani. Ketika thread sudah selesai mengerjakan tugasnya maka thread tersebut kembali ke pool dan menunggu pekerjaan lainnya. Bila tidak thread yang tersedia pada saat dibutuhkan, maka server menunggu sampai ada satu thread yang bebas.
18
PUSTAKA THREAD Pustaka Thread atau yang lebih familiar dikenal dengan Thread Library bertugas untuk menyediakan API untuk programmer dalam menciptakan dan memanage thread. Ada dua cara dalam mengimplementasikan pustaka thread: Menyediakan API dalam level pengguna tanpa dukungan dari kernel sehingga pemanggilan fungsi tidak melalui system call. Jadi, jika kita memanggil fungsi yang sudah ada di pustaka, maka akan menghasilkan pemanggilan fungsi call yang sifatnya lokal dan bukan system call. Menyediakan API di level kernel yang didukung secara langsung oleh sistem operasi. Pemanggilan fungsi call akan melibatkan system call ke kernel.
19
PENGHENTIAN THREAD Thread Cancellation adalah sebuah tugas untuk memberhentikan thread sebelum thread tersebut selesai. Terdapat 2 skenario, yaitu : Asynchronous cancellation Satu thread memberhentikan target thread seketika itu juga Deferred cancellation Target thread secara periodik dapat mengecek apakah ia harus berhenti, skenario ini memberi kesempatan kepada target thread untuk memberhentikan dirinya sendiri
20
KEUNTUNGAN THREAD Responsif
Multithreading memungkinkan suatu program running walaupun sebagian program di-block atau menjalankan operasi yang lain. Contoh: web browser Resource Sharing Thread dapat men-share memori dan resource dengan thread yang lain Ekonomis Alokasi memori dan resource untuk pembuatan proses memiliki cost yang mahal. Dalam hal context-switch, lebih ekonomis bila dilakukan dengan thread context-switch Utilisasi CPU Meningkatkan kinerja pada arsitektur multiprocessor, dimana thread running secara paralel pada processor yang berbeda
21
KERUGIAN THREAD Jika digunakan secara berlebihan, multithreading akan berdampak pada pemborosan resource dan CPU yang dialokasikan untuk switching threads. 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 signifikan jika menggunakan multithreading Multithreading menghasilkan program yang lebih kompleks. Menggunakan multiple thread sendiri tidak akan menciptakan kerumitan, tapi interaksi antar thread-lah yang mengakibatkan kompleksitas tersebut. Thread yang banyak bisa saling berinterferensi ketika saling berbagi sumber daya hardware seperti cache.
22
IMPLEMENTASI (STUDI KASUS)
Terkadang ada sebuah aplikasi yang perlu menjalankan beberapa tugas yang serupa. Sebagai contohnya sebuah web server dapat mempunyai ratusan klien yang mengaksesnya secara bersamaan. Jika web server berjalan sebagai proses yang memiliki thread tunggal (Single-Threading) maka ia hanya dapat melayani satu klien pada satu waktu. Bila ada klien lain yang ingin mengajukan permintaan maka ia harus menunggu sampai klien sebelumnya selesai dilayani. Solusinya adalah dengan membuat web server menjadi Multi-Threading. Dengan ini maka sebuah web server akan membuat thread yang akan mendengar permintaan klien, ketika permintaan lain diajukan maka web server akan menciptakan thread lain yang akan melayani permintaan tersebut.
23
GRACIAS AMIGOS!
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.