Anda di halaman 1dari 15

Scheduling Pada Multiprocessor

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

Anda mungkin juga menyukai