Threads, Procesess: Definisi dan Perbedaan

Dalam rangka untuk membiarkan komputer melakukan lebih dari satu kegiatan pada satu waktu, proses dan thread memberikan layanan besar, tetapi ada perbedaan antara mereka dalam cara mereka beroperasi. Semua program yang berjalan pada komputer menggunakan setidaknya satu proses atau thread. Proses dan thread membiarkan saklar prosesor lancar antara beberapa tugas sambil berbagi sumber daya komputer

Jadi itu adalah tugas dari seorang programmer untuk menggunakan thread dan proses dalam cara yang efisien untuk membuat prosesor dengan kinerja tinggi. Pelaksanaan thread dan proses berbeda sesuai dengan sistem operasi yang tersedia.


Apa yang dimaksud dengan Threads?

Thread merupakan unit dasar dari penggunaan CPU, yang terdiri dari 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. Banyak sistem operasi modern telah memiliki konsep yang dikembangkan agar memungkinkan sebuah proses untuk memiliki eksekusi multithreads, agar dapat secara terus menerus mengetik dan menjalankan pemeriksaan ejaan didalam proses yang sama, maka sistem operasi tersebut memungkinkan proses untuk menjalankan lebih dari satu tugas 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 sehingga dengan banyaknya kontrol thread, proses dapat melakukan lebih dari satu pekerjaan pada waktu yang sama.


Apa yang dimaksud dengan Procesess?  

Secara umum, sebuah proses merupakan serangkaian terus menerus dari tindakan untuk mencapai hasil yang spesifik. Namun, dalam dunia komputer, proses adalah sebuah contoh dari mengeksekusi program komputer. Dengan kata lain, itu adalah konsep dari kejadian tunggal dari program komputer yang berjalan. Proses yang berjalan secara binar akan mengandung satu atau lebih thread.

Menurut jumlah thread yang terlibat dalam proses, ada dua jenis proses. Mereka adalah proses single-thread dan proses multi-thread. Seperti namanya, proses tunggal-thread adalah proses yang hanya memiliki satu thread. Oleh karena itu, thread ini adalah sebuah proses, dan hanya ada satu aktivitas yang terjadi. Dalam proses multi-thread, ada lebih dari satu thread, dan ada lebih dari satu aktivitas yang terjadi.

Sebagaimana proses bekerja, maka proses tersebut merubah state (keadaan statis/ asal). Status dari sebuah proses didefinisikan dalam bagian oleh aktivitas yang ada dari proses tersebut. Tiap proses mungkin adalah satu dari keadaan berikut ini: 
  1. New. Proses sedang dikerjakan/ dibuat. 
  2. Running: Instruksi sedang dikerjakan. 
  3. Waiting: Proses sedang menunggu sejumlah kejadian untuk terjadi (seperti sebuah penyelesaian I/O atau penerimaan sebuah tanda/ signal). 
  4. Ready. Proses sedang menunggu untuk ditugaskan pada sebuah prosesor. 
  5. Terminated: Proses telah selsesai melaksanakan tugasnya/ mengeksekusi.

Apa perbedaan Threads dengan Procesess?

  • Proses sulit untuk membuat karena membutuhkan duplikasi proses induk dan alokasi memori sedangkan thread lebih mudah untuk membuat karena mereka tidak memerlukan ruang alamat yang terpisah.
  • Thread digunakan untuk tugas-tugas sederhana, sementara proses yang digunakan untuk tugas-tugas yang berat-berat seperti pelaksanaan aplikasi.
  • Proses tidak berbagi ruang alamat yang sama, namun thread dalam berbagi proses yang sama ruang alamat yang sama.
  • Proses yang independen satu sama lain, tetapi thread saling bergantung karena mereka berbagi ruang alamat yang sama.
  • Sebuah proses dapat terdiri dari beberapa thread.
  • Karena thread berbagi ruang alamat yang sama, virtual memori hanya terkait dengan proses tapi tidak dengan thread. Tapi prosesor virtual yang berbeda dikaitkan dengan setiap thread.
  • Setiap proses memiliki kode dan data sendiri sedangkan proses thread berbagi kode yang sama dan data.
  • Setiap proses dimulai dengan thread utama, tapi dapat membuat thread tambahan jika diperlukan.
  • Konteks beralih antara proses jauh lebih lambat dibandingkan konteks beralih antara thread dari proses yang sama.
  • Thread dapat memiliki akses langsung ke segmen data, tetapi proses memiliki salinan sendiri segmen data mereka.
  • Proses memiliki overhead tapi tidak thread.

Dengan begitu, proses digunakan untuk mencapai pelaksanaan program secara bersamaan dan berurutan. Sementara utas adalah unit pelaksanaan program yang menggunakan lingkungan proses ketika banyak utas menggunakan lingkungan dari proses yang sama, mereka perlu membagikan kode, data, dan sumber dayanya. Sistem operasi menggunakan fakta ini untuk mengurangi overhead dan meningkatkan perhitungan.


UNIVERSITAS TEKNOKRAT INDONESIA

FAKULTAS TEKNIK DAN ILMU KOMPUTER

Komentar