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 many­to­one ini memetakan beberapa tingkatan pengguna thread hanya ke satu buah kernel thread.


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

Postingan populer dari blog ini

Tugas 5- makalah Konflik Israel Palestina

Manajemen Pengadaan