Sistem Operasi 2009 Pertemuan 4 Thread, SMP & Microkernel Husni Lab. Sistem Komputer & Jaringan Teknik Informatika Univ. Trunojoyo
Ikhtisar • Thread: Kepemilikan sumber daya dan Eksekusi • Symmetric Multiprocessing (SMP). • Microkernel • Studi kasus thread & SMP: – Windows – Solaris – Linux 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 (penjadwalaneksekusi) – 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) • Unit dari dispatching diacu sebagai thread atau lightweight process • Unit dari kepemilikan sumber daya diacu sebagai proses atau task
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 • Suatu ruang alamat virtual yang memegang process image • Akses terproteksi ke – Processor, – Proses lain, – File, – Sumber daya I/O
8
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) 9
Satu Pandangan… • Salah satu cara memandang thread adalah sebagai suatu program counter independen yang beroperasi di 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 • • • •
Kerja foreground & background Pemrosesan asynchronous Kecepatan eksekusi Struktur program modular
13
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 14
Aktifitas Menyerupai Proses • Thread mempunyai status eksekusi dan dapat sinkron satu dengan lainnya. – Menyerupai proses
• Ada dua aspek penting dalam fungsionalitas thread: – Status – Sinkronisasi
15
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
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 • User Level Thread (ULT) • Kernel level Thread (KLT) juga disebut: – kernel-supported threads – lightweight processes.
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 • 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. 26
Kerugian dari KLT • Transfer kontrol dari satu thread ke lainnya di dalam proses yang sama mengharuskan switch modus ke kernel
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 • 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) 30
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 31
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
32
Arsitektur Processor Parallel
33
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
34
Organisasi SMP (Typical)
35
Rancangan SO Multiprocessor • Isu rancangan utama mencakup – Proses atau thread concurrent simultan – Scheduling (penjadwalan) – Synchronization (sinkronisasi) – Manajemen Memory – Reliability dan Fault Tolerance
36
Microkernel • Microkernel merupakan suatu inti SO kecil yang menyediakan fondasi bagi ekstensiekstensi 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. 37
Arsitektur Kernel
38
Rancangan Microkernel: Manajemen Memory
Manajemen memory level bawah (lowlevel): Memetakan setiap page virtual ke frame fisik – Sebagian besar tugas manajemen memory terjadi dalam user space
39
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. 40
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.
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 • 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.
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 • Solaris mengimplementasikan dukungan thread multilevel yang dirancang untuk menyediakan fleksibilitas dalam mengeksploitasi sumber daya processor. • Proses menyertakan ruang alamat pengguna, stack, & PCB
50
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 51
Hubungan Proses & Thread
52
Unix vs Solaris Tradisional
Solaris replaces the processor state block with a list of LWPs 53
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 54
Status Thread Solaris
55
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 56
Model Proses/Thread Linux
57
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! 58