Lime Electricity Lightning
Thread.


A.     Pengertian Thread.
Thread adalah prinsip yang memperbolehkan sebagian dari program untuk berjalan secara independent dengan sebagian program lainnya. Dalam Threading anda dapat menjalankan beberapa pointer (alamat dalam komputer) sekaligus. Artinya dua atau lebih bagian dari kode dapat dijalankan secara simultan.

B.     Macam-Macam Thread.

Hasil gambar untuk Sistem Thread

01.)  Single Threading.
Proses hanya mengeksekusi satu thread dalam satu waktu.
02.)  Multi Threading.
Proses dapat mengeksekusi sejumlah thread dalam satu waktu.


C.     Model MultiTrading.
01.)  One to one.
Memetakan setiap user thread ke dalam 1 kernel threa. Model ini ada pada Windows NT dan OS/2.

 

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.

02.)  One to Many.
Memetakan beberapa tingkatan thread user hanya ke satu buah kernel thread. Model ini ada pada Solaris Green dan GNU Portable.


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.

03.)  Many to Many.
Membolehkan setiap tingkatan user thread dipetakan ke banyak kernel thread. Model ini ada pada Solaris, IRIX, dan Digital UNIX.


Kelebihan.
a.)  Developer dapat membuat user thread sebanyak yang diperlukan dan kernel thread yang bersangkutan dapat berjalan secara parallel pada multiprocessor.
b.) 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.

D.     Thread dalam Sistem Operasi.
01.)  Sistem operasi telah mendukung proses multithreading.
02.)  Setiap sistem operasi memiliki konsep tersendiri dalam pengimplementasiannya.
03.)  Sistem operasi dapat mendukung thread pada tingkatan kernel maupun tingkatan pengguna.

E.      Keuntungan dan Kerugian Sistem Thread.
01.)  Keuntungan.
a.)    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.

b.)   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.

c.)    Ekonomis.
Mengalokasikan memori dan sumber daya untuk membuat proses itu sangat mahal. Alternatifnya thread membagi sumber daya dari proses agar menjadi lebih ekonomis.

d.)   Pemberdayaan arsitektur multiprosesor.
Keuntungan 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.

02.)  Kerugian.
a.) Multiple thread bisa mengganggu satu sama lain saat berbagi hardware resource, misalnya chace memory.
b.) 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.
c.)    Harus ada dukungan dari hardware ataupun software untuk melakukan multi-Threading.


Referensi.

Tidak ada komentar:

Posting Komentar