PROCESS DAN THREADS Pengertian : Program Proses MonoProgramming Multiprogramming Paralel Programming Pseudoparallelism Multiprocessor Multicomputer MultiUser
MODEL PROSES Sequential process Multiprogramming CPU switching Program counter
MODEL PROSES
PROCESS CREATION Events yang menyebabkan penciptaan proses: Inisialisasi sistem Eksekusi sistem call (linux fork()) Permintaan user Inisiasi batch job Foreground vs background process
Kondisi yang menyebabkan proses berhenti: PROCESS TERMINATION Kondisi yang menyebabkan proses berhenti: Normal exit Error exit Fatal error Killed by another process
PROCESS HIERARCHIES Parent process menciptakan child process Child process dapat menciptakan proses selanjutnya, sehingga dpt membentuk suatu hirarki Pada Unix disebut “process group”, Misal: init Windows tidak memiliki konsep hirarki proses
PROCESS STRUCTURE Layer terbawah dari struktur proses menangani interrupt dan scheduling Layer diatasnya adalah proses sekuensial
PROCESS STATES Kemungkinan proses states antara lain: Running Blocked Ready
IMPLEMENTASI PROSES Proses table/process control block berisi informasi tentang proses, dengan field sbb:
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 masing-masing dgn satu threads (b) Satu process dengan tiga threads
Items yang dimiliki semua thread dalam satu proses dan items yang khusus dimiliki oleh masing-masing thread adalah sbb:
Masing-masing thread memiliki stack
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
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
IMPLEMENTASI THREADS PADA KERNEL
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