Laman

Rabu, 25 Oktober 2017

Contoh Thread Windows

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.



2.Single-Threading dan Multi-Threading Single



Threading adalah sebuah lightweight process (proses sederhana) yang mempunyai thread tunggal yang berfungsi sebagai pengendali/ controller. Multi-Threading adalah proses dengan thread yang banyak dan mengerjakan lebih dari satu tugas dalam satu waktu.

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.
2.     One-to-One



·         Memetakan setiap thread tingkatan pengguna ke thread kernel.
·         Model ini menyediakan lebih banyak concurrency dibandingkan model Many-to-One.
·         D3 KomSI UGM Sistem Operasi

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

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.


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/


2 komentar: