Thread,, SMP, dan Microkernel (Pertemuan ke-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. 6 th edition. Prentice Hall Sistem Operasi/2014 #19