Thread
(Pertemuan ke-3)
• Kepemilikan resource:
– Process memerlukan ruang alamat virtual untuk menyimpan process
image
– Process image = program + data + stack + PCB
– Unit terkecil yang dapat memiliki resource adalah proses atau task
– Resource = memori, I/O channel, I/O device, file, CPU, dll
• Penjadualan/eksekusi:
– Mengikuti jalur eksekusi (trace)
– Eksekusi suatu proses bisa secara interleaving (selang-seling) dengan
proses lain
– Thread = pecahan dari suatu proses yang dapat dijadualkan atau
dieksekusi = lightweight process (LWP)
Thread Control Block (TCB) = isi register + prioritas + info thread lainnya
Sistem Operasi – CII2A3/2023 # 7
Threads sharing
• Level thread:
– Eksekusi setiap thread diatur dengan
penjadualan
• Level proses:
– Suatu proses yang di-suspend akan
menyebabkan semua thread proses tersebut
juga di-suspend bersama-sama
• Sebagai konsekuensi dari penggunaan ruang
memori bersama (share)
– Terminasi suatu proses akan berakibat
semua threadnya juga diterminasi
Sistem Operasi – CII2A3/2023 # 13
Apakah status Thread sama dengan
status Proses?
• Mirip (ready, running, blocked), kecuali status suspend
• Operasi pada thread:
– Spawn = pembentukan thread
• Otomatis thread terbentuk saat proses terbentuk
• Thread bisa dibentuk oleh thread lain dalam satu proses
• Thread baru berada pada antrian ready
– Block
• Thread diblok bila menunggu suatu event
• Register user, PC, dan stack pointer disimpan
– Unblock
• Bila event datang → thread menjadi ready
– Finish
• Tugas thread telah selesai → register dan stack dihapus
• Keterangan gambar:
– Sebuah program melakukan 2 buah RPC pada 2 buah host/server
berbeda untuk mendapatkan suatu hasil gabungan
– Kedua RPC harus dilakukan secara bergantian → lama
Sistem Operasi – CII2A3/2023 # 15
Remote Procedure Call (RPC) dengan
banyak Thread pada Uniprocessor
• Analisis:
– Latency pada KLT jauh lebih baik daripada
latency pada sebuah proses/thread tunggal
– Latency pada ULT jauh lebih baik daripada
latency pada KLT
– Hasil bergantung pada jenis aplikasi yang
diujikan
– Bila digunakan aplikasi yang lebih banyak
memerlukan kernel mode bisa jadi KLT lebih
baik daripada ULT
• Dapat menjadi peluang/ide untuk TA ?!?!
Speedup jika
bagian serial
= 0%, 2%,
5%, dan
10%)
Speedup jika
bagian serial
= 5%, 10%,
15%, dan
20%)