Konsep Thread Sistem Operasi
KONSEP THREAD
SISTEM OPERASI
KONSEP THREAD
Thread adalah 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 THREAD
Keuntungan Thread yaitu :
- Responsif. Aplikasi interaktif menjadi tetap responsif meskipun sebagian dari program sedang diblok atau melakukan operasi lain yang panjang. 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. Pembuatan sebuah proses memerlukan pengalokasian memori dan sumber daya. Alternatifnya adalah dengan menggunakan thread, karena 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. Pada Solaris, pembuatan proses memakan waktu 30 kali lebih lama dibandingkan pembuatan thread sedangkan proses context switch 5 kali lebih lama dibandingkan context switching 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. Pada arsitektur processor tunggal, CPU menjalankan setiap thread secara bergantian tetapi hal ini berlangsung sangat cepat sehingga menciptakan ilusi paralel, tetapi pada kenyataanya hanya satu thread yang dijalankan CPU pada satu-satuan waktu.
MULTITHREADING
- Thread pengguna. Thread yang pengaturannya dilakukan oleh pustaka thread pada tingkatan pengguna. Karena pustaka yang menyediakan fasilitas untuk pembuatan dan penjadwalan thread, thread pengguna cepat dibuat dan dikendalikan.
- Thread Kernel. Thread yang didukung langsung oleh kernel. Pembuatan, penjadwalan dan manajemen thread dilakukan oleh kernel pada kernel space. Karena dilakukan oleh sistem operasi, proses pembuatannya akan lebih lambat jika dibandingkan dengan thread pengguna.
Penggunaan swing -> Di interface-nya.
Penggunaan file stream -> I/O ke file-nya
Penggunaan multithreading -> Progress loading /sav
MODEL MULTITTHREADING
Model-Model MultiThreading :
- Model Many-to-One. Model ini 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. Jadi Multiple thread tidak dapat berjalan secara paralel pada multiprosesor. Contoh: Solaris Green Threads dan GNU Portable Threads.
- Model One-to-One. Model ini memetakan setiap thread tingkatan pengguna ke setiap thread. Ia menyediakan lebih banyak concurrency dibandingkan model Many-to-One. Keuntungannya sama dengan keuntungan thread kernel. Kelemahan model ini ialah setiap pembuatan thread pengguna memerlukan tambahan thread kernel. Karena itu, jika mengimplementasikan sistem ini maka akan menurunkan kinerja dari sebuah aplikasi sehingga biasanya jumlah thread dibatasi dalam sistem. Contoh: Windows NT/XP/2000 , Linux, Solaris 9.
- Model Many-to-Many. Model ini memultipleks banyak thread tingkatan pengguna ke thread kernel yang jumlahnya sedikit atau sama dengan tingkatan pengguna. Model ini mengizinkan developer membuat thread sebanyak yang ia mau tetapi concurrency tidak dapat diperoleh karena hanya satu thread yang dapat dijadwalkan oleh kernel pada suatu waktu. Keuntungan dari sistem ini ialah kernel thread yang bersangkutan dapat berjalan secara paralel pada multiprosessor.
Pustaka
thread menyediakan programmer dengan API untuk membuat dan mengelola untaian.
Ada dua cara
utama menerapkan sebuah thread Perpustakaan. Pendekatan pertama adalah
menyediakan perpustakaan sepenuhnya
di ruang pengguna tanpa dukungan kernel. Semua kode dan struktur data untuk
perpustakaan ada di ruang pengguna. Ini berarti
bahwa memohon fungsi dalam hasil perpustakaan dalam fungsi local panggilan di ruang pengguna dan bukan
panggilan sistem.
- 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.
- Menyediakan API di level kernel yang didukung secara langsung oleh sistem operasi. Pemanggilan fungsi call akan melibatkan system call ke kernel.
Pendekatan
kedua adalah untuk mengimplementasikan perpustakaan tingkat kernel yang didukung
langsung oleh sistem operasi. Dalam hal ini, kode
dan struktur data untuk perpustakaan ada di ruang kernel. Meminjam fungsi di API untuk pustaka biasanya menghasilkan
panggilan sistem ke kernel.
Ada tiga pustaka thread
yang sering digunakan saat ini, yaitu: POSIX Pthreads, Java, dan Win32.
Implementasi POSIX standard dapat dengan cara user level dan kernel
level, sedangkan Win32 adalah kernel level. Java API thread dapat
diimplementasikan oleh Pthreads atau Win32.
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.
Pembatalan
thread ada dua yaitu :
- 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
Thread baru dapat dijalankan dengan berbagai
macam penjadwalan. Kebijakan penjadwalanlah yang menentukan setiap proses, di
mana proses tersebut akan ditaruh dalam daftar proses sesuai proritasnya dan
bagaimana ia bergerak dalam daftar proses.
- Process Contention Scope (PCS). Pustaka thread menjadwalkan thread pengguna untuk berjalan pada LWP ( lightweight process) yang tersedia.
- System Contention Scope (SCS). SCS berfungsi untuk memilih satu dari banyak thread, kemudian menjadwalkannya ke satu thread tertentu(CPU / Kernel).
Komentar
Posting Komentar