A. Pengertian Thread
Thread
adalah sebuah pengontrol 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.
Pendekatan
tradisional sebuah thread eksekusi per-proses, dimana konsep thread tidak
dikenal.
Multithreaded
Process
Benefits/manfaat
·
Kemampuan reaksi
·
Sumber daya berbagi
·
Ekonomi
·
Scalabilas
Thread
bermanfaat untuk Multithreading yang berguna untuk Multiprocessor dan
Singleprocessor.
Kegunaan
untuk system Multiprocessor, adalah :
a)
Sebagai unit pararel atau tingkat granularitas pararelisme.
b)
Peningkatan kinerja disbanding berbasis proses.
Kegunaan
Multithreading pada singleprocessor, adalah :
a)
Kerja foreground dan background sekaligus di satu aplikasi.
b)
Penanganan asynchronous processing menjadi lebih baik.
c)
Mempercepat eksekusi program.
d)
Pengorganisasian program menjadi lebih baik.
Multicore
Programming
Multicore
systems mendesak/memaksa para programmer untuk melewati tantangan yang meliputi
:
a)
pembagian aktivitas
b)
Saldo/Timbangan
c)
Data yang telah hancure) Pengujian dan debugging
B. Pengertian Process
Istilah job dan proses digunakan hampir dapat
dipertukarkan pada tulisan ini. Walau kami pribadi lebih mneyukai istilah
proses, banyak teori dan terminologi sistem-operasi dikembangkan selama suatu
waktu ketika aktivitas utama sistem operasi adalah job processing. Akan
menyesatkan untuk menghindari penggunaan istilah umum yang telah diterima bahwa
memasukkn kata job (seperti penjadualan job) hanya karena proses memiliki job
pengganti/ pendahulu.
C.
Perbedaan Proses dan
Thread
Sebuah proses adalah sebuah peristiwa
adanya sebuah program yang dapat dieksekusi. Sebagai sebuah eksekusi proses,
maka hal tersebut membutuhkan perubahan keadaan. Keadaan dari sebuah proses
dapat didefinisikan oleh aktivitas proses tersebut. Suatu proses adalah lebih
dari kode program, dimana kadang kala dikenal sebagai bagian tulisan. Proses
juga termasuk aktivitas yang sedang terjadi, sebagaimana digambarkan oleh nilai
pada program counter dan isi dari daftar prosesor/ processor’s register. Suatu
proses umumnya juga termasuk process stack, yang berisikan data temporer
(seperti parameter metoda, address yang kembali, dan variabel lokal) dan sebuah
data section, yang berisikan variabel global. Setiap proses mungkin menjadi
satu dari beberapa state berikut, antara lain: new, ready, running, waiting,
atau terminated. Setiap proses direpresentasikan ada sistem operasi berdasarkan
proses-control-block (PCB)-nya.
Saya tekankan bahwa program itu sendiri bukanlah sebuah proses. Suatu program adalah satu entitas pasif, seperti isi dari sebuah berkas yang disimpan didalam disket, sebagaimana sebuah proses dalam suatu entitas aktif, dengan sebuah program counter yang mengkhususkan pada instruksi selanjutnya untuk dijalankan dan seperangkatsumber daya/resource yang berkenaan dengannya.
Proses memiliki dua karakteristik
namun kedua karakteristik dilakukan secara independen oleh sistem operasi :
- Resource ownership (kepemilikan
sumber daya)
Proses mempunyai ruang alamat virtual
untuk menangani image proses yang didefinisikan dalam PCB.
- Scheduling-execution
(penjadwalan-eksekusi)
Mengikuti suatu path eksekusi (trace),
ada pergatian dari satu proses ke lainnya Unit dari kepemilikan sumber daya
diacu sebagai proses atau taskuatu thread yang salah dapat menganggu thread
yang lain didalam proses yang sama,karena thread berbagai pakai ruang memori
virtual dan sumber daya lain yang sama.
Thread adalah unit dasar dari
penggunaan CPU, thread mengandung Thread ID, program counter, register set, dan
stack. Sebuah Thread berbagi code section, data section, dan sumber daya sistem
operasi dengan Thread lain yang dimiliki oleh proses yang sama. Thread juga
sering disebut lightweight process. Sebuah proses tradisional atau heavyweight
process mempunyai thread tunggal yang berfungsi sebagai pengendali. Perbedaan
antara proses dengan thread tunggal dengan proses dengan thread yang banyak
adalah proses dengan thread yang banyak dapat mengerjakan lebih dari satu tugas
pada satu satuan waktu.
D. Perbedaan proses dan thread
1.Pembentukan Thread membutuhkan waktu
yang lebih sedikit daripada pembentukan process.
2.Membutuhkan waktu yang lebih sedikit
untuk menhakhiri Thread daripada process.
3.Lebih mudah dan cepat untuk
melakukan switch antar Thread daripada switch antar process.
4.Thread menggunakan secara bersama
ruang alamat dari proses yang menciptakannya. Proses memiliki ruang alamat
sendiri-sendiri.
5.Thread memiliki akses langsung ke
segemen data dari prosesnya. Masing-masing proses memiliki salinan segmen data
dari parent process-nya.
6.Thread dapat saling komunikasi
dengan thread lain dalam satu process. Antar proses harus menggunakan
komunikasi antar proses.
7.Thread hampir tidak memiliki
overhead. Proses memiliki overhead.
8.Thread dapat memiliki pengaruh
kontrol yang besar terhadap thread lain dalam satu proses. Proses hanya dapat
mengendalikan proses anakannya.
9.Perubahan pada thread utama seperti
pembatalan atau perubahan prioritas dapat mempengaruhi tingkah laku thread lain
dalam satu proses. Perubahan pada parent proses tidak mempengaruhi proses
anakan.
Sumber
https://iim6.tripod.com
https://docplayer.info
https://dee-x-cisadane.webs.com