sistem operasi 2009 - komputasi · kategori sistem komputer (2) ... • dukungan sistem...
TRANSCRIPT
Pertemuan 4Thread, SMP & Microkernel
H u s n iLab. Sistem Komputer & JaringanTeknik Informatika Univ. Trunojoyo
Sistem Operasi 2009
2
Ikhtisar
• Thread: Kepemilikan sumber daya dan Eksekusi
• Symmetric Multiprocessing (SMP).• Microkernel• Studi kasus thread & SMP:
– Windows– Solaris– Linux
3
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.
4
Proses & Thread (2)
• Unit dari dispatching diacu sebagai thread atau lightweight process
• Unit dari kepemilikan sumber daya diacu sebagai proses atau task
5
Multithreading
• Kemampuan dari SO untuk mendukung banyak (multiple), concurrent path eksekusi di dalam suatu proses tunggal.
6
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.
7
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)
8
Proses
• Suatu ruang alamat virtual yang memegang process image
• Akses terproteksi ke– Processor, – Proses lain, – File, – Sumber daya I/O
9
Thread dalam Proses
• Setiap thread mempunyai– Status eksekusi (running, ready, dll.)– Konteks thread tersimpan saat tidak berjalan
(not running)– Stack eksekusi– Beberapa storage statis per-thread bagi
variabel lokal– Akses terhadap memory & sumber daya dari
prosesnya (semua thread dari proses saling berbagi pakai)
10
Satu Pandangan…
• Salah satu cara memandang thread adalah sebagai suatu program counter independen yang beroperasi di dalam proses.
11
Thread vs. Proses
12
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
13
Thread di Sistem Single-User
• Kerja foreground & background • Pemrosesan asynchronous • Kecepatan eksekusi• Struktur program modular
14
Penanganan Thread
• Tindakan yang mempengaruhi semua thread di dalam proses – SO harus mengelola ini pada level proses.
• Contoh:– Mensuspend suatu proses berarti
mensuspend semua thread dari proses tersebut
– Menghentikan suatu proses akan menghentikan semua thread di dalam proses tersebut
15
Aktifitas Menyerupai Proses
• Thread mempunyai status eksekusi dan dapat sinkron satu dengan lainnya.– Menyerupai proses
• Ada dua aspek penting dalam fungsionalitas thread:– Status – Sinkronisasi
16
Status Eksekusi Thread
• Status berasosiasi dengan perubahan dalam status thread– Spawn (thread yang lain)– Block
• Isu: akan memblock thread lain atau semua thread
– Unblock– Finish (thread)
• Mendealokasikan konteks register dan stack
17
Contoh: Remote Procedure Call
• Anggap:– Suatu program yang mengerjakan dua remote
procedure call (RPC) – Terhadap dua host berbeda – Untuk mendapatkan hasil gabungan
18
RPC dengan Thread Tunggal
19
RPC - Satu Thread per Server
20
Multithreading pada Uniprocessor
21
Adobe PageMaker
22
Kategori Implementasi Thread
• User Level Thread (ULT)
• Kernel level Thread (KLT) juga disebut:
– kernel-supported threads – lightweight processes.
23
User-Level Thread
• Semua manajemen thread dikerjakan oleh aplikasi
• Kernel is not aware of keberadaan thread.
24
Hubungan antara ULTStatus Thread & Proses
25
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
26
Keuntungan dari KLT
• Kernel dapat secara simultan menjadwal banyak thread dari proses yang sama pada banyak processor.
• Jika satu thread dalam suatu proses diblock, kernel dapat menjadwal thread yang lain dari proses yang sama.
• Rutin kernel sendiri dapat dibuat multithread.
27
Kerugian dari KLT
• Transfer kontrol dari satu thread ke lainnya di dalam proses yang sama mengharuskan switch modus ke kernel
28
Pendekatan Gabungan
• Pembuatan thread dikerjakan dalam ruang pengguna (user space)
• Bagian terbesar dari scheduling & sinkronisasi thread dalam aplikasi
• Contoh: Solaris
29
Hubungan antara Thread & Proses
30
Symmetric Multiprocessing
• Secara tradisional, komputer ditampilkan sebagai mesin sequential.– Processor mengeksekusi satu demi satu
instruksi (satu pada satu waktu) secara urut (sequence)
– Setiap instruksi adalah suatu urutan operasi
• Dua pendekatan popular untuk penyediaan parallelism– Symmetric MultiProcessors (SMP)– Clustering (tidak dibahas di kuliah ini)
31
Kategori Sistem Komputer (1)
• Single Instruction Single Data (SISD) stream– Processor tunggal mengeksekusi stream
intruksi tunggal untuk beroperasi pada data yang disimpan dalam memory tunggal
• Single Instruction Multiple Data (SIMD) stream– Setiap instruksi dieksekusi pada himpunan
data berbeda oleh processor berbeda
32
Kategori Sistem Komputer (2)
• Multiple Instruction Single Data (MISD) stream (Tidak pernah diimplementasikan)
– Serangkaian data ditransmisikan ke suatu himpunan processor, masing-masing mengeksekusi rangkaian instruksi berbeda
• Multiple Instruction Multiple Data (MIMD)– Sekumpulan processor secara simultan
mengeksekusi rangkaian instruksi berbeda pada kumpulan data berbeda
33
Arsitektur Processor Parallel
34
Symmetric Multiprocessing
• Kernel dapat berjalan pada processor manapun– Memungkinkan bagian-bagian kernel berjalan
secara paralel
• Biasanya setiap processor melakukan self-scheduling dari pool proses atau thread yang tersedia
35
Organisasi SMP (Typical)
36
Rancangan SO Multiprocessor
• Isu rancangan utama mencakup– Proses atau thread concurrent simultan– Scheduling (penjadwalan)– Synchronization (sinkronisasi)– Manajemen Memory– Reliability dan Fault Tolerance
37
Microkernel
• Microkernel merupakan suatu inti SO kecil yang menyediakan fondasi bagi ekstensi-ekstensi modular.
• Pertanyaan besar: seberapa kecil harusnya suatu kernel agar dapat disebut sebagai microkernel– Haruskah driver ada dalam user space?
• Dalam teori, pendekatan ini memberikan fleksibilitas & modularitas derajat tinggi.
38
Arsitektur Kernel
39
Rancangan Microkernel: Manajemen Memory
Manajemen memory level bawah (low-level): Memetakan setiap page virtual ke frame fisik
– Sebagian besar tugas manajemen memory terjadi dalam user space
40
Rancangan Microkernel:Komunikasi Antar Proses (IPC)
• Komunikasi antar proses (Interprocess Communication) atau thread dalam suatu SO mikrokernel adalah melalui message.
• Suatu message menyertakan:– Header yang mengidetifikasi proses
pengiriman dan penerimaan, dan – Body yang mengandung data langsung,
pointer ke suatu block data, atau beberapa informasi kontrol mengenai proses.
41
Rancangan Microkernal:Manajemen I/O & interrupt
• Di dalam mikrokernel, adalah mungkin menangani interupsi hardware sebagai message dan menyertakan port I/O dalam ruang alamat.– Proses user-level tertentu dilewatkan ke
interrupt & kernel memelihara pemetaan tersebut.
42
Keuntungan dari
Organisasi Microkernel
• Interface seragam pada request dibuat oleh suatu proses.
• Extensibility• Flexibility• Portability• Reliability• Dukungan sistem terdistribusi• Sistem operasi berorientasi obyek
43
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
44
Proses Windows
• Proses & service disediakan oleh kernel Windows relatif sederhana dan bertujuan umum (simple & general purpose)– Diimplementasikan sebagai obyek– Proses executable dapat mengandung satu
atau lebih thread– Obyek proses & thread punya kemampuan
sinkronisasi built-in.
45
Hubungan Proses & Resource
46
Obyek Proses Windows
47
Obyek Thread Windows
48
Status Thread
49
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
50
Solaris
• Solaris mengimplementasikan dukungan thread multilevel yang dirancang untuk menyediakan fleksibilitas dalam mengeksploitasi sumber daya processor.
• Proses menyertakan ruang alamat pengguna, stack, & PCB
51
Proses Solaris
• Solaris memanfaatkan empat konsep thread-related:– Process: memasukkan ruang alamat
pengguna, stack dan PCB.– Thread user-level: unit eksekusi user-created
di dalam suatu proses.– Lightweight process: suatu pemetaan antara
thread ULT & kernel. – Thread kernel
52
Hubungan Proses & Thread
53
Unix vs Solaris Tradisional
Solaris replaces the processor state block with a list of
LWPs
54
Struktur Data LWP
• Suatu pengenal LWP • Prioritas dari LWP ini • Suatu signal mask • Nilai-nilai tersimpan dari register user-level • Kernel stack bagi LWP ini• Penggunaan resource & profiling data• Pointer ke thread kernel yang bersesuaian• Pointer ke struktur proses
55
Status Thread Solaris
56
Tugas (task) Linux
• Proses atau task direpresentasikan oleh suatu struktur data task_struct
• Ini mengandung sejumlah kategori, termasuk:– Status– Informasi penjadwalan (scheduling) – Pengenal (identifier)– Komunikasi antar-proses (IPC)– Dan lain-lain
57
Model Proses/Thread Linux
58
Tugas Pertemuan 4
• Uraikan jawaban Problems 3.1 & 3.2, 4.1 & 4.2
• Baca tutorial Thread Programming di Java & C/C++, buat rangkumannya, sebutkan sumber bacaan anda secara jelas!
• Jelaskan tentang Mikrokernel, mencakup kelebihannya, kinerja, rancangan, manajemen memory, komunikasi antar proses, manajemen I/O & Interupsi!