Makalah Sistem Operasi Thread
Makalah Sistem Operasi Thread
Makalah Sistem Operasi Thread
THREAD
Nama kelompok :
AWRESTI ILMA F.
(DPA/2974)
MEILISTA MITO E.
(DPA/3112)
MELISA DIAH
(DPA/0000)
NURHANA TRI U.
(DPA/3190)
SEKOLAH VOKASI
PRODI KOMPUTER & SISTEM INFORMASI
YOGYAKARTA 2011
KONSEP THREAD
I.
Pengertian Thread
Thread atau yang disebut proses ringan (lightweight) adalah unit dasar dari
utilisasi CPU. Di dalamnya terdapat ID thread, program counter, register, dan stack. Dan
saling berbagi dengan thread lain dalam proses yang sama. Dengan menggunakan
fasilitas thread , CPU dapat secara intensif membagi diantara per thread tanpa
menggunakan manajemen memori.
Meskipun context switch pada thread masih memerlukan register set switcj tetapi
pembuatan thread lebih murah dibandingkan context switch diantara heavy-weight.
II.
III.
pengeksekusian yang mengizinkan beberapa thread terjadi dalam sebuah proses, saling
berbagi sumber daya tetapi dapat dijalankan secara independen.
Dalam sistem yang menerapkan multithreading memiliki 4 keuntungan,diantara :
1. Responsi
Membuat aplikasi yang interaktif menjadi multithreading dapat
membuat sebuah program terus berjalan meskipun sebagian dari program
tersebut diblok atau melakukan operasi yang panjang, karena itu dapat
meningkatkan respons kepada pengguna. Sebagai contohnya dalam web
browser yang multithreading, sebuah thread dapat melayani permintaan
pengguna sementara thread lain berusaha menampilkan image.
2. Berbagi sumber daya
Thread berbagi memori dan sumber daya dengan thread lain yang
dimiliki oleh proses yang sama. Keuntungannya adalah mengizinkan
sebuah aplikasi untuk mempunyai beberapa thread yang berbeda dalam
lokasi memori yang sama.
3. Ekonomi
Dalam pembuatan sebuah proses banyak dibutuhkan pengalokasian
memori dan sumber daya. Alternatifnya adalah dengan penggunaan
thread, karena thread berbagi memori dan sumber daya proses yang
memilikinya maka akan lebih ekonomis untuk membuat dan context
switch thread. Akan susah untuk mengukur perbedaan waktu antara proses
dan thread dalam hal pembuatan dan pengaturan, tetapi secara umum
pembuatan dan pengaturan proses lebih lama dibandingkan thread. Pada
Solaris, pembuatan proses lebih lama 30 kali dibandingkan pembuatan
thread, dan context switch proses 5 kali lebih lama dibandingkan context
switch thread.
4. Utilisasi arsitektur multiprocessor
menghasilkan
program
yang
lebih
kompleks.
IV.
Model multithreading
Beberapa terminologi yang akan di bahas , yaitu :
User thread didukung di atas kernel dan diimplementasi oleh thread library
pada user level. Library menyediakan fasilitas untuk pembuatan thread,
penjadualan thread, dan managemen thread tanpa dukungan dari kernel.
Adapun kelemahannya yang dialami yaitu apabila kernelnya merupakan
thread tunggal maka apabila salah satu user-level thread menjalankan blocking
system call maka akan mengakibatkan seluruh proses diblok walau pun ada thread
lain yang dapat jalan dalam aplikasi tersebut
Kernel tread
Kernel thread didukung langsung oleh sistem operasi. Pembuatan,
penjadualan, dan managemen thread dilakukan oleh kernel pada kernel space.
Pembuatan dan pengaturan kernel thread lebih lambat dibandingkan user thread.
Keuntungannya adalah jika sebuah thread menjalankan blocking system
call maka kernel dapat menjadualkan thread lain di aplikasi untuk melakukan
eksekusi. Pada lingkungan multiprocessor, kernel dapat menjadual thread-thread
pada processor yang berbeda.
Contoh sistem operasi yang mendukung kernel thread adalah Windows
NT, Solaris, Digital UNIX.
V.
Tread pools
Pada web server yang menerapkan multithreading ada dua masalah yang timbul:
Ukuran waktu yang diperlukan untuk menciptakan thread yang melayani
permintaan yang diajukan pada kenyataannya thread dibuang seketika sesudah ia
menyelesaikan tugasnya.
Pembuatan thread yang tidak terbatas jumlahnya dapat menurunkan performa dari
sistem.
Solusinya adalah dengan penggunaan Thread Pools, yaitu sekumpulan thread yang
mengantri untuk mengerjakan tugas Cara kerjanya adalah dengan membuat beberapa
thread pada proses startup dan menempatkan mereka ke pools, dimana mereka duduk
diam dan menunggu untuk bekerja. Jadi, ketika server menerima permintaan, ia akan
membangunkan thread dari pool dan jika thread tersedia maka permintaan tersebut akan
dilayani. Ketika thread sudah selesai mengerjakan tugasnya maka ia kembali ke pool dan
menunggu pekerjaan lainnya. Bila tidak ada thread yang tersedia pada saat dibutuhkan
maka server menunggu sampai ada satu thread yang bebas.
VI.
Pembatalan Thread
Thread Cancellation ialah pembatalan thread sebelum tugasnya selesai. Misalnya
hendak mematikan Java Virtual Machine (JVM) pada program Java. Maka sebelum JVM
dimatikan seluruh thread yang berjalan harus dibatalkan terlebih dahulu. Contoh lain
adalah pada 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:
a. Asynchronous cancellation. Suatu thread seketika itu juga membatalkan target
thread.
VII.
Penjadwalan Thread
Begitu dibuat, 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 tersebut.
Untuk menjadwalkan thread, sistem dengan model multithreading many to many
atau many to one menggunakan:
VIII.
Thread Linux
Ketika pertama kali dikembangkan, Linux tidak didukung dengan threading di
dalam kernelnya,tetapi dia mendukung proses-proses sebagai entitas yang dapat