Thread adalah unit terkecil dalam suatu operasi yang bisa
dijadwalkan oleh sistem operasi. Thread merupakan sebuah status eksekusi (ready,
running suspend, block, queque, dll). Unit dasar dari sistem utilisasi pada
processor (CPU).
Keuntungan Thread
·
Tanggap : Multithreading mengizinkan
program untuk berjalan terus walau pun pada bagian program tersebut diblock
atau sedang dalam keadaan menjalankan operasi yang lama/ panjang. Sebagai
contoh, multithread web browser dapat mengizinkan pengguna berinteraksi dengan
suatu thread ketika suatu gambar sedang diload oleh thread yang lain.
·
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 memori
yang sama.
·
Ekonomis: Mengalokasikan memori dan sumber
daya untuk membuat proses adalah sangat mahal. Alternatifnya, karena thread
membagi sumber daya dari proses, ini lebih ekonomis untuk membuat threads.
Model Multi-Threding
1. Model
Many-to-One.
2. Model
One-to-One.
3. Model
Many-to-Many.
·
Many-to-One
Memetakan
beberapa thread tingkatan pengguna ke sebuah thread tingkatan kernel.
Pengaturan thread dilakukan dalam ruang pengguna, sehingga efisien. Hanya satu
thread pengguna yang dapat mengakses thread kernel pada satu saat.
·
One-to-One
Memetakan
setiap thread tingkatan pengguna ke thread kernel. Model ini menyediakan lebih
banyak concurrency dibandingkan model Many-to-One. D3 KomSI UGM Sistem Operasi
·
Many-to-Many
Mengelompokkan
banyak thread pengguna untuk dipetakan ke
thread
kernel yang jumlahnya lebih sedikit atau sama dengan tingkatan pengguna.
Mengijinkan sistem operasi untuk membuat sejumlah thread kernel.
Pustaka Thread
Pustaka
Thread atau yang lebih familiar dikena dengan Thread Library bertugas untuk
menyediakan API untuk programmer dalam menciptakan dan memanage thread. Ada dua
cara dalam mengimplementasikan pustaka thread :
a.
Menyediakan API dalam level pengguna tanpa
dukungan dari kernel sehingga pemanggilan fungsi tidak melalui system call.
Jadi, jika kita memanggil fungsi yang sudah ada di pustaka, maka akan
menghasilkan pemanggilan fungsi call yang sifatnya lokal dan bukan system call.
b.
Menyediakan API di level kernel yang
didukung secara langsung oleh sistem operasi. Pemanggilan fungsi call akan
melibatkan system call ke kernel.
Pembatalan Thread
Thread
Cancellation ialah pembatalan thread sebelum tugasnya selesai. Umpamanya, jika
dalam program Java hendak mematikan Java Virtual Machine (JVM). Sebelum JVM
dimatikan, maka seluruh thread yang berjalan harus dibatalkan terlebih dahulu.
Contoh lain adalah di masalah search, apabila sebuah thread mencari sesuatu dalam
database dan menemukan serta mengembalikan hasilnya, thread sisanya akan
dibatalkan. Thread yang akan diberhentikan biasa disebut target thread.
Pemberhentian
target Thread dapat dilakukan dengan 2 cara :
1.
Asynchronous cancellation. Suatu thread
seketika itu juga membatalkan target thread.
2.
Deferred cancellation. Suatu thread secara
periodik memeriksa apakah ia harus batal, cara ini memperbolehkan target thread
untuk membatalkan dirinya secara terurut.
Penjadwalan Thread
Penjadwalan
(scheduling). Penjadwalan berkaitan
dengan permasalahan memutuskan proses mana yang akan dilaksanakan dalam suatu
sistem. Proses yang belum mendapat jatah alokasi dari CPU akan mengantri di
ready queue. Algoritma penjadwalan berfungsi untuk menentukan proses manakah
yang ada di ready queue yang akan dieksekusi oleh CPU.
Tidak ada komentar:
Posting Komentar