Thread, SMP, dan Microkernel (Pertemuan keke-6) Agustus 2014 Pokok Bahasan • Pokok Bahasan: – Thread, SMP, dan Microkernel • Sub Pokok Bahasan: – Multithreading – Fungsionalitas thread – Jenis-jenis thread • TIU: – Mahasiswa dapat memahami konsep dasar Thread, SMP, dan Microkernel • TIK: – Mahasiswa dapat menjelaskan prinsip multithreading – Mahasiswa dapat menjelaskan fungsionalitas thread – Mahasiswa dapat menjelaskan jenis-jenis thread Sistem Operasi/2014 #2 Agenda: • Proses dan Thread • Symmetric Multiprocessing (SMP) – Arsitektur SMP – Organisasi SMP – Perancangan sistem operasi Multiprocessor • Microkernel – – – – Arsitektur microkernel Kelebihan mikrokernel Performansi mikrokernel Perancangan mikrokernel • Bedah OS – Windows – Solaris – Linux Sistem Operasi/2014 #3 Eksekusi Serial dan Paralel • Benarkah eksekusi instruksi pada komputer uniprocessor dilakukan secara serial (bergantian) ? – Ya, jika dilihat dari sisi proses atau thread – Tidak, jika dilihat dari sisi operasi mikro yang menerapkan metode pipelining (fetch instruksi berikutnya dilakukan bersamaan dengan saat instruksi sekarang sedang dieksekusi) • Mengapa eksekusi paralel digunakan ? – – – – Teknologi telah tersedia Harga hardware komputer telah turun Untuk meningkatkan performansi komputer Untuk meningkatkan kehandalan komputer Sistem Operasi/2014 #4 Apakah Pipeline itu ? • Pipeline adalah salah satu cara untuk meningkatkan performansi komputer dengan cara melakukan beberapa tahapan eksekusi instruksi berbeda dalam satu siklus • Misal tahapan eksekusi instruksi sbb: – – – – Fetch: Ambil instruksi dari memori Decode: Terjemahkan arti dari instruksi Execute: Eksekusi instruksi yang telah di-decode Write: Simpan hasil eksekusi ke memori • Dalam 12 siklus: – Sistem tanpa pipeline: dapat dieksekusi 3 buah instruksi – Sistem dengan pipeline: dapat diselesaikan 9 buah instruksi + beberapa tahapan instruksi lainnya Sistem Operasi/2014 #5 Sistem Dengan dan Tanpa Pipeline •Tanpa Pipeline •Dengan Pipeline Sistem Operasi/2014 #6 Karakteristik Pipeline • Pipeline merupakan bentuk eksekusi instruksi spekulatif, instruksi berikutnya yang sudah diambil (fetch) belum tentu dieksekusi (bila terjadi percabangan) • Bagaimana dengan nasib instruksi yang sudah diambil jika terjadi interrupt ? – Instruksi yang sedang dieksekusi diselesaikan hingga selesai – Instruksi yang sudah diambil: • disimpan (lebih rumit) • dibuang (sederhana, preferred) Sistem Operasi/2014 #7 Taksonomi Komputer Paralel (1) Sistem Operasi/2014 #8 Taksonomi Komputer Paralel (2) • Single Instruction Single Data (SISD) – Sebuah prosesor mengeksekusi instruksi tunggal dan menggunakan data yang disimpan pada memori tunggal – Bukan termasuk multiprocesor • Single Instruction Multiple Data (SIMD) – Sebuah instruksi mengontrol eksekusi yang dilakukan secara bersamaan pada sejumlah prosesor – Setiap prosesor mengelola data masing-masing yang disimpan pada memori masing-masing – Contoh: prosesor array dan vektor Sistem Operasi/2014 #9 Taksonomi Komputer Paralel (3) • Multiple Instruction Single Data (MISD) – Sederetan data dikirimkan ke sejumlah prosesor – Setiap prosesor mengeksekusi deretan instruksi yang berbeda – Tidak pernah diimplementasikan • Multiple Instruction Multiple Data (MIMD) – Sejumlah prosesor mengeksekusi deretan instruksi berbeda secara bersama-sama menggunakan data masing-masing – Dibedakan menjadi 2 model: • distributed memory • shared memori Sistem Operasi/2014 #10 Multiple Instruction Multiple Data (MIMD) • Menggunakan prosesor serbaguna • Jenis MIMD: – Distributed-memory (loosely coupled) • Disebut juga Cluster (multicomputer) • Setiap prosesor mempunyai memori sendiri-sendiri • Komunikasi antar prosesor menggunakan saluran tersendiri atau fasilitas jaringan – Shared-memory multiprocessor (tightly coupled) • Setiap prosesor menggunakan memori bersama yang juga digunakan sebagai sarana komunikasi antar prosesor • Dibedakan menjadi 2 model: – Master/slave – Symmetric Multiprocessing (SMP) Sistem Operasi/2014 #11 Arsitektur Master/Slave (1) • Termasuk model Shared-memory • Kernel sistem operasi selalu dijalankan pada sebuah prosesor khusus (master) • Program aplikasi dan utility sistem operasi dikerjakan oleh prosesor yang lain (slave) • Prosesor master bertanggung jawab mengatur penjadualan proses atau thread • Proses/thread yang memerlukan layanan (I/O call) harus mengirim request ke prosesor master Sistem Operasi/2014 #12 Arsitektur Master/Slave (2) • Kelebihan: – Implementasi sederhana – Sistem operasi multiprogramming untuk uniprocessor masih dapat digunakan setelah dimodifikasi sedikit – Rebutan resource dapat diatasi karena semuanya dikendalikan oleh prosesor master • Kerugian: – Bila prosesor master gagal, maka seluruh sistem akan gagal – Dapat terjadi bottle neck bila prosesor master kelebihan beban akibat melakukan penjadualan dan manajemen proses sendirian Sistem Operasi/2014 #13 Symmetric Multiprocessing (SMP) (1) • Termasuk model Shared-memory • Kernel sistem operasi dapat dijalankan pada sembarang prosesor • Setiap prosesor melakukan penjadualan proses/thread sendiri-sendiri • Program kernel dapat dibuat menjadi banyak proses atau banyak thread, sehingga dapat dieksekusi secara paralel Sistem Operasi/2014 #14 Symmetric Multiprocessing (SMP) (2) • Kelebihan: – Sistem masih dapat berjalan meskipun ada prosesor yang gagal (lebih handal) – Bottle neck dapat dihindari • Kerugian: – Implementasi kompleks – Dapat terjadi rebutan resource dan rebutan proses/thread bila sinkronisasi tidak ditangani secara baik • Permasalahan dalam perancangan pada SMP dan cluster: – – – – – Organisasi secara fisik Struktur interkoneksi Komunikasi antar prosesor Perancangan sistem operasi Perancangan software aplikasi Sistem Operasi/2014 #15 Organisasi SMP (1) Sistem Operasi/2014 #16 Organisasi SMP (2) • Setiap prosesor mempunyai control unit, ALU, register, dan cache memory sendiri-sendiri • Setiap prosesor dapat mengakses memori dan I/O device melalui sistem bus • Komunikasi antar prosesor menggunakan sarana memori (pesan dan status ditaruh di dalam ruang alamat bersama) • Salinan data di memori dapat terletak pada beberapa cache memory – Bagaimana cara menjaga validitas data jika salah satu prosesor mengubah data tersebut ? – Solusi: • Prosesor yang melakukan perubahan harus memberi pemberitahuan • Disebut cache coherence Sistem Operasi/2014 #17 Masalah pada Perancangan Sistem Operasi Multiprocessor • Bagaimana cara menangani: – Eksekusi proses atau thread secara konkuren dan bersamasama • Jika gagal: terjadi deadlock atau operasi tidak valid – Penjadualan • Jika gagal: eksekusi proses atau thread tidak maksimal dan starvation – Sinkronisasi • Jika gagal: terjadi rebutan resource atau hasil eksekusi tidak sesuai dengan yang diharapkan – Manajemen memori • Jika gagal: data tidak valid – Kehandalan dan fault tolerance • Jika gagal: bila ada prosesor yang gagal tidak dapat segera diketahui dan digantikan oleh prosesor yang lain Sistem Operasi/2014 #18 Referensi: [STA09] Stallings, William. 2009. Operating System: Internal and Design Principles. 6th edition. Prentice Hall Sistem Operasi/2014 #19