Sistem Operasi Thread

BAB II
PEMBAHASAN


2.1.   PENGERTIAN THREAD


Thread dalam sistem operasi dapat diartikan sebagai sekumpulan perintah (instruksi) yang dapat dilaksanakan (dieksekusi) secara sejajar dengan ulir lainnya, dengan menggunakan cara time slice (ketika satu CPU melakukan perpindahan antara satu ulir ke ulir lainnya) atau multiprocess (ketika ulir-ulir tersebut dilaksanakan oleh CPU yang berbeda dalam satu sistem). 
Ulir sebenarnya mirip dengan proses, tapi cara berbagi sumber daya antara proses dengan ulir sangat berbeda. Multiplethread dapat dilaksanakan secara sejajar pada sistem komputer. Secara umum multithreading melakukan time-slicing (sama dengan time-division multipleks), di mana sebuah CPU bekerja pada ulir yang berbeda, di mana suatu kasus ditangani tidak sepenuhnya secara serempak, untuk CPU tunggal pada dasarnya benar-benar melakukan sebuah pekerjaan pada satu waktu.
Thread saling berbagi bagian program, bagian data dan sumber daya sistem operasi dengan thread lain yang mengacu pada proses yang sama. Thread terdiri atas ID thread, program counter, himpunan register, dan stack. Dengan banyak kontrol thread proses dapat melakukan lebih dari satu pekerjaan pada waktu yang sama.

2.2.  MODEL MULTITHREAD

Beberapa terminologi yang akan di bahas , yaitu :

·         User (pengguna) thread
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.
a.         Berdasarkan Pemetaan Thread
Model multithreading berdasarkan dengan pemetaan dibedakan menjadi tiga bagian, yaitu:
1)        Many to One
Model ini memetakan beberapa thread tingkatan user ke   sebuah  thread   tingkatan   kernel. Pengaturan  thread   dilakukan dalam   ruang   user   sehingga   efisien.   Hanya   satu  thread   user   yang dapat mengakses thread kernel pada satu saat. Jadi Multiple thread tidak dapat berjalan secara paralel pada multiprosesor. Contoh dari many to one adalah Solaris Green Threads dan GNU Portable Threads. Model Many to One ditunjukkan pada gambar 2.3.
Gambar 2.3.  Many to One

2)        One to One
Model ini memetakan setiap thread tingkatan user ke setiap thread. One to One menyediakan lebih banyak concurrency dibandingkan model Many to One. Keuntungannya sama dengan keuntungan thread  kernel. Kelemahan model ini ialah  setiap pembuatan  thread user memerlukan tambahan thread kernel. Karena itu, jika  mengimplementasikan sistem ini maka akan menurunkan kinerja dari sebuah aplikasi sehingga biasanya jumlah thread dibatasi dalam sistem. Adapun contoh dari one to one, yaitu Windows NT/XP/2000, Linux, Solaris 9. Gambar 2.4. menunjukkan model One to One.
Gambar 2.4. One to One

3)        Many to Many
Model ini memultipleks banyak thread tingkatan user ke thread kernel yang jumlahnya sedikit atau sama dengan tingkatan user. Model ini mengizinkan developer membuat thread sebanyak yang developer inginkan 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. Model Many to Many ditunjukkan pada gambar dibawah ini.
Gambar 2.5. Many to Many


Jenis-Jenis Proses Thread
Pada proses thread terdapat dua jenis thread, yaitu:
1.      Single Thread Process
Sebuah proses tradisional atau heavyweight process mempunyai single thread yang berfungsi sebagai pengendali. Dapat diartikan sebagai proses yang bekerja secara berurutan sesuai dengan urutan masing-masing thread (terstruktur) dan hanya mengerjakan satu tugas dalam satu waktu. Di bawah ini merupakan gambar single thread.
Gambar 2.1. Single Thread
2.      Multithread Process
Merupakan satu atau beberapa thread yang dijalankan secara  bersamaan (multiproses), dimana masing-masing thread tersebut dijalankan pada jalur masing-masing. Setiap thread pada multithread menjalankan kode atau script program secara berurutan. Multithread dapat diartikan juga sebagai suatu proses dengan thread banyak dapat mengerjakan lebih dari satu tugas pada satu satuan waktu.
Multithread sering pula disebut dengan multiproses atau multitasking pada sistem operasi. Gambar multithread ditunjukkan pada gambar 2.2.
Gambar 2.2. Multitread

Banyak perangkat lunak yang berjalan pada PC modern dirancang secara multithreading. Sebuah aplikasi biasanya diimplementasi sebagai   proses yang terpisah dengan beberapa thread yang berfungsi sebagai pengendali. Contohnya sebuah  web browser  mempunyai thread untuk   menampilkan gambar atau tulisan sedangkan thread yang lain berfungsi sebagai penerima data dari network.
Kadang kala ada situasi dimana sebuah aplikasi diperlukan untuk menjalankan beberapa tugas yang serupa. Sebagai contohnya sebuah web server dapat mempunyai ratusan klien yang mengaksesnya secara concurrent. Kalau web server berjalan sebagai proses yang hanya mempunyai single thread maka ia hanya dapat melayani satu klien pada pada  satu satuan waktu.
Bila  ada   klien lain   yang   ingin   mengajukan permintaan maka ia  harus menunggu   sampai    klien  sebelumnya  selesai  dilayani. Solusinya   adalah dengan membuat web server menjadi multithreading. Dengan ini maka sebuah web server akan membuat thread yang akan mendengar permintaan klien, ketika permintaan lain diajukan maka web server akan menciptakan thread lain yang akan melayani permintaan tersebut.

2.3.   KEUNTUNGAN THREAD


Terdapat empat keuntungan utama dari program yang multithreading, yaitu sebagai berikut:

1.      Responsiveness
Membuat aplikasi yang interaktif menjadi multithreading dapat   membuat sebuah program terus berjalan meski pun sebagian dari  program tersebut diblok atau melakukan operasi yang panjang, karena    itu dapat meningkatkan respons kepada user. Sebagai contohnya dalam web browser yang multithreading, sebuah thread dapat melayani permintaan user sementara thread lain berusaha menampilkan image.
2.      Resource sharing

Thread berbagi memori dan sumber daya dengan thread lain yang dimiliki oleh proses yang sama. Keuntungan dari berbagi kode adalah mengizinkan sebuah aplikasi untuk mempunyai beberapa thread yang berbeda dalam lokasi memori yang sama.

3.      Economy
Dalam  pembuatan   sebuah   proses  banyak   dibutuhkan   pengalokasian memori dan sumber daya. Alternatifnya adalah dengan useran    thread, karena thread berbagi memori dan sumber daya proses yang memilikinya maka akan   lebih   ekonomis   untuk   membuat   dan  context   switch  thread.  Akan sulit 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.        Utilization of multiprocessor architectures
Keuntungan dari multithreading dapat sangat meningkat pada arsitektur  multiprocessor, dimana setiap thread dapat berjalan secara pararel di atas processor yang berbeda. Pada arsitektur processor tunggal, CPU     menjalankan setiap thread secara bergantian tetapi hal ini berlangsung      sangat cepat sehingga menciptakan ilusi pararel, tetapi pada       kenyataannya hanya satu  thread yang dijalankan CPU pada satu-satuan waktu (satu-satuan waktu pada CPU biasa disebut time slice atau quantum).



BAB III
KESIMPULAN

3.1. KESIMPULAN

Thread adalah sebuah alur kontrol dari sebuah proses. Thread terbagi menjadi dua jenis yaitu Single Thread dan Multithread. Dilihat dari kegunaannya multithread adalah thread yang paling banyak dipakai akhir-akhir ini. Suatu proses yang multithreaded mengandung beberapa perbedaan alur kontrol dengan ruang alamat yang sama. Keuntungan dari multithreaded meliputi peningkatan respon dari user, pembagian sumber daya proses, ekonomis, dan kemampuan untuk mengambil keuntungan dari arsitektur multiprosesor. User level thread adalah thread yang tampak oleh programmer dan tidak diketahui oleh kernel. User level thread secara tipikal dikelola oleh sebuah library thread di ruang user. Kernel level thread didukung dan dikelola oleh kernel sistem operasi. Secara umum, user level thread lebih cepat dalam pembuatan dan pengelolaan dari pada kernel thread. Ada tiga perbedaan tipe dari model yang berhubungan dengan user dan kernel thread.
  • Model many to one: memetakan beberapa user level thread hanya ke satu buah kernel thread.
  • Model one to one: memetakan setiap user thread ke dalam satu kernel thread. berakhir.
  • Model many to many: mengizinkan pengembang untuk membuat user thread sebanyak mungkin, konkurensi tidak dapat tercapai karena hanya satu thread yang dapat dijadualkan oleh kernel dalam satu waktu.



DAFTAR PUSTAKA

 

1.       703junior. (2010, September 25). User Thread dan Kernel Thread. Retrieved from 703JUNIOR'S BLOG: https://703junior.wordpress.com/2010/09/25/sistem-operasi/
2.       informatika, i. (2015, Desember 13). proses dan thread. Retrieved from Berbagi Ilmu: http://irfantek.blogspot.com/2015/12/makalah-proses-dan-thread.html

3.       Waskita, A. A. (2012, Juni 16). THREAD. Retrieved from SISTEM OPERASI: http://tugasqte.blogspot.com/2012/06/thread.html
closeKawan Jangan Lupa Amal dan Ibadah