MULTIPROCESSOR SCHEDULING
Multiprocessor
membutuhkan penjadualan yang lebih rumit karena mempunyai banyak
kemungkinan yang akan terjadi bila dibandingkan dengan processor
tunggal.
Klasifikasi sistem multiprocessor :
- Loosely
Coupled or distributed multiprocessor, or cluster : terdiri dari
beberapa sistem yang relatif otonom, setiap prosesor memiliki main
memory sendiri dan I/O channels.
- Functionally specialized
processor : terdapat master, general-purpose processor dan specialozed
processor dikendalikan oleh processor matster.
- Tightly couple
multiprocessor : terdiri dari satu set processor yang membagi main
memory dan berada di bawah kendali integrasi pada sebuah sistem operasi.
Granularity
Sebuah
cara karakteristik multiprosesor dan menempatkanya dalam sebuah konteks
dengan arsitektur lain demi mempertimbangkan granularitas sinkronisasi,
atau frekuensi sinkronisasi, antara proses dalam suatu sistem.
Independent Parallelism
Dengan
independent parallelism, tidak ada eksplisit sinkronisasi antara
proses. Masing-masing mewakili aplikasi, terpisah atau berdiri sendiri.
kebiasaan umum yang digunakan dari tipe parallelisme adalah sistem
time-sharing.
Coarse and Very Coarse-Grained Parallelism
Secara
umum, kumpulan proses konkuren yang perlu berkomunikasi atau
menyinkronkan bisa mendapatkan keuntungan dari penggunaan arsitektur
multiprosesor. Dalam kasus interaksi yang sangat jarang terjadi pada
semua proses, sistem terdistribusi dapat memberikan dukungan yang baik.
Medium-Grained Parallelism
Programmer,
secara implisit harus menentukan paralelisme potensial dari aplication.
Diperlukan koordinasi dan interaksi antar thread dari sebuah aplikasi
yang mengarah pada sinkronisasi medium-grain.
Fine-Grained Parallelism
Merupakan penggunaan yang lebih kompleks dari paralelisme.
Terdapat 4 pendekatan bagaimana menjalankan program-program dalam komputer multiprosesor
- Load
sharing : berbagi beban, semua program diantrikan dalam antrian,
prosesor yang menganggur akan mengambil antrian terdepan dan
menjalankannya.
- Gang schedulling : sekumpulan thread yang
saling terkait diantrikan pada sekumpulan prosesor pada saat yang sama,
satu thread satu prosesor.
- Dedicated prosesor assignment : pada sebuah program diberikan sejumlah rosesor sebanyak thread yang ada dalam program itu
Dynamic scheduling : jumlah thread yang diaktifkan dari suatu program dapat diubah-ubah.
Dalam pendekatan loadsharing terdapat pilihan berikut:
- First
come first served : thread-thread dari job yang datang diantrikan dalam
antrian bersama.prosesor menganggur akan memanggil thread terdepan.
- Smallest
number of thread first : ada antrian sesuai prioritas.prioritas
tertinggi diberikan pada program dengan jumlah thread terkecil.
REAL-TIME SCHEDULING
Hard real-time systems
- Task kritis harus selesai dengan garansi waktu tertentu.
-
OS akan melacak lamanya task tersebut dieksekusi (real time), yaitu
untuk : mengetahui lama waktu system call, fungsi dan response dari
hardware; untuk melakukan prediksi apakah task tersebut dapat
dijalankan.
- Mudah dilakukan untuk OS khusus pada pemakaian khusus.
- Sulit untuk time-sharing sistem.
Soft real-time systems
- Membutuhkan penggunaan skema prioritas
- Multimedia, highly interactive graphics
- Prioritas tidak menurunkan over time.
Cara menjadwalkan program-program dalam sistem tersebut :
- Static
table driven approaches : di jalankan analisis statis dari tugas-tugas
yang sedang antri, deadline mana yang terdekat, itu yang dijadwalkan
dahulu. Program baru, jika datang pada saat jadwal dijalankan, akan
diperhatikan untuk jadwal berikutnya.
- Static priority driven
preemptive approaches : tugas-tugas diprioritaskan berdasarkan batasan
waktu. Pada saat dijalankan, jika ada tugas dengan prioritas lebih
tinggi, tugas yang sedang dijalankan dapat dihentian.
- Dynamic
planning based approaches : tugas-tugas sudah direncanakan untuk
dijalankan, hanya jika ada tugas baru datang dan memngkinkan untuk
dijalankan, maka akan diterima untuk dijalankan.