Thread adalah
unit terkecil dalam suatu proses yang bisa dijadwalkan oleh sistem operasi.
Merupakan sebuah status eksekusi (ready, running, suspend, block, queue, dll).
Unit dasar dari dari sistem utilisasi pada processor (CPU). Keuntungan Thread :
· ¡ Tanggap: Multithreading
mengizinkan program untuk berjalan terus walau pun pada bagian program tersebut
di block 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-threading :
Ø 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 dikenal 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 threadyang 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:
Ø Asynchronous cancellation. Suatu thread seketika itu juga
membatalkan target thread.
Ø 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.
0 komentar:
Posting Komentar