Pages

Thread pada Sistem Operasi Linux

Thread pada Sistem Operasi
(Linux)

            

Apa itu Thread? Thread adalah suatu alur terkecil dalam suatu proses dan dapat dijadwalkan oleh Sistem Operasi itu sendiri. Thread dapat diartikan dengan suatu intruksi yang dapat dilaksanakan secara bersamaan. Thread sering disebut dengan Lightweight Process.
Thread merupakan suatu unit dasar dari penggunaan Central Processing Unit. Thread terdiri dari Thread ID, Program Counter, Register Set dan Stack. Suatu Thread  berbagi Cose Section, Data Section dan Sumber Daya Sistem Operasi.

Ø  Multithreading

Multithreading merupakan gabungan dari beberapa proses thread yang digabungkan dan melakukan suatu intruksi lebih dari satu dalam satu waktu. Single-Threading dan Multi-Threading terlihat dari jumlah Thread nya. Seperti pada penyebutannya, untuk Single-Threading hanya memiliki satu Thread dan untuk Multi-Threading lebih dari satu Thread.



·         User Thread
Merupakan Thread yang diimplementasikan oleh thread library pada user level dan didukung diatas kernel. Pada library menyediakan fasilitas untuk pembuatan Thread, Penjadwalan Thread dan juga untuk mengatur manajemen thread tanpa adanya dukungan dari Kernel.

·         Kernel Thread
Kernel Thread bekerja pada kernel level. Kernel Thread didukung langsung oleh Sistem Operasi. Untuk pembuatan, penjadwal serta manajemen thread dilakukan langsung oleh kernel pada kernel space.

Terdapat tiga macam tipe hubungan antara user dan kernel thread :
1.      Many to One
Memetakan beberapa threat tingkatan user ke sebuah thread kernel. Pada hal ini hanya satu Thread user yang dapat mengakses kernel thread pada satu waktu.

2.      One to One
Memetakan setiap thread tingkatan user ke setiap thread dan menyediakan Concurrency lebih banyak dibandikan model Many to One.

3.      Many to Many
Mmultiplek dari banyak thread tingkatan user ke kernel thread yang jumlahnya sedikit atau sama degan tingkatan user.


Ø  Thread pada Linux

Pada saat awal kemuculan, Linux tidak dilengkapi dengan threading pada kernelnya. Akan tetapi linux mendukung suatu proses-proses entitas yang dapat dijadwalkan melalu clone() system calls.

Untuk sekrang, linux telah mendukung penduplijasian proses menggunakan system call clone() dan fork(). Clone() dan fork() berbeda dalam hal pembuatan copy dari proses yang dipanggil dimana ia membuat sebuah proses yang terpisah yang berbagi address space dengan proses yang dipanggil. Pembagian addres space ini dimungkinkan karena proses direpresentasikan di dalam Kernel Linux.

Di dalam Kernel Linux setiap proses direpresentasikan sebagai sebuah struktur data yang unik. Dalam hal ini, daripada menciptakan yang baru maka struktur data hanya akan menunjuk ke tempat dimana data berada. Jadi perbedaan nya ketika fork() di panggil maka proses yang baru akan tercipta beserta duplikasi dari segala isi di struktur data di parent proses. Namun jika clone() dipanggi, ia tidak menduplikasi parent proses nya tetapi mencipyakan struktur data pada parent proses yang memungkinan child proses untuk berbagi memori dan sumber daya dari parent proses nya.

Project Linux Thread menggunakan System Call untuk mensimulasi Thread di user space. Akan tetapi hal ini mempunyai kekurangan yaitu antara lain pada signal handling, penjadwalan dan interproses singkronisasi.

Untuk meningkatkan perkembangan dari Thread Linux dukungan kernel dan penulisan pustaka Thread sangat diperlukan. Terdapat dua project yang membahas tentang kekurangan Thread Linux itu sendiri yaitu :
1.      NGPT (Next Generation POSIX Threads) dari IBM
2.      NPTL (Native POSIX Thread Library) dari Red Hat

Pada Sistem Operasi Linux penggunaan istilah thread ataupun proses sangat jarang dibandingkan dengan istilah task yang merujuk pada pengatur atau pengontrolalan di dalam program.




Sumber Referensi : 


http://www.academia.edu/30582405/MAKALAH_SISTEM_OPERASI_THREAD_Pengertian_Thread


http://www.ibnu-tusyfin.tk/2015/12/pengertian-thread.html


http://opensource.telkomspeedy.com/repo/abba/v06/Kuliah/SistemOperasi/BUKU/SistemOperasi-4.X-1/ch11s08.html


http://nandairyani.blogspot.co.id/2014/03/thread.html


diooda