Process Programming dan Thread
PID di Linux: 16 bit integer yang keluar secara berurutan.
Setiap proses memiliki parent proses kecuali proses init.
Ada 3 cara untuk membuat proses baru melalui kode program:
- Fungsi System()
- System call fork()
- Fungsi exec* family
Fungsi System() :
Sangat tidak disarankan karena beberapa faktor diantaranya:
- Tidak portable
- Menghabiskan Resource
- Berbahaya(Privilege)
System call fork() :
Fork() akan menduplikasi proses yang ada.
Proses hasil duplikasi disebut proses anak.
Return value dari fork() menentukan sedang ada di proses mana:
- <0 : ERROR
- =0 : Ada di child process
- >0 : Ada di parent process.
Exec Family :
ciri-ciri:
- Mengganti program yang sedang berjalan pada suatu proses.
Keluarga exec:
- Execv
- Execvp
- Execve
- Execle
- Execlp
Signal : Sebuah event yang dikirimkan ke suatu proses oleh proses itu sendiri atau proses lain.
Signal digunakan untuk mengirimkan notifikasi pada suatu proses bahwa ada suatu event.
Beberapa signal yang biasa dipakai:
- SIGKILL
- SIGTERM
- SIGSEGV
- SIGSTOP
- SIGCONT
- SIGINT
System call wait() :
Agar proses induk bisa menunggu proses anak selesai, maka butuh system call wait(). Wait akan memblok eksekusi program sampai salah satu proses anaknya mati.
yak, sekarang kita kembali membahas thread dan proses hanya saja yang sekarang sedikit lebih kompleks.
Keuntungan Thread:
- Waktu pembuatan dan pemberhentian yang lebih cepat.
- Waktu pergantian antar thread lebih cepat dari antar proses.
- Komunikasi antar thread lebih efisien.
Contoh penggunaan Thread:
- Foreground dan Background work.
- Asynchronous processing.
- Speed of execution.
State pada Thread:
1. Spawn: Thread dibuat.
2. Block: Thread menunggu sebuah event terjadi.
3. Unblock: Ketika event yang ditunggu muncul.
4. Finish: Thread selesai
Ada 3 jenis level thread:
- User level Thread
- Kernel level Thread
- Hybrid level Thread
Setiap proses memiliki parent proses kecuali proses init.
Ada 3 cara untuk membuat proses baru melalui kode program:
- Fungsi System()
- System call fork()
- Fungsi exec* family
Fungsi System() :
Sangat tidak disarankan karena beberapa faktor diantaranya:
- Tidak portable
- Menghabiskan Resource
- Berbahaya(Privilege)
System call fork() :
Fork() akan menduplikasi proses yang ada.
Proses hasil duplikasi disebut proses anak.
Return value dari fork() menentukan sedang ada di proses mana:
- <0 : ERROR
- =0 : Ada di child process
- >0 : Ada di parent process.
Exec Family :
ciri-ciri:
- Mengganti program yang sedang berjalan pada suatu proses.
Keluarga exec:
- Execv
- Execvp
- Execve
- Execle
- Execlp
Signal : Sebuah event yang dikirimkan ke suatu proses oleh proses itu sendiri atau proses lain.
Signal digunakan untuk mengirimkan notifikasi pada suatu proses bahwa ada suatu event.
Beberapa signal yang biasa dipakai:
- SIGKILL
- SIGTERM
- SIGSEGV
- SIGSTOP
- SIGCONT
- SIGINT
System call wait() :
Agar proses induk bisa menunggu proses anak selesai, maka butuh system call wait(). Wait akan memblok eksekusi program sampai salah satu proses anaknya mati.
yak, sekarang kita kembali membahas thread dan proses hanya saja yang sekarang sedikit lebih kompleks.
Keuntungan Thread:
- Waktu pembuatan dan pemberhentian yang lebih cepat.
- Waktu pergantian antar thread lebih cepat dari antar proses.
- Komunikasi antar thread lebih efisien.
Contoh penggunaan Thread:
- Foreground dan Background work.
- Asynchronous processing.
- Speed of execution.
State pada Thread:
1. Spawn: Thread dibuat.
2. Block: Thread menunggu sebuah event terjadi.
3. Unblock: Ketika event yang ditunggu muncul.
4. Finish: Thread selesai
Ada 3 jenis level thread:
- User level Thread
- Kernel level Thread
- Hybrid level Thread
Comments
Post a Comment