Computer Engineering Andalas University Penjadwalan Pada Multiprosesor
• Pada prosesor jamak, penjadwalannya jauh lebih
kompleks daripada prosesor tunggal karena pada prosesor jamak memungkinkan adanya load sharing antar prosesor. • Ada dua pendekatan dalam penjadwalan multiprosesor: • Asymmetric Multiprocessing. Satu prosesor adalah prosesor master, mengelola semua aktifitas dan menjalankan kode-kode kernel sedangkan yang lainnya adalah slave. Pendekatan ini leibh sederhana karena tidak ada kebutuhan untuk berbagi data-data kritis. • Symmetric Multiprocessing. Setiap prosesor menjadwalkan job nya sendiri baik dari ready queue bersama maupun dari ready queue masing-masing prosesor. Penjadwalan Master / Slave
• Hanya satu prosesor (master) yang menangani
keputusan penjadwalan, pemrosesan I/O serta aktifitas sistem lainnya. • Prosesor lainnya (slave) hanya bertugas untuk mengeksekusi proses. • Metode ini sederhana karena hanya satu prosesor yang mengakses struktur data sistem dan juga mengurangi data sharing. Penjadwalan Master / Slave • Dalam teknik penjadwalan master/slave, satu prosesor menjaga status dari semua proses dalam sistem dan menjadwalkan kinerja untuk semua prosesor slave. • Contoh: • Prosesor master memilih proses yang akan dieksekusi, kemudian mencari prosesor slave yang available, dan memberikan instruksi Start processor. • Prosesor slave memulai eksekusi pada lokasi memori yang dituju. • Saat slave mengalami sebuah kondisi tertentu seperti meminta I/O, prosesor slave memberi interupsi kepada prosesor master dan berhenti untuk menunggu perintah selanjutnya. Penjawalan Symmetric Multiprocessing (SMP)
• Pada penjadwalan SMP setiap prosesor
menjadwalkan dirinya sendiri (self scheduling). • Penjadwalan terlaksana dengan menjadwalkan setiap prosesor untuk memeriksa antrian ready dan memilih sebuah proses untuk dieksekusi. • Jika suatu sistem prosesor jamak mencoba untuk mengakses dan meng-update suatu struktur data, penjadwal dari prosesor-prosesor tersebut harus diprogram dengan hati-hati. • Programmer harus memastikan dua prosesor tidak memilih proses yang sama dan proses tersebut tidak hilang dari antrian. Processor Affinity • Setiuap prosesor memiliki cache yang berisi data yang sering diakses untuk mempercepat eksekusi sebuah proses. • Jika sebuah proses berpindah dari satu prosesor ke prosesor yang lain setiap kali ia mendapatkan time slice, maka data yang tersimpan didalam cache menjadi tidak valid dan perlu diakses kembali dari memory (RAM). • Untuk mengatasi hal tersebut prosesor SMP berusaha menjaga sebuah proses tetap berada pada sebuah prosesor yang sama melalui mekanisme Processor Affinity. • Ada dua jenis processor affinity yaitu: • Soft Affinity. Yaitu sistem melakukan processor affinity, namun tidak memberikan jaminan. • Hard Affinity. Yaitu sistem yang memberikan jaminan dalam processor affinity. Processor Affinity Diagram prosesor multicore:
Setiap prosesor memiliki memori cache sendiri-sendiri dan perlu
menjaga sebuah proses tetap dieksekusi oleh prosesor yang sama agar data yang tersimpan pada cache selama proses eksekusi tetap valid. Load Balancing • Salah satu tujuan penting sistem multiprosesor adalah menjaga keseimbangan kerja antar prosesor sehingga tidak ada satu prosesor sedang bekerja penuh sementara yang lainnya menganggur. • Load balancing adalah mekanisme membagi beban antar prosesor sehingga setiap prosesor mendapatkan porsi pekerjaan yang seimbang. • Ada dua pendekatan load balancing: • Push migration, pada kondisi ini ada suatu task spesifik yang secara berkala memeriksa load dari tiap-tiap prosesor. Jika terdapat ketidakseimbangan, maka dilakukan perataan dengan memindahkan (pushing ) proses dari yang kelebihan muatan ke prosesor yang idle atau yang memiliki muatan lebih sedikit. • Pull migration, kondisi ini terjadi saat prosesor yang idle menarik (pulling ) proses yang sedang menunggu dari prosesor yangsibuk. Sekian Terima Kasih
Faktor Apa Saja Yang Harus Diperhatikan Untuk Melakukan Schedulling Pada Sistem Multiprocessors Dan Bagaimana Melakukan Schedulling Pada Sistem Multiprocessors