Kamis, 27 November 2014

Thread


1. Definisi 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.

2. Perbedaan Thread dan Proses

a. Ciri-ciri Thread

Dalam sebuah thread pada sebuah proses terdapat :

  • Thread state
  • Saved Thread Context saat tidak berjalan (Individual Program Counter)
  • Execution Stack
  • Local Variables
  • Akses ke memory dan resource yang dimiliki oleh prosesnya
  • alamat atau IP address digunakan secara bersama-sama dari proses yang menciptakannya.
  • Memiliki akses langsung ke segmen data dari prosesnya.
  • Dapat saling berkomunikasi dengan thread lain dalam satu proses
  • Perubahan pada thread utama seperti pembatalan atau perubahan prioritas dapat mempengaruhi tingkah laku thread lain dalam satu proses
b. Ciri-ciri Proses
  • Memiliki ruang/space sendiri di memori untuk menampung process image 
  • Tidak dapat mengakses ruang lain di memori yang menjadi milik proses lain
  • Proses mencakup program counter, yaitu sebuah stack untuk menyimpan alamat dari instruksi yang selanjutnya akan di eksekusi dan di registrasi.
  • Memiliki ruang alamat atau IP address masing-masing
  • Dari satu proses dengan proses lainnya harus menggunakan komunikasi.

3. Keuntungan Thread

  • Waktu pembuatan yang lebih cepat 
  • Waktu pemberhentian yang lebih cepat 
  • Waktu pergantian antar thread lebih cepat daripada antar proses 
  • Komunikasi antar thread lebih efisien 

4. Thread State

  1. Spawn : Thead muncul atau dibuat oleh proses / OS
  2. Block : Thread menunggu sebuah event
  3. Unblock : ketika event yang ditunggu oleh thead muncul
  4. Finish : Thread selesai . Register context dan stack yang digunakan dibebaskan.

5. Implementasi Thread

a. User Level Thread


Ciri - ciri :
  • Kernel tidak mengetahui keberadaan thread 
  • Thread management dilakukan oleh aplikasi user level/library
Keuntungan :
  • Thread switching tidak membutuhkan kernel mode privileges 
  • Dapat berjalan di berbagai OS
Kerugian : 
  • Satu thread blocked, thread lain pada proses yang sama juga blocked 
  • Dua thread pada proses yang sama tidak dapat berjalan bersamaan pada dua prosesor
b, Kernel Level Thread
Ciri-ciri :
  • Thread management dilakukan oleh kernel
Keuntungan :
  • Thread pada proses yang sama dapat dijalankan pada prosesor yang berbeda 
  • Kernel routines juga dapat multithreaded
Kerugian :
  • Thread switching antar proses yang sama tetap melibatkan kernel 
  • Dapat memperlambat
c. Hybrid Level Thread
Ciri-ciri :
  • Ada sejumlah kernel level thread yang dipetakan ke sejumlah user level thred
  • Pembuatan thread, scheduling, sinkronisasi dilakukan di user space

0 komentar:

Posting Komentar