Pengertian Thread dan Macam-macamnya


"Anak-anak minggu depan laporannya dikumpulin.. dan presentasi yaa  "
Dosen gue nutup kuliah hari ini.. mungkin sebelum jadi dosen, beliau sempet jadi guru TK.. Udah jenggotan gini gue masih dibilang anak-anak. Tapi goodnewsnya gue bisa pulang.. fiuuh

"Gilak.. tugas baru aja dikumpulin udah dapet tugas lagi.. santai-santai dululah.. toh juga masih minggu depan" 

Gak kerasa minggu depan udah lewat.. Wanjirr baru juga selese boker, Eh, udah main lewat aja waktu gue.
Dan pas selese boker gue langsung inget tugas dosen.. njiir

Seketika gue langsung ke warnet langganan

" Bang.. PC gue dah siap? paket malamnya diaktifin bang"
" Tong.. Yang kemaren aja belum lo bayar !!.."
" Ya elah Bang belum bayaran nih.. penting ni Baaang.." gue melas
" Okeh.. okeh!! f*ck.."

 Browsing-browsing.. ceklik.. ceklik, cetak cetak cebreeet..

" Hm.. gitu-gitu oke gue ngerti sekarang.."
Setelah baca-baca di internet, copas sana sini, Gue merasa gak puas.. Yang ada di internet tentang thread itu masih seperti pecahan-pecahan puzzle, absurd dan belum jelas. Hal ini membuat jiwa pharaoh gue bangkit untuk menyatukan puzzle-puzzle itu dan setelah digabungin walaupun gak ada tanda mata di jidat gue tapi kira-kira akhirnya jadi seperti ini:

Sebelum mulai Thread.. Lo harus tau dulu tentang "Proses" vrroh
What The F with prosess?

Proses itu ada 2 macem :

1. Proses berat (heavyweight) disebut proses tradisional
2. Proses ringan (lightweight) disebut THREAD

Thread adalah unit dasar dari utilitas CPU. Di dalamnya terdapat ID thread, program counter, register, dan stack. Dan saling berbagi dengan thread lain dalam proses yang sama.

Keuntungan memakai Thread:

* Tanggap: Multi-threading mengizinkan program untuk terus berjalan walaupun pada bagian program tersebut diblock atau sedang dalam keadaan menjalankan operasi yang lama/panjang. Contohnya multithread web browser dapat mengizinkan pengguna berinteraksi dengan suatu thread ketika suatu gambar sedang diload oleh thread yang lain.
* Pembagian sumber daya: Secara default, thread membagi memori dan sumber daya dari proses. Keuntungan dari pembagian kode adalah aplikasi mempunyai perbedaan aktifitas thread dengan alokasi.
* Ekonomis: Mengalokasikan memori dan sumber daya untuk membuat proses itu sangat mahal. Alternatifnya thread membagi sumber daya dari proses, Jadi lebih ekonomis.
* Pemberdayaan arsitektur multiprosesor: Keuntungann dari multithreading dapat ditingkatkan dengan arsitektur multiprosesor, dimana setiap thread dapat berjalan secara parallel 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.

Selain itu lo juga musti tau:
1. User thread adalah pengelolaan thread yang dilakukan oleh user level (pengguna)
2. Kernel thread adalah pengelolaan thread yang dilakukan oleh kernel komputer sehingga user tidak dapat menginterupsi.

Macem-macem Thread
Single threading : proses hanya mengeksekusi satu thread dalam satu waktu.
Multi-threading : proses dapat mengeksekusi sejumlah thread dalam satu waktu.

Model MultiTrading:
One to one: Memetakan setiap user thread ke dalam 1 kernel threa.



Kelebihan: Model one-to-one lebih sinkron daripada model many-to-one karena mengizinkan thread lain untuk berjalan ketika suatu thread membuat pemblokingan terhadap sistem pemanggilan, hal ini juga membuat multiple thread bisa berjalan secara parallel dalam multiprosesor .
Kekurangan: Dalam pembuatan user thread diperlukan pembuatan korespondensi thread pengguna. Karena dalam proses pembuatan kernel thread dapat mempengaruhi kinerja dari aplikasi, maka kebanyakan dari implementasi model ini membatasi jumlah thread yang didukung oleh sistem.
Model ini ada pada Windows NT dan OS/2.

One to Many: memetakan beberapa tingkatan thread user hanya ke satu buah kernel thread.

Kelebihan: Managemen proses thread dilakukan oleh (di ruang) pengguna, sehingga menjadi lebih efisien.
Kekurangan: multi thread tidak dapat berjalan atau bekerja secara paralel di dalam multiprosesor karena hanya satu thread saja yang bisa mengakses kernel dalam suatu waktu.

Model ini ada pada Solaris Green dan GNU Portable.

Many to Many : Membolehkan setiap tingkatan user thread dipetakan ke banyak kernel thread.
Kelebihan: 
* Developer dapat membuat user thread sebanyak yang diperlukan dan kernel thread yang bersangkutan dapat berjalan secara parallel pada multiprocessor.
* Dan ketika suatu thread menjalankan blocking system call maka kernel dapat menjadwalkan thread lain untuk melakukan eksekusi.
Kekurangan:
* Developer dapat membuat user thread sebanyak mungkin, tetapi konkurensi tidak dapat diperoleh karena hanya satu thread yang dapat dijadwalkan oleh kernel pada suatu waktu.
Model ini ada pada Solaris, IRIX, dan Digital UNIX.

Gimana? paham anak-anak..? :)

Paham Om.. Trus laporan lo gimana ka'?

Laporan gue? Tenang udah gue kumpulin.. nilai temen-temen bejat gue juga terselamatkan..

Ilmu kepepet gue emang ampuh..

Selain thread materi gak jelas yang lain adalah Sinkronisasi
Lo bisa baca : Sinkronisasi Sistem Operasi

-fin-
Previous
Next Post »

11 comments

Write comments
Andhika RK
AUTHOR
November 20, 2014 at 10:33 PM delete

Thanks Bro.. Sebenernya itu post belum kelar tapi gak sengaja ke klik publish hehehe

Reply
avatar
Deris
AUTHOR
November 3, 2016 at 10:18 PM delete

bisa jadi referensi tugas kuliah ane nih, thanks bro

Reply
avatar
BimoAN
AUTHOR
March 23, 2017 at 2:57 PM delete

Mantap, Gan. Sangat Rinci Penjelasannya ... Cukup Memuaskan Dahaga ane Terhadap Materi Ini

Reply
avatar
Unknown
AUTHOR
June 2, 2017 at 10:04 AM delete

Keren gan & kocak mantAb

Reply
avatar
Unknown
AUTHOR
December 12, 2017 at 12:27 PM delete

artikel ini sangat membantu
jangan lupa kunjungi
My blog

Reply
avatar
December 15, 2017 at 5:07 PM delete

Penjelasan yang sangant rinci
SALAM ANAK KULIAH
My blog

Reply
avatar
Unknown
AUTHOR
March 26, 2019 at 10:56 PM delete

Terima kasih atas pencerahan nya

Reply
avatar