Sistem Operasi 2009 Pertemuan 4 Thread, SMP & Microkernel H u s n i 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