thread, smp, dan microkernel - telkom...
TRANSCRIPT
ThreadThread, SMP,, SMP,dandan
MicrokernelMicrokernel(Pertemuan ke(Pertemuan ke--6)6)
ThreadThread, SMP,, SMP,dandan
MicrokernelMicrokernel(Pertemuan ke(Pertemuan ke--6)6)
Agustus 2014
Pokok BahasanPokok 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
• 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
AgendaAgenda::• 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
• 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
Eksekusi Serial dan ParalelEksekusi Serial dan Paralel
• Benarkah eksekusi instruksi pada komputeruniprocessor dilakukan secara serial (bergantian) ?– Ya, jika dilihat dari sisi proses atau thread– Tidak, jika dilihat dari sisi operasi mikro yang
menerapkan metode pipelining (fetch instruksiberikutnya dilakukan bersamaan dengan saat instruksisekarang 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
• Benarkah eksekusi instruksi pada komputeruniprocessor dilakukan secara serial (bergantian) ?– Ya, jika dilihat dari sisi proses atau thread– Tidak, jika dilihat dari sisi operasi mikro yang
menerapkan metode pipelining (fetch instruksiberikutnya dilakukan bersamaan dengan saat instruksisekarang sedang dieksekusi)
• Mengapa eksekusi paralel digunakan ?– Teknologi telah tersedia– Harga hardware komputer telah turun– Untuk meningkatkan performansi komputer– Untuk meningkatkan kehandalan komputer
ApakahApakah PipelinePipeline itu ?itu ?
• Pipeline adalah salah satu cara untukmeningkatkan performansi komputer dengan caramelakukan beberapa tahapan eksekusi instruksiberbeda 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 lainnyaSistem Operasi/2014 #5
• Pipeline adalah salah satu cara untukmeningkatkan performansi komputer dengan caramelakukan beberapa tahapan eksekusi instruksiberbeda 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 Dengan dan TanpaSistem Dengan dan Tanpa PipelinePipeline
•Tanpa Pipeline
Sistem Operasi/2014 #6
•Dengan Pipeline
KarakteristikKarakteristik PipelinePipeline
• Pipeline merupakan bentuk eksekusiinstruksi spekulatif, instruksi berikutnyayang sudah diambil (fetch) belum tentudieksekusi (bila terjadi percabangan)
• Bagaimana dengan nasib instruksi yangsudah 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
• Pipeline merupakan bentuk eksekusiinstruksi spekulatif, instruksi berikutnyayang sudah diambil (fetch) belum tentudieksekusi (bila terjadi percabangan)
• Bagaimana dengan nasib instruksi yangsudah diambil jika terjadi interrupt ?– Instruksi yang sedang dieksekusi diselesaikan
hingga selesai– Instruksi yang sudah diambil:
• disimpan (lebih rumit)• dibuang (sederhana, preferred)
Taksonomi Komputer ParalelTaksonomi Komputer Paralel (1)(1)
Sistem Operasi/2014 #8
Taksonomi Komputer ParalelTaksonomi Komputer Paralel (2)(2)
• Single Instruction Single Data (SISD)– Sebuah prosesor mengeksekusi instruksi tunggal dan
menggunakan data yang disimpan pada memoritunggal
– Bukan termasuk multiprocesor• Single Instruction Multiple Data (SIMD)
– Sebuah instruksi mengontrol eksekusi yang dilakukansecara bersamaan pada sejumlah prosesor
– Setiap prosesor mengelola data masing-masing yangdisimpan pada memori masing-masing
– Contoh: prosesor array dan vektor
Sistem Operasi/2014 #9
• Single Instruction Single Data (SISD)– Sebuah prosesor mengeksekusi instruksi tunggal dan
menggunakan data yang disimpan pada memoritunggal
– Bukan termasuk multiprocesor• Single Instruction Multiple Data (SIMD)
– Sebuah instruksi mengontrol eksekusi yang dilakukansecara bersamaan pada sejumlah prosesor
– Setiap prosesor mengelola data masing-masing yangdisimpan pada memori masing-masing
– Contoh: prosesor array dan vektor
Taksonomi Komputer ParalelTaksonomi Komputer Paralel (3)(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 datamasing-masing
– Dibedakan menjadi 2 model:• distributed memory• shared memori
Sistem Operasi/2014 #10
• 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 datamasing-masing
– Dibedakan menjadi 2 model:• distributed memory• shared memori
Multiple Instruction Multiple Data (MIMD)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
• 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)
ArsitekturArsitektur Master/SlaveMaster/Slave (1)(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 keprosesor master
Sistem Operasi/2014 #12
• 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 keprosesor master
ArsitekturArsitektur Master/SlaveMaster/Slave (2)(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 akangagal
– Dapat terjadi bottle neck bila prosesor masterkelebihan beban akibat melakukan penjadualan danmanajemen proses sendirian
Sistem Operasi/2014 #13
• 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 akangagal
– Dapat terjadi bottle neck bila prosesor masterkelebihan beban akibat melakukan penjadualan danmanajemen proses sendirian
Symmetric Multiprocessing (SMP)Symmetric Multiprocessing (SMP) (1)(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
• 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
Symmetric Multiprocessing (SMP)Symmetric Multiprocessing (SMP) (2)(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
• 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
Organisasi SMPOrganisasi SMP (1)(1)
Sistem Operasi/2014 #16
Organisasi SMPOrganisasi SMP (2)(2)
• Setiap prosesor mempunyai control unit, ALU, register,dan cache memory sendiri-sendiri
• Setiap prosesor dapat mengakses memori dan I/O devicemelalui sistem bus
• Komunikasi antar prosesor menggunakan sarana memori(pesan dan status ditaruh di dalam ruang alamatbersama)
• Salinan data di memori dapat terletak pada beberapacache memory– Bagaimana cara menjaga validitas data jika salah satu prosesor
mengubah data tersebut ?– Solusi:
• Prosesor yang melakukan perubahan harus memberipemberitahuan
• Disebut cache coherenceSistem Operasi/2014 #17
• Setiap prosesor mempunyai control unit, ALU, register,dan cache memory sendiri-sendiri
• Setiap prosesor dapat mengakses memori dan I/O devicemelalui sistem bus
• Komunikasi antar prosesor menggunakan sarana memori(pesan dan status ditaruh di dalam ruang alamatbersama)
• Salinan data di memori dapat terletak pada beberapacache memory– Bagaimana cara menjaga validitas data jika salah satu prosesor
mengubah data tersebut ?– Solusi:
• Prosesor yang melakukan perubahan harus memberipemberitahuan
• Disebut cache coherence
MasalahMasalah pada Perancanganpada PerancanganSistem OperasiSistem Operasi MultiprocessorMultiprocessor
• Bagaimana cara menangani:– Eksekusi proses atau thread secara konkuren dan bersama-
sama• 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 tidaksesuai 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 lainSistem Operasi/2014 #18
• Bagaimana cara menangani:– Eksekusi proses atau thread secara konkuren dan bersama-
sama• 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 tidaksesuai 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
Referensi:Referensi:
[STA09] Stallings, William. 2009. OperatingSystem: Internal and Design Principles.6th edition. Prentice Hall
Sistem Operasi/2014 #19