MULTIPROCESSOR
- Pengertian
Multiprocessor adalah sistem komputer dengan dua atau lebih CPU
identik yang membagi akses secara penuh kepada common RAM (Shared
Memory MultiProcessor).
Pengertian lainnya multiprocessing dalam teknologi informasi adalah :
1. Dukungan sebuah sistem untuk mendukung lebih dari satu
processor dan mengalokasikan tugas kepada prosesor-prosesor tersebut.
2. Kemampuan esksekusi terhadap beberapa proses perangkat
lunak dalam sebuah sistem secara serentak. Perhatikan Gambar dibawah
ini :
Gambar 1.1 :
Multiprogramming dengan Multiprocessor
Gambar tersebut mengilustrasikan perilaku dari multiprocessing yang
digunakan untuk multiprogramming. Beberapa proses terpisah dialokasikan di
dalam memory. Ruang alamat proses terdiri dari halaman – halaman sehingga hanya
sebagian saja dari proses tersebut yang berada dalam memory pada satu waktu.
Hal ini memungkinkan banyak prosesdapat aktif.
Sistem
multiprosesor yakni :
ü Terlihat
bahwa memori dibagi secara merata ke semua prosesor
ü Semua
prosesor mempunyai waktu akses yang sama ke semua word memori
ü Setiap
prosesor menggunakan private cache
- Kelebihan
Multiprocessor
a.
Peningkatan throughput, karena lebih banyak
proses/thread yang berjalan dalam satu waktu sekaligus (jika proses yang antri
di ready queue sedikit). Perlu diingat hal ini tidak berarti daya komputasinya
menjadi meningkat sejumlah prosesornya. Yang meningkat adalah jumlah pekerjaan
yang bisa dilakukannya dalam waktu tertentu.
b. Economy of sale (ekonomis), ekonomis dalam
devices yang dibagi bersama-sama. Prosesor-prosesor terdapat dalam satu
komputer dan dapat membagi peripheral (ekonomis) seperti disk dan catu daya
listrik.
c. Peningkatan kehandalan (reliabilitas), jika satu
prosesor mengalami suatu gangguan, maka proses yang terjadi masih dapat
berjalan dengan baik karena tugas prosesor yang terganggu diambil alih oleh
prosesor lain. Hal ini dikenal dengan istilah Graceful Degradation. Sistemnya
sendiri dikenal bersifat fault tolerant atau failoft system.
- Jenis – jenis Multiprocessor
Multiprocessing dapat dibagi ke
dalam beberapa kelas, yakni:
a.
Berdasarkan simetrinya, multiprocessing dapat dibagi
ke dalam
Pendekatan pertama untuk Multiprocessor Scheduling adalah asymmetric
multiprocessingScheduling atau biasa disebut juga sebagai penjadwalan Master
Slave MultiProcessor. Dimana pada metode ini satu prosesor bertindak sebagai
master dan prosesor lainnya sebagai slave. Master Processor bertugas untuk
menjadualkan dan mengalokasikan proses yang akan dijalankan oleh Slave
Processors. Master Processor melakukan pekerjaan yang berhubungan dengan System,
Slave Processor melayani user requests dalam pengeksekusian program. Pemrosesan
yang banyak tidak menyebabkan penurunan performance.
Metode ini sederhana karena hanya satu prosesor yang mengakses struktur
data sistem dan juga mengurangi data sharing. 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,
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.
Master processor dapat mengeksekusi OS dan menangani I/O, sedangkan sisanya
processor tidak punya kemampuan I/O dan disebut sebagai Attached Processor
(Aps). APs mengeksekusi kodekode user dibawah pengawasan master processor.
Gambar 3.1 Master slave
MultiProcessor
Pada Komputer stand alone dengan karakteristik berikut (William Stallings):
•
Dua atau lebih processor yang sama
dengan kapasitas yang sebanding
•
Processor membagi I/O dan memory yang
sama
•
Processor terkoneksi oleh bus atau
koneksi internal lainya
•
Waktu akses moemory kira-kira sama pada
setiap processor
•
Seluruh processor membagi akses I/O baik
pada chanel yang sama maupun berbeda dengan memberikan path ke device yang sama
•
Seluruh Processor mengerjakan fungsi
yang sama (hence symetric)
•
Sistem dikontrol oleh OS yang
terintegrasi menyediakan interaksi antara processor atau interaksi terjadi pada
job, task, file, data pada level-level elemen.
•
SMP merupakan Tightly Coupled System
•
Mempunyai lebih dari satu prosesor
•
Dapat berkomunikasi
•
Membagi bus, clock,
perangkat memory, dan peripheral.
•
Setiap prosesor menjalankan sistem
operasi yang identik dan komunikasi antar prosesor jika diperlukan
|
|
|
Penjadwalan SMP adalah pendekatan kedua untuk Multiprocessor Scheduling.
Pada metode ini setiap prosesor menjadwalkan dirinya sendiri (self scheduling). Penjadwalan terlaksana
dengan menjadwalkan setiap prosesor untuk memeriksa antrian ready dan memilih
suatu proses untuk dieksekusi. Jika suatu sistem Multiprocessor Scheduling mencoba untuk mengakses dan mengupdate
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, Windows
Vista, Solaris, Linux, Mac OS X, OS/2 Warp Server 4.0 , OS/2 for SMP 2.11,
Windows NT 4.0 , Novell NetWare 4.1 SMP, Novell UnixWare SMP 2.0 , SCO
Open Server 5.0 with SCO MPX 3.0 , Banyan Vines , Symbian OS (Mobile Device)
Gambar
3.3 Multiprogramming dengan Symmetric
Multiprocessing
Setiap prosesor memiliki akses ke memori
utama dan perangkat-perangkat I/O bagi-pakai melalui mekanisme interkoneksi
tertentu
Dalam Klasifikasi Organisasi Symmetric
Multiprocessor
Gambar 3.4 Organisasi Symmetric
Multiprocessor
Ø Time-shared atau Common Bus :
• Prosesor dapat berkomunikasi dengan prosesor lainnya melalui memori
• Time shared bus adalah mekanisme simpel untuk membangun sistem
multi-processor, struktur dan inteface sama pada single processor yaitu
penggunaan bus interconnection
Ø Fitur:
•
Pengalamatan (Addressing) = Membedakan
module untuk mengalokasikan data dari sumber ke tujuan
•
Artbitrasi (Artbitration) = Mekanisme
penyediaan permintaan acak -lebih penting didahulukan- untuk kontrol bus dengan
skema prioritas
•
Time Sharing = Jika satu mudule berada
di bus, yang lain harus menunggu dan bisa juga di tunda operasinya.
Ø Keuntungannya Time-shared Bus :
•
Simplicity = Fisik interface,
addressing, arbitration, dan time –sharing logic tiap processor sama seperti
sistem single processor
•
Flexibility = mudah ekspansi sistem
dengan menyisipkan beberapa processor ke dalam bus
•
Reliability = kesalahan pada penyisipan
device tidak mengakibatkan kegagalan pada seluruh sistem
Ø Kerugian Time-shared Bus :
•
Performa terbatas pada bus cycle time
•
Setiap processor harus memiliki local
chace
•
Mengurangi beberapa akses bus
•
Masalah Pada “chace coherence”
(dijelaskan nanti)
Ø Multiport Memory
·
Pengijinan akses langsung, dan
independen pada modul memory oleh setiap processor
·
Kebutuhan logic untuk pemecahan conflict
·
Sedikit modifikasi (bahkan tidak ada) ke processor atau modul yang
dibutuhkan
Gambar 3.5 Multiport Memory
Ø Central Control Unit
·
Pembagian data stream antara independent
modul seperti; processor, memory, I/O.
·
Dapat melakukan buffer pada permintaan
·
Melakukan arbitrasi dan penjadwalan
·
Melakukan status dan kontrol
·
Melakukan cache update alerting
·
Contoh. IBM S/390
Ø Operating system untuk SMP:
•
Simultaneous concurrent processes = Manajemen eksekusi IS code yang sama secara simultan pada OS
routine
•
Scheduling = Melakukan Penjadwalan untuk menghindari conflict
•
Synchronization = Sinkronisasi yang efektif pada shared address/ shared I/O
•
Memory management = Pengaturan memory yang akurat pada multiport
•
Reliability and fault tolerance = Pengenalan kesalahan pada processor
Ø
Mainframe SMP pada IBM S/390
Gambar 3.6 Mainframe SMP
pada IBM S/390
•
Processor unit (PU) terdiri dari : CISC
microprocessor, Frequently used instructions hard wired, 64k L1 unified cache
with 1 cycle access time
•
L2 cache : 384k
•
Bus switching network adapter (BSN) :
Includes 2M of L3 cache, Memory card, 8G per card
Ø
Directory Protocol :
Gambar 3.7 Directory
Protocol
•
Mengumpukan dan merawat informasi
tentang copian data pada cache
•
Directory tersimpan pada memory
•
Permintaan di cek oleh directory
•
Pelaksanaan transfer yang lebih penting
dahulu
•
Pembuatan sentral bottleneck
•
Efektif pada sistem skala besar dengan
interkoneksi skema yang kompleks
Lock digunakan untuk proses
sinkronisasi, apabila ada 2 atau lebih proses yang ingin mengakses alamat
memori yang sama dan mengubah shared memory. Dalam skema tersebut, salah satu
penjadwalan akan digunakan. Salah satu cara menggunakan symmetric multiprocessing (SMP). Dimana setiap prosesor
menjadwalkan diri sendiri. Setiap prosesor memeriksa ready queue dan memilih
proses yang akan dieksekusi.
Dalam sistem multiprocessing, semua CPU
mungkin sama, atau beberapa mungkin disediakan untuk tujuan khusus. Sebuah
kombinasi antara perangkat lunak perangkat keras dan pertimbangan desain sistem
operasi menentukan simetri (atau kekurangan daripadanya) dalam sistem tertentu.
Sebagai contoh, perangkat keras atau perangkat lunak mungkin memerlukan
pertimbangan
bahwa hanya satu CPU menanggapi semua
hardware interrupts, sedangkan semua pekerjaan lain dalam sistem boleh
didistribusikan merata antara CPU, atau eksekusi kode kernel-mode dapat
dibatasi hanya satu prosesor (baik prosesor tertentu, atau hanya satu prosesor
pada satu waktu), sedangkan kode pengguna-mode mungkin dijalankan dalam setiap
kombinasi prosesor.
Gambar 3.8
Gambar 3.8
Jika suatu pekerjaan bisa
diorganisasikan, maka porsi yang sama pada sebuah pekerjaan bisa dilakukan
secara paralel, sehingga sistem dengan multiple processor akan menunjukan
performa yang tingggi dibandingkan single processor (William Stallings)
Sistem Multiprocessing sering lebih
mudah untuk merancang jika larangan tersebut diberlakukan, tetapi mereka
cenderung kurang efisien dibandingkan dengan sistem di mana semua CPU yang
digunakan.
Sistem yang memperlakukan semua CPU sama
disebut multiprocessing simetris (SMP) sistem. Dalam sistem dimana semua CPU
yang tidak sama, sumber daya sistem dapat dibagi dalam beberapa cara, termasuk
asymmetric multiprocessing (AMP), non-seragam akses memori (NUMA)
multiprocessing, dan berkelompok multiprocessing.
Gambar 3.9 UMA machine block
diagram
Permasalahan pada Multiprocessor Scheduling
1)
Load sharing : dapat
terjadi apabila proses yang jalan di satu prosesor overload sehingga sebagian
proses berpindah ke prosesor yang lain
2)
Time Sharing : masing
– masing proses akan dijalankan bila terdapat CPU yang telah menyelesaikan job
nya
3)
Space Sharing:
multiple threads dalam waktu yang sama masuk ke multiple CPUs
4)
Gang scheduling: semua
thread berasal dari proses yang running pada suatu waktu
ü Non-uniform memory
access (NUMA) multiprocessing
Non-Uniform Memory Access atau Non-Uniform
Memory Arsitektur (NUMA) adalah memori komputer Rancangan yang digunakan dalam
multiprocessors , dimana waktu akses memori tergantung pada lokasi memori
relatif terhadap prosesor. Under NUMA, Dalam NUMA, prosesor atau NUMA
multiprocessor adalah sebuah sistem shared memory dimana waktu aksesnya
bervariasi ke lokasi memori word.
Gambar 3.10 NUMA
·
Shared
memory yang secara phisik didistribusikan
kesemua process disebut lokal memori, dan kumpulan dari lokal memori membentuk
ruang alamat global yang dapat diakses oleh semua process.
·
NUMA dapat mengakses
lokal memori lebih cepat dengan local process, sedangkan akses ke memori yang
jauh diberikan ke process lain yang kapasistasnya lebih besar untuk ditambah
delay melalui interconeksi jaringan (BBN
Butterfly).
·
Disamping distribusi
memori, secara umum shared memory
dapat ditambahkan ke multiprocessor
system, dalam hal ini ada tiga pola akses memory, dimana yang tercepat
adalah akses ke lokal memori, akses ke global memori dan yang paling lambat
adalah akses dari memory yang jauh (Hierarchical
Cluster Model )
b.
Berdasarkan jumlah instruksi dan datanya, dapat dibagi
ke dalam (lihatTaksonomi
Flynn)
ü SISD (Single Instruction on Single
Data Stream)
Gambar 3.11 SISD Intel 80X
Yang merupakan singkatan dari Single
Instruction, Single Data adalah satu-satunya yang menggunakan arsitektur Von
Neumann. Ini dikarenakan pada model ini hanya digunakan 1 processor saja. Oleh
karena itu model ini bisa dikatakan sebagai model untuk komputasi tunggal.
Sedangkan ketiga model lainnya merupakan komputasi paralel yang menggunakan
beberapa processor. Beberapa contoh komputer yang menggunakan model SISD adalah
UNIVAC1, IBM 360, CDC 7600, Cray 1 dan PDP 1.
·
Satu prosesor
·
Satu instruksi stream
·
Data disimpan di satu memori
·
Disebut Uni-processor
Gambar 3.12 SISD (Single Instruction on Single
Data Stream)
ü SIMD (Single
Instruction on Multiple Data Stream)
Gambar 3.13 SIMD Thread/Pipeline
Yang merupakan singkatan dari Single
Instruction, Multiple Data. SIMD menggunakan banyak processor dengan instruksi
yang sama, namun setiap processor mengolah data yang berbeda. Sebagai contoh
kita ingin mencari angka 27 pada deretan angka yang terdiri dari 100 angka, dan
kita menggunakan 5 processor. Pada setiap processor kita menggunakan algoritma
atau perintah yang sama, namun data yang diproses berbeda. Misalnya processor 1
mengolah data dari deretan / urutan pertama hingga urutan ke 20, processor 2
mengolah data dari urutan 21 sampai urutan 40, begitu pun untuk processor-processor
yang lain. Beberapa contoh komputer yang menggunakan model SIMD adalah ILLIAC
IV, MasPar, Cray X-MP, Cray Y-MP, Thingking Machine CM-2 dan Cell Processor
(GPU).
· Instruksi
mesin tunggal
· Eksekusi
dikendalikan secara simultan
· Terdapat
sejumlah elemen proses
· Setiap
instruksi dieksekusi dalam set data yang berbeda oleh proses yang berbeda
Gambar
3.14 SIMD (Single Instruction
on Multiple Data Stream)
ü MISD (Multiple Instruction on Single
Data Stream)
Yang merupakan singkatan dari Multiple Instruction,
Single Data. MISD menggunakan banyak processor dengan setiap processor
menggunakan instruksi yang berbeda namun mengolah data yang sama. Hal ini
merupakan kebalikan dari model SIMD. Untuk contoh, kita bisa menggunakan kasus
yang sama pada contoh model SIMD namun cara penyelesaian yang berbeda. Pada
MISD jika pada komputer pertama, kedua, ketiga, keempat dan kelima sama-sama
mengolah data dari urutan 1-100, namun algoritma yang digunakan untuk teknik
pencariannya berbeda di setiap processor. Sampai saat ini belum ada komputer
yang menggunakan model MISD.
· Satu
Aliran Instruksi
· Banyak
Aliran Data
·
Belum dapat diimplementasikan dengan
baik
Gambar 3.15 MISD (Multiple Instruction on Single
Data Stream)
·
MIMD (Multiple Instruction on Multiple Data Stream)
Gambar 3.16 MIMD
Arsitektur Core
Yang merupakan singkatan dari Multiple
Instruction, Multiple Data. MIMD menggunakan banyak processor dengan setiap
processor memiliki instruksi yang berbeda dan mengolah data yang berbeda. Namun
banyak komputer yang menggunakan model MIMD juga memasukkan komponen untuk
model SIMD. Beberapa komputer yang menggunakan model MIMD adalah IBM POWER5,
HP/Compaq AlphaServer, Intel IA32, AMD Opteron, Cray XT3 dan IBM BG/L
Gambar 3.17 MIMD
(Multiple Instruction on Multiple Data Stream)
· Terdiri
dari sejumlah set prosesor
· Terdiri
dari sejumlah set data yang berbeda
· Secara
simultan mengeksekusi urutan instruksi yang berbeda
Sifat
komputer MIMD:
· Mendistribusikan pemrosesan ke sejumlah prosesor
independen.
· Membagikan sumber termasuk memori utama ke prosesor
independen.
· Setiap prosesor menjalankan programnya sendiri.
· Setiap prosesor berfungsi secara independen dan
bersama-sama.
c.
Berdasarkan kedekatan antar prosesor, dapat dibagi ke
dalam
· Mendistribusikan
komputasi diantara beberapa prosessor. Prosessor berkomunikasi dengan prosessor
lain melalui saluran komunikasi, misalnya bus kecepatan tinggi atau saluran
telepon. Sistem ini disebut loosely coupled system atau sistem
terdistribusi (distributed system) dengan menggunakan memory local atau multi komputer.
· Setiap site memiliki processor, memori lokal dan
clock sendiri namun semua resource dapat diakses dari setiap site.
· Proses yang dijalankan pada komputer yang berbeda
modul saling berkomunikasi dengan bertukar pesan melalui Message Transfer
System (MTS).
·
Tight coupling di
antara window adalah konsep antarmuka yang mendukung koordinasi secara global atau multi processor.
·
Prosesor berkomunikasi antara satu
dengan yang lain dengan cara berbagi memori utama, sehingga kecepatan
komunikasi dari satu prosesor ke yang lain tergantung pada bandwidth memori.
·
Sebuah memori lokal kecil atau buffer
(cache) kemungkinan terdapat pada setiap prosesor untuk memperbaiki kinerja.
- Kesimpulan
Multiprocessing adalah penggunaan dua atau
lebih unit pengolahan pusat (CPU) dalam satu sistem komputer. Hal ini berarti
kemampuan sistem untuk mendukung lebih dari satu prosesor dan/atau kemampuan
untuk mengalokasikan tugas antara mereka.
Keuntungan multiprocessing antara lain :
a)
Dapat
meningkatkan throughput,
maksudnya adalah peningkatan jumlah pekerjaan yang dapat
dilakukan dalam waktu tertentu;
b)
Lebih
ekonomis, maksudnya adalah dibandingkan sebuah sistem dengan
banyak prosesor tunggal, metode multiprocessing dapat mengoptimalkan alokasi
hardware seperti memori, storage, dan power supply (hal ini dikarenakan dapat
di shared);
c)
Dapat meningkatkan performa/kehandalan,
hal ini dikarenakan jika pekerjaan (instruksi) terbagi secara merata, maka
kegagalan salah satu prosesor bisa ditanggulangi oleh prosesor-prosesor yang
lain.