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:
- New
- Ready
- Running
- Waiting
- Terminated
- Suspended
- Thread:
- Running
- Ready
- 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.
- 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.