SELAMAT DATANG DI RAHMATANG BLOG

THREADS

Pertemuan 9 - Threads

Definisi Thread

Sebuah thread merupakan sebuah pengontrol aliran program. Untuk lebih mudahnya, bayangkanlah thread sebagai sebuah proses yang akan dieksekusi didalam sebuah program tertentu. Penggunaan sistem operasi modern saat ini telah mendukung kemampuan untuk menjalankan beberapa program. Misalnya, pada saat Anda mengetik sebuah dokumen di komputer Anda dengan menggunakan text editor, dalam waktu yang bersamaan Anda juga dapat mendengarkan musik, dan surfing lewat internet di PC Anda. Sistem operasi yang telah terinstal dalam computer Anda itulah yang memperbolehkan Anda untuk menjalankan multitaskting. Seperti itu juga sebuah program (ibaratkan di PC Anda), ia juga dapat mengeksekusi beberapa proses secara bersama-sama(ibaratkan beberapa aplikasi berbeda yang bekerja pada PC Anda). Sebuah contoh aplikasi adalah HotJava browser yang memperbolehkan Anda untuk browsing terhadap suatu page, bersamaan dengan mendownload object yang lain, misalnya gambar, memainkan animasi, dan juga file audio pada saat yang bersamaan.


State dari Thread

Sebuah thread memungkinkan untuk memiliki beberapa state:
  1. Running, Sebuah thread yang pada saat ini sedang dieksekusi dan didalam control dari CPU.
  2. Ready to run, Thread yang sudah siap untuk dieksekusi, tetapi masih belum ada kesempatan untuk melakukannya.
  3. Resumed, Setelah sebelumnya di block atau diberhentikan sementara, state ini kemudian siap untuk dijalankan.
  4. Suspended, Sebuah thread yang berhenti sementara, dan kemudian memperbolehkan CPU untuk menjalankan thread lain bekerja.
  5. Blocked, Sebuah thread yang di-block merupakan sebuah thread yang tidak mampu berjalan, karena ia akan menunggu sebuah resource tersedia atau sebuah event terjadi.
Prioritas

Untuk menentukan thread mana yang akan menerima control dari CPU dan akan dieksekusi pertama kali, setiap thread akan diberikan sebuah prioritas. Sebuah prioritas adalah sebuah nilai integer dari angka 1 sampai dengan 10, dimana semakin tinggi prioritas dari sebuah thread, berarti semakin besar kesempatan dari thread tersebut untuk dieksekusi terlebih dahulu.

Sebagai contoh, asumsikan bahwa ada dua buah thread yang berjalan bersama-sama. Thread pertama akan diberikan prioritas nomor 5, sedangkan thread yang kedua memiliki prioritas 10. Anggaplah bahwa thread pertama telah berjalan pada saat thread kedua dijalankan. Thread kedua akan menerima control dari CPU dan akan dieksekusi pada saat thread kedua tersebut memiliki prioritas yang lebih tinggi dibandingkan thread yang pada saat itu tengah berjalan. Salah satu contoh dari skenario ini adalah context switch.

Sebuah context switch terjadi apabila sebagian dari thread telah dikontrol oleh CPU dari thread yang lain. Ada beberapa skenario mengenai bagaimana cara kerja dari context switch. Salah satu skenario adalah sebuah thread yang sedang berjalan memberikan kesempatan kepada CPU untuk mengontrol thread lain sehingga ia dapat berjalan. Dalam kasus ini, prioritas tertinggi dari thread adalah thread yang siap untuk menerima kontrol dari CPU. Cara yang lain dari context switch adalah pada saat sebuah thread yang sedang berjalan diambil alih oleh thread yang memiliki prioritas tertinggi seperti
yang telah dicontohkan sebelumnya.

Hal ini juga mungkin dilakukan apabila lebih dari satu CPU tersedia, sehingga lebih dari satu prioritas thread yang siap untuk dijalankan. Untuk menentukan diantara dua thread yang memiliki prioritas sama untuk menerima kontrol dari CPU, sangat bergantung kepada sistem operasi yang digunakan. Windows 95/98/NT menggunakan time-slicing dan round-robin untuk menangani kasus ini. Setiap thread dengan prioritas yang sama akan diberikan sebuah jangka waktu tertentu untuk dieksekusi sebelum CPU mengontrol thread lain yang memiliki prioritas yang sama. Sedangkan Solaris, ia akan membiarkan sebuah thread untuk dieksekusi sampai ia menyelesaikan tugasnya atau sampai ia secara suka rela membiarkan CPU untuk mengontrol thread yang lain.


Materi lengkapnya, download disini
SHARE

Rahmatang Lil Alamin

Hay sahabat Blogger. Terima kasih sudah berkunjung di blog saya.. Semoga bermanfaat yah :)

  • Image
  • Image
  • Image
  • Image
  • Image
    Blogger Comment
    Facebook Comment

0 komentar:

Posting Komentar

luvne.com ayeey.com cicicookies.com mbepp.com tipscantiknya.com kumpulanrumusnya.comnya.com