MAGISTER ILMU KOMPUTER UNIVERSITAS BUDI … · Gambar 3.2.2 : Skema Multiprogramming dengan...
Transcript of MAGISTER ILMU KOMPUTER UNIVERSITAS BUDI … · Gambar 3.2.2 : Skema Multiprogramming dengan...
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.
Gambar 1.1 : Multiprogramming dengan Multiprocessor
Supervisor
Proses A
Proses B
Proses C
Proses D
Processor 1
Processor 1
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 bersama-
sama. 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.
Gambar 3.3.1 : Shared Local Memories (BBN Butterfly)
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.
LM1 P1
LM2 P2
LMn Pn
Interconnection
Network
GSM GSM GSM
Global Interconnect Network
P1
P1
P1
C I N
P1
P1
P1
P1
P1
P1
C I N
P1
P1
P1
• 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/15-
Penjadwalan_Prosesor_Jamak.pdf 19-05-2012
• http://www.oreilly.com/catalog/9780596514549/figs/I_mediaobject12_d1e21060.png 19-
05-2012