PROCESS DAN THREADS PROCESS Multiprogramming Pseudoparallelism Multiprocessor MODEL PROSES Sequential process CPU switching Program counter
Process vs program
PROCESS CREATION Events yang menyebabkan penciptaan proses: 1. Inisialisasi sistem 2. Eksekusi sistem call 3. Permintaan user 4. Inisiasi batch job Foreground vs background process Fork system call PROCESS TERMINATION Kondisi yang menyebabkan proses berhenti: 1. Normal exit (voluntary) 2. Error exit (voluntary) Fatal error (voluntary) Killed by another process (voluntary)
PROCESS HIERARCHIES Parent process menciptakan child process Child process dapat menciptakan proses selanjutnya Membentuk suatu hirarki Pada Unix disebut “process group” Misal: init Windows tidak memiliki konsep hirarki proses PROCESS STATES Kemungkinan proses states antara lain: 1. Running 2. Blocked 3. Ready
Transisi antar states: Layer terbawah dari struktur proses menangani interrupt dan scheduling Layer diatasnya adalah proses sekuensial
IMPLEMENTASI PROSES Proses table/process control block berisi informasi tentang proses, dengan field sbb:
Interrupt vector Interrupt handling and scheduling:
Lightweight process karena thread memiliki beberapa sifat proses THREADS Multiple threads of control in the same address space in quasi-parralel, as though they are separate processes THREAD MODEL Thread memungkinkan multiple execution terjadi pada environment proses yang sama Lightweight process karena thread memiliki beberapa sifat proses Multithreading Beberapa thread pada proses yang sama (a) Tiga proses dengan satu threads (b) Satu process dengan tiga threads
Multithreading Beberapa thread pada proses yang sama Items yang dimiliki semua thread dalam satu proses dan items yang khusus dimiliki oleh masing-masing thread adalah sbb:
Masing-masing thread memiliki stack
PEMAKAIAN THREADS Alasan pemakaian threads: Multiple sequential threads bisa dijalankan secara quasi-parallel Lebih mudah di-create dan di-delete Performance Lebih sesuai diterapkan pada sistem dengan multiple CPU
Suatu word processor dengan tiga threads:
Multithreaded web server: (a) Dispatcher thread (b) worker thread
Tiga cara untuk membangun server:
IMPLEMENTASI THREADS PADA USER-SPACE
Kelebihan: Proses dapat memiliki algoritma penjadwalan tersendiri (customised) Performance Kekurangan: Implementasi blocking system calls Jika suatu thread dijalankan, thread yang lain tidak dapat dijalankan Jacket/Wrapper code yang diletakkan sekitar system call
IMPLEMENTASI THREADS PADA KERNEL Kelebihan: Tidak memerlukan non-blocking system calls yang baru Kekurangan: Greater cost of creating and destryoing threads
IMPLEMENTASI HYBRID Kombinasi antara user-level threads dan kernel-level threads