PAPER MULTIPROCESSOR ARSITEKTUR DAN ORGANISASI KOMPUTER
Dosen : Drs. Eko Polosoro, M.Eng, M.M
Kelompok: Muhammad Akbar (1111601058) Rano Kurniawan (1111601074) Taufik Tirkaamiasa (1111601082)
MAGISTER ILMU KOMPUTER UNIVERSITAS BUDI LUHUR JAKARTA 2012
MULTIPROCESSOR I.
Pengertian Multiprocessor Merupakan sistem komputer dengan dua atau lebih CPU yang identik dengan membagi
akses
secara
penuh
kepada
common
RAM
(Shared
Memory
Multiprocessor). Kenapa menggunakan Multi Processor? ü Untuk support Multiprogramming. ü Untuk support parallel programming. ü Tidak independent. Multiprocessing merupakan istilah teknologi informasi dalam bahasa inggris yang merujuk kepada: •
Dukungan sebuah sistem untuk mendukung lebih dari satu processor dan mengalokasikan tugas kepada processor-processor tersebut.
•
Kemampuan eksekusi terhadap beberapa proses perangkat lunak dalam sebuah sistem secara serentak, jika dibandingkan dengan sebuah proses dalam satu waktu. Meski istilah multiprogramming lebih sesuai untuk konsep ini, multiprocessing sering di implementasikan dalam perangkat keras (dengan menggunakan beberapa CPU sekaligus), sementara multiprogramming sering digunakan dalam perangkat lunak. Sebuah sistem mungkin dapat memiliki dua kemampuan tersebut, salah satu diantaranya atau tidak sama sekali. Perhatikan Gambar 1.1 Multiprogramming dengan Multiprocessor.
Supervisor Proses A
Processor 1
Proses B Processor 1
Proses C Proses D
Gambar 1.1 : Multiprogramming dengan Multiprocessor
Gambar 1.1 Multiprogramming dengan Multiprocessor mengilustrasikan prilaku dari multiprocessing yang digunakan untuk multiprogramming. Beberapa proses terpisah di alokasikan 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 proses dapat aktif. II.
Keunggulan Multiprocessor
Gambar 2.1 : Multiprocessor Systems Gambar 2.1 Multiprocessor System merupakan skema proses pada multiprocessor. Berikut penjelasannya: 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
menjadi
sejumlah/sebanyak processornya. Yang meningkat ialah jumlah pekerjaan yang bisa dilakukannya dalam waktu tertentu. b. Economy of Scale (ekonomis), ekonomis dalam devices yang dibagi bersamasama. Processor-processor terdapat dalam satu komputer dan dapat membagi peripheral (ekonomis) seperti disk dan satu daya listrik. c. Peningkatan kehandalan (reliabilitas), jika satu processor mengalami suatu gangguan, maka proses yang terjadi masih dapat berjalan dengan baik karena tugas processor yang terganggu diambil alih oleh processor lain. Hal ini dikenal dengan istilah Graceful Degradation. Sistemnya sendiri dikenal bersifat fault tolerant atau fail of system.
III.
Jenis-jenis Multiprocessing Multiprocessing dapat dibagi ke dalam beberapa kelas, yakni: 1. Berdasarkan simetrinya, multiprocessing dapat dibagi ke dalam: ü Asymmetric Multiprocessing (ASMP) ü Symmetric Multiprocessing (SMP) ü Non-Uniform Memory Access (NUMA) Multiprocessing ü Clustering 2. Berdasarkan jumlah instruksi dan datanya, dapat dibagi ke dalam: ü SISD (Single Instruction on Single Data Stream) ü SIMD (Single Instruction on Multiple Data Stream) ü MISD (Multiple Instruction on Single Data Stream) ü MIMD (Multiple Instruction on Multiple Data Stream) 3. Berdasarkan kedekatan antar processor, dapat dibagi ke dalam: ü Loosely Coupled ü Thightly Coupled
3.1
Asymmetric Multiprocessing (ASMP) Pendekatan pertama untuk penjadwalan processor jamak adalah penjadwalan asymmetric multiprocessing atau biasa disebut juga sebagai penjadwalan master/slave. Dimana pada metode ini hanya satu processor (master) yang menangani semua keputusan penjadwalan pemrosesan M/K dan aktivitas sistem lainnya dan processor lainnya (slave) hanya mengeksekusi proses. Metode ini sederhana karena hanya satu processor yang mengakses struktur data sistem dan juga mengurangi data sharing. Dalam teknik penjadwalan master/slave, satu processor menjaga status dari semua proses dalam sistem dan menjadwalkan kinerja untuk semua processor slave. Sebagai contoh, processor master memilih proses yang akan dieksekusi, kemudian mencari processor yang available dan memberikan instruksi start processor. Processor slave memulai eksekusi pada lokasi memory yang dituju. Saat slave mengalami sebuah kondisi tertentu seperti meminta M/K, processor slave memberi interupsi kepada processor master dan berhenti untuk menunggu perintah selanjutnya. Perlu diketahui bahwa processor slave yang berbeda dapat ditujukan untuk suatu proses yang sama pada waktu yang berbeda.
3.2
Symmetric Multiprocessing (SMP) Setiap processor menjalankan salinan identik dari sistem operasi dan banyak job yang dapat berjalan pada suatu waktu tanpa mengurangi kinerja.
Gambar 3.2.1 : Skema Symmetric Multiprocessing (SMP) Keuntungan SMP: •
Performance
•
Availability
•
Incremental growth
Gambar 3.2.2 : Skema Multiprogramming dengan Symmetric Multiprocessing
3.3
Non-Uniform Memory Access (NUMA) NUMA multiprocessor adalah sebuah sistem shared memory dimana waktu aksesnya bervariasi ke lokasi memory word.
LM1
P1
LM2
P2
LMn
Pn
Interconnection Network
Gambar 3.3.1 : Shared Local Memories (BBN Butterfly)
GSM
GSM
GSM
Global Interconnect Network
P1 P1
P1
P1 C I N
P1
P1
P1
P1
P1
P1 C I N
P1
P1
Gambar 3.3.2 : Hierarchical Cluster Model (Chedar System) GSM : Global Share Memory CIN : Cluster Interconnection Network CSM : Cluster Shared Memory
•
Shared memory yang secara phisik didistribusikan ke semua proses disebut lokal memory dan kumpulan dari lokal memory membentuk ruang alamat global yang dapat diakses oleh semua proses.
•
NUMA dapat mengakses lokal memory lebih cepat dengan lokal proses, sedangkan akses ke memory yang jauh diberikan ke proses lain yang kapasitasnya lebih besar untuk ditambah delay melalui interkoneksi jaringan (BBN Butterfly).
•
Disamping distribusi memory, secara umum shared memory dapat ditambahkan ke multiprocessor system, dalam hal ini ada tiga pola akses memory, dimana yang tercepat adalah akses ke lokal memory, akses ke global memory dan yang paling lambat adalah akses dari memory yang jauh (Hierarchical Cluster Model).
3.4
Single Instruction on Single Data Stream (SISD) •
Satu processor
•
Satu instruksi stream
•
Data disimpan di satu memory
•
Disebut uni-processor
Gambar 3.4.1 : Skema SISD 3.5
Single Instruction on Multiple Data Stream (SIMD) •
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.5.1 : Skema SIMD 3.6
Multiple Instruction on Single Data Stream (MISD) •
Banyak aliran instruksi
•
Satu aliran data
•
Belum dapat diimplementasikan dengan baik
Gambar 3.6.1 : Skema MISD
3.7
Multiple Instruction on Multiple Data Stream (MIMD) •
Terdiri dari sejumlah set processor
•
Terdiri dari sejumlah set data yang berbeda
•
Secara simultan mengeksekusi urutan instruksi yang berbeda
Sifat Komputer MIMD: •
Mendistribusikan pemrosesan ke sejumlah processor independen.
•
Membagikan sumber termasuk memory utama ke processor independen.
•
Setiap processor menjalankan programnya sendiri.
•
Setiap processor berfungsi secara independen dan bersama-sama.
Gambar 3.7.1 : Skema MIMD 3.8
Loosely Coupled •
Setiap site memiliki processor, memory 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).
Gambar 3.8.1 : Skema Loosely Coupled 3.9
Thightly Coupled •
Processor berkomunikasi antara satu dengan yang lain dengan cara berbagi memory utama, sehingga kecepatan komunikasi dari satu processor ke yang lain tergantung pada bandwidth memory.
•
Sebuah memory lokal kecil atau buffer (cache) kemungkinan terdapat pada setiap processor untuk memperbaiki kinerja.
Gambar 3.9.1 : Skema Thightly Coupled
IV.
Time Sharing Time Sharing adalah inovasi yang memungkinkan komputer-komputer besar memproses banyak tugas secara simultan, dengan memberikan potongan waktu pada masing-masing tugas dan beralih dari satu tugas ke tugas lainnya dengan cepat. Varian dari multiprogramming, dimana tiap pemakai mempunyai satu terminal on-line dengan pemroses hanya memberi layanan pada pemakai yang aktif secara bergantian dengan cepat. Pemakai akan merasa dilayani terus menerus, padahal sebenarnya digilir persatuan waktu yang cukup singkat. Perbedaan Batch Multiprogramming dengan Time Sharing. Perhatikan Tabel 4.1 berikut ini:
Tabel 4.1 : Perbedaan Batch Multiprogramming dengan Time Sharing
Gambar 4.1 : Skema Organisasi Komputer SMP
Time shared/common bus (bus bersama). Seperti ditunjukkan pada Gambar 4.1 Skema Organisasi Komputer SMP di atas. Pada organisasi ini, semua processor dan modul I/O berbagi bus untuk mengakses memory utama. Kelebihan: sederhana (simplicity), fleksibel, handal (reliability). Kekurangan: •
Koherensi Cache
•
CPU melakukan multiplex pada beberapa jobs yang berada di memory dan disk
•
CPU hanya dialokasikan kepada jobs yang telah siap dan berada di memory
•
Besar memory masih sangat terbatas. Pada job dilakukan swapped in dan out dari memory ke disk
•
Komunikasi on-line (interaktif) antara user dan sistem, jika: §
OS telah selesai mengeksekusi satu perintah, menunggu perintah berikut bukan dari “card reader”, tapi dari terminal user.
§
On-line System harus tersedia bagi user yang akan mengakses data dan kode.
V.
Affinity dan Load Balancing
5.1
Affinity Data yang paling sering diakses oleh beberapa proses akan memadati cache pada processor, sehingga akses memory yang sukses biasanya terjadi di memory cache. Namun, jika suatu proses berpindah dari satu processor ke processor lainnya akan mengakibatkan isi dari cache memory yang dituju menjadi tidak valid, sedangkan cache memory dari processor asal, harus disusun kembali populasi datanya. Karena mahalnya invalidating dan re-populating dari cache, kebanyakan sistem SMP mencoba untuk mencegah migrasi proses antar processor sehingga menjaga proses tersebut untuk berjalan di processor yang sama. Hal ini disebut afinitas processor (processor affinity). Ada dua jenis afinitas processor, yakni: •
Soft affinity yang memungkinkan proses berpindah dari satu processor ke processor yang lain, dan
•
Hard affinity yang menjamin bahwa suatu proses akan berjalan pada processor yang sama dan tidak berpindah. Contoh sistem yang menyediakan system calls yang mendukung hard affinity adalah Linux.
5.2
Load Balancing Dalam sistem SMP, sangat penting untuk menjaga keseimbangan workload (banyaknya task yang harus diselesaikan oleh processor) antar semua processor untuk memaksimalkan keuntungan memiliki multiprocessor. Jika tidak, mungkin satu atau lebih processor idle disaat processor lain harus bekerja keras dengan workload yang tinggi. Load balancing adalah usaha untuk menjaga workload terdistribusi sama rata untuk semua processor dalam sistem SMP. Perlu diperhatikan bahwa load balancing hanya perlu dilakukan pada sistem dimana setiap processor 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 processor menjadi idle, processor 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 processor 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 processor. Jika terdapat ketidakseimbangan, maka dilakukan perataan dengan memindahkan (pushing) proses dari yang kelebihan muatan ke processor yang idle atau yang memiliki muatan lebih sedikit.
•
Pull migration, kondisi ini terjadi saat processor yang idle menarik (pulling) proses yang sedang menunggu dari processor 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 processor yang sama dimana proses dapat memanfaatkan data yang sudah ada pada memory cache processor tersebut berkebalikan dengan keuntungan menarik atau memindahkan proses dari satu processor ke processor lain. Dalam kasus system engineering, tidak ada aturan tetap keuntungan yang mana yang lebih baik. Walaupun pada beberapa sistem, processor idle selalu menarik proses dari processor non-idle sedangkan pada sistem yang lain, proses dipindahkan hanya jika terjadi ketidakseimbangan yang besar antara processor.
Daftar Pustaka
•
http://en.wikipedia.org/wiki/Flynn%27s_taxonomy 19-05-2012
•
http://www.cs.toronto.edu/~demke/469F.06/lectures.shtml 19-05-2012
•
http://www.cs.vu.nl/~ast/books/book_software.html 19-05-2012
•
http://id.wikipedia.org/wiki/Multiprocessing 19-05-2012
•
http://opensource.telkomspeedy.com/repo/abba/v06/Kuliah/SistemOperasi/2008/240/15Penjadwalan_Prosesor_Jamak.pdf 19-05-2012
•
http://www.oreilly.com/catalog/9780596514549/figs/I_mediaobject12_d1e21060.png 05-2012
19-