Perbedaan antara Proses dan Thread

Notification

×

Perbedaan antara Proses dan Thread

04/08/2022 | Agustus 04, 2022 WIB Last Updated 2023-01-19T18:38:13Z

https://www.itnews.id/2022/08/perbedaan-antara-proses-dan-thread.html


Proses

Proses adalah program yang dikirim dari keadaan siap dan dijadwalkan di CPU untuk dieksekusi. Process Controll Block (PCB) memegang konsep proses. Suatu proses dapat membuat proses lain yang dikenal sebagai Anak Proses atau Sub Proses. 


Process Controll Block (PCB) adalah struktur data yang digunakan oleh sistem operasi komputer untuk menyimpan semua informasi tentang suatu proses, dikenal juga sebagai deskriptor proses. Saat proses dibuat (diinisialisasi atau diinstal), sistem operasi membuat blok kontrol proses yang sesuai.


Thread

Thread adalah urutan instruksi yang dapat dijalankan secara paralel dengan yang lain, berupa segmen dari suatu proses.  Suatu proses dapat memiliki banyak thread dan beberapa thread ini terkandung dalam suatu proses.


Thread membutuhkan waktu lebih sedikit untuk diberhentikan dibandingkan dengan proses karena, thread tidak terisolasi.


Status

  • Proses:

    1. New
    2. Ready
    3. Running
    4. Waiting
    5. Terminated
    6. Suspended

  • Thread: 

    1. Running
    2. Ready
    3. Blocked


Wujud

  • Proses:  Berwujud program yang sedang dieksekusi.
  • Thread:  Berwujud segmen dari suatu proses.

Waktu Terminate

  • Proses:  Butuh waktu lebih lama
  • Thread:  Tidak membutuhkan waktu lama

Komunikasi

  • Proses:  Kurang efisien
  • Thread:  Lebih efisien

Multi-Program Vs Multi-Thread

  • Proses:  Karena tiap program memiliki konteks masing-masing, dalam keadaan multi-proses jika satu proses diblokir maka tidak akan mempengaruhi eksekusi proses lainnya.

  • Thread:  Tidak memerlukan banyak program dalam menyelesaikan tugas pada multi-thread karena satu proses dapat terdiri dari multi-thread.  Jika thread user-level diblokir, maka semua thread user-level lainnya diblokir.

Penggunaan Memory

  • Proses:  Terisolasi
  • Thread:  Berbagi

Beban Penggunaan Resource

  • Proses:  Lebih berat
  • Thread:  Lebih ringan karena setiap thread dalam suatu proses berbagi kode, data, dan resource.

Block Control

  • Proses:  Memiliki PCB, Stack, dan memiliki address-space sendiri.
  • Thread:  Thread memiliki Induk PCB, Blok Kontrol Thread-nya sendiri, Stack dan common address-space.
Address-space:  Adalah jumlah memori yang dialokasikan untuk semua kemungkinan alamat untuk entitas komputasi, misalnya, perangkat, file, server, atau komputer jaringan.  Baca lebih lanjut tentang address-space. 
 

Keterkaitan

  • Proses:  Perubahan pada proses induk tidak mempengaruhi sub proses.
  • Thread:  Karena semua thread dari proses yang sama berbagi space-address dan resource lainnya, maka setiap perubahan pada main-thread dapat memengaruhi perilaku thread proses lainnya.

Hubungan Dengan System

  • Proses:  Melibatkan panggilan sistem
  • Thread:  Tidak ada panggilan sistem yang terlibat, thread dibuat menggunakan API.

Share/ Common Data

  • Proses:  Proses tidak berbagi data dengan lainnya
  • Thread:  Berbagi data satu sama lain.


Catatan:  Dalam kondisi tertentu thread bisa lebih tidak efisien dibanding proses, sulit dan memakan waktu lama untuk dihentikan, salah satu penyebab umumnya adalah karena cara dari pembrograman itu sendiri yang menciptakan sebuah kesalahan misalnya error yang mengakibatkan thread tidak dapat berkomunikasi dengan efisien.