Thread Operating System

Assalamualaikum Warahmatullahi wabarakatuh.
Balik lagi dengan saya, di artikel saya kali ini akan membahas tentang Thread.
mulai dari definisi dari thread, proses terjadinya thread, dan juga statusnya.

Definisi Thread

Apa yang dimaksud dengan thread?

     Dalam dunia IT, thread adalah sebuah pengontrolan aliran program pelaksanaan program dengan menggunakan kendali tunggal. Operasi yang paling modern saat ini adalah sistem yang banyak sekali menyediakan berbagai cara, dan memungkinkan suatu proses terkendali dengan baik. suatu proses yang multithreaded mengandung beberapa perbedaan alur kontrol dengan ruang alamat yang sama. 
     Thread merupakan unit dasar dari penggunaan CPU, yang terdiri dari Thread_ID, program counter, register set, dan stack. Sebuah thread berbagi code section, data secion, dan sumber daya sistem operasi dengan thread lain yang dimiliki oleh proses yang sama.
     Thread juga sering disebut Lightweight Process atau sebuah proses tradisional atau heavyweight process mempunyai thread tunggal yang berfungsi sebagai pengendali.
     
     Pada umumnya, perangkat lunak yang berjalan pada komputer 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.
     Terkadang ada sebuah aplikasi yang perlu 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 thread tunggal 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 multi-threading. 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 [MDGR2006]. 

Proses Thread

Ada beberap proses thread antara lain :

A. Single thread dan Multi thread.

  1.  Single thread : Prosess yang hanya mengeksekusi satu thread saja pada satu waktu.
  2.  Multi thread  : Prosess dapat mengeksekusi sejumlah dalam satu waktu.


B. Model Multithreading 
Dukungan thread disediakan pada tingkat user yaitu user threads atau tingka kernel untuk kernel threads. User Threads disediakan oleh kernel dan diatur tanpa dukungan kernel, sedangkan kernel therads didukung dan diatur secara langusng oleh sistem operasi. Hubungan antara user threads dan kernel threads terdiri dari tiga model relasi, yaitu:
Model Many to One: Model 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. Jadi, multiple thread tidak dapat berjalan secara paralel pada multiprocessor. Thread tingkat pengguna yang diimplementasi pada sistem operasi yang tidak mendukung thread kernel menggunakan model Many-to-One.



                                                         Gambar 4. Model Many to One

Model One to One: Model One-to-One memetakan setiap thread tingkatan pengguna ke thread kernel. Ia menyediakan lebih banyak concurrency dibandingkan model Many-to-One. Keuntungannya sama dengan keuntungan thread kernel. Kelemahannya model ini ialah setiap pembuatan thread pengguna memerlukan pembuatan thread kernel. Karena pembuatan thread dapat menurunkan kinerja dari sebuah aplikasi maka implmentasi dari model ini jumlah thread dibatasi oleh sistem. Contoh sistem operasi yang mendukung model One-to-One ialah Windows NT dan OS/2.


                                                          Gambar 5. Model One to One

Model Many To Many: Model ini me-multipleks banyak thread tingkatan pengguna ke thread kernel yang jumlahnya lebih sedikit atau sama dengan tingkatan pengguna. thread. Jumlah thread kernel spesifik untuk sebagian aplikasi atau sebagian mesin. Many-to-One model mengizinkan developer untuk membuat user thread sebanyak yang ia mau tetapi concurrency (berjalan bersama) tidak dapat diperoleh karena hanya satu thread yang dapat dijadwal oleh kernel pada suatu waktu. One-to-One menghasilkan concurrency yang lebih tetapi developer harus hati-hati untuk tidak menciptakan terlalu banyak thread dalam suatu aplikasi (dalam beberapa hal, developer hanya dapat membuat thread dalam jumlah yang terbatas). Model Many-to-Many tidak mengalami kelemahan dari dua model di atas. Developer dapat membuat user thread sebanyak yang diperlukan, dan kernel thread yang bersangkutan dapat bejalan secara paralel pada multiprocessor. Dan juga ketika suatu thread menjalankan blocking system call maka kernel dapat menjadwalkan thread lain untuk melakukan eksekusi. Contoh sistem operasi yang mendukung model ini adalah Solaris, IRIX, dan Digital UNIX.


Status pada thread

 Status proses selalu berubah-ubah selama suatu program dieksekusi atau dijalankan. Beberapa status tersebut ialah : - New : proses baru diciptakan/dibuat - Running : proses sedang dijalankan/ dieksekusi - Waiting : proses sedang menunggu suatu kondisi tertentu untuk bisa berjalan. (misalkan menunggu respon dari perangkat I/O) - Ready : proses menunggu untuk dilayani processor - terminated : proses telah menyelesaikan eksekusi.



Saat komputer berjalan, terdapat banyak proses yang berjalan secara bersamaan. Sebuah proses dibuat melalui system call create-process membentuk proses turunan (child process) yang dilakukan oleh proses induk parent process. Proses turunan tersebut juga mampu membuat proses baru sehingga kesemua proses-proses ini pada akhirnya membentuk pohon proses.

Ketika sebuah proses dibuat maka proses tersebut dapat memperoleh sumber-daya seperti ”waktu CPU”, ”memori”, ”berkas” atau perangkat ”M/K”. Sumber daya ini dapat diperoleh langsung dari Sistem Operasi, dari Proses Induk yang membagi-bagikan sumber daya kepada setiap proses turunannnya, atau proses turunan dan proses induk berbagi sumber-daya yang diberikan Sistem Operasi. Ada dua kemungkinan bagaimana jalannya (running) proses induk dan turunan berjalan (running). Proses-proses tersebut berjalan secara konkuren atau proses induk menunggu sampai beberapa/seluruh proses turunannya selesai berjalan.
https://id.wikipedia.org/wiki/Utas_(komputer)
https://images.app.goo.gl/Sc5F31SEeHUBZJqW7

Komentar

Postingan Populer