download

T0542 / 03 - 01
PROCESS DAN THREADS
PROCESS
• Multiprogramming
• Pseudoparallelism
• Multiprocessor
MODEL PROSES
• Sequential process
• Multiprogramming
• CPU switching
• Program counter
T0542 / 03 - 02
• Process vs program
T0542 / 03 - 03
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)
T0542 / 03 - 04
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
T0542 / 03 - 05
• Transisi antar states:
• Layer terbawah dari struktur proses menangani interrupt dan
scheduling
• Layer diatasnya adalah proses sekuensial
T0542 / 03 - 06
IMPLEMENTASI PROSES
• Proses table/process control block  berisi informasi tentang
proses, dengan field sbb:
T0542 / 03 - 07
• Interrupt vector
• Interrupt handling and scheduling:
T0542 / 03 - 08
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
T0542 / 03 - 09
• 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:
T0542 / 03 - 010
• Masing-masing thread memiliki
stack
T0542 / 03 - 011
PEMAKAIAN THREADS
Alasan pemakaian threads:
• Multiple sequential threads bisa dijalankan secara quasiparallel
• Lebih mudah di-create dan di-delete
• Performance
• Lebih sesuai diterapkan pada sistem dengan multiple CPU
T0542 / 03 - 012
• Suatu word processor dengan tiga threads:
T0542 / 03 - 013
• Multithreaded web server:
(a) Dispatcher thread
(b) worker thread
T0542 / 03 - 014
• Tiga cara untuk membangun server:
T0542 / 03 - 015
IMPLEMENTASI THREADS PADA USER-SPACE
T0542 / 03 - 016
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
T0542 / 03 - 017
IMPLEMENTASI THREADS PADA KERNEL
Kelebihan:
• Tidak memerlukan non-blocking system calls yang baru
Kekurangan:
• Greater cost of creating and destryoing threads
T0542 / 03 - 018
IMPLEMENTASI HYBRID
• Kombinasi antara user-level threads dan kernel-level threads