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

Comments

Popular posts from this blog

Bermain dengan Python dan Twitter (Part 2 Analisis Sentimen Sederhana)

UTS MPPL F 5113100121

Manajemen Waktu_5113100121