Multiprocessor Multiprocessor
Sistem multiprosesor adalah, suatu sistem dengan lebih dari satu CPU yang memiliki sebuah memori bersama, seperti sekelompok orang dalam suatu ruangan yang memili papan tulis bersama. Karena setiap CPU dapat membaca atau menulis bagian apa saja dari memori, mereka harus berkoordinasi (dalam software) agar t idak saling berebut jalurnya masing masing. Berbagai skema implementasi dapat dilaksanakan. Salah satu skema paling sederhana adalah memiliki sebuah bus tunggal dengan banyak CPU dan satu memori yang seluruhnya se luruhnya dipasang ke dalam bus tersebut. Semua prosesor dapat melakukan komputasi secara paralel dan masing-masing dapat mengakses memori melalui bus. Bus bertanggung jawab mengatur permintaan pemakaian memori yang berlangsung secara simultan oleh beberapa prosesor. Bus juga bertanggung jawab untuk meyakinkan bahwa bahwa semua prosesor dilayani secara adil dengan waktu tunda (delay) akses yang minimum. Dengan sejumlah besar prosesor cepat yang selalu berusaha mengakses memori melalui bus yang sama, konflik - konflik akan terjadi. Para perancang multiprosesor telah mengajukan berbagai macam skema untuk mengurangi konflik konflik ini guna meningkatkan kinerja kinerja seperti ditunjukan oleh gambar 14.8. Multiprosesor memiliki keunggulan dibanding jenis - jenis komputer paralel yaitu: a) Peningkatan throughput, karena lebih banyak proses / thread yang berjalan dalam satu waktu sekaligus (jika proses yang antri di ready queue sedikit). Perlu dii ngat hal ini tidak berarti daya komputasinya menjadi meningkat sejumlah prosesornya. prosesornya. Yang meningkat ialah jumlah pekerjaan yang bisa dilakukannya dalam waktu tertentu. b) Economy of scale (ekonomis), ekonomis ekonomis dalam devices yang dibagi bersama – sama. 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 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. Penjadwalan Multiprocessor Multiprocessor 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. Seperti halnya pada prosesor tunggal, prosesor jamak juga membutuhkan penjadwalan. penjadwalan. Namun pada prosesor jamak, penjadwalannya jauh lebih kompleks dari pada pada prosesor tunggal. Dalam penjadwalan prosesor jamak, tiap proses dapat mengakses memori dengan cara yang sama [uniform memory access]. Pembatasan dalam penjadwalan juga terjadi dalam multiprosesor. Hal ini
disebabkan karena: a) kemungkinan adanya load sharing. Load sharing terjadi jika ada beberapa prosesor yang identik. Untuk mengatasi hal itu maka tiap prosesor memiliki kemampuan penjadwalan mandiri (self schedulling). b) kemungkinan terlewatinya sebuah proses dari antrian [ready queue] atau beberapa prosesor memilih untuk mengeksekusi proses yang sama. permasalahan seperti itu bisa dijawab dengan sebuah master-slave structure, yaitu suatu struktur dimana satu prosesor ditunjuk sebagai master. Master inilah yang akan bertanggung jawab dalam hal penjadwalan, memproses I/O, dan sebagainya. Sedangkan prosesor yang lain [slave] hanya bertugas untuk mengeksekusi user code. Hal ini disebut juga sebagai Asymmetric Multiprocessing karena hanya satu prosesor yang dapat mengakses struktur data dari sistem. Ada beberapa jenis dari sistem penjadualan prosesor jamak, namun yang akan dibahas dalam bab ini adalah penjadwalan pada sistem prosesor jamak yang memiliki fungsi-fungsi prosesor yang memiliki fungsi yang sama (Homogeneous processors within a multiprocessor). Diantaranya ada 2 yaitu: 1. Penjadwalan Asymmetric MultiProcessing (AMP) Pendekatan pertama untuk penjadwalan prosesor jamak adalah penjadwalan asymmetric multiprocessing 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 sist em 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. 2. Penjadwalan Symmetric MultiProcessing (SMP) Penjadwalan SMP adalah pendekatan kedua untuk penjadwalan prosesor jamak. 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 prosesor jamak 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, dan Mac OS X. 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. Sumber : http://wandiso.blogspot.co.id/2011/04/multiprocessor.html diakses pada 15 Dec. 17