Pertemuan 4
Thread, SMP & Microkernel
Husni
Lab. Sistem Komputer & Jaringan
Teknik Informatika Univ. Trunojoyo
Ikhtisar
2
Proses & Thread (1)
• Proses memiliki dua karakteristik:
– Resource ownership (kepemilikan sumber
daya) – proses mempunyai ruang alamat
virtual untuk menangani image proses yang
didefinisikan dalam PCB
– Scheduling-execution (penjadwalan-
eksekusi) – Mengikuti suatu path eksekusi
(trace), ada pergatian dari satu proses ke
lainnya
• Dua karakteristik ini diperlakukan secara
independen oleh sistem operasi.
3
Proses & Thread (2)
4
Multithreading
• Kemampuan dari
SO untuk
mendukung
banyak (multiple),
concurrent path
eksekusi di dalam
suatu proses
tunggal.
5
Pendekatan Thread Tunggal
• MS-DOS mendukung
proses pengguna
tunggal & thread
tunggal.
• Beberapa UNIX,
mendukung banyak
proses pengguna (user
process) tetapi hanya
mendukung satu
thread per-proses.
6
Pendekatan Multithreading
• Java run-time
environment (JRE)
merupakan proses
tunggal dengan banyak
thread
• Banyak proses &
thread dijumpai di
Windows, Solaris, &
versi modern dari UNIX
(termasuk Linux)
7
Proses
8
Thread dalam Proses
10
Thread vs. Proses
11
Keuntungan dari Thread
• Pembuatan thread baru lebih cepat dari
pada proses baru
• Penghentian thread lebih singkat daripada
penghentian proses
• Switching antara dua thread lebih singkat
daripada switching antar proses
• Thread dapat berkomunikasi satu sama
lain
– Tanpa memanggil kernel
12
Thread di Sistem Single-User
13
Penanganan Thread
15
Status Eksekusi Thread
16
Contoh: Remote Procedure Call
• Anggap:
– Suatu program yang mengerjakan dua remote
procedure call (RPC)
– Terhadap dua host berbeda
– Untuk mendapatkan hasil gabungan
17
RPC dengan Thread Tunggal
18
RPC - Satu Thread per Server
19
Multithreading pada Uniprocessor
20
Adobe PageMaker
21
Kategori Implementasi Thread
22
User-Level Thread
• Semua manajemen
thread dikerjakan
oleh aplikasi
• Kernel is not aware
of keberadaan
thread.
23
Hubungan antara ULT
Status Thread & Proses
24
Kernel-Level Thread
• Kernel memelihara
informasi konteks bagi
proses & thread
– Manajemen thread
dilakukan oleh kernel,
bukan aplikasi
• Scheduling dilakukan
pada basis thread
• Windows menggunakan
pendekatan ini
25
Keuntungan dari KLT
26
Kerugian dari KLT
27
Pendekatan Gabungan
• Pembuatan thread
dikerjakan dalam ruang
pengguna (user space)
• Bagian terbesar dari
scheduling &
sinkronisasi thread
dalam aplikasi
• Contoh: Solaris
28
Hubungan antara Thread & Proses
29
Symmetric Multiprocessing
31
Kategori Sistem Komputer (2)
32
Arsitektur Processor Parallel
33
Symmetric Multiprocessing
34
Organisasi SMP (Typical)
35
Rancangan SO Multiprocessor
36
Microkernel
38
Rancangan Microkernel:
Manajemen Memory
39
Rancangan Microkernel:
Komunikasi Antar Proses (IPC)
40
Rancangan Microkernal:
Manajemen I/O & interrupt
41
Keuntungan dari
Organisasi Microkernel
• Interface seragam pada request dibuat
oleh suatu proses.
• Extensibility
• Flexibility
• Portability
• Reliability
• Dukungan sistem terdistribusi
• Sistem operasi berorientasi obyek
42
Studi Kasus:
Pendekatan thd Proses
• Terhadap proses, beda OS beda bentuk
dukungannya.
– Bagaimana proses dinamakan
– Apakah thread disediakan
– Bagaimana proses direpresentasikan
– Bagaimana sumber daya proses diproteksi
– Mekanisme apa yang digunakan bagi
komunikasi & sinkronisasi antar proses
– Bagaimana proses dihubungkan satu dengan
lainnya
43
Proses Windows
44
Hubungan Proses & Resource
45
Obyek Proses Windows
46
Obyek Thread Windows
47
Status Thread
48
Dukungan SMP Windows
• Thread dapat berjalan pada processor
apapun
– Tetapi aplikasi dapat membatasi persamaan
• Pertalian soft
– Dispatcher mencoba untuk melewatkan suatu
thread ready ke processor yang sama saat
berjalan terakhir.
– Ini membantu reuse data masih dalam yang cache
memory processor dari eksekusi thread
sebelumnya.
• Pertalian hard
– Suatu aplikasi membatasi thread untuk processor
tertentu 49
Solaris
50
Proses Solaris
51
Hubungan Proses & Thread
52
Unix vs Solaris Tradisional
Solaris replaces
the processor state
block with a list of
LWPs
53
Struktur Data LWP
55
Tugas (task) Linux
57
Tugas Pertemuan 4