THREAD PADA WINDOWS
1.Thread
·
Thread adalah unit terkecil dalam suatu
proses yang bisa dijadwalkan oleh sistem operasi.
·
Merupakan sebuah status eksekusi
(ready, running, suspend, block, queue, dll)
·
Kadang disebut sebagai proses ringan
(lightweight).
·
Unit dasar dari dari sistem utilisasi
pada processor (CPU).
·
Dalam thread terdapat: ID Thread,
Program Counter, Register dan Stack.
·
Sebuah thread berbagi code section,
data section dan resource sistem operasi dengan thread yang lain yang
memiliki proses yang sama.
3. Keuntungan Multi-Threading
1.
Responsive; tanggap: Multi-Threading mengizinkan
program untuk berjalan terus walau-pun pada bagian program tersebut di
block atau sedang dalam keadaan menjalankan operasi yang lama/ panjang.
Sebagai contoh, multithread web browser dapat mengizinkan pengguna
berinteraksi dengan suatu thread ketika suatu gambar sedang di load oleh
thread yang lain.
2.
Pembagian sumber daya: Secara default,
thread membagi memori dan sumber daya dari proses. Ketika thread berjalan pada
data yang sama, thread tersebut bisa berbagi cache memory.
3.
Ekonomis: Mengalokasikan memori dan sumber daya
untuk membuat proses adalah sangat mahal. Alternatifnya, karena thread membagi
sumber daya dari proses, ini lebih ekonomis untuk membuat threads.
4.
Pemberdayaan arsitektur multiprosesor: Keuntungan dari
multi-threading dapat ditingkatkan dengan arsitektur multiprosesor, di mana
setiap thread dapat jalan secara paralel pada prosesor yang berbeda. Pada
arsitektur prosesor tunggal, CPU biasanya berpindah-pindah antara setiap
thread dengan cepat, sehingga terdapat ilusi paralelisme, tetapi pada
kenyataannya hanya satu thread yang berjalan di setiap waktu.
4. Kerugian Multi-Threading
1.
Multiple thread bisa mengganggu satu
sama lain saat berbagi hardware resource, misalnya chace memory.
2.
Execution time (waktu proses) dari
sebuah single-thread tidak dapat diimprove (ditambah), tapi malah bisa
diturunkan. Ini terjadi karena penurunan frequensi yang dibutuhkan ketika
terjadi pergantian thread yang berjalan.
3.
Harus ada dukungan dari hardware ataupun
software untuk melakukan multi-Threading.
5. Model-Model Threading
1.
Kernel-level threading; thread ini
dibuat oleh pengguna yang berkorespondensi 1-1 dengan entitas-entitas yang
terjadwalkan yang berada di kernel. Ini merupakan implementasi (penerapaan) paling
sederhana dari threading.
·
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.
2. User-level
threading; sebuah pemetaan N-1, yang berarti bahwa semua level aplikasi
thread dipetakan ke entitas tunggal yang ada di kernel. Dengan pendekatan
ini, switching proses dapat dilakukan dengan sangat cepat.
·
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.
6. Thread dalam Sistem Operasi
·
Sistem operasi telah mendukung proses
multithreading.
·
Setiap sistem operasi memiliki konsep
tersendiri dalam pengimplementasiannya.
·
Sistem operasi dapat mendukung thread
pada tingkatan kernel maupun tingkatan pengguna.
Model Multi-Threading
1. Many-to-One
·
Memetakan beberapa thread tingkatan
pengguna
·
ke sebuah thread tingkatan kernel.
·
Pengaturan thread dilakukan dalam ruang
·
pengguna, sehingga efisien.
·
Hanya satu thread pengguna yang dapat
·
mengakses thread kernel pada satu saat.
·
Memetakan setiap thread tingkatan
pengguna ke thread kernel.
·
Model ini menyediakan lebih banyak
concurrency dibandingkan model Many-to-One.
·
D3 KomSI UGM Sistem Operasi
·
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.
7. Cancellation
Thread cancellation
ialah pemberhentian thread sebelum tugasnya selesai. Umpama, jika dalam program
Java hendak mematikan Java Virtual Machine (JVM). Sebelum JVM dimatikan, maka
seluruh thread yang berjalan harus dihentikan terlebih dahulu. Thread yang akan
diberhentikan biasa disebut target thread. Pemberhentian target thread dapat
terjadi melalui dua cara yang berbeda: Asynchronous cancellation: suatu thread
seketika itu juga memberhentikan target thread.
Defered cancellation:
target thread secara perodik memeriksa apakah dia harus berhenti, cara ini
memperbolehkan target thread untuk memberhentikan dirinya sendiri secara
terurut.
Alternatifnya adalah
dengan menggunakan deffered cancellation. Cara kerja dari deffered cancellation
adalah dengan menggunakan satu thread yang berfungsi sebagai mengindikasi bahwa
target thread hendak diberhentikan. Tetapi pemberhentian hanya akan terjadi
jika target thread memeriksa apakah ia harus berhenti atau tidak. Hal ini
memperbolehkan thread untuk memeriksa apakah ia harus berhenti pada waktu
dimana ia dapat diberhentikan secara aman yang aman. Pthread merujuk tersebut
sebagai cancellation points.
8.Threads Pools
Pada web server yang
multithreading ada dua masalah yang timbul: Ukuran waktu yang diperlukan untuk
menciptakan thread untuk melayani permintaan yang diajukan terlebih pada
kenyataannya thread dibuang ketika ia seketika sesudah ia menyelesaikan
tugasnya. 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, di mana mereka duduk diam dan menunggu untuk
bekerja. Jadi ketika server menerima permintaan maka 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. Bila tidak thread yang tersedia pada saat
dibutuhkan maka server menunggu sampai ada satu thread yang bebas.
9. Keuntungan thread pool:
Biasanya lebih cepat untuk melayani permintaan dengan thread yang ada dibanding dengan menunggu thread baru dibuat. 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.
Penjelasan
thread pada CPU
CPU ( Central Processing Unit ) atau dalam bahasa Indonesianya Unit
pemroses Sentral adalah sebuah perangkat hardware yang
digunakan untuk mengerjakan / melaksanakan perintah dari perangkat lunak. CPU
juga bisa disebut sebagai "otak" dari perangkat komputer karena semua
perintah akan diproses oleh si CPU ini.
Apa Itu Multiple CPU ?
Kebanyakan CPU pada komputer hanya memiliki 1 buah CPU. Komputer yang memiliki lebih dari 1 buah CPU disebut sebagai Multiple CPU.
Pada zaman sebelum munculnya teknologi multi-core atau hyper-threading,
orang-orang yang ingin komputernya berjalan lebih cepat dalam memproses
perintah tentu harus memiliki lebih dari satu buah CPU. Pada awalnya CPU hanya
bisa melakukan satu buah perintah saja, untuk melakukan lebih dari satu
perintah ( multi-tasking ), tentu saja membutuhkan
"otak" tambahan.
Sebuah motherboard yang ingin
memiliki lebih dari satu buah CPU, tentu saja harus memiliki slot tambahan
( socket ). Hal ini menyebabkan membengkaknya konsumsi daya
pada komputer, tentu sangat tidak efisien saat ini.
Sebuah PC Gaming / PC Rendering pada saat ini pun
hanya memiliki satu buah CPU. PC dengan Multiple CPU biasanya hanya ditemukan
di Supercomputer, PC Server dan PC yang membutuhkan kecepatan yang lebih untuk
memproses data menjadi
informasi.
informasi.
Teknologi Hyper-Threading
Intel sebagai raksasa teknologi di bidang CPU muncul dengan mengeluarkan sebuah inovasi baru pada tahun 2002, yakni Hyper-Threading. Hyper-Threading hampir mirip dengan Multiple CPU, bedanya pada Hyper-Threading, PC tidak membutuhkan lebih dari satu CPU, hanya sebuah CPU yang sudah mendukung Hyper-Threading.
CPU dengan Hyper-Threading akan dilihat oleh OS
sebagai Multiple CPU, padahal jumlah CPUnya tetap satu saja. Jika masih belum
mengerti saya akan kasih contoh begini, Misalkan kalian punya Processor dual
core dengan teknologi HT, nantinya di OS Windows akan terdeteksi sebagai sebuah
processor quad core (4 inti). Tambahan 2 inti dari prosessor Dual Core tersebut
bersifat logical, karena fisiknya tetap 2 bukan 4.
Tentunya jika dibandingkan dengan prosessor dual
core yang tidak ada teknologi Hyper-Threading, prosessor dual core yang memiliki
Hyper-Threading akan memiliki kecepatan lebih daik.
Munculnya Multi-Core CPU
Pada awalnya memang CPU hanya memiliki satu buah inti CPU ( Core ), namun saat ini kebanyakan prosessor yang diproduksi baik Intel atau AMD memiliki lebih dari satu inti ( Multi-Core ). Memang, CPU pada awalnya hanya punya satu inti tetapi semakin banyak inti ( Multi Core ) pada CPU tentu saja lebih baik.
Multi-Core berbeda dengan Hyper-Threading, jika
Hyper-Threading terlihat "menipu", maka pada CPU yang sudah mendukung
Multi-Core CPU benar-benar memiliki inti tambahan. Contohnya prosessor
Dual-Core benar-benar memiliki 2 buah inti CPU dalam 1 CPU, Quad-Core punya 4
buah inti dan seterusnya.
Jadi kalian yang ingin memiliki 4 Buah CPU (
Quad-Core ) pada PC, kalian tidak harus punya 4 buah socket pada
Motherboard. Cukup 1 buah CPU yang memiliki 4 Buah inti CPU ( Multi-Core CPU ).
Contohnya adalah dibawah ini saat saya mengecek CPU pada PC saya, Prosessor
saya memang hanya Dual Core, tapi karena memiliki teknologi Hyper-Threading,
akan terlihat sebagai 4 buah CPU Logical.
Multi-Core CPU pada saat ini tidak hanya muncul
pada PC, namun mulai merambah tablet-PC hingga Smartphone. Semakin banyak core,
maka semakin banyak perintah yang bisa dilaksanakan oleh CPU tersebut.
CONTOH WINDOW PADA THREAD
One-to-one mapping
Berisi:
identitas
register, stack (user
& kernel), data khusus 1
Struktur data utama:
Executive thread block
(ETHREAD)
Kernel thread block
(KTHREAD)
Thread environment block
(TEB)
ILUSTRASI :
Daftar Pustaka
https://vivimargaretha494.wordpress.com/2015/10/01/thread-pada-sistem-operasi-2/
http://tugasqte.blogspot.co.id/
Ijin Share kakak :)
BalasHapussama aja semua
BalasHapus