CONTOH THREAD PADA WINDOWS
Thread
atau lighweight process(LWP), adalah Suatu
unit dasar dari CPU utilization yang berisi program counter, kumpulan register,
dan ruang stack. Thread akan bekerja sama dengan thread lainnya dalam hal
penggunaan bagian kode, bagian data, dan resource sistem operasi, seperti open
file dan sinyal secara kolektif yang disebut dengan task.
Thread
dibagi menjadi dua Single-Threading adalah
sebuah lightweight process (proses sederhana) yang mempunyai thread tunggal
yang berfungsi sebagai pengendali/ controller dan Multi-Threading adalah
proses dengan thread yang banyak dan mengerjakan lebih dari satu tugas dalam
satu waktu.
MODEL MULTI-THREADING
1. Many-to-One
Model manytoone ini memetakan
beberapa tingkatan pengguna thread hanya ke satu buah kernel thread.
2. One-to-One
Model onetoone memetakan setiap
thread pengguna ke dalam satu kernel thread.
3. Many-to-Many
Beberapa tingkatan thread
pengguna dapat menggunakan jumlah kernel thread yang lebih kecil atau sama
dengan jumlah thread pengguna.
Thread
cancellation
Thread cancellation/ pembatalan
thread ialah pemberhentian thread sebelum tugasnya selesai. Thread yang akan
diberhentikan disebut sebagai target thread. Pembatalan Thread
terdiri dari 2 jenis. Asynchronous cancellation suatu
thread seketika itu juga memberhentikan target thread, dan Deffered cancellation target
thread secara perodik memeriksa apakah dia harus berhenti, cara ini memperbolehkan
target thread untuk memberhentikan dirinya sendiri secara terurut.
THREAD
PADA WINDOWS
Windows mengunakan Win32 API sebagai API utama dalam
hampir semua sistem operasi Microsoft. Selain itu windows mengimplementasi
model relasi One-to-One, dimana terdapat satu kernel thread yang berasosiasi
dengan masing – masing user thread. Thread pada windows secara umum mempunyai
komponen sebagai berikut :
- Thread ID
- Register set
- User stack dan kernel stack
- Private storage area.
Register set, stacks dan private
data storage disebut sebagai context dari sebuah thread. Struktur data utama
dari sebuah thread :
- ETHREAD (executive thread block)
- KTHREAD (kernel thread block)
- TEB (thread environment block)
- ETHREAD (executive thread block)
Bagian penting dari ETHREAD
adalah KTHREAD, Process ID, Thread start address. Blok KTHREAD
merupakan pointer yang merujuk pada kernel thread (KTHREAD), Process ID juga
merupakan suatu pointer yang menunjuk pada proses utama yang memiliki thread
tersebut dan Thread start address adalah alamat dari rutin awal thread.
- KTHREAD (kernel thread block)
KTHREAD menyimpan informasi yang dibutuhkan oleh kernel untuk
dapat melakukan penjadwalan dan sinkronisasi thread. Pada KTHREAD juga terdapat
kernel stack, yang mana akan digunakan ketika thread berjalan pada kernel mode.
Juga terdapat pointer yang menunjuk TEB.
- TEB (thread environment block)
TEB menyimpan informasi image
loader dan beberapa DLLs dari windows. Komponen - komponen ini berjalan pada
user mode, maka dibutuhkan suatu struktur data yang dapat
dimanipulasi(writable) pada user mode. Oleh karena itu, tidak seperti KTHREAD
dan ETHREAD yang berada pada kernel space, TEB berada pada user space.
Komentar
Posting Komentar