Konsep Thread Sistem Operasi
Konsep
Thread Sistem Operasi
Konsep
Thread
Thread
adalah unit terkecil dalam suatu proses yang bisa dijadwalkan oleh sistem
operasi. Merupakan sebuah status eksekusi (ready, running, suspend, block,
queue, dll) kadang disebut sebagai proses ringan (lightweight). Unit dasar dari
dari sistem utilisasi pada processor (CPU). Dalam thread terdapat: ID Thread,
Program Counter, Register dan Stack. Sebuah thread berbagi code section, data
section dan resource sistem operasi dengan thread yang lain yang memiliki
proses yang sama.
Keuntungan
Tread
- Responsif: Umpamanya, sebuah thread dari web browser dapat melayani permintaan pengguna sementara thread yang lain berusaha menampilkan gambar.
- Berbagi sumber daya: Beberapa thread yang melakukan proses yang sama akan berbagi sumber daya. Keuntungannya adalah mengizinkan sebuah aplikasi untuk mempunyai beberapa thread yang berbeda dalam lokasi memori yang sama.
- Ekonomis: Thread membagi memori dan sumber daya yang dimilikinya sehingga lebih ekonomis untuk membuat thread dan context switching thread. Akan susah mengukur perbedaan waktu antara thread dan switch, tetapi secara umum pembuatan dan pengaturan proses akan memakan waktu lebih lama dibandingkan dengan thread.
- Utilisasi arsitektur multiprosesor: Keuntungan dari multithreading dapat sangat meningkat pada arsitektur multiprosesor, dimana setiap thread dapat berjalan secara paralel di atas procesor yang berbeda.
Model
Multi-Threading
1.
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.
2.
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
3.
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:
- Menyediakan API dalam level pengguna tanpa dukungan dari kernel sehingga pemanggilan fungsi tidak melalui system call. Jika memanggil fungsi yang sudah ada di pustaka, maka akan menghasilkan pemanggilan fungsi call yang sifatnya lokal dan bukan system call.
- Menyediakan API di level kernel yang didukung secara langsung oleh sistem operasi. Pemanggilan fungsi call akan melibatkan system call ke kernel.
Cancellation
atau Pembatalan Thread
Thread
cancellation ialah pemberhentian thread sebelum tugasnya selesai. Thread yang akan
diberhentikan biasa disebut target thread. Pemberhentian target thread dapat
terjadi melalui dua cara yang berbeda:
- Asynchronous cancellation: suatu thread seketika itu juga memberhentikan target thread.
- Defered cancellation: target thread secara perodik memeriksa apakah dia harus berhenti, cara ini memperbolehkan target thread untuk memberhentikan dirinya sendiri secara terurut.
Penjadwalan
Thread
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 quque yang akan di eksekusi oleh CPU.
Komentar
Posting Komentar