1.
Guaranteed
Schedulling
Algoritma penjadwalan ini memberikan daya pemroses yang sama
untuk membuat dan menyesuaikan kinerja. Algoritma yang memiliki kinerja yang
cukup bagus akan menjanjikan kelangsungan yang baik pula. Misalnya ada X
pemakai, maka setiap proses atau pemakai akan mendapatkan 1/X dari daya
pemroses CPU. Untuk mewujudkannya, system harus selalu menyimpan informasi
tentang jumlah waktu CPU untuk semua proses sejak login dan juga harus selalu
menyimpan informasi tentang berapa lama pemakai sedang login. System harus tahu
berapa CPU time untuk meyakinkan bahwa setiap pengguna mendapatkan jatah waktu
menggunakan CPU sesuai haknya dan juga berapa CPU time yang diperlukan oleh
setiap proses 1 pengguna serta berapa CPU time yang diperlukan oleh tiap-tiap
pengguna.
Misalkan
ada 5 pengguna, seperti pada table berikut:
Pengguna
|
CPU Time
|
A
|
5
|
B
|
4
|
C
|
8
|
D
|
1
|
E
|
2
|
Total waktu yang digunakan untuk mengakses kelima pengguna tersebut adalah 20ms, sehingga diharapkan tiap pengguna mendapatkan 20/5=4 ms. Kenyataannya, mulai sejak login sampai saat ini tiap-tiap pengguna telah mendapatkan CPU seperti pada table berikut. Rasio antara CPU yang diperoleh sampai saat ini (actual) dengan CPU tang seharusnya diperoleh (4 ms) dapat dicari dengan:
Pengguna
|
CPU Aktual
|
Rasio
|
A
|
3
|
3/4=0.75
|
B
|
6
|
6/4=1.5
|
C
|
2
|
2/4=0.5
|
D
|
1
|
1/4=0.25
|
E
|
1
|
1/4=0.25
|
Dapat dilihat bahwa Pengguna A memiliki rasio 0.75, artinya
A baru mendapatkan ¾ dari jatah waktu yang seharusnya diterima. Pengguna B
memiliki rasio 1.5, artinya B mendapatkan 1.5 waktu dari jatah yang seharusnya
didapatkan. Algoritma ini menjalankan proses dengan rasio yang paling rendah
dulu sampai proses tersebut mendapatkan rasio melebihi rasio proses yang
sebelumnya mempunyai rasio satu tingkat labih tinggi darinya.
2.
Multiple
Processor Schedulling
Untuk
mempertinggi kinerja, kehandalan, kemampuan komputasi, paralelisme, dan
keekonomisan dari suatu sistem, tambahan prosesor dapat diimplementasikan ke
dalam sistem tersebut. Sistem seperti ini disebut dengan sistem yang bekerja
dengan banyak prosesor (prosesor jamak atau multiprocessor). Seperti
halnya pada prosesor tunggal, prosesor jamak juga membutuhkan penjadwalan.
Namun pada prosesor jamak, penjadwalannya jauh lebih kompleks daripada prosesor
tunggal karena pada prosesor jamak memungkinkan adanya load sharing
antar prosesor yang menyebabkan penjadwalan menjadi lebih kompleks namun
kemampuan sistem tersebut menjadi lebih baik. Oleh karena itu, kita perlu
mempelajari penjadwalan pada prosesor jamak berhubung sistem dengan prosesor
jamak akan semakin banyak digunakan karena kemampuannya yang lebih baik dari
sistem dengan prosesor tunggal.
Jenis
– jenis Multiple Processor Schedulling
a.
Penjadwalan
Mater/Slave
Pendekatan pertama untuk penjadwalan
prosesor jamak adalah penjadwalan asymmetric multiprocessing atau bisa
disebut juga sebagai penjadwalan master/slave. Dimana pada metode ini
hanya satu prosesor( master) yang menangani semua keputusan penjadwalan,
pemrosesan M/K, dan aktivitas sistem lainnya dan prosesor lainnya ( slave)
hanya mengeksekusi proses. Metode ini sederhana karena hanya satu prosesor yang
mengakses struktur data sistem dan juga mengurangi data sharing. Dalam
teknik penjadwalan master/slave, satu prosesor menjaga status dari semua
proses dalam sistem dan menjadwalkan kinerja untuk semua prosesor slave.
Sebagai contoh, prosesor master memilih proses yang akan dieksekusi,
kemudian mencari prosesor yang available, dan memberikan instruksi Start
processor. Prosesor slave memulai eksekusi pada lokasi memori yang
dituju. Saat slave mengalami sebuah kondisi tertentu seperti meminta
M/K, prosesor slave memberi interupsi kepada prosesor master dan
berhenti untuk menunggu perintah selanjutnya. Perlu diketahui bahwa prosesor slave
yang berbeda dapat ditujukan untuk suatu proses yang sama pada waktu yang
berbeda.
Gambar 15.1. Multiprogramming
dengan multiprocessor
Gambar di atas mengilustrasikan
perilaku dari multiprocessor yang digunakan untuk multiprogramming
Beberapa proses terpisah dialokasikan di dalam memori. Ruang alamat proses
terdiri dari halaman-halaman sehingga hanya sebagian saja dari proses tersebut
yang berada dalam memori pada satu waktu. Hal ini memungkinkan banyak proses
dapat aktif dalam sistem.
b.
Penjadwalan
Symmetric Multiprocessing (SMP)
Penjadwalan SMP ( Symmetric
multiprocessing) adalah pendekatan kedua untuk penjadwalan prosesor jamak.
Dimana setiap prosesor menjadwalkan dirinya sendiri ( self scheduling).
Semua proses mungkin berada pada antrian ready yang biasa, atau
mungkin setiap prosesor memiliki antrian ready tersendiri.
Bagaimanapun juga, penjadwalan terlaksana dengan menjadwalkan setiap prosesor
untuk memeriksa antrian ready dan memilih suatu 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; kita harus yakin bahwa dua prosesor tidak memilih proses yang
sama dan proses tersebut tidak hilang dari antrian. Secara virtual, semua
sistem operasi modern mendukung SMP, termasuk Windows XP, Windows 2000,
Solaris, Linux, dan Mac OS X.
c.
Affinity
Data
yang paling sering diakses oleh beberapa proses akan memadati cache pada
prosesor,sehingga akses memori yang sukses biasanya terjadi di memori cache.
Namun, jika suatu proses . berpindah dari satu prosesor ke prosesor lainnya
akan mengakibatkan isi dari cache memori yang dituju menjadi tidak
valid, sedangkan cache memori dari prosesor asal harus disusun kembali
populasi datanya. Karena mahalnya invalidating dan re-populating
dari cache, kebanyakan sistem SMP mencoba untuk mencegah migrasi proses antar
prosesor sehingga menjaga proses tersebut untuk berjalan di prosesor yang sama.
Hal ini disebut afinitas prosesor ( processor affinity). Ada dua jenis
afinitas prosesor, yakni:
·
Soft
affinity yang
memungkinkan proses berpindah dari satu prosesor ke prosesor yang lain, dan
·
Hard
affinity yang
menjamin bahwa suatu proses akan berjalan pada prosesor yang sama dan tidak
berpindah. Contoh sistem yang menyediakan system calls yang mendukung hard
affinity adalah Linux.
d.
Load Balancing
Dalam
sistem SMP, sangat penting untuk menjaga keseimbangan workload antara
semua prosesor untuk memaksimalkan keuntungan memiliki multiprocessor.
Jika tidak, mungkin satu atau lebih prosesor idle disaat prosesor lain
harus bekerja keras dengan workload yang tinggi. Load balancing
adalah usaha untuk menjaga workload terdistribusi sama rata untuk semua
prosesor dalam sistem SMP. Perlu diperhatikan bahwa load balancing hanya
perlu dilakukan pada sistem dimana setiap prosesor memiliki antrian tersendiri(
private queue) untuk proses-proses yang berstatus ready. Pada
sistem dengan antrian yang biasa ( common queue), load balancing
tidak diperlukan karena sekali prosesor menjadi idle, prosesor tersebut
segera mengerjakan proses yang dapat dilaksanakan dari antrian biasa tersebut.
Perlu juga diperhatikan bahwa pada sebagian besar sistem operasi kontemporer
mendukung SMP, jadi setiap prosesor bisa memiliki private queue. Ada dua
jenis load balancing, yakni:
·
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 yang sibuk.
Kedua pendekatan tersebut tidak
harus mutually exclusive dan dalam kenyataannya sering diimplementasikan
secara paralel pada sistem load-balancing.
Keuntungan dari affinity
berlawanan dengan keuntungan dari load balancing, yaitu keuntungan
menjaga suatu proses berjalan pada satu prosesor yang sama dimana proses dapat
memanfaatkan data yang sudah ada pada memori cache prosesor tersebut
berkebalikan dengan keuntungan menarik atau memindahkan proses dari satu
prosesor ke prosesor lain. Dalam kasus system engineering, tidak ada
aturan tetap keuntungan yang mana yang lebih baik. Walaupun pada beberapa
sistem, prosesor idle selalu menarik proses dari prosesor non-idle
sedangkan pada sistem yang lain, proses dipindahkan hanya jika terjadi
ketidakseimbangan yang besar antara prosesor.
e.
Symetric Multithreading
Ide dari SMT adalah untuk
menciptakan banyak logical processor dalam suatu physical
processor yang sama dan mempresentasikan beberapa prosesor kepada sistem
operasi. Setiap logical processor mempunyai state arsitekturnya
sendiri yang mencangkup general purpose dan machine state register.
Lebih jauh lagi, setiap logical prosesor bertanggung jawab pada
penanganan interupsinya sendiri, yang berarti bahwa interupsi cenderung
dikirimkan ke logical processor dan ditangani oleh logical
processor bukan physical processor. Dengan kata lain, setiap logical
processor men- share resource dari physical processor-nya,
seperti chace dan bus.
Gambar 15.2. Symetric
Multithreading
Gambar di atas
mengilustrasikan suatu tipe arsitektur SMT dengan dua physical processor
dengan masing-masing punya dua logical processor. Dari sudut pandang
sistem operasi, pada sistem ini terdapat empat prosesor. Perlu diketahui bahwa
SMT adalah fitur yang disediakan dalam hardware, bukan software, sehingga
hardware harus menyediakan representasi state arsitektur dari setiap logical
processor sebagaimana representasi dari penanganan interupsinya. Sistem
operasi tidak perlu didesain khusus jika berjalan pada sistem SMT, akan tetapi
performa yang diharapkan tidak selalu terjadi pada sistem operasi yang berjalan
pada SMT. Misalnya, suatu sistem memiliki 2 physical processor,
keduanya idle, penjadwal pertama kali akan lebih memilih untuk membagi
thread ke physical processor daripada membaginya ke logical
processor dalam physical processor yang sama, sehingga logical
processor pada satu physical processor bisa menjadi sibuk
sedangkan physical processor yang lain menjadi idle.
b. Multicore Multiprocessor
Multicore microprocessor adalah kombinasi dua atau lebih prosesor independen kedalam
sebuah integrated circuit(IC). Umumnya, multicore mengizinkan
perangkat komputasi untuk memeragakan suatu bentuk thread level paralelism(TLP)
tanpa mengikutsertakan banyak prosesor terpisah. TLP lebih dikenal sebagai chip-level
multiprocessing.
Gambar 15.3. Chip CPU dual-core
|
Ø Keuntungan:
1. Meningkatkan performa dari operasi cache
snoop (bus snooping). Bus snooping adalah suatu teknik yang
digunakan dalam sistem pembagian memori terdistribusi dan multiprocessor
yang ditujukan untuk mendapatkan koherensi pada cache. Hal ini
dikarenakan sinyal antara CPU yang berbeda mengalir pada jarak yang lebih
dekat, sehingga kekuatan sinyal hanya berkurang sedikit. Sinyal dengan kualitas
baik ini memungkinkan lebih banyak data yang dikirimkan dalam satu periode
waktu dan tidak perlu sering di- repeat.
2. Secara fisik, desain CPU multicore
menggunakan ruang yang lebih kecil pada PCB ( Printed Circuit Board)
dibanding dengan desain multichip SMP.
3. Prosesor dual-core
menggunakan sumber daya lebih kecil dibanding sepasang prosesor dual-core.
4. Desain multicore memiliki
resiko design error yang lebih rendah daripada desain single-core.
Ø Kerugian:
1. Dalam hal sistem operasi, butuh
penyesuaian kepada software yang ada untuk memaksimalkan kegunaan dari
sumberdaya komputasi yang disediakan oleh prosesor multicore. Kemampuan
prosesor multicore untuk meningkatkan performa aplikasi juga bergantung
pada penggunaan banyaknya thread dalam aplikasi tersebut.
2. Dari sudut pandang arsitektur,
pemanfaatan daerah permukaan silikon
dari desain single-core lebih baik daripada desain multicore.
0 komentar:
Posting Komentar