Thread, SMP, Microkernel Thread, SMP

advertisement
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
Download