Anda di halaman 1dari 91

SEJARAH PERKEMBANGAN KOMPUTER

Mengenal lebih dekat tentang sejarah perkembangan


komputer dari awal sampai akhir mulai generasi pertama sampai generasi
kelima. Diera modern seperti sekarang siapa yang tidak tau komputer..??
Menurut saya hampir semua orang saat ini telah mengenal dunia
komputer. Sesuai dengan apa yang telah saya tulis terdahulu pengertian
komputer adalah Mesin penghitung elektronik yang cepat dan dapat
menerima informasi input digital, lalu diolah sesuai dengan program yang
tersimpan dalam memorinya, dan menghasilkan output berupa informasi.
Pengertian tersebut Menurut Hamacher, SedangkanDefinisi Komputer itu
sendiri berasal dari bahasa latin computare yang mengandung arti
menghitung. Karena luasnya bidang garapan ilmu komputer, para pakar
dan peneliti sedikit berbeda dalam mendefinisikan termininologi
komputer.
Perkembangan dunia komputer dari waktu ke waktu semakin tak
terbendung lagi, namun dibalik semua itu apakan ada tau awal mula atau
sejarah lahirnya komputer..?? Jika anda belum tau tentang sejarah
perkembangan komputer Lengkap simaklah ulasan berikut ini :
Komputer Generasi pertama

1|A

r s i t e k t u r

S i s t e m

K o m p u t e r

Komputer generasi pertama adalah ENIAC, yang merupakan komputer


elektronik pertama didunia yang mempunyai bobot seberat 30 ton,
panjang 30 M dan tinggi 2.4 M dan membutuhkan daya listrik 174
kilowatts. Komputer generasi pertama ini menggunakan Tabung hampa
udara (vacum-tube) yang terbuat dari kaca untuk penguat sinyal. Namun
hal tersebut masih banyak mempunyai kendala seperti: mudah pecah, dan
cepat menyalurkan panas.
Sejarah perkembangan konputer generasi pertama memiliki ciri-ciri
sebagai berikut :
Pada generai ini komputer masih banyak mengeluarkan panas.
Menggunakan komponen elektronikanya yang terbuat dari Tabung Hampa
Udara (Vacuum Tube).
Program dibuat dalam bahasa mesin (Machine Language), yang
programnya tersimpan dalam memori komputer.
Utuk mengoprasikannya pun membutuhkan kekuatan listrik yang cukup
besar.
Kapasitas yang disediakan untuk penyimpannan data sangat kecil dan
terbatas.
Programnya masih menggunakan bahasa mesin dengan menggunakan
kode 0 dan 1 dalam urutan tertentu.
Prosesnya relatif lambat.
Mempunyai Ukuran atau bentuk yang sangat besar sehingga diperlukan
sebuah ruangan yang yang cukup lebar hanya untuk meletakan komputer
ini.
Orientasi utama pada aplikasi bisnis.
Menggunakan sistem luar magnetic tape dan magnetic disk.
2|A

r s i t e k t u r

S i s t e m

K o m p u t e r

Komputer Generasi kedua

Sejarah perkembangan komputer generasi kedua lahir pada tahun


1960-an, penemuan transistor sanggat mempenggaruhi perkembangan
komputer pada saat itu. Transistor dapatb menggantikan Tabung hampa
udara. Dan hal tersebut tentunya megubah semua ukuran mesin-mesin
elektrik . Transistor mulai digunakan pada komputer sekitar tahun 1956an. Penemuan lain yang berupa pengembangan memori inti-magnetik
membantu pengembangan komputer generasi kedua yang lebih kecil,
lebih cepat, lebih dapat diandalkan, dan lebih hemat energi dibanding
dengan komputer generasi pertama.
Perkembangan Komputer Generasi kedua ini memiliki ciri-ciri sebagai
berikut :

Program dapat dibuat dengan bahasa tingkat tinggi (high level language),
seperti FORTRAN, COBOL, ALGOL.
3|A

r s i t e k t u r

S i s t e m

K o m p u t e r

Kapasitas memori utama sudah lumayan besar


Sirkutinya adalah transistor.
Ukuran fisik komputer lebih kecil dari komputer generasi pertama
Tidak membutuhkan terlalu banyak listrik
berorientasi pada bisnis dan teknik
Proses operasi sudah cepat

Sejarah Perkembangan Komputer Generasi ketiga

Komputer generasi ketiga merupakan sebuah perkembangan yang sangat


pesat dari perkembangan komputer yang ada. Komputer generasi ketiga
muncul sejak era 1965-1971-an. Transistor yang dianggap tidak effisien
lagi membuat para ilmuan mencari alternatif lain dan kemudian di
temukan pada batu kuarsa ( Quartz rock ). Jack Kilby, seorang insinyur di
Texas Instrument, mengembangkan sirkuit terintegrasi (IC : integrated
circuit) di tahun 1958. Hal ini merupakan sebuah inovasi yang dapat
mendongkrak munculnya komputer generasi ketiga.

4|A

r s i t e k t u r

S i s t e m

K o m p u t e r

Komputer Generasi keempat

Setelah IC ditemukan, perkembangan komputer semakin pesat dan jelas.


Pada tahun 1971 chip INTEL 4004 membawa kemajuan besar dalam
dunia IC, intel berhasil memasukan semua komponen dalam sebuah
komputer (central processing unit, memori, dan kendali input/output)
kedalam sebuah chip tunggal yang sangat kecil, jika sebelumnya IC
digunakan untuk mengerjakan pekerjaan tertentu saja maka pada masa ini
mikroprosesor dapat diproduksi dan di program untuk menjalankan
seluruh kebutuhan yang diinginkan.
Perkembangan Komputer generasi keempat memiliki ciri-ciri sebagai
berikut :

Dikembangkan komputer mikro yang menggunakan micro processor dan


semiconductor yang berbentuk chip untuk memori komputer.
Pada generasi ini komputer sudah memaki Large Scale Integration (LSI)
5|A

r s i t e k t u r

S i s t e m

K o m p u t e r

Komputer Generasi Kelima

Sejarah perkembangan komputer generasi kelima adalah komputer yang


kita gunakan sekarang ini dimana pada generasi ini ditandai dengan
munculnya: LSI (Large Scale Integration) yang merupakan pemadatan
ribuan microprocessor ke dalam sebuah microprocesor. Selain itu, juga
ditandai dengan munculnya microprocessor dan semi conductor.
Perusahaan-perusahaan yang membuat micro-processor di antaranya
adalah: Intel Corporation, Motorola, Zilog dan lainnya lagi. Di pasaran
bisa kita lihat adanya microprocessor dari Intel dengan model 4004, 8088,
80286, 80386, 80486, dan Pentium. Pentium-4 merupakan produksi
terbaru dari Intel Corporation yang diharapkan dapat menutupi segala
kelemahan yang ada pada produk sebelumnya, di samping itu,
kemampuan dan kecepatan yang dimiliki Pentium-4 juga bertambah
menjadi 2 Ghz. Gambar-gambar yang ditampilkan menjadi lebih halus
dan lebih tajam, di samping itu kecepatan memproses, mengirim ataupun
menerima gambar juga menjadi semakin cepat.

6|A

r s i t e k t u r

S i s t e m

K o m p u t e r

Sistem dan struktur interkoneksi komputer


Komputer terdiri dari satu set komponen atau modul dari tiga tipe dasar
(prosesor, memori, i / o) yang berkomunikasi satu sama lain. Pada
dasarnya, komputer adalah jaringan modul bacis. Sehingga harus ada
jalan untuk menghubungkan modul.
Koleksi jalan yang menghubungkan berbagai modul disebut struktur
interkoneksi. Desain struktur ini akan tergantung pada pertukaran yang
harus dilakukan antara modul.
Angka 3,15 menunjukkan jenis pertukaran yang dibutuhkan oleh yang
menunjukkan bentuk utama dari input dan output untuk setiap jenis
modul Struktur interkoneksi adalah kumpulan lintasan yang
menghubungkan berbagai komponen-komponen seperti CPU, Memory
dan i/O, yang saling berkomunikasi satu dengan lainnya.
1.

CPU

CPU membaca instruksi dan data, menulis data setelah diolah, dan
menggunakan signal-signal kontrol untuk mengontrol operasi sistem
secara keseluruhan. CPU juga menerima signal-signal interupt.

2.

MEMORY

Memory umumnya modul memory terdiri dari n word yang memiliki


panjang yang sama. Masing-masing word diberi alamat numerik yang
unik(0,1,N-1). Sebuah word data dapat dibaca dari memory atau ditulis
ke memori. Sifat operasinya ditandai oleh signal-signal control read dan
write. Lokasi bagi operasi dispesifikasikan oleh sebuah alamat.
7|A

r s i t e k t u r

S i s t e m

K o m p u t e r

3.

I/O

I/O berfungsi sama dengan memory.Terdapat dua buah operasi, baca dan
tulis. Selain itu, modul-modul i/O dapat mengontrol lebih dari 1 perangkat
eksternal. Kita dapat mengaitkan interface ke perangkat eksternal sebagai
sebuah port dan memberikan alamat yang unik (misalnya,0,1,,M-1) ke
masing-masing port tersebut. Di samping itu, terdapat juga lintasanlintasan data internal bagi input dan output data dengan suatu perangkat
eksternal. Terakhir, modul i/O dapat mengirimkan sinyal-sinyal interupt
ke cpu.

4.

PROCESSOR

Prosesor membaca dalam instruksi dan data, menulis data setelah keluar
pengolahan, dan menggunakan sinyal kontrol untuk mengendalikan
keseluruhan sistem operasi. Juga menerima sinyal interupt.

Dari jenis pertukaran data yang diperlukan modul modul


komputer, maka struktur interkoneksi harus mendukung perpindahan data
berikut :
8|A

r s i t e k t u r

S i s t e m

K o m p u t e r

a.

Memori ke CPU

CPU melakukan pembacaan data maupun instruksi dari memori.


b.

CPU ke Memori

CPU melakukan penyimpanan atau penulisan data ke memori.


c.

I/O ke CPU

CPU membaca data dari peripheral melalui modul I/O.


d.

CPU ke I/O

CPU mengirimkan data ke perangkat peripheral melalui modul I/O.


e.

I/O ke Memori atau dari Memori ke I/O

digunakan pada sistem DMA.

Saat ini terjadi perkembangan struktur interkoneksi, namun yang


banyak digunakan adalah sistem bus. Sistem bus ada yang digunakan
yaitu sistem bus tunggal dan struktur sistem bus campuran, tergantung
karakteristik sistemnya.

Interkoneksi Bus
9|A

r s i t e k t u r

S i s t e m

K o m p u t e r

Bus merupakan lintasan komunikasi yang menghubungkan dua atau


lebih komponen komputer. Karakteristik utama dari bus yaitu sebagai
media transmisi yang dapat digunakan bersama oleh sejumlah perangkat
yang terhubung padanya. Karena digunakan bersama, diperlukan
pengaturan agar tidak terjadi tabrakan data atau kerusakan data yang
ditransmisikan. Walaupun digunakan scara bersamaaan, dalam satu waktu
hanya ada sebuah perangkat yang dapat menggunakan bus.

Struktur Bus
Sebuah bus biasanya terdiri atas beberapa saluran. Sebagai contoh bus
data terdiri atas 8 saluran sehingga dalam satu waktu dapat mentransfer
data 8 bit. Secara umum fungsi saluran bus dikatagorikan menjadi tiga
bagian, yaitu :
i.

Saluran data

Saluran data (data bus) adalah lintasan yang digunakan sebagai


perpindahan data antar modul. Secara umum lintasan ini disebut bus data.
Umumnya jumlah saluran terkait dengan panjang word, misalnya 8, 16,
32. Saluran ini bertujuan agar mentransfer word dalam sekali waktu.
Jumlah saluran dalam bus data disebut lebar bus, dengan satuan bit,
misal : lebar bus 16 bit.
ii.

Saluran alamat

Saluran alamat (address bus) digunakan untuk menspesifikasi sumber dan


tujuan data pada bus data. Saluran ini digunakan untuk mengirim alamat
word pada memori yang akan diakses CPU. Juga digunakan untuk saluran
alamat perangkat modul komputer saat CPU mengakses suatu modul.
Perlu diketahui, semua peralatan yang terhubung dengan sistem komputer,
agar dapat diakses harus memiliki alamat. Misalnya mengakses port I/O,
maka port I/O harus memiliki alamat hardware-nya.
iii.

Saluran kontrol.
10 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

Saluran kontrol (control bus) digunakan untuk mengontrol bus data, bus
alamat dan seluruh modul yang ada. Karena bus data dan bus alamat
digunakan oleh semua komponen maka diperlukan suatu mekanisme kerja
yang dikontrol melalui bus kontrol ini. Sinyalsinyal kontrol terdiri atas
sinyal pewaktuan dan sinyalsinyal perintah. Sinyal pewaktuan
menandakan validitas data dan alamat, sedangkan sinyal perintah
berfungsi membentuk suatu operasi.
Secara umum saluran kontrol meliputi :
o Memory Write, memerintahkan data pada bus yang akan dituliskan ke
dalam lokasi alamat.
o Memory Read memerintahkan data dari lokasi alamat ditempatkan
pada bus data.
o I/O Write, memerintahkan data pada bus dikirim ke lokasi port I/O.
o I/O Read, memerintahkan data dari port I/O ditempatkan pada bus
data.
o Transfer ACK, menunjukkan data telah diterima dari bus atau
data telah ditempatkan pada bus.
o Bus Request, menunjukkan bahwa modul memerlukan kontrol bus.
o Bus Grant, menunjukkan modul yang melakukan request telah diberi
hak mengontrol bus.
o Interrupt Request, menandakan adanya penangguhan interupsi dari
modul.
o Interrupt ACK, menunjukkan penangguhan interupsi telah diketahui
CPU.
o Clock, kontrol untuk sinkronisasi operasi antar modul.
o Reset, digunakan untuk menginisialisasi seluruh modul.

11 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

Secara fisik bus adalah konduktor listrik yang dihubngkan secara paralel
yang berfungsi menghubungkan modulmodul. Konduktor ini biasanya
adalah saluran utama pada PCB motherboard dengan layout tertentu
sehingga didapat fleksibilitas penggunaan. Untuk modul I/O biasanya
dibuat slot bus yang mudah dipasang dan dilepas, seperti slot PCI dan
ISA. Sedangkan untuk chips akan terhubung melalui pinnya.

Prinsip Operasi
Prinsip operasi bus adalah sebagai berikut :

1)

Operasi pengiriman data ke modul lainnya :


Meminta penggunaan bus.

2)
Apabila telah disetujui, modul akan memindahkan data yang
diinginkan ke modul yang dituju.

1)

Operasi meminta data dari modul lainnya :


Meminta penggunaan bus.

2)
Mengirim request ke modul yang dituju melalui saluran kontrol dan
alamat yang sesuai.
3)

Menunggu modul yang dituju mengirimkan data yang diinginkan.

Hierarki Multiple Bus


Bila terlalu banyak modul atau perangkat dihubungkan pada bus maka
akan terjadi penurunan kinerja.
Faktor faktor :
12 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

Semakin besar delay propagasi untuk mengkoordinasikan penggunaan


bus.
Antrian penggunaan bus semakin panjang.
Dimungkinkan habisnya kapasitas transfer bus sehingga
memperlambat data.
Arsitektur Bus Jamak
Prosesor, cache memori dan memori utama terletak pada bus tersendiri
pada level tertinggi karena modul modul tersebut memiliki karakteristik
pertukaran data yang tinggi.
Pada arsitektur berkinerja tinggi, modul modul I/O diklasifikasikan
menjadi dua, yaitu :
Memerlukan transfer data berkecepatan tinggi
Memerlukan transfer data berkecepatan rendah
Modul dengan transfer data berkecepatan tinggi disambungkan
dengan bus berkecepatan tinggi pula,
Modul yang tidak memerlukan transfer data cepat disambungkan pada
bus ekspansi

Arsitektur Bus Jamak Kinerja Tinggi


Keuntungan hierarki bus jamak kinerja tinggi, yaitu :
Bus berkecepatan tinggi lebih terintegrasi dengan prosesor.
Perubahan pada arsitektur prosesor tidak begitu mempengaruhi kinerja
bus

13 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

14 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

Memori computer (Internal dan Eksternal)


Pengertian Memory Internal
Memory Internal adalah Memory yang dapat diakses secara langsung
oleh prosesor. Dalam hal ini yang disimpan di dalam memori utama dapat
berupa data atau program. Fungsi dari memori utama sendiri adalah :

1. Menyimpan data yang berasal dari peranti masukan sampai data


dikirim ke ALU (Arithmetic and Logic Unit) untuk diproses.
2. Menyimpan daya hasil pemrosesan ALU sebelum dikirimkan ke
peranti keluaran Menampung program/instruksi yang berasal dari
peranti masukan atau dari peranti pengingat sekunder.
Jenis - Jenis Memory Internal
1.

ROM (Read Only Memory)

Adalah perangkat keras pada komputer berupa chip memori


semikonduktor yang isinya hanya dapat dibaca. Jenis memori ini datanya
hanya bisa dibaca dan tidak bisa ditulis secara berulang-ulang. Memori ini
berjenis non-volatile, artinya data yang disimpan tidak mudah menguap
(hilang) walaupun catu dayanya dimatikan.
Karena itu memori ini biasa digunakan untuk menyimpan program
utama dari suatu sistem. ROM pada komputer disediakan oleh vendor
komputer dan berisi program atau data.Di dalam PC, ROM biasa disebut
BIOS (Basic Input/Output System) atau ROM-BIOS. Instruksi dalam
BIOS inilah yang akan dijalankan oleh mikroprosesor ketika komputer
mulai dihidupkan.
Sampai sekarang dikenal beberapa jenis ROM yang pernah
beredar dan terpasang pada komputer, antara lain :
PROM (Progammable Read-Only-Memory) : Jika isi ROM
ditentukan oleh vendor, PROM dijual dalam keadaan kosong dan
kemudian dapat diisi dengan program oleh pemakai. Setelah diisi dengan
program, isi PROM tak bisa dihapus.
15 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

EPROM (Erasable Programmable Read-Only-Memory) : Berbeda


dengan PROM, isi EPROM dapat dihapus setelah diprogram.
Penghapusan dilakukan dengan menggunakan sinar ultraviolet.
EEPROM (Electrically Erasable Programmable ReadOnly0Memory) : EEPROM dapat menyimpan data secara permanen,
tetapi isinya masih bisa dihapus secara elektris melalui program. Salah
satu jenis EEPROM adalah Flash Memory. Flash Memory biasa
digunakan pada kamera digital, konsol video game, dan cip BIOS.

RAM (Random Access Memory)


Merupakan jenis memori yang isinya dapat diganti-ganti selama
komputer dihidupkan dan sebagai suatu penyimpanan data yang dapat
dibaca atau ditulis dan dapat dilakukan secara berulang-ulang dengan data
yang berbeda-beda. Jenis memori ini merupakan jenis volatile (mudah
menguap), yaitu data yang tersimpan akan hilang jika catu dayanya
dimatikan.
Karena alasan tersebut, maka program utama tidak pernah
disimpan di RAM. Random artinya data yang disimpan pada RAM dapat
diakses secara acak. Modul memori RAM yang umum diperdagangkan
berkapasitas 128 MB, 256 MB, 512 MB, 1 GB, 2 GB, dan 4 GB.
RAM dibagi lagi menjadi dua jenis, yaitu
jenis Statik dan Dinamik. RAM statikmenyimpan satu bit informasi
dalam sebuah flip-flop. RAM statik biasanya digunakan untuk aplikasiaplikasi yang tidak memerlukan kapasitas memori RAM yang besar.
RAM dinamik menyimpan satu bit informasi data sebagai
muatan. RAM dinamik menggunakan kapasitansi gerbang substrat sebuah
transistor MOS sebagai sel memori elementer. Untuk menjaga agar data
yang tersimpan RAM dinamik tetap utuh, data tersebut harus disegarkan
kembali dengan cara membaca dan menulis ulang data tersebut ke
memori. RAM dinamik ini digunakan untuk aplikasi yang memerlukan
RAM dengan kapasitas besar, misalnya dalam sebuah komputer pribadi
(PC).
16 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

Jenis - Jenis RAM

1.

D RAM (Dynamic Random Access Memory)

=> jenis RAM yang menyimpan setiap bit data yang terpisah dalam
kapasitor dalam satu sirkuit terpadu. Data yang terkandung di dalamnya
harus ter-refresh secara berkala oleh CPU agar tidak hilang. Hal ini
membuatnya sangat dinamis dibandingkan dengan memori lainnya.
Dalam strukturnya, DRAM hanya memerlukan satu transistor dan
kapasitor per bit, sehingga memiliki kepadatan sangat tinggi.

2.

S RAM (Static Random Access Memory)

=> pada SRAM tidak menggunakan kapasitor. Hal ini mengakibatkan


SRAM tidak perlu lagi disegarkan secara berkala seperti halnya dengan
DRAM. Ini juga sekaligus membuatnya memiliki kecepatan lebih tinggi
dari DRAM. Berdasarkan fungsinya terbagi
menjadiAsynchronous dan Synchronous.
3.

EDO RAM (Extended Data Out Random Accses Memory)


17 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

=> jenis RAM yang dapat menyimpan dan mengambil isi memori secara
bersamaan, sehingga kecepatan baca tulisnya pun menjadi lebih cepat.
Umumnya digunakan pada PC terdahulu sebagai pengganti Fast Page
Memory (FPM) RAM. Seperti FPM DRAM, EDO RAM memiliki
kecepatan maksimal 50MHz EDO RAM juga harus membutuhkan L2
Cache untuk membuat semuanya berjalan dengan cepat, namun jika user
tidak memilikinya, makaEDO RAM akan berjalan jauh lebih lambat.
4.

FPM RAM (Fast Page Mode DRAM)

=> model DRAM paling lama. Masalah yang sering muncul dari FPM
DRAM adalah kecepatan transfernya yang lambat yakni maksimum
50MHz.
5.

SD RAM (Synchronous Dynamic Random Acces Memory)

=> SD RAM merupakan tipe baru dari DRAM. SD RAM mulai berjalan
dengan kecepatan transfer 66MHz, sementara mode halaman DRAM dan
EDO RAM yang lebih lama akan berjalan di maksimal 50MHz. Untuk
mempercepat kinerja processor, maka RAM generasi baru seperti DDR
dan RD RAM biasanya dapat mendukung performa yang lebih baik.

DDR (Double Data Rate SDRAM). DDR pada dasarnya memiliki


kecepatan transfer dua kali lipat daripada SDRAM. DDR akan beroperasi
di 333MHz, dengan pengoperasian sebenarnya 166MHz * 2 (aka PC333 /
PC2700) atau 133MHz*2 (PC266 / PC2100). DDR RAM juga kompatibel
dengan SDRAM secara fisik, namun menggunakan bus parallel yang
sama, sehingga membuat implemnetasi lebih mudah dibandingkan
RDRAM, yang merupakan teknologi berbeda.

6.

RD RAM (Rambus Dynamic Random Acces Memory)

=> salah satu tipe dari RAM dinamis sinkron yang diproduksi oleh
Rambus Corporation menggunakan Bus Speed sebesar 800 MHz tetapi
memiliki jalur data yang sempit (8 bit).RD RAM memiliki memory
controller yang canggih sehingga tidak semua motherboard bisa
18 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

mendukungnya. Contoh produk yang memakainya adalah 3dfx seri


Voodoo4.
RDRAM merupakan teknologi memory serial yang datang dengan
tiga pilihan, yakni PC600, PC700, dan PC800. PC800 RDRAM didesain
dengan double maximum kecepatan transfer daripada PC100 SDRAM,
namun memiliki latensi tinggi. RDRAM memiliki multi channel, seperti
pada motherboard Pentium 4, yang dapat menawarkan fungsi memori
paling bagus, terutama ketika dipasangkan dengan memory PC1066
RDRAM.

MEMORY EKSTERNAL
Pengertian Memory Eksternal
Memory Eksternal adalah memori tambahan yang berfungsi
untuk menyimpan data atau program. Dengan kata lain memory ini
termasuk perangkat keras untuk melakukan
operasi penulisan, pembacaan dan penyimpanan data, di luar memori
utama.
Contoh: Hardisk, Flash Disk, dan Floppy Disk. Pada dasarnya
konsep dasar memori eksternal adalah Menyimpan data bersifat tetap (non
volatile), baik pada saat komputer aktif atau tidak.
Memori eksternal mempunyai dua fungsi utama yaitu sebagai
penyimpan permanen untuk membantu fungsi RAM dan yang untuk
mendapatkan memori murah yang berkapasitas tinggi bagi penggunaan
jangka panjang.
Jenis - Jenis Memory Eksternal
1.

Berdasarkan Karakteristik Bahan


19 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

Punched Card atau kartu berlubang : Merupakan kartu kecil berisi


lubang-lubang yang menggambarkan berbagai instruksi atau data. Kartu
ini dibaca melalui punch card reader yang sudah tidak digunakan lagi
sejak tahun 1979.
Magnetic disk : Magnetic Disk merupakan disk yang terbuat dari bahan
yang bersifat magnetik, Contoh : floppy dan harddisk.

Optical Disk : Optical disk terbuat dari bahan-bahan optik, seperti dari
resin (polycarbonate) dan dilapisipermukaan yang sangat reflektif seperti
alumunium. Contoh : CD dan DVD

Magnetic Tape : Sedangkan magnetik tape, terbuat dari bahan yang


bersifat magnetik tetapi berbentuk pita, seperti halnya pita kaset tape
recorder.
2.

Berdasarkan Jenis Akses Data

DASD (Direct Access Storage Device) : Mempunyai akses langsung


terhadap data. Contohnya : Magnetik (floppy disk, hard disk),
Removeable hard disk (Zip disk, Flash disk), Optical Disk dll.
SASD (Sequential Access Storage Device) : Mempunyai akses data
secara tidak langsung(berurutan), seperti pita magnetik.
20 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

21 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

Organisasi Input Output


A. Mengakses Perangkat I/O
Fungsi I/O : Memindahkan informasi antara CPU atau memoriutama
dengan dunia luar.
Banyak pendekatan pada organisasi I/O diterapkan pada sistem komputer,
tetapi kebanyakan merupakan salah satu dari dua jenis pokok: memorymapped I/O dimana piranti I/O dihubungkan sebagai lokasi memory
virtual, atau I/O mapped I/O dimana port I/O tidak tergantung pada
memory utama. Pada sebuah organisai memory-mapped I/O, port
input/output dihubungkan ke bus alamat. Setiap piranti input diperlakukan
sebagai bagian memori yang memberikan data pada bus data dan setiap
piranti output diberlakukan sebagai suatu bagian memori yang memiliki
data yang tersimpan didalamnya. Dengan kata lain, port I/O menempati
lokasi tertentu pada ruang alamat dan diakses seolah-olah mereka adalah
lokasi memori.
Sebagai akibatnya, semua intruksi referensi memori dalam kumpulan
instruksi pada sebuah komputer dapat juga mereferensi port I/O. Dengan
demikian prosedur memory-mapped I/O tidak membutuhkan instruksi
khusus. Sebuah instruksi untuk mem-fetch atau menyimpan data pada
alamat memori tertentu menjadi sebuah instruksi I/O jika alamatnya
adalah sebuah port I/O. Karena memory-mapped I/O tidak membedakanbedakan register memori dan piranti I/O, ruang alamat dibagi diantara
meraka dan dengan demikian ruang memori yang tersedia untuk program
dan data menjadi berkurang.
Sebaliknya, pada sebuah organisasi I/O-mapped I/O, port input/output
tidak tergantung memori dan karenanya tidak membutuhkan referensi
langsung kealamat memori. CPU mengeluarkan sinyal khusus yang
membedakan operasi I/O dengan operasi memori. Transfer informasi
dilakukan dibawah kendali program, yang menggunakan intruksi INPUT
dan OUTPUT khusus untuk mentransfer data ke dan dari piranti
peripheral. Dengan demikian instruksi I/O mengaktifkan baris kendali
read/write pada port I/O untuk transfer data antara port I/O yang dialamati
dan CPU, sedangkan memori merujuk instruksi yang mengaktifkan baris
22 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

kendali pembaca/penulis memori untuk transfer data antara lokasimemori


yang dialamati dengan CPU. Perhatikan bahwa dengan memisahkan
memori dan ruang alamat I/O, sebuah piranti I/O dan lokasi memori
utama dapat memiliki alamat yang sama. Karena itu, sampai penuh, ruang
alamat pada komputer dapat digunakan untuk menjabarkan piranti I/O
atau lokasi memori, dari pada membagi ruang tersebut di antara mereka
berdua seperti pasda sebuah organisasi memory-mapped I/O.

Kedua pendekatan tersebut memiliki kelebihan dan kekurangan. Dari


keduanya, I/O-mapped I/O biasanya lebih cepat dan lebih efisien. Namun
kekurangan metode ini adalah keterbatasan jumlah instruksi yang dapat
digunakan untuk operasi I/O, kebalikanya pada memori-mapped I/O
dimana semua ini struksi referensi memori dapat digunakan. Memorymapped I/O lebih sederhana dan murah untuk diterapkan dan lebih
fleksibel dalam pengoprasiannya (walaupun biasanya lebih lambat )
dibandingkan I/O-mapped I/O.
Pada kedua pendekatan tersebut, operasi I/O dapat diklasifikasikan atas
tiga mode dasar tergantung lokasi kendali transfer. Mode-mode tersebut,
yaitu I/O terprogram, I/O interupsi dan direct memory acces (DMA).
Akan dibahas secara terpisah.
Proses transfer informasi antara CPU dengan sebuahperipheral :
- Memilih I/O dan mengujinya.
- Menginisialisasi transfer dan mengkoordinasikan pengaturan waktu
operasi I/O.
- Mentransfer informasi.
- Menghentikan proses transfer.
Klasifikasi piranti I/O terdiri 3 kelompok :
- Kelompok yang memasukkan informasi (input), contoh : keyboard,
ADC, scanner
23 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

- Kelompok yang rnenampilkan informasi (output), contoh : VDU


(monitor), printer
- Kelompok yang melayani input dan output, contoh : Floppy disk

Pengaksesan I/O terdiri dari 2 cara :


1. Memory mapped I/O
Piranti I/O dihubungkan sebagai lokasi memori virtual dimana port I/O
tergantung memori utama.
Karakteristik:
- Port I/O dihubungkan ke bus alamat.
- Piranti input sebagai bagian memori yang memberikan data ke bus data.
Piranti output sebagaibagian memori yang memiliki data yang tersimpan
di dalamnya.
- Port I/O menempati lokasi tertentu pada ruang alamat dan diakses
seolah-olah adalah lokasi memori.

2. I/O mapped I/O (I/O isolated)


Piranti I/O dihubungkan sebagai lokasi terpisah dengan lokasi memori,
dimana port I/O tidak tergantung pada memori utama.

Karakteristik:
- Port I/O tidak tergantung memori utama.
- Transfer informasi dilakukan di bawah kendali sinyal kontrol yang
menggunakan instruksi INPUT dan OUTPUT.
- Operasi I/O tergantung sinyal kendali dari CPU.
24 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

- lnstruksi I/O mengaktifkan baris kendali read/write pada port I/O,


sedangkan instruksi memori akan mengaktifkan baris kendali read/write
pada memori.
- Ruang memori dan ruang alamat I/O menyatu, sehingga dapat memiliki
alamat yang sama.

Kelebihan dan kekurangan:


- I/O mapped I/O Iebih cepat dan efisien, karena lokasi I/O terpisah
dengan lokasi memori.
- I/O mapped I/O mempunyai keterbatasan jumlah instruksi yang dapat
digunakan untuk operasi I/O.

Operasi I/O terbagi menjadi 3 metode :


1. I/O terprogram
Metode di mana CPU mengendalikan operasi I/O secara keseluruhan
dengan menjalankan serangkaian instruksi I/O dengan sebuah program.
Karakteristik:
- Program tersebut digunakan untuk memulai, mengarahkan dan
menghentikan operasi-operasi I/O.
- Membutuhkan sejumlah perangkat keras (register) yaitu:
Register status, berisi status piranti I/O dan datayang akan dikirimkan.
Register buffer, menyimpan data sementara sampai CPU siap
menerimanya
Pointer buffer, menunjuk ke lokasi memori di mana sebuah karakter
harus ditulis atau dan mana karakter tersebut harus dibaca.
Counter data, tempat penyimpanan jumlah karakter dan akan berkurang
nilainya jika karakter ditransfer.
25 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

- Membutuhan waktu proses yang lama dan tidak efesien dalarn


pemanfaatan CPU.

2. I/O interupsi
Metode di mana CPU akan bereaksi ketika suatu piranti mengeluarkan
permintaan untuk pelayanan.
Karakteristik:
- Lebih efisien dalam pemanfaatan CPU, karena tidak harus menguji
status dari piranti.
- Interupsi dapat berasal dari piranti I/O, interupsi perangkat keras
misalnya : timer, memori, power supply, dan Interupsi perangkat lunak
misalnya : overflow, opcode/data yang ilegal, pembagian dengan nol.

Ada 2 jenis interupsi:


1. lnterupsi maskable
Interupsi yang dapat didisable (dimatikan) untuk sementara dengan
sebuah instruksi disable interupsi khusus.
2. Interupsi nonmaskable
Interupsi yang tidak dapat didisable dengan instruksi perangkat lunak.

Dalam sistem komputer terdapat lebih dari satu pirantiyang memerlukan


pelayanan interupsi, dapat digunakan metode:
- Polling/polled interupt
Berdasarkan urutan prioritas yang telah ditentukan sebelum piranti
memerlukan interupsi. Misal: piranti A dan B mempunyai urutan prioritas
A lebih Iebih dulu dari B, maka jika A dan B secara bersamaan
memerlukan pelayanan interupsi, maka piranti A akan didahulukan.
26 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

- Vector Interupt
Peralatan yang berinterupsi diidentifikasikan secara Iangsung dan
dihubungkan routine pelayanan vector interupt.
INTR = Sinyal yang dikeluarkan oleh peralatan.
INTA = Sinyal kendali yang digunakan CPU untuk menyiapkan pelayanan
interupt
Cara yang biasa digunakan dengan metode daisy chain dan encoder
prioritas
B. DMA (Direct Memory Acess)
DMA adalah sebuah metode untuk mentransfer data dari RAM komputer
ke bagian lain dari pengolahan komputer tanpa menggunakan CPU.
Meskipun sebagian besar data yang diinput atau output dari komputer
Anda diproses oleh CPU, beberapa data tidak memerlukan pengolahan,
atau dapat diproses oleh perangkat lain. Dalam situasi ini, DMA dapat
menghemat waktu pemrosesan dan merupakan cara yang lebih efisien
untuk memindahkan data dari memori komputer ke perangkat lain.
Sebagai contoh, sebuah Sound card mungkin perlu untuk mengakses data
yang tersimpan dalam RAM komputer, tapi karena dapat memproses data
sendiri, hal itu mungkin menggunakan DMA untuk melewati CPU. Video
card yang mendukung DMA juga dapat mengakses memori sistem dan
proses grafis tanpa perlu CPU. Agar perangkat dapat menggunakan DMA,
mereka harus ditetapkan ke saluran DMA. Setiap jenis port pada
komputer memiliki seperangkat saluran DMA yang dapat ditetapkan
untuk setiap perangkat yang terhubung. Sebagai contoh, sebuah PCI
controller dan sebuah hard drive controller masing-masing memiliki
saluran DMA set.
DMA merupakan prosesor khusus (special purpose processor) yang
berguna untuk menghindari pembebanan CPU utama oleh program I/O
(PIO). Untuk memulai sebuah transfer DMA, host akan menuliskan
sebuah DMA command block yang berisi pointer yang menunjuk ke
sumber transfer, pointer yang menunjuk ke tujuan transfer, dan jumlah
byte yang ditransfer, ke memori. CPU kemudian menuliskan alamat
27 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

command block ini ke pengendali DMA, sehingga pengendali DMA dapat


kemudian mengoperasikan bus memori secara langsung dengan
menempatkan alamat-alamat pada bus tersebut untuk melakukan transfer
tanpa bantuan CPU.

Tiga langkah dalam transfer DMA:


1. Prosesor menyiapkan DMA transfer dengan menyediakan data-data
dari perangkat, operasi yang akan ditampilkan, alamat memori yang
menjadi sumber dan tujuan data, dan banyaknya byte yang ditransfer.
2. Pengendali DMA memulai operasi (menyiapkan bus, menyediakan
alamat, menulis dan membaca data), sampai seluruh blok sudah di
transfer.
3. Pengendali DMA meng-interupsi prosesor, dimana selanjutnya akan
ditentukan tindakan berikutnya.
Pada dasarnya, DMA mempunyai dua metode yang berbeda dalam
mentransfer data. Metode yang pertama ialah metode yang sangat baku
dan sederhana disebut HALT, atau Burst Mode DMA, karena pengendali
DMA memegang kontrol dari sistem bus dan mentransfer semua blok data
ke atau dari memori pada single burst. Selagi transfer masih dalam
prosres, sistem mikroprosessor diset idle, tidak melakukan instruksi
operasi untuk menjaga internal register. Tipe operasi DMA seperti ini ada
pada kebanyakan komputer.
Metode yang kedua, mengikutsertakan pengendali DMA untuk memegang
kontrol dari sistem bus untuk jangka waktu yang lebih pendek pada
periode dimana mikroprosessor sibuk dengan operasi internal dan tidak
membutuhkan akses ke sistem bus. Metode DMA ini disebut cycle
stealing mode. Cycle stealing DMA lebih kompleks untuk
diimplementasikan dibandingkan HALT DMA, karena pengendali DMA
harus mempunyai kepintaran untuk merasakan waktu pada saat sistem bus
terbuka.
Kelemahan I/O terprogram dan Interrupt- Driven I/O
28 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

Proses yang terjadi pada modul I/O masih melibatkan CPU secara
langsung, berimplikasi pada :
Kelajuan transfer I/O yang tergantung kecepatan operasi CPU.
Kerja CPU terganggu karena adanya interupsi secara langsung
Prinsip kerja DMA
CPU akan mendelegasikan kerja I/O kepada DMA
CPU hanya akan terlibat pada awal proses untuk memberikan instruksi
lengkap pada DMA dan akhir proses saja
CPU dapat menjalankan proses lainnya tanpa banyak terganggu dengan
interupsi
Melaksanakan transfer data secara mandiri :
1. DMA memerlukan pengambilalihan kontrol bus dari CPU
2. DMA akan menggunakan bus bila CPU tidak menggunakannya atau
DMA memaksa CPU untuk menghentikan sementara penggunaan bus
3. Teknik cyclestealing, modul DMA mengambil alih siklus bus
Klasifikasi perangkat eksternal
Human Readable, yaitu perangkat yang berhubungan dengan manusia
sebagai
pengguna komputer. Contoh: monitor, keyboard, mouse, printer,
joystick, disk drive.
Machine readable, yaitu perangkat yang berhubungan dengan peralatan.
Biasanya berupa modul sensor dan tranduser untuk monitoring dan
kontrol suatu peralatan atau sistem.
Communication, yatu perangkat yang berhubungan dengan komunikasi
jarak jauh. Contoh: NIC dan modem

29 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

Klasifikasi berdasar arah data


1. Perangkat output
2. Perangkat input
3. Kombinasi output-input.
Contoh perangkat output: monitor, proyektor dan printer.
Contoh perangkat input : keyboard, mouse, joystick, scanner, mark
reader, bar code reader
Cara kerja External Harddisk Controller
Pada motherboard yang sudah memiliki UDMA/66 atau ATA/66
umumnya memiliki chip set tersendiri . Sebagai contoh disini adalah
Controller dari Highpoint. Cara kerja controller harddisk pada
motherboard pengolahan data dari harddisk ke processor melalui memory
computer. Selanjutnya data dari memory diambil ke processor .
Pada penerapan teknologi Highpoint chipset, mengunakan Direct Memory
Access (DMA) langsung tanpa memindahkan data ke processor. Sehingga
proses pada utilitas (pengerjaan) di processor computer menjadi lebih
kecil. Dengan demikian kecepatan pada harddisk dalam mentranfer data
akan sangat cepat dan pengunaan processor dapat akan semakin kecil (15% tergantung kecepatan processor dan harddisk).
C. System Bus
Sebuahbus data adalahsubsistemkomputer (berupasekelompok) yang
memungkinkanmenemukancaramentransfer
datadarisatukomponenkekomponen lain padapapan motherboard
atausistem, atauantaraduakomputer. Hal inidapatmencakuptransfer data
kedandarimemori, ataudari central processing unit (CPU)
kekomponenlainnya. Setiap bus data
dirancanguntukmenanganibegitubanyak bit data padasuatuwaktu. Jumlah
data yang dapatditransferoleh bus data diukurdandisebut bandwidth.
Bus data 32-bit adalah yang paling awalterkenal.Iniberartibahwa transfer
data dapatmencapaisampaidengan 32 bit setiapdetik. Komputerbaru yang
membuat bus data yang dapatmenangani 64-bit danbahkan 96-bit data
path.Padasaat yang samamerekamembuat bus data untukmenangani bit
30 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

lebih, merekajugamembuatperangkat yang dapatmenanganihalini bitrate


yang lebihtinggi.
Padamasa-masaawaldarikomputerpribadi, produsenmenciptakan
motherboard dengan directly connected yang
terhubunglangsungkememorikomputerdan peripheral. Hal
inidirancanguntukberjalansejajarsatusama lain
danmemilikibeberapasambungan.
Namunhubunganlangsungmengalamimasalahkarenabeberapaalasan,
terutamakarenasemuaperangkatdipaksauntukberjalanpadakecepatan yang
sama.
Untukmenghilangkanmasalahini, pengembangmenggunakan bus
controller untukmemisahkan CPU danmemoridariperangkatperiferal,
memungkinkankecepatan CPU
dapatditingkatkantanpamemerlukanpeningkatankecepatan yang sama di
perifer.
Sisteminijugamemungkinkankartuekspansiuntukberkomunikasisatusama
lain tanpamelalui CPU, sehingga transfer data menjadilebihcepat.
Semuaperangkatmasihharusberkomunikasisatusama lain padakecepatan
yang sama, namunkecepatan bus
begiturendahakanmemperlambatsistemkomputersecarakeseluruhan. Komp
uter modern menggunakanparaleldan serial data bus.Paralel bus data
membawa data padakabel yang
banyaksecarabersamaan.Setiapkawatataujalur, membawasatu bit data.
Sebuah bus data serial memilikisatukawatataujalan, danmembawasemua
bit, satu demi satu.
Hampirsetiapkomputerberisi internal daneksternal bus data.Bus data
internal, jugadikenalsebagai bus lokal, menghubungkansemuakomponen
yang terdapatpada motherboard, seperti CPU danmemori.Bus data
eksternalmenghubungkansemuaperangkatperiferalke motherboard.
Berbagai bus data eksternal berbeda sudah tersedia saat ini. Tipe bus data
yang tepat tergantung pada perangkat yang terpasang pada komputer. Bus
paralel yang paling umum ditemukan di komputer saat ini adalah ATA,
31 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

kartu PC (digunakan di laptop), dan SCSI. Bus data paling umum adalah
serial, termasuk USB, FireWire, Serial ATA, dan SCSI.

Bus Data
Saluran yang memberikan lintasan bagi perpindahan data antara dua
modul system. Umumnya bus data terdiri dari 8, 16, 32 saluran, jumlah
saluran dikaitkan dengan lebar bus data. Karena pada suatu saat tertentu
masing-masing saluran hanya dapat membawa 1 bit, maka jumlah saluran
menentukan jumlah bit yang dapat diindahkan pada suatu saat. Lebar bus
data merupakan factor penting dalam menentukan kinerja system secara
keseluruahan. Bila bus data lebarnya 8 bit, dan setiap instruksi panjangnya
16 bit, maka CPU harus 2 kali mengakses modul memori dalam setiap
siklus instruksinya.
Bus Alamat
Digunakan untuk menandakan sumber atau tujuan data pada bus data,
misalnya CPU akan membaca sebuah word (8, 16, 32 bit) data dari
memori, maka CPU akan menaruh alamat word yang dimaksud pada
saluran alamat. Lebar bus alamat menentukan kapasitas memori
maksimum sitem. Selain itu umumnya saluran alamt juga digunakan
untuk mengalamati port-port I/O.

Bus Kontrol
Digunakan untuk mengontrol akses ke saluran alamat, penggunaan data
dan saluran alamat. Karena data dan saluran alamat digunakan bersama
oleh seluruh komponen, maka harus ada alat untuk mengontrol
penggunaannya. Signal-signal kontrol melakukan transmisi baik perintah
mauun informasi pewaktuan diantra modul-modul system. Signal-signal
pewaktuan menunjukkan validitas data dan informasi alamat.
Umumnya saluran kontrol meliputi :

32 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

Memory Write : menyebabkan data pada bus akan dituliskan ke dalam


lokasi alamat. Memory Read : menyebabkan data dari lokasi alamat
ditempatkan pada bus I/O Write : menyebabkan data pada bus di output
kan ke port I/O yang beralamat. I/O Read : menyebabkan data dari port
I/O yang beralamat ditempatkan pada bus. Transfer ACK : menunjukkan
bahwa data telah diterima dari bus atau telah ditempatkan di bus. Interrupt
Request : menandakan bahwa sebuah interrupt ditangguhkan. Interrupt
ACK : memberitahukan bahwa interrupt yang ditangguhkan telah
diketahui. Clock : digunakan untuk mensinkronkan operasi-operasi.
Reset : menginisialisasi seluruh modul
Operasi Bus
Bila sebuah modul akan mengirimkan data ke modul lainnya, maka modul
itu harus melakukan dua hal : 1. memperoleh enggunaan bus, dan 2
memindahkan data melalui bus. Bila sebuah modul akan meminta data
dari modul lainnya, maka modul itu harus 1 memperoleh penggunaan bus,
dan 2 memindahkan sebuah request ke modul lainya melalui saluran
kontrol dan saluran alamt yang sesuai. Kemudian modul harus menunggu
modul kedua untuk mengirimkan data.
Bentuk phisik Bus.
Bus system merupakan sejumlah konduktor listrik parallel. Konduktorkonduktor ini berupa kawat logam yang berakhir pada kartu atau papan
PCB. Bus melintasi seluruh komponen system yang masing-masing
disambungkan ke beberapa atau semua saluran bus.

Masalah dalam Bus Tunggal/ Single


Bila perangkat yang berjumlah sangat banyak dihubungkan ke bus, maka
akan terjadi penurunan kinerja. Penyebab utama :
Semakin banyak perangkat yang dihubungkan ke bus, semakin besar
delay propagasinya. Delay ini menentukan waktu yang diperlukan
perangkat untuk mengkoordinasi pengguna bus

33 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

Bus akan menjadi penyumbat dengan semakin besarnya perindahan data


yang hamper mendekati kapasitas bus. Sampai tingkat tertentu, masalah
ini dapat diatasi dengan memakai bus-bus yang lebih lebar. (misalnya
meningkatkan bus data dari 32 menjadi 64 bit) Namun karena kelajuan
data disebabkan oleh perangkat-perangkat yang terhubung (misalnya
pengontrol grafis dan video, interface jaringan) berkembang dengan
cepatm maka dalam perlombaan ini besar kemungkinan bus tunggal akan
menderita kekalahan.
Bus local yang menghubungkan prosesor dengan cache memory dan bus
local dapat mendukung sebuah perangkat local atau lebih. Pengontrol
cache memory tidak hanya menghubungkan cache dengan bus local itu
saja, namun juga dengan bus system yang terhubung dengan seluruh
modul memory utama. Manfaat struktur cache melindungi prosesor dari
keharusan seringnya mengakses memori utama, sehingga memori utama
dapat dipindahkan dari bus local ke bus sitem. Dengan cara ini, transfer
I/O ke memori utama dan transfer dari memoriutama yang melintasi bus
system tidak mengganggu aktivitas prosesor.
Sangat mungkin untuk menghubungkan pengontrol I/O secara langsung
dengan bus system. Penyelesaian yang lebih efisien untuk masalah ini
adalah dengan memanfaatkan satu bus ekspansi atau lebih. Interface bus
ekspansi mem-buffer-kan transfer data antara bus system dengan
pengontrol I/O pada bus ekspansi.
Contoh : Perangkat I/O yang dapat disambungkan ke bus ekspansi.
Koneksi jaringan meliputi LAN misalnya koneksi Ethernet 10 Mbps dan
koneksi ke WAN seperti jaringan paket switching, SCSI (Small Computer
System Interface) merupakan jenis bus yang digunakan untuk mendukung
disk drive local dan peripheral lainnya. Sebuah serial port dapat dipakai
untuk mendukung sebuah printer atau scanner.
Arsitektur bus tradisional cukup efisien namun mulai mengalami
penurunan dengan semakin tingginya kinerja pada perangkat I/O.
Untuk menjawab meningkatnya kebutuhan ini, penyelesaianya membuat
bus berkecepatan tinggi yang sangat terintegrasi dengan system, yang
34 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

hanya memerlukan bridge antara bus prosesor dengan bus berkecepatan


tinggi.
Keuntungan pengaturan bus berkecepatan tinggi menyebabkan perangkat
yang berkapasitas besar menjadi lebih terintegrasi dengan prosesor dan
sekaligus tidak tergantung lagi terhadap prosesor.
Jenis-jenis Bus
Dedicated : Saluran data dan alamat terpisah
Multiplexed : Alamat dan informasi data dapat ditransmisikan melalui
sejumlah saluran yang sama dengan menggunakan saluran ?Address Valid
Control?. Pada awal pemindahan data, alamat ditempatkan pada bus dan ?
Address Valid Control? diaktifkan. Pada saat ini setiap modul memiliki
periode waktu tertentu untuk menalin alamt dan menentukan apakah
alamat tersebut merupakan modul beralamat. Kemudian alamat dihapus
dari bus, dan koneksi bus yang sam adigunakan untuk transfer data
pembacaan atau penulisan berikutnya. Metoda penggunaan saluran yang
untuk berbagai keperlua ini dikenal sebagai time multiplexing
Keuntungan : hanya memerlukan saluran sedikit sehingga menghemat
ruang dan biaya.
Kerugiannya : diperlukan rangkain yang lebih kompleks , penurunan
kinerja yang cukup besar
Bus Arbitrasi :
Didalam semua system kecuali system yang paling sederhana, lebih dari
satu modul diperlukan untuk mengontrol bus. Misalnya I/O mungkin
diperlukan untuk membaca atau menulis secara langsung ke memori,
dengan tanpa mengirimkan data ke CPU. Karena pada satu sat hanya
sebuah unit yang berhasil mentransmisikan data melalui bus, maka
diperlukan beberapa metode arbitrasi.
Metode Arbitrasi digolongkan sebagai metode tersentralisasi dan metode
terdistribusi.

35 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

Tersentralisasi : sebuah perangkat hardware yang dikenal sebagai


pengontrol bus atau arbitrer bertanggung jawab atas alokasi waktu pada
bus. Mungkin perangkat berbentuk modul atau bagian CPU yang terpisah
Terdistribusi : tidak terdapat pengontrol sentral, setiap modul terdiri dari
acces control logic dan modul-modul bekerja sama untuk memakai bus
bersama-sama
Timing
Timing berkaitan dengan cara terjadiya event dikoordinasikan pada bus.
Dengan timing yang synchronous, terjadinya event pada bus ditentukan
oleh sebuah clock. Bus meliputi sebuah saluran, waktu tempat timing
mentransmisikan rangkaian bilangan 1 dan 0 dalam durasi yang sama.
Sebuah transmisi 1-0 dikenal sebagai siklus waktu atau siklus bus dan
menentukan besarnya slot waktu. Semua perangkat lainnya pada bus
dapat membaca saluran waktu, dan semua event dimulai pada awal siklus
waktu.
Timing Sinkron
Signal bus lainya dapat berubah pada ujung muka signal waktu (dengan
sedikit reaksi delay). Sebagian besar event mengisi suatu siklus waktu.
CPU mengeluarkan signal baca dan menempatkan alamat memori pada
bus alamat, CPU mengeluarkan signal awal untuk menandai keberadaan
alamat dan informasi control pada bus. Modul memori mengetahui alamat
itu, dan setelah delay 1 siklus menempatkan data dan signal balasan pada
bus.
Timing Asinkron
Terjadinya event pada bus mengikuti dan tergantung pada event
sebelumnya. CPU menempatkan alamat dan membaca signal bus. Setelah
berhenti untuk memberi kesempatan signal ini menjadi stabil, CPU
mengeluarkan signal MSYN (master syn) yang menandakan keberadaan
alamat yang valid dan signal control. Modul memori memberikan respons
dengan data dan signal SSYN (slave syn) yang menunjukan respon

36 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

Timing sinkron lebih mudah untuk diimplementasikan dan ditest. Namun


timing ini kurang flexible dibandingkan dengan timing asinkron. Karena
semua perangkat pada bus sinkron terkait dengan kelajuan pewaktu yang
tetap, maka system tidak dapat memanfaatkan peningkatan kinerja.
Dengan menggunakan timing asinkron, campuran antara perangkat yang
lamban dan cepat, baik dengan menggunakan teknologi lama maupun
baru, dapat menggunakan bus secara bersama-sama.
Lebar Bus
Lebar bus dapat mempengaruhi kinerja system, semakin lebar bus data,
semakin besar bit yang dapat ditransferkan pada suatu saat. Lebar bus
alamat mempunyai pengaruh pada kapasitas system : semakin lebar bus
alamat, semakin besar range lokasi yang dapat direferensi.

PCI
heripheral Component Interconnect (PCI) merupakan bus yang tidak
tergantung prosessor berbandwidth tinggi yang dapat berfungsi sebagai
bus peripheral atau bus mezzanine. PCI memberikan system yang lebih
baik bagi subsistem I/O berkecepatan tinggi.. PCI dirancang untuk
mendukung bermacam-macam konfigurasi berbasis microprocessor, baik
system microprocessor tunggal maupun jamak. PCI memanfaatkan timing
sinkron dan pola arbitrasi tersentralisasi..
PCI Saluran Bus.
Signal-signal ini dibagi menjadi kelompok-kelompok :
System pins: meliputi pin waktu dan reset
Address dan data : meliputi 32 saluran yang time multiplexed bagi alamat
dan data. Saluran lainya untuk menginterpretasi dan mevalidasi saluransaluran signal yang membawa alamat dan data
Interface Control: Mengontrol timing transaksi dan mengkoordinasikan
antara inisiator dan target
37 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

Arbitration: Masing-masing master PCI memiliki pasangan saluran


arbitrasinya sendiri yang menghubungkannya secara langsung dengan
arbiter bus PCI
Error repots : Melaporkan error parity dan eror lainnya.
PCI saluran bus
Interupt pins : Saluran signal ini disediakan bagi perangkat-perangkat PCI
yang harus menghasilkan request untuk layanan. Pin-pin ini pun bukan
saluran yang dapat dipakai bersama, melainkan masing-masing PCI
memilih saluran interrupt ke pengontrol interrupt
Cache Support : Diperlukan untuk mendukung memori pada PCI yang
dapat di cache kan di dalam prosesor
64 bit Bus Extension : Meliputi 32 saluran yang merupakan timemultiplexed bagi alamat dan data dan dikombinasikan dengan saluran
alamat/data untuk membentuk bus alamat/data 64 bit. Saluran lainnya di
dalam kelompok ini digunakan untuk menginterpretasi dan memvalidasi
saluran-saluran signal yang membawa alamat dan data. Terakhir terdapat
dua saluran yang memungkinkan dua buah perangkat PCI untuk
menyetujui penggunaan kemampuan 64 bit
JTAG/Boundary Scan : Saluran signal untuk pengujian prosedur-prosedur
yang ditentukan dalam standard 149.1.IEEE.

Operasi Baca PCI


Sekali master bus telah memperoleh control bus, maka master bus akan
memulai transaksi dengan menegaskan FRAME. Saluran ini akan tetap
ditegaskan sampai inisiator siap untuk menyelesaikan fase data yang
terakhir. Inisiator juga menaruh alamat awal pada bus alamat, dan
membaca perintah pada saluran C/BE
Pada awal waktu ke-2, perangkat target akan mengetahui alamatnya di
saluran AD
38 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

Inisiator berhenti mengendalikan bus AD. Siklus balik (yang ditandai oleh
dua buah panah sikular) diperlukan pada semua saluran signal yang akan
dikendalikan oleh lebih dari sebuah perangkat, sehingga penurunan signal
alamat akan mempersiapkan bus untuk dipakai oleh perangkat target.
Inisiator mengubah informasi pada saluran C/BE untuk memilih saluran
AD yang akan digunakan untuk melakukan transfer data beralamat (dari 1
hingga 4 bit). Inisiator juga menegaskan IRDY untuk menandakan bahwa
dirinya siap untuk butir data pertama.
Target yang terpilih menunjuk DEVSEL untuk menunjukkan bahwa target
telah mengetahui alamatnya dan akan memberikan respon. Target yang
terpilih menempatkan data yang diminta pada saluran AD dan
menegaskan TRDY untuk mengindikasikan bahwa data yang valid
terdapat pada bus
Inisiator membaca data pada awal waktu ke-4 dan mengubah salurah
enable byte begitu diperlukan dalam persiapan pembacaan berikutnya
Dalam contoh ini, target membutuhkan beberapa saat untuk
mempersiapkan blok kedua untuk transmisi. Karena itu target melepaskan
TRDY untuk memberi signal kepada inisiator bahwa tidak akan terdapat
data baru selama siklus berikutnya. Kemudian inisiator tidak akan
membaca saluran data pada awal siklus waktu ke-5 dan tidak mengubah
byte enable selama siklus itu. Blok data dibaca pada awal waktu ke-6.
Selama waktu ke-6, target menempatkan butir data ketiga pada bus.
Namun dalam contoh ini, inisiator belum siap untuk membaca butir data
(misalnya inisiator mempunyai kondisi penuh buffer sementara). Karena
itu inisiator melepaskan IRDY. Hal ini akan menyebabkan target untuk
menyediakan butir data ketiga pada bus siklus waktu tambahan
Inisiator mengetahui bahwa transfer data ketiga adalah terakhir, karena itu
inisiator melepaskan FRAME untuk memberikan signal bahwa dirinya
siap untuk menyelesaikan transfer tersebut.
Inisiator melepaskan IRDY, yang mengembalikan bus ke keadaan idle,
dan target melepaskan TRDY dan DEVSEL
Arbitrasi PCI antara 2 master
39 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

Pada saat titik sebelum awal waktu ke-1, A telah menegaskan signal REQnya. Arbiter men-sample signal ini pada awal siklus waktu ke-1
Selama siklus waktu ke-1, B membuat request untuk menggunakan bus
dengan menegaskan signal REQ-nya
Pada saat yang sama, arbiter menegaskan GNT-A untuk memberikan hak
akses bus kepada A
Master bus A men-sample GNT-A pada awal waktu ke-2 dan memeriksa
apakah dirinya telah diberi hak mengakses bus. Master bus juga
menemukan pelepasaran IRDY dan TRDY yang menandakan bahwa bus
tersebut dalam keadaan idle. Setelah itu, master bus menegaskan FRAME
dan menempatkan informasi alamat pada bus alamat dan perintah pada
bus C/BE (tidak ditunjukkan). Master bus juga melanjutkan penegasan
REQ-A, karena master bus memiliki transaksi kedua yang akan dibentuk
setelah transaksi ini
Arbiter bus men-sample semua saluran GNT pada awal waktu ke 3 dan
membuat keputusan arbitrasi untuk memberikan hak mengakses bus ke B
pada transaksi berikutnya. Kemudian arbiter bus menegaskan GNT-B dan
melepaskan GNT-A. B tidak akan dapat menggunakan bus hingga bus itu
dikembalikan ke keadaan idle.
A melepaskan FRAME untuk menandakan bahwa transfer data terakhir
(dan satu-satunya) sedang dilakukan. A menaruh data pada bus data dan
memberi signal ke target dengan IRDY. Target membaca data pada awal
siklus waktu berikutnya
Pada awal waktu ke-5 menemukan IRDY dan FRAME yang dilepaskan
dank arena itu B dapat melakukan control terhadap bus dengan
menegaskan FRAME. B juga melepaskn saluran REQ-nya karena B
hanya perlu membentuk satu transaksi saja.

40 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

Sistem Operasi
Sistem Operasi yang biasa disebut (Operating System) atau yang biasa
disingkat OS, iyalah perangkat lunak (software) sistem yang berfungsi
melakukan pengontrolan dan manajemen perangkat keras (hardware) serta
operasi-operasi dasar dari suatu sistem Komputer.
Sistem imformasi
Manajemen ini termasuk menjalakan software aplikasi seperti program
pengolah kata, pemutar multimedia, dan lain lainnya.
Penjelasan Sistem Operasi(Operating System)
Sistem Operasi iyalah software pertama yang terdapat pada sebuah
memori komputer pada saat komputer dalam keadaan running.
Sedangkan software lainnya akan running setelah SO(sistem operasi)
berjalan terlebih dahulu. Setelah itu SO akan melakukan pelayanan
terhadap software lainnya . Beberapa layanan yang biasa dilakukan oleh
SO adalah:
Akses Disk
Manajemen Memori
Penjadwalan Task
Pengaturan user interface , dan lain-lain.
Beberapa task(tugas) diatas seharusnya dilakukan oleh Software. Akan
tetapi dengan adanya SO, software ini tidak perlu mengerjakan Job -job
tersebut. Bagian SO yang melakukan Job-Job inti tersebut dikenal
dengan nama Kernel.
SO secara umum terdiri dari beberapa bagianyaitu :
Mekanisme Boot adalah meletakan Kernel ke dalam Memori Komputer
Kernel adalah inti dari sebuah SO

41 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

Command Interpreter atau shell, berguna untuk membaca sebuah inputan


dari Pengguna
Pustaka-pustaka, adalah sebagai penyedia kumpulan fungsi-fungsi dasar
dan standart yang dapat dipanggil oleh aplikasi lain.
Driver, berfungsi untuk behubungan dengan Hardware eksternal.
Terdapat banyak sekali macam-macam sistem operasi yang dapat kita
temui.ContohBeberapa diantaranya adalah,

Windows
Linux
MacOS(Macintosh Operating System)
Solaris
Garuda OS (buatan Indonesia)

Sekarang saya akan membahas sejarah dan perkembangan Sistem


Operasi.
SO mengalami perkembangan yang dapat dibagi ke dalam 4 generasi ,
generasi tersebut yaitu
1.Generasi Pertama(awal)
Pada awal SO masih dilakukan dengan manual dalam artian , belum ada
Sistem Operasi yang secara otomatis , artinya Sistem Operasi belum
mendukung layanan pekerjaan yang dapat dilakukan dalam 1 rangkaian.
2.Generasi Kedua
Pada generasi ini sudah diperkenalkan adanya perkejaan yang dapat
dilakukan dalam 1 rangkaian atau biasa disebut dengan sebutan Batch
Proccessing System.
3.Generasi Ketiga
Di generasi ketiga, Sistem Operasi sudah mendukung layanan MultiProgramming,Multi-User dan Batch Proccessing System (Multi-Task).

42 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

4.Generasi Keempat
Pada generasi keempat ini, sudah diperkenankannya Graphical User
Interface yang disingkatan (GUI) yang artinya SO memiliki tampilan dan
dengan bermodalkan mouse, End-User dapat menjalankan
aplikasi/program/software.
5.Generasi Selanjutnya
Pada generasi selanjutnya ini diperkenalkan Sistem berada dalam sebuah
Sistem Operasi, Dan pada generasi ini diperkenalkanlah sebuah Sistem
Operasi yang bergerak (Mobile) pada perangkat bergerak seperti : PDA,
Poket PC, dan lain-lainnya. Di generasi selanjutnya ini dikenalkan juga
teknologi Sistem Operasi jaringan yang bersifat virtual, sehingga dalam
sebuah jaringan hanya diinstal 1 buah Sistem Operasi pada Perangkat
yang berfungsi menjadi Server, diperkenalkan pula Cross Platform
Operating System yang artinya dapat menggabungkan 2 Sistem Operasi
berbeda seperti : Linux dan Windows.
Sistem Operasi yang terdapat dalam PC.
WINDOWS (MICROSOFT WINDOWS)
Mircosoft Windows atau biasa disebut dengan sebutan Windows adalah
SO yang dikembangkan oleh Microsoft Corporation yang menggunakan
interface dengan berbasikan Graphical User Interface(GUI) atau tampilan
antarmuka bergrafis.
Pada awalnya Windows bermula dari Microsoft Disk Operating System
(Ms-Dos) iyalah sebuah Sistem Operasi yang basis teks dan CommandLine interpreter.
Windows Versi pertama, Windows Graphic Environmnet 1.0 adalah
Software yang bekerja atas arsitekstur 16-Bit dan bukan merupakan
Sistem Operasi dan berjalan atas MS-DOS, sehingga untuk
menjalankannya membutuhkan MS-DOS.MS-DOS sendiri sebenarnya
dibuat pada perusahaan komputer Seattle Computer Products dan barulah
setelah itu direkrut oleh Microsoft yang kemudian dibeli lisensinya.

43 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

Setelah berkembang menjadi Windows 1.0 pada versi pertama SO(sistem


operasi) dalam dunia yang berbasiskan Graphical User Interface(GUI)
dan mendukung Multi-Tasking atau yang dapat mengerjakan banyak
pekerjaan secara simultan. Setelah itu Windows 1.0 berkembang menjadi
Windows 2.0, Windows 2.0 ini berbasis GUI dan mendukung penggunaan
VGA (Video GraphicsArray) dan juga mendukung Multi-Tasking.
Windows 2.0 juga support terhadap penggunaan Processor Intel 80286
dimana Processor Intel 80286 merupakan Processor pertama dengan
kemampuan yang memproteksi area memory.
Yang kemudian dilanjutkan dengan generasi Windows 3.0 dimana
Windows 3.0 mempunyai kemampuan yang sama dengan Windows
sebelumnya dan terdapat nilai Plus tambahahan dukungan grafis SVGA
atau XGA dan juga icon yang lebih baik.
Dalam era tersebut, Microsoft juga menyediakan Software Development
kit (SDK), sehingga para developer piranti lunak dapat terus
mengembangkan aplikasi/programnya agar mampu berjalan di Windows
3.0 ini. Windows 3.0 juga memperkenalkan adanya Virtual Device Driver
(VXD) dimana dapat berfungsi untuk meminimalisasi ketergantungan
pada setiap driver pada hardware tertentu.
Windows 3.0 kemudian berevolusi menjadi Windows 3.1 yang sudah
diperkenalkan dengan fitur Multimedia dan True Type Font selain itu juga
memudahkan End-User karena adanya fitur Drag and Drop dan akhirnya
Windows versi 3 ini berkembang menjadi Sistem Operasi yang sudah
mengenal NetWorking (Windows 3.11).
Setelah berkembang cukup lama akhirnya Microsoft memperkenalkan
Sistem Operasi hibrida 16-Bit/32-Bit yang dikenal dengan nama Windows
95. Banyak perubahan dari Windows versi sebelumnya, yaitu : Windows
95 memiliki GUI yang lebih menarik dan atraktif, mendukung Plug and
Play, mendukung penamaan yang panjang, memiliki beberapa fasilitas
seperti : Browser yang terintegrasi dan Windows Explorer untuk
menjelajah Windows. Selain itu juga Windows 95 memiliki fitur untuk
memanajemen daya (APM) dan diperkenalkannya juga Client-Server.

44 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

Generasi penerus dari Windows 95 adalah Windows 98 dimana Windows


98 sudah mendukung VGA berbasis AGP, dan mendukung media
penyimpanan ringkas seperti USB, diperkenalkannya NAT untuk berbagi
koneksi Internet danWindows Driver Model menggantikan Virtual Device
Driver dengan.
Ada juga beberapa fitur tambahan berupa aplikasi Internet Explorer versi
5 dan Microsoft Office . Windows 98 juga sudah memiliki kemampuankemampuan untuk memainkan Game dan menjalankan aplikasi
Multimedia.
Perkembangan selanjutnya adalah Windows ME,nilai tambahl dari
Windows ME selain transisi dukungan grafis dari 16-Bit ke 32-Bit dan
pada era Windows ME sudah banyak pengguna rumahan yang
memakainya. Windows ME pun akhrinya digantikan dengan Windows NT
yang sudah mendukung arsitekstur x86 (8086) , Intel IA64 dan AMD64
(x64) serta mendukung grafis 32-Bit.
Windows NT sebenarnya dibangun dari pengembangannya IBM OS/2
dan Windows NT juga banyak digunakan dalam jaringan komputer.
Windows NT juga memperkenalkan File System NTFS yang lebih baik
dari FAT maupun FAT-32.
Kemudian Windows NT berkembang menjadi Windows 2000 terdapat
banyak fitur tambahan diantaranya yaitu: Active Directory, Image
Preview, Browser Internet Explorer v6, DirectX dan Open GL, Plug and
Play dan Windows Driver Model yang lebih baik performanya.
Setelah generasi Windows NT munculah Windows XP yang menawarkan
banyak perubahan, mempunyai banyak fitur dan performa yang semakin
mengingkat.Bisa dikatakan Windows XP adalah Windows yang paling
laris dan diminati oleh pengguna PC maupun perangkat PC bergerak
(Mobile).
Seiring dengan kebutuhan akan networking maka Microsoft Corporation
mengeluarkan SO yang berkonsentrasi pada jaringan, yaitu : Windows
Server 2003. Bisa dibilang Windows Server 2003 adalah reinkarnasi dari
Windows NT.
45 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

Banyak sekali fitur yang ditawarkan pada Windows Server 2003, salah
satunya adalah diperkenalkannya platform .Net. Diperkenalkan juga fitur
Domain Controller Server, PKI (Public Key Infrastructure) Server,
Domain Name System (DNS), Dynamic Host Configuration Protocol
(DHCP), Windows Internet Name Service (WINS), Microsoft IIS, dan
lainnya.
Microsoft pun melanjutkan perkembangan pada Sistem Operasi dengan
Windows Vista (Longhorn),windows vista ini adalah revolusi dari
Windows XP. Windows Vista itu sendiri lebih mengutamakan
interface(antarmuka) atau penampilan secara grafis interface
dibandingkan dengan performa yang ada, dibuktikan dengan adanya fitur
fitur seperti : AERO dan Sidebar dan sebagainya.
Windows Vista juga menawarkan keamanan yang lebih baik lagi
dibandingkan dengan Windows XP, karena pada Windows Vista
diperkenalkan adanya, Windows Defender, Windows Firewall with
Advanced Security , BitLocker Drive Encryption, ASLR ,Parental
Control, User Account Control (UAC),.
Windows Vista juga mengenalkan IPv6, DirectX versi terbaru, dan
arsitekstur 64-Bit. Perkembangan yang selanjutnya iyalah transisi dari
Windows Server 2003 menjadi Windows Home Server yang ditujukan
sebagai File Server untuk rumahan.
Windows Server juga mengenalkan beberapa teknologi yaitu : Headless
Operation (Server tidak membutuhkan monitor atau keyboard untuk
memanjemen perangkat), Kontrol jarak jauh, Pemantauan kesehatan
komputer, Sharing dan Streaming.
Generasi setelahnya di tandai dengan adanya penggabungan
antara Windows Server denganBitLocker Drive Encryption, ASLR,
yaitu Windows Server 2008.Windows Server danFitur Windows Vista
digabung menjadi satu untuk meningkatkan keamanan dan kenyamanan
End-User.
Selanjutnya Windows Server 2008 berkembang menjadi Windows Server
2008 R2.Versi terakhir Sistem Operasi yang dibuat Windows adalah
46 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

Windows 7, Windows 7 dirilis untuk menggantikan kekurangan pada


Windows XP dan nilai plus Windows Vista.
Boleh dikatakan jikalau Windows 7 adalah fusi dari Windows XP dan
Windows Vista, tidak seperti pada Windows Vista, Windows 7 memiliki
performa yang tentu lebih baik dari Windows Vista.
UNIX
Sistem Operasi yang diciptakan oleh Ken Thompson dan Dennis Ritchie,
dikembangkan olehAT&T Bell Labs adalah UNIX.
UNIX ini didesain sebagai Sistem Operasi yang portabel, Multi-User dan
Multi-Tasking.
Sistem Operasi UNIX lebih menekankan diri pada Workstation dan
Server, diKarenakan faktor pada ketersediaan dan kompatibilitas yang
tinggi menyebabkan UNIX dapat digunakan, disalin dan dimodifikasi
sehingga UNIX pun dikembangkan oleh banyak pihak dan menyebabkan
banyak sekali varian dari UNIX ini.
UNIX itu ditulis dalam bahasa C sehingga UNIX pun mirip dengan DOS
yaitu Line/Text Command Based selain itu UNIX pun merupakan Sistem
Operasi yang secure dibanding dengan Sistem Operasi lain, karena pada
setiap file, direktori, user dan group memiliki set izin tersendiri untuk
diakses. Karena adanya dukungan Proyek GNU, maka selanjutnya UNIX
berkembang menjadi LINUX (Salah satu varian UNIX).
LINUX
Pada awalnya Linux dikembangkan oleh Linus Torvalds yang mulanya
sekedar membuat emulasi terminal yang dibutuhkan untuk mengakses
server UNIX di Universitasnya.
Linux adalah kloningan dari MINIX (Salah satu varian UNIX), peralatan
sistem dan pustakanya umumnya berasal dari Sistem Operasi GNU. Linux
memiliki banyak desain yang berasal dari desain dasar UNIX, Linux
menggunakan Kernel Monilitik yaitu Kernel Linux untuk menangani
jaringan , kontrol proses, periferal, dan pengaksesan sistem berkas.

47 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

Sama seperti UNIX, Linux juga dapat dikendalikan oleh satu atau lebih
intergace baris perintah (Command Line Interface/CLI) berbasis teks,
antarmuka pengguna grafis (Graphical User Interface/GUI) yang
merupakan konfigurasi bawaan pada versi dektop.
Pada komputer Desktop, Xfce, KDE dan GNOME merupakan antarmuka
pengguna yang sangat populer dibandingkan varian antarmuka pengguna
lainnya.Sebuah sistem Linux menyediakan antarmuka baris perintah lewat
sebuah Shell (Konsole).
Perbedaan utama pada Linux dan Sistem Operasi Populer lainnya iyalah
terletaknya pada Kernel Linux dan komponen-komponennya yang bebas
dan terbuka.Sama seperti pada UNIX, Linux berkonsentrasi pada
Workstation dan Server, dan banyak Workstation dan Server yang
mengandalkan Linux karena Linux sangatlah stabil difungsikan untuk
jangka waktu lama dan Linux juga kebal terhadap Malware.
Ada beberapa macam Distro Linux, seperti : Ubuntu, Lycoris, Xandros,
Linux-Mandrake, Linare, Lindows, Red Hat Linux, Debian, Knoppix,
Fedora, Suse, Slackware.
IBM OS/2
International Bussiness Machine Corporation dan Microsoft Corporation
membuat Sistem Operasi IBM OS/2 ini secara bersama-sama, untuk
difungsikan pada komputer IBM sebagai pengganti Sistem Operasi DOS.
Operating System/2 merupakan singkatan dari kata OS/, Sistem Operasi
ini didesain agar dapat difungsukan sesuai kemampuan penuh dari
Mikroprosessor Intel 80286 , termasuk diantaranya yaitu Modus
terproteksi (Protected Mode), yang mampu mendukung Memori Virtual
dan menjalankan tugas secara Simultan.
www.Gurupendidikan.com
MAC OS (MACINTOSH OPERATING SYSTEM)
Macintosh Operating System(MAC OS) merupakan Sistem Operasi yang
dibuat oleh Apple Computer khusus untuk komputer Macintosh yang
tidak kompatibel dengan komputer berbasis IBM.
48 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

MAC OS adalah Sistem Operasi pertama yang menggunakan interface


pengguna grafis (Graphical User Interface/GUI). ada 2 jenis Macintosh
yaitu :
1.MAC OS Klasik
Tidak memiliki sembarang Command Line (Baris perintah), sepenuhnya
menggunakan Cooperative , dan Multitasking menggunakan User
Interface (UI)
2.MAC OS X
Pada Sistem Operasi MAC OS X dapat memasukkan unsur-unsur BSD
Unix, One Step, dan juga MAC OS X Pre-Emptive Multitasking
danmemiliki memori ala-Unix.
Kelebihan pada MAC OS iyalah :
1.MultiTasking
2.Aman dari Malware.
3. Stabil, karena pada dasarnya menggunakan UNIX.
4.Tampilan (UI) sangat bagus.
FREE BSD
Sistem Operasi bertipe UNIX bebas yang diturunkan dari UNIX AT&T
adalah FreeBSD .
FreeBSD running di atas sistem intel x86. FreeBSD itu pertama muncul
pada tahun 1993 oleh David Greenman.Tujuan FreeBSD iyalah
menyediakan software(perangkat linak) yang dapat digunakan untuk
berbagai kepentingan.FreeBSD itu sendiri berkembang dari 386BSD
pada sebuah proyek pengembangan BSD OS yang berjalan di atas Chip
Intel.
-SOLARIS
Solaris merupakan sebuah Sistem Operasi yang juga berdasarkan UNIX
system yang diperkenankan oleh Sun Microsystems pada tahun 1992
sebagai pendukung SunOS.
49 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

Yang terkenal atau keunggulan pada Solaris adalahkarena kestabilannya,


khususnya pada sistem SPARC (Scalable Processor Architecture), Solaris
disertifikasi dalam Spesifikasi UNIX walaupun pada awal
pengembangannya berdasarkan kepemilikan pribadi,
kode dasarnya Solaris kebanyakan sekarang ini merupakan Software
OpenSource yang biasa dikenal dengan OpenSolaris.
OpenSolaris itu sendiri iyalah OpenSource versi Sistem Operasi Sun
Solaris, tetapi Sun Solaris terdiri dari lebih beberapa kode yang tidak
hanya inti dari Sistem Operasi misalnya : Source untuk Installer,
Software, Desktop.
Open Solaris memiliki banyak fitur yang menjadikan OpenSolaris bisa
dapat digunakan untuk skala penggunaan yang sangat besar dari
penggunaan untuk desktop pC maupun Mobile PC.
Konsep Open Solaris yaitu :
1.Free Redistribution : Didistribusi secara bebas.
2.Source Code : Sumber (Source) harus tersedia untuk semua distribusi.
3.Derived Works : Setiap orang bisa mengubah kode dan
mendisrtibusikan kembali.
4.No Discrimination : Kode harus disediakan untuk seseorang untuk
dikembagkan.
Kelebihan OpenSolaris dibandingkan SO(sistem operasi)lain adalah;
1.ZFS : System Restore.
2.DTrace L : mengamati dimana letak yang aplikasi banyak menggunakan
waktunya dan berapa lama.
3.Manajemen Kegagalan : Mencegah,memperbaiki error yang ada dan
mendiagnosa
4.Zona : Mengimplementasikan sebuah abstraksi SO(Sistem Operasi)
yang memungkinkan beberapa aplikasi dapat berjalan secara terisolasi
satu dengan lainnya di hardware(perangkat keras) fisik yang sama.
5.Multimedia.
Chrome OS
50 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

(SO)Sistem Operasi dari Google yang sangat ringan dan berbasiskan


Linux serta standard web untuk personal computer PC iyalah Chrome
OS .
Google Chrome itu sendiri bekerja dengan metode switching (MultiTasking), Windowing .
Google Chrome OS menggunakan standard web HTML 5, yang
merupakan pengembangan software di browser yang berbasis Sistem
Operasi.
Terdapat banyak sekali Macam macam Sistem Operasi Komputer yang
terus berkembang, Tidak ada Sistem Operasi yang sempurna karena
masing-masing Sistem Operasi memiliki daya dan ciri khas tersendiri.

51 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

Struktur dan Fungsi CPU


CPU
Central Processing Unit
Merupakan komponen terpenting dari sistem komputer Komponen
pengolah data berdasarkan instruksi yang diberikan kepadanya Dalam
mewujudkan fungsi dan tugasnya, CPU tersusun atas beberapa komponen
Komponen Utama CPU
Arithmetic and Logic Unit (ALU)
Control Unit
Registers
CPU Interconnections
Arithmetic and Logic Unit (ALU)
Bertugas membentuk fungsi-fungsi pengolahan data komputer
ALU sering disebut mesin bahasa (machine language) karena bagian ini
mengerjakan instruksi-instruksi bahasa mesin yang diberikan padanya.
Seperti istilahnya.
ALU terdiri dari dua bagian, yaitu unit aritmetika dan unit logika boolean,
yang masing-masing memiliki spesifikasi tugas tersendiri.

Control Unit
Bertugas mengontrol operasi CPU dan secara keseluruhan mengontrol
komputer sehingga terjadi sinkronisasi kerja antar komponen dalam
menjalankan fungsi-fungsi operasinya.
Termasuk dalam tanggung jawab unit kontrol adalah mengambil instruksiinstruksi dari memori utama dan menentukan jenis instruksi tersebut.
52 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

Registers
Media penyimpanan internal CPU yang digunakan saat proses pengolahan
data.
Memori ini bersifat sementara, biasanya digunakan untuk menyimpan
data saat diolah ataupun data untuk pengolahan selanjutnya.
CPU Interconnections
Sistem koneksi dan bus yang menghubungkan komponen internal dan
bus-bus eksternal CPU.
Komponen internal CPU yaitu ALU, unit kontrol dan register-register.
Komponen eksternal CPU : sistem lainnya, seperti memori utama, piranti
masukan/keluaran.

53 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

Fungsi CPU
Menjalankan program-program yang disimpan dalam memori utama
dengan cara mengambil instruksi-instruksi, menguji instruksi tersebut dan
mengeksekusinya satu persatu sesuai alur perintah.
Pandangan paling sederhana proses eksekusi program adalah dengan
mengambil pengolahan instruksi yang terdiri dari dua langkah, yaitu :
operasi pembacaan instruksi (fetch) dan operasi pelaksanaan instruksi
(execute).

Siklus Fetch - Eksekusi


Pada setiap siklus instruksi, CPU awalnya akan membaca instruksi dari
memori.
Terdapat registers dalam CPU yang berfungsi mengawasi dan menghitung
instruksi selanjutnya, yang disebut Program Counter (PC).
PC akan menambah satu hitungannya setiap kali CPU membaca instruksi.
Instruksi-instruksi yang dibaca akan dibuat dalam register instruksi (IR).
Instruksi-instruksi ii dalam bentuk kode-kode binner yang dapat
direpresentasikan oleh CPU kemudian dilakukan aksi yang diperlukan.
Aksi CPU
CPU - Memori, perpindahan data dari CPU ke memori dan sebaliknya.
CPU - I/O, perpindahan data dari CPU ke modul I/O dan sebaliknya.
54 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

Pengolahan Data, CPU membentuk sejumlah operasi aritmatika dan


logika terhadap data.
Kontrol, merupakan instruksi untuk pengontrolan fungsi atau kerja.
Misalnya instruksi pengubahan urusan eksekusi.
Siklus Eksekusi
Instruction Address Calculation (IAC), yaitu mengkalkulasi atau
menentukan alamat instruksi berikutnya yang akan dieksekusi. Biasanya
melibatkan penambahan bilangan tetap ke alamat instruksi sebelumnya.
Misalnya, bila panjang setiap instruksi 16 bit padahal memori memiliki
panjang 8 bit, maka tambahkan 2 ke alamat sebelumnya.
Instruction Fetch (IF), yaitu membaca atau mengambil instruksi dari
lokasi memorinya ke CPU.
Instruction Operation Decoding (IOD), yaitu menganalisa instruksi untuk
menentukan jenis operasi yang akan dibentuk dan operand yang akan
digunakan.
Operand Address Calculation (OAC), yaitu menentukan alamat operand,
hal ini dilakukan apabila melibatkan referensi operand pada memori.
Operand Fetch (OF), yaitu mengambil operand dari memori atau dari
modul I/O.
Data Operation (DO), yaitu membentuk operasi yang diperintahkan dalam
instruksi.
Operand Store (OS), yaitu menyimpan hasil eksekusi ke dalam memori.

Fungsi Interupsi
Mekanisme penghentian atau pengalihan pengolahan instruksi dalam CPU
kepada routine interupsi.
55 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

Hampir semua modul (memori dan I/O) memiliki mekanisme yang dapat
menginterupsi kerja CPU.
Tujuan Interupsi
Secara umum untuk manajemen pengeksekusian routine instruksi agar
efektif dan efisien antar CPU dan modul-modul I/O maupun memori.
Setiap komponen komputer dapat menjalankan tugasnya secara
bersamaan, tetapi kendali terletak pada CPU di samping itu kecepatan
eksekusi masing-masing modul berbeda.
Dapat sebagai sinkronisasi kerja antar modul.

Kelas Sinyal Interupsi


Program, yaitu interupsi yang dibangkitkan dengan beberapa kondisi yang
terjadi pada hasil eksekusi program. Contohnya : aritmatika overflow,
pembagian nol, operasi ilegal.
Timer, adalah interupsi yang dibangkitkan dengan pewaktuan dalam
prosesor. Sinyal ini memungkinkan sistem operasi menjalankan fungsi
tertentu secara reguler.
I/O, sinyal interupsi yang dibangkitkan oleh modul I/O sehubungan
pemberitahuan kondisi error dan penyelesaian suatu operasi.
Hardware Failure, adalah interupsi yang dibangkitkan oleh kegagalan
daya atau kesalahan partas memori.
Proses Interupsi
Dengan adanya mekanisme interupsi, prosesor dapat digunakan untuk
mengeksekusi instruksi-instruksi lain.
Saat suatu modul telah selesai menjalankan tugasnya dan siap menerima
tugas berikutnya, maka modul ini akan mengirimkan permintaan interupsi
ke prosesor.
Kemudian prosesor akan menghentikan eksekusi yang sedang
dijalankannya untuk meng-handle routine interupsi.
56 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

Setelah program interupsi selesai maka prosesor akan melanjutkan


eksekusi programnya kembali.
Saat sinyal interupsi diterima prosesor ada dua kemungkina tindakan,
yaitu interupsi diterima/ditangguhkan dan interupsi ditolak.
Interupsi ditangguhkan :
Apa yang dilakukan prosesor ?
Prosesor menangguhkan eksekusi program yang dijalankan dan
menyimpan konteksnya. Tindakan ini adalah menyimpan alamat instruksi
berikutnya yang akan dieksekusi dan data lain yang relevan.
Prosesor menyetel Program Counter (PC) ke alamat awal
routine interrupt handler.

Sistem Operasi Kompleks


Interupsi ganda (multiple interrupt).
Misalnya suatu komputer akan menerima permintaan interupsi saat proses
pencetakan dengan printer selesai, disamping itu dimungkinkan dari
saluran komunikasi akan mengirimkan permintaan interupsi setiap kali
data tiba.
Dapat diambil dua buah pendekatan untuk menangani interupsi ganda ini.
Pendekatan Interupsi Ganda
Ada 2 pendekatan :
57 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

Pendekatan ini disebut pengolahan interupsi berurutan/sekuensial.


Menolak atau tidak mengizinkan interupsi lain saat suatu interupsi
ditangani prosesor.
Setelah prosesor selesai menangani suatu interupsi maka interupsi lain
baru ditangani.
Pengolahan interupsi bersarang yaitu mendefinisikan prioritas bagi
interupsi.
Interrupt handler mengizinkan interupsi berprioritas lebih tinggi ditangani
terlebih dahulu.

Contoh Kasus
Suatu sistem memiliki tiga perangkat I/O : printer, disk dan saluran
komunikasi, masing-masing prioritasnya 2, 4, dan 5. Bagaimana proses
interupsinya ?

58 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

Pada awal sistem melakukan pencetakan dengan printer, saat itu terdapat
pengiriman data pada saluran komunikasi sehingga modul komunikasi
meminta interupsi.
Proses selanjutnya adalah pengalihan eksekusi interupsi modul
komunikasi, sedangkan interupsi printer ditangguhkan.
Saat pengeksekusian modul komunikasi terjadi interupsi disk, namun
karena prioritasnya lebih rendah maka interupsi disk ditangguhkan.
Setelah interupsi modul komunikasi selesai akan dilanjutkan interupsi
yang memiliki prioritas lebih tinggi, yaitu disk.
Bila interupsi disk selesai dilanjutkan eksekusi interupsi printer.
Selanjutnya dilanjutkan eksekusi program utama.

59 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

Operasi Unit Kontrol


Unit kontrol yang mampu mengatur jalannya program.
Komponen ini sudah pasti terdapat dalam semua CPU. CPU bertugas
mengontrol komputer sehingga terjadi sinkronisasi kerja antarkomponen
dalam menjalankan fungsi-fungsi operasinya. termasuk dalam tanggung
jawab unit kontrol adalah mengambil intruksi-intruksi dari memori utama
dan menentukan jenis instruksi tersebut. Bila ada instruksi untuk
perhitungan aritmatika atau perbandingan logika, maka unit kendali akan
mengirim instruksi tersebut ke ALU. Hasil dari pengolahan data dibawa
oleh unit kendali ke memori utama lagi untuk disimpan, dan pada saatnya
akan disajikan ke alat output. Dengan demikian tugas dari unit kendali ini
adalah:
Mengatur dan mengendalikan alat-alat masukan (input) dan keluaran
(output).
Mengambil instruksi-instruksi dari memori utama.
Mengambil data dari memori utama (jika diperlukan) untuk diproses.
Mengirim instruksi ke ALU bila ada perhitungan aritmatika atau
perbandingan logika serta mengawasi kerja dari ALU.
Menyimpan hasil proses ke memori utama.
Unit kontrol atau yang sering dikenal dengan control unit, akan
menyimpan perintah sekarang yang dilakukan oleh komputer,
memerintahkan ALU untuk melaksanaan dan mendapat kembali informasi
(dari memori) yang diperlukan untuk melaksanakan perintah itu, dan
memindahkan kembali hasil ke lokasi memori yang sesuai. Sekali yang
terjadi, unit kontrol pergi ke perintah berikutnya (biasanya ditempatkan di
slot berikutnya, kecuali kalau perintah itu adalah perintah lompatan yang
memberitahukan kepada komputer bahwa perintah berikutnya
ditempatkan di lokasi lain).
Bagian CPU yang menyebabkan fungsi komputer tercapai ini
mengeluarkan sinyal-sinyal kontrol yang bersifat internal bagi CPU untuk
60 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

memindahkan data antar Register agar ALU melakukan fungsinya untuk


mengatur operasi-operasi internal lainnya. Register, yang merupakan
bagian dari unit kontrol, adalah tempat penyimpan data sementara dalam
CPU selama proses eksekusi. Apabila terjadi proses eksekusi, data dalam
register dikirim ke ALU untuk diproses, hasil eksekusi nantinya
diletakkan ke register kembali. Unit kontrol akan menghasilkan sinyal
yang akan mengontrol operasi ALU dan pemindahan data ke dan dari
ALU. Unit kontrol juga mengeluarkan sinyal kontrol eksternal bagi
pertukaran data memori dan modul-modul I/O.
Macam-macam Unit Kontrol
1. Unit Kontrol Single-Cycle
Proses di unit kontrol ini hanya terjadi dalam satu clock cycle
artinya setiap instruksi (fetch, decode, execute) ada pada satu cycle; maka
dari itu tidak memerlukan state. Dengan demikian fungsi boolean masingmasing control line hanya merupakan fungsi dari opcode saja. Clock cycle
harus mempunyai panjang yang sama untuk setiap jenis instruksi.
Ada dua bagian pada unit kontrol ini, yaitu proses men-decode opcode
untuk mengelompokkannya menjadi 4 macam instruksi (yaitu di gerbang
AND), dan pemberian sinyal kontrol berdasarkan jenis instruksinya (yaitu
gerbang OR). Keempat jenis instruksi adalah R-format (berhubungan
dengan register), lw (membaca memori), sw (menulis ke memori),
dan beq (branching).
Sinyal kontrol yang dihasilkan bergantung pada jenis instruksinya.
Misalnya jika melibatkan memori R-format atau lw maka akan sinyal
Regwrite akan aktif. Hal lain jika melibatkan memori lw atau sw
maka akan diberi sinyal kontrol ke ALU, yaitu ALUSrc.
Desain single-cycle ini lebih dapat bekerja dengan baik dan benar tetapi
cycle ini tidak efisien.
2. Unit Kontrol Multi-Cycle
Gambar disamping menunjukkan diagram blok dari unit kontrol
multi-cycle. Berbeda dengan unit kontrol yang single-cycle, unit kontrol
yang multi-cycle lebih memiliki banyak fungsi.
61 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

Dengan memperhatikan state dan opcode, fungsi boolean dari masingmasing control line output dapat ditentukan. Masing-masingnya akan
menjadi fungsi dari 10 buah input logic. Jadi akan terdapat banyak fungsi
boolean, dan masing-masingnya tidak sederhana.

62 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

Overview proses paralel


Pemrosesan paralel (parallel processing) adalah penggunakan lebih dari
satu CPU untuk menjalankan sebuah program secara simultan.
Idealnya, parallel processing membuat program berjalan lebih cepat
karena semakin banyak CPU yang digunakan.
Komputasi paralel adalah salah satu teknik melakukan komputasi secara
bersamaan dengan memanfaatkan beberapa komputer independen secara
bersamaan. Ini umumnya diperlukan saat kapasitas yang diperlukan
sangat besar, baik karena harus mengolah data dalam jumlah besar (di
industri keuangan, bioinformatika, dll) ataupun karena tuntutan proses
komputasi yang banyak. Kasus kedua umum ditemui di kalkulasi numerik
untuk menyelesaikan persamaan matematis di bidang fisika (fisika
komputasi), kimia (kimia komputasi) dll.
TUJUAN PARALLEL PROCESSING
Tujuan utama dari pemrosesan paralel adalah untuk meningkatkan
performa komputasi. Semakin banyak hal yang bisa dilakukan secara
bersamaan (dalam waktu yang sama), semakin banyak pekerjaan yang
bisa diselesaikan.

PARALLEL PROCESSING
Komputasi paralel
Komputasi paralel adalah salah satu teknik melakukan komputasi secara
bersamaan dengan memanfaatkan beberapa komputer secara bersamaan.
Biasanya diperlukan saat kapasitas yang diperlukan sangat besar, baik
karena harus mengolah data dalam jumlah besar ataupun karena tuntutan
proses komputasi yang banyak.

Untuk melakukan aneka jenis komputasi paralel ini diperlukan


infrastruktur mesin paralel yang terdiri dari banyak komputer yang
63 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

dihubungkan dengan jaringan dan mampu bekerja secara paralel untuk


menyelesaikan satu masalah. Untuk itu diperlukan aneka perangkat lunak
pendukung yang biasa disebut sebagai middleware yang berperan untuk
mengatur distribusi pekerjaan antar node dalam satu mesin paralel.
Selanjutnya pemakai harus membuat pemrograman paralel untuk
merealisasikan komputasi.
Pemrograman Paralel sendiri adalah teknik pemrograman komputer yang
memungkinkan eksekusi perintah/operasi secara bersamaan. Bila
komputer yang digunakan secara bersamaan tersebut dilakukan oleh
komputer-komputer terpisah yang terhubung dalam satu jaringan
komputer, biasanya disebut sistem terdistribusi. Bahasa pemrograman
yang populer digunakan dalam pemrograman paralel adalah MPI
(Message Passing Interface) dan PVM (Parallel Virtual Machine).

Yang perlu diingat adalah komputasi paralel berbeda dengan multitasking.


Pengertian multitasking adalah komputer dengan processor tunggal
mengeksekusi beberapa tugas secara bersamaan. Walaupun beberapa
orang yang bergelut di bidang sistem operasi beranggapan bahwa
komputer tunggal tidak bisa melakukan beberapa pekerjaan sekaligus,
melainkan proses penjadwalan yang berlakukan pada sistem operasi
membuat komputer seperti mengerjakan tugas secara bersamaan.
Sedangkan komputasi paralel sudah dijelaskan sebelumnya, bahwa
komputasi paralel menggunakan beberapa processor atau komputer.
Selain itu komputasi paralel tidak menggunakan arsitektur Von Neumann.

Untuk lebih memperjelas lebih dalam mengenai perbedaan komputasi


tunggal (menggunakan 1 processor) dengan komputasi paralel
(menggunakan beberapa processor), maka kita harus mengetahui terlebih
dahulu pengertian mengenai model dari komputasi. Ada 4 model
komputasi yang digunakan, yaitu:

64 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

SIMD
SIMD
MISD
MIMD

SISD
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.

SIMD
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).

65 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

MISD
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.

MIMD
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.

Singkatnya untuk perbedaan antara komputasi tunggal dengan komputasi


paralel, bisa digambarkan pada gambar di bawah ini:

66 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

Penyelesaian Sebuah Masalah pada Komputasi Tunggal

Penyelesaian Sebuah Masalah pada Komputasi Paralel

Dari perbedaan kedua gambar di atas, kita dapat menyimpulkan bahwa


kinerja komputasi paralel lebih efektif dan dapat menghemat waktu untuk
pemrosesan data yang banyak daripada komputasi tunggal.
Dari penjelasan-penjelasan di atas, kita bisa mendapatkan jawaban
mengapa dan kapan kita perlu menggunakan komputasi paralel.
Jawabannya adalah karena komputasi paralel jauh lebih menghemat
waktu dan sangat efektif ketika kita harus mengolah data dalam jumlah
yang besar. Namun keefektifan akan hilang ketika kita hanya mengolah
data dalam jumlah yang kecil, karena data dengan jumlah kecil atau
sedikit lebih efektif jika kita menggunakan komputasi tunggal.
Komputasi paralel membutuhkan :
algoritma
bahasa pemrograman
compiler

67 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

Pemrograman paralel adalah teknik pemrograman komputer yang


memungkinkan eksekusi perintah/operasi secara bersamaan baik dalam
komputer dengan satu (prosesor tunggal) ataupun banyak (prosesor ganda
dengan mesin paralel) CPU.
Tujuan utama dari pemrograman paralel adalah untuk meningkatkan
performa komputasi.

* Message Passing Interface (MPI)


MPI adalah sebuah standard pemrograman yang memungkinkan
pemrogram
untuk membuat sebuah aplikasi yang dapat dijalankan secara paralel.
MPI menyediakan fungsi-fungsi untuk menukarkan
antar pesan. Kegunaan MPI yang lain adalah
1. menulis kode paralel secara portable
2. mendapatkan performa yang tinggi dalam pemrograman paralel, dan
3. menghadapi permasalahan yang melibatkan hubungan data irregular
atau dinamis yang tidak
begitu cocok dengan model data paralel.
* Message Passing Interface (MPI)
MPI adalah sebuah standard pemrograman yang memungkinkan
pemrogram
untuk membuat sebuah aplikasi yang dapat dijalankan secara paralel.
MPI menyediakan fungsi-fungsi untuk menukarkan
antar pesan. Kegunaan MPI yang lain adalah
1. menulis kode paralel secara portable
2. mendapatkan performa yang tinggi dalam pemrograman paralel, dan
68 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

3. menghadapi permasalahan yang melibatkan hubungan data irregular


atau dinamis yang tidak
begitu cocok dengan model data paralel.

Hubungan antara Komputasi Modern dengan Paralel Processing

Hubungan antara komputasi modern dan parallel processing sangat


berkaitan, karena penggunaan komputer saat ini atau komputasi dianggap
lebih cepat dibandingkan dengan penyelesaian masalah secara manual.
Dengan begitu peningkatan kinerja atau proses komputasi semakin
diterapkan, dan salah satu caranya adalah dengan meningkatkan
kecepatan perangkat keras. Dimana komponen utama dalam perangkat
keras komputer adalah processor. Sedangkan parallel processing adalah
penggunaan beberapa processor (multiprocessor atau arsitektur komputer
dengan banyak processor) agar kinerja computer semakin cepat.

Kinerja komputasi dengan menggunakan paralel processing itu


menggunakan dan memanfaatkan beberapa komputer atau CPU untuk
menemukan suatu pemecahan masalah dari masalah yang ada. Sehingga
dapat diselesaikan dengan cepat daripada menggunakan satu komputer
saja. Komputasi dengan paralel processing akan menggabungkan
beberapa CPU, dan membagi-bagi tugas untuk masing-masing CPU
tersebut. Jadi, satu masalah terbagi-bagi penyelesaiannya. Tetapi ini untuk
masalah yang besar saja, komputasi yang masalah kecil, lebih murah
menggunakan satu CPU saja.

69 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

Konsep Paralel
Banyak perkembangan-perkembangan baru dalam arsitektur komputer
yang didasarkan pada konsep pemrosesan paralel. Pemrosesan paralel
dalam sebuah komputer dapat didefinisikan sebagai pelaksanaan
instruksi-instruksi secara bersamaan waktunya. Hal ini dapat
menyebabkan pelaksanaan kejadian-kejadian (1) dalam interval waktu
yang sama, (2) dalam waktu yang bersamaan atau (3) dalam rentang
waktu yang saling tumpang tindih.
Sekalipun didukung oleh teknologi prosesor yang berkembang sangat
pesat, komputer sekuensial tetap akan mengalami keterbatasan dalam hal
kecepatan pemrosesannya. Hal ini menyebabkan lahirnya konsep
keparalelan (parallelism) untuk menangani masalah dan aplikasi yang
membutuhkan kecepatan pemrosesan yang sangat tinggi, seperti misalnya
prakiraan cuaca, simulasi pada reaksi kimia, perhitungan aerodinamika
dan lain-lain.
Konsep keparalelan itu sendiri dapat ditinjau dari aspek design mesin
paralel, perkembangan bahasa pemrograman paralel atau dari aspek
pembangunan dan analisis algoritma paralel. Algoritma paralel itu sendiri
lebih banyak difokuskan kepada algoritma untuk menyelesaikan masalah
numerik, karena masalah numerik merupakan salah satu masalah yang
memerlukan kecepatan komputasi yang sangat tinggi.

70 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

Arsitektur Paralel
Paralelisme dalam suatu komputer dapat diaplikasikan pada beberapa
tingkatan, seperti berikut:
1. Tingkat pekerjaan: antara pekerjaan-pekerjaan atau fase-fase suatu
pekerjaan. Hal ini menjadi prinsip dasar dari multiprogramming.
2. Tingkat prosedur: antara prosedur-prosedur dan di dalam loop. Hal ini
harus tercakup sebagai hal yang penting bagi suatu bahasa.
3. Tingkat instruksi: antara fase-fase sebuah siklus instruksi, yaitu fetch,
decode dan eksekusi suatu instruksi.
4. Tingkat aritmatika dan bit: antara bit-bit dalam sirkuit aritmatika. Salah
satu contohnya adalah adder paralel.
Telah banyak usaha untuk mengklasifikasikan perancangan arsitektur
komputer paralel. Namun tidak ada satupun yang mampu memisahkan
semua jenis perancangan menjadi kelompok-kelompok yang berbeda.
Skema klasifikasi yang paling umum digunakan adalah taksonomi Flynn.
Kita akan membahas pula dua skema lainnya yaitu: Shore dan Feng.
Klasifikasi Flynn
Michael J. Flynn memperkenalkan suatu skema untuk mengklasifikasikan
arsitektur suatu komputer dengan melihat bagaimana mesinnya
menghubungkan instruksi-instruksinya ke data yang sedang diproses.
Berikut klasifikasinya:
1. SISD: single instruction stream, single data stream. Merupakan suatu
komputer serial konvesional dimana instruksi-instruksi dijalankan satu per
satu dan sebuah instruksi tunggal berhubungan dengan paling banyak satu
operasi data.
2. SIMD: single instruction stream, multiple data stream. Dalam sebuah
komputer SIMD, suatu instruksi tunggal mengawali sejumlah besar
operasi.
3. MISD: multiple instruction stream, single data stream. Kelas MISD
melaksanakan beberapa operasi instruksi secara bersamaan pada sebuah
item data tunggal.
4. MIMD: multiple instruction stream, multiple data stream. Sebuah
komputer MIMD dicirikan oleh eksekusi lebih dari satu instruksi pada
saat yang bersamaan, dimana setiap instruksi beroperasi pada beberapa
aliran data.
71 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

Klasifikasi Shore
J.E. Shore membuat klasifikasi arsitektur komputer yang didasarkan pada
organisasi bagian-bagian penyusun suatu komputer dan membedakannya
menjadi enam jenis mesin.
1. Mesin I. Pada komputer ini, satu instruksi dikerjakan pada suatu waktu
dan masing-masing beroperasi pada satu word dalam suatu waktu.
2. Mesin II. Komputer ini juga menjalankan satu instruksi pada suatu
waktu, namun ia beroperasi pada sebuah irisan dari suatu bit dalam suatu
waktu, bukannya semua bit dalam suatu word data.
3. Mesin III. Sebuah komputer dalam kelas ini memiliki dua unit
pengolahan yang dapat beroperasi pada data, satu word dalarn suatu
waktu atau suatu irisan bit dalam suatu waktu.
4. Mesin IV. Komputer jenis ini dicirikan oleh sejumlah elemen (unit
pengolahan dan unit memori), semua di bawah kendali sebuah unit
kendali logika (CLU) tunggal.
5. Mesin V. Mesin V dihasilkan dengan mengubah Mesin IV sedemikian
sehingga elemen-elemen pengolahan dapat berkomunikasi dengn
tetangga terdekat mereka.
6. Mesin VI. Komputer ini, disebut sebagai array logika-dalam-memori,
merupakan sebuah mesin dengan logika prosesor yang tersebar dalam
memori.
Klasifikasi Feng
Tse-yum Feng (1972) menyarankan pengklasifikasian arsitektur komputer
atas tingkatan paralelisme mereka. Tingkatan paralelisme (degree of
parallelism) diwakili oleh pasangan (n, m) dimana n merupakan panjang
word dan m adalah panjang irisan bit. Pasangan ini diklasifikasikan
menjadi empat kelompok sebagai berikut:
1. Jika n = 1 dan m = I maka tidak terjadi paralelisme. Word dan bit
diproses satu per satuan waktu. Hal ini disebut sebagai word serial/bit
serial(WSBS).
2. Jika n> 1 dan m = 1 maka paralelisme itu disebut sebagai word
paralel/bit serial (WPBS). Dalam hal ini, semua n irisan bit diproses satu
per satuan waktu.
3. Paralelisme word serial/bit paralel (WSBP) terjadi jika n = 1 dan m> 1.
72 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

Dengan demikian sejumlah n word diproses satu per satuan waktu tetapi
sejumlah m bit dan masing-masing word diproses secara paralel.
4. Kategori terakhir disebut sebagai word paralel/bit paralel (WPBP) dan
merupakan suatu paralelisme dimana n > 1 dan m > 1. Dalam hal ini,
sejumlah nm bit diproses secara bersamaan.
Komputer sekuensial - berdasarkan klasifikasi Flynn adalah kelompok
komputer SISD - hanya mempunyai satu unit pengendali untuk
menentukan instruksi yang akan dieksekusi. Pada setiap satuan waktu
hanya satu instruksi yang dapat dieksekusi, dimana kecepatan akses ke
memori dan kecepatan piranti masukan dan keluaran dapat memperlambat
proses komputasi. Beberapa metoda dibangun untuk menghindari masalah
tersebut, seperti penggunaan cache memory. Namun komputer sekuensial
ini tetap mengalami keterbatasan jika menangani masalah yang
memerlukan kecepatan tinggi. Hal-hal tersebut di atas pada akhirnya
melatarbelakangi lahirnya sistem komputer paralel.
Berdasarkan klasifikasi Flynn, komputer paralel termasuk kelompok
SIMD atau MIMD. Komputer paralel mempunyai lebih dari satu unit
pemroses dalam sebuah komputer yang sama. Hal yang membuat suatu
komputer dengan banyak prosesor disebut sebagai komputer paralel
adalah bahwa seluruh prosesor tersebut dapat beroperasi secara simultan.
Jika tiap-tiap prosesor dapat mengerjakan satu juta operasi tiap detik,
maka sepuluh prosesor dapat mengerjakan sepuluh juta operasi tiap detik,
seratus prosesor akan dapat mengerjakan seratus juta operasi tiap
detiknya[Les93].
Pada dasarnya aktivitas sebuah prosesor pada komputer paralel adalah
sama dengan aktivitas sebuah prosesor pada komputer sekuensial. Tiap
prosesor membaca (read) data dari memori, memprosesnya dan
menuliskannya (write) kembali ke memori. Aktivitas komputasi ini
dikerjakan oleh seluruh prosesor secara paralel.
PVM (Parallel Virtual Machine)
PVM adalah perangkat lunak yang membuat sekumpulan komputer
menjadi tampak seperti sebuah sistem komputer virtual yang besar.
Sekumpulan komputer yang akan terlibat dalam proses penyelesaian
masalah harus didefinisikan trelebih dahulu, agar dapat menjalankan
73 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

fungsinya. Komputer-komputer yang terlibat dalam komputasi bisa


homogen, dengan platform yang sama, maupun heterogen, dengan
platform yang berbeda, asal di antara mereka bisa saling berkomunikasi.
PVM dapat menangani semua pengiriman proses, konversi data, dan
penjadwalan task secara message passing untuk sistem yang tidak
kompatibel sekalipun.
Sistem PVM terdiri dari dua bagian. Bagian pertama adalah daemon yang
diberi nama pvmd. Pvmd diaktifkan di setiap komputer yang akan
membentuk mesin virtual. Bagian kedua adalah pustaka rutin antarmuka
PVM yang berisi koleksi perintah-perintah primitif untuk mengoperasikan
proses-proses pustaka tersebut. Pustaka rutin ini digunakan dalam
program aplikasi paralel yang ditulis dengan bahasa pemrograman C, C+
+, atau FORTRAN 77. Aplikasi dalam bahasa pemrograman C dan C++
dihubungkan melalui pustaka libpvm3.lib, sedangkan aplikasi dalam
bahasa pemrograman FORTRAN 77 dapat mengambil rutin-rutin dalam
libfpvm3.lib. Kedua pustaka tersebut telah tersedia pada saat instalasi.
PVM memberi fasilitas untuk membuat sejumlah proses yang tidak
tergantung dari jumlah prosesor. Setiap proses diidentifikasi
menggunakan kode (task ID) dan dipetakan ke prosesor secara otomatis,
atau dapat juga diatur oleh programmer. Program PVM umumnya diatur
dengan model master-slave, yaitu satu proses yang dieksekusi pertama
kali menjadi master dan mengaktifkan semua client dengan memanggil
pvm_spawn. Rutin tersebut otomatis akan menjalankan semua proses
dalam sistem PVM. Cara lain untuk menjalankan proses adalah dengan
memanggil rutin pvm_mytid yang mengembalikan kode task ID dari
proses tersebut. Sebelum keluar dari sistem PVM, semua proses client
harus dimatikan dari PVM dengan memanggil rutin pvm_exit.
Komunikasi antar proses di dalam sistem PVM dilakukan secara message
passing menggunakan perintah rutin PVM seperti pvm_send dan
pvm_recv. Semua rutin pengiriman pesan dilakukan secara asinkron,
sedangkan semua rutin penerimaan pesan dapat dilakukan secara sinkron
maupun asinkron. Ada tiga tahap dalam mengirim pesan dalam PVM,
yaitu :
> Menginisialisasi buffer pengiriman dengan rutin pvm_initsend
> Mengemas isi pesan ke dalam buffer dengan memanggil rutin pvm_pk*.
Data yang dikemas dapat bertipe byte, complex, double, float, integer, dan
74 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

character. Tipe tersebut dinyatakan dengan mengganti tanda * dan


memberi tipe yang sesuai untuk tiap parameter di dalam rutin pvm_pk*.
Misalnya data yang akan dikemas bertipe float, maka digunakan
pvm_pkfloat().
> Mengirim pesan ke prosesor tujuan dengan memanggil pvm_send atau
pvm_mcast. Proses yang menerima pesan harus membuka paket pesan
pada buffer penerima sesuai dengan format pengiriman pesan.
PVM juga menyediakan rutin pvm_setopt untuk mengatur pilihan dalam
sistem PVM, seperti pencetakan pesan kesalahan secara otomatis, tingkat
pencarian kesalahan (debugging level), dan metode pengaturan jalur
komunikasi. Contoh yang paling umum dari penggunaan pvm_setopt
adalah memungkinkan jalur komunikasi langsung antar task dalam PVM.
Pvm_setopt(PvmRoute, PvmRouteDirect);Dengan perintah ini otomatis
bandwidth komunikasi di dalam jaringan akan digandakan.
MPI (Message Passing Interface)
MPI(Message Passing Interface) adalah bahasa pemrograman dengan
basis petukaran pesan. Dalam implementasinya MPI menggunakan
fungsi- fungsi pustaka yang dapat dipanggil dari program C, C++, atau
Fortran. Hampir sama dengan PVM, MPI juga portable untuk berbagai
arsitektur. Salah satu implementasi terbaru pada saat ini yang berjalan
pada lingkungan Windows adalah MPICH. Versi terakhirnya adalah
MPICH versi 1.2.5. Ditinjau dari sisi aplikasi, MPI hanya dapat
digunakan dengan model single program multiple data (SPMD),
sedangkan PVM dapat digunakan dengan model SPMD maupun multiple
program multiple data (MPMD). Model SPMD secara fisik ditunjukkan
dengan program master dan slave yang menyatu, sedangkan MPMD
ditunjukkan dengan program master dan slave yang terpisah, sehingga
slave dapat mengerjakan tugas yang berbeda-beda antara satu node
dengan node lainnya.
MPI adalah bahasa-independen protokol komunikasi yang digunakan
untuk program paralel komputer. Keduanya baik point-to-point dan
kolektif komunikasi didukungnya. MPI "adalah pesan-melewati
pemrogram aplikasi antarmuka, bersama-sama dengan semantik protokol
dan spesifikasi untuk fitur-fiturnya bagaimana harus berlaku dalam setiap
pelaksanaannya." MPI tujuan kinerja tinggi, skalabilitas, dan portabilitas.
75 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

MPI tetap dominan model yang digunakan dalam komputasi kinerja tinggi
hari ini.
MPI tidak disetujui oleh badan standar utama meskipun demikian, hal itu
telah menjadi de facto standar untuk komunikasi di antara proses-proses
yang model program paralel berjalan pada sistem memori terdistribusi.
Meskipun demikian, program-program MPI secara teratur dijalankan pada
komputer memori bersama. Walaupun MPI termasuk dalam lapisan 5 dan
yang lebih tinggi dari OSI Reference Model, implementasi dapat
mencakup sebagian besar lapisan model referensi, dengan soket dan TCP
yang digunakan pada lapisan transport. Kebanyakan implementasi MPI
terdiri dari serangkaian rutinitas tertentu (yakni, sebuah API) callable dari
Fortran, C, C + + atau Java dan dari bahasa apa pun mampu berinteraksi
dengan routine libraries. Keuntungan dari MPI diantaranya: portabilitas
(karena MPI telah diterapkan untuk hampir semua arsitektur memori
terdistribusi) dan kecepatan (karena setiap pelaksanaan pada prinsipnya
dioptimalkan untuk perangkat keras yang dijalankan).
MPI sering dibandingkan dengan PVM, yang merupakan lingkungan dan
didistribusikan populer lewat pesan sistem yang dikembangkan pada
tahun 1989, dan yang merupakan salah satu sistem yang termotivasi
kebutuhan standar sistem lewat pesan paralel. Memori bersama
pemrograman threaded model (seperti pthreads dan OpenMP) dan pesan
lewat pemrograman (MPI / PVM) dapat dianggap sebagai pelengkap
pendekatan pemrograman, dan kadang-kadang dapat dilihat digunakan
bersama-sama dalam aplikasi di mana arsitektur setelan ini, misalnya di
server dengan beberapa besar bersama memori node.

76 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

Konsep Paralel
Banyak perkembangan-perkembangan baru dalam arsitektur komputer
yang didasarkan pada konsep pemrosesan paralel. Pemrosesan paralel
dalam sebuah komputer dapat didefinisikan sebagai pelaksanaan
instruksi-instruksi secara bersamaan waktunya. Hal ini dapat
menyebabkan pelaksanaan kejadian-kejadian (1) dalam interval waktu
yang sama, (2) dalam waktu yang bersamaan atau (3) dalam rentang
waktu yang saling tumpang tindih.

Sekalipun didukung oleh teknologi prosesor yang berkembang sangat


pesat, komputer sekuensial tetap akan mengalami keterbatasan dalam hal
kecepatan pemrosesannya. Hal ini menyebabkan lahirnya konsep
keparalelan (parallelism) untuk menangani masalah dan aplikasi yang
membutuhkan kecepatan pemrosesan yang sangat tinggi, seperti misalnya
prakiraan cuaca, simulasi pada reaksi kimia, perhitungan aerodinamika
dan lain-lain.
Konsep keparalelan itu sendiri dapat ditinjau dari aspek design mesin
paralel, perkembangan bahasa pemrograman paralel atau dari aspek
pembangunan dan analisis algoritma paralel. Algoritma paralel itu sendiri
lebih banyak difokuskan kepada algoritma untuk menyelesaikan masalah
numerik, karena masalah numerik merupakan salah satu masalah yang
memerlukan kecepatan komputasi yang sangat tinggi.

Arsitektur Paralel
Paralelisme dalam suatu komputer dapat diaplikasikan pada beberapa
tingkatan, seperti berikut:
1. Tingkat pekerjaan: antara pekerjaan-pekerjaan atau fase-fase suatu
pekerjaan. Hal ini menjadi prinsip dasar dari multiprogramming.
2. Tingkat prosedur: antara prosedur-prosedur dan di dalam loop. Hal ini
harus tercakup sebagai hal yang penting bagi suatu bahasa.
77 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

3. Tingkat instruksi: antara fase-fase sebuah siklus instruksi, yaitu fetch,


decode dan eksekusi suatu instruksi.
4. Tingkat aritmatika dan bit: antara bit-bit dalam sirkuit aritmatika. Salah
satu contohnya adalah adder paralel.

Telah banyak usaha untuk mengklasifikasikan perancangan arsitektur


komputer paralel. Namun tidak ada satupun yang mampu memisahkan
semua jenis perancangan menjadi kelompok-kelompok yang berbeda.
Skema klasifikasi yang paling umum digunakan adalah taksonomi Flynn.
Kita akan membahas pula dua skema lainnya yaitu: Shore dan Feng.

Klasifikasi Flynn
Michael J. Flynn memperkenalkan suatu skema untuk mengklasifikasikan
arsitektur suatu komputer dengan melihat bagaimana mesinnya
menghubungkan instruksi-instruksinya ke data yang sedang diproses.
Berikut klasifikasinya:
1. SISD: single instruction stream, single data stream. Merupakan suatu
komputer serial konvesional dimana instruksi-instruksi dijalankan satu per
satu dan sebuah instruksi tunggal berhubungan dengan paling banyak satu
operasi data.
2. SIMD: single instruction stream, multiple data stream. Dalam sebuah
komputer SIMD, suatu instruksi tunggal mengawali sejumlah besar
operasi.
3. MISD: multiple instruction stream, single data stream. Kelas MISD
melaksanakan beberapa operasi instruksi secara bersamaan pada sebuah
item data tunggal.
4. MIMD: multiple instruction stream, multiple data stream. Sebuah
komputer MIMD dicirikan oleh eksekusi lebih dari satu instruksi pada
saat yang bersamaan, dimana setiap instruksi beroperasi pada beberapa
aliran data.
78 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

Klasifikasi Shore
J.E. Shore membuat klasifikasi arsitektur komputer yang didasarkan pada
organisasi bagian-bagian penyusun suatu komputer dan membedakannya
menjadi enam jenis mesin.
1. Mesin I. Pada komputer ini, satu instruksi dikerjakan pada suatu waktu
dan masing-masing beroperasi pada satu word dalam suatu waktu.
2. Mesin II. Komputer ini juga menjalankan satu instruksi pada suatu
waktu, namun ia beroperasi pada sebuah irisan dari suatu bit dalam suatu
waktu, bukannya semua bit dalam suatu word data.
3. Mesin III. Sebuah komputer dalam kelas ini memiliki dua unit
pengolahan yang dapat beroperasi pada data, satu word dalarn suatu
waktu atau suatu irisan bit dalam suatu waktu.
4. Mesin IV. Komputer jenis ini dicirikan oleh sejumlah elemen (unit
pengolahan dan unit memori), semua di bawah kendali sebuah unit
kendali logika (CLU) tunggal.
5. Mesin V. Mesin V dihasilkan dengan mengubah Mesin IV sedemikian
sehingga elemen-elemen pengolahan dapat berkomunikasi dengn
tetangga terdekat mereka.
6. Mesin VI. Komputer ini, disebut sebagai array logika-dalam-memori,
merupakan sebuah mesin dengan logika prosesor yang tersebar dalam
memori.

Klasifikasi Feng
Tse-yum Feng (1972) menyarankan pengklasifikasian arsitektur komputer
atas tingkatan paralelisme mereka. Tingkatan paralelisme (degree of
parallelism) diwakili oleh pasangan (n, m) dimana n merupakan panjang
word dan m adalah panjang irisan bit. Pasangan ini diklasifikasikan
menjadi empat kelompok sebagai berikut:
79 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

1. Jika n = 1 dan m = I maka tidak terjadi paralelisme. Word dan bit


diproses satu per satuan waktu. Hal ini disebut sebagai word serial/bit
serial(WSBS).
2. Jika n> 1 dan m = 1 maka paralelisme itu disebut sebagai word
paralel/bit serial (WPBS). Dalam hal ini, semua n irisan bit diproses satu
per satuan waktu.
3. Paralelisme word serial/bit paralel (WSBP) terjadi jika n = 1 dan m> 1.
Dengan demikian sejumlah n word diproses satu per satuan waktu tetapi
sejumlah m bit dan masing-masing word diproses secara paralel.
4. Kategori terakhir disebut sebagai word paralel/bit paralel (WPBP) dan
merupakan suatu paralelisme dimana n > 1 dan m > 1. Dalam hal ini,
sejumlah nm bit diproses secara bersamaan.

Komputer sekuensial - berdasarkan klasifikasi Flynn adalah kelompok


komputer SISD - hanya mempunyai satu unit pengendali untuk
menentukan instruksi yang akan dieksekusi. Pada setiap satuan waktu
hanya satu instruksi yang dapat dieksekusi, dimana kecepatan akses ke
memori dan kecepatan piranti masukan dan keluaran dapat memperlambat
proses komputasi. Beberapa metoda dibangun untuk menghindari masalah
tersebut, seperti penggunaan cache memory. Namun komputer sekuensial
ini tetap mengalami keterbatasan jika menangani masalah yang
memerlukan kecepatan tinggi. Hal-hal tersebut di atas pada akhirnya
melatarbelakangi lahirnya sistem komputer paralel.
Berdasarkan klasifikasi Flynn, komputer paralel termasuk kelompok
SIMD atau MIMD. Komputer paralel mempunyai lebih dari satu unit
pemroses dalam sebuah komputer yang sama. Hal yang membuat suatu
komputer dengan banyak prosesor disebut sebagai komputer paralel
adalah bahwa seluruh prosesor tersebut dapat beroperasi secara simultan.
Jika tiap-tiap prosesor dapat mengerjakan satu juta operasi tiap detik,
maka sepuluh prosesor dapat mengerjakan sepuluh juta operasi tiap detik,
seratus prosesor akan dapat mengerjakan seratus juta operasi tiap
detiknya[Les93].
80 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

Pada dasarnya aktivitas sebuah prosesor pada komputer paralel adalah


sama dengan aktivitas sebuah prosesor pada komputer sekuensial. Tiap
prosesor membaca (read) data dari memori, memprosesnya dan
menuliskannya (write) kembali ke memori. Aktivitas komputasi ini
dikerjakan oleh seluruh prosesor secara paralel.

PVM (Parallel Virtual Machine)


PVM adalah perangkat lunak yang membuat sekumpulan komputer
menjadi tampak seperti sebuah sistem komputer virtual yang besar.
Sekumpulan komputer yang akan terlibat dalam proses penyelesaian
masalah harus didefinisikan trelebih dahulu, agar dapat menjalankan
fungsinya. Komputer-komputer yang terlibat dalam komputasi bisa
homogen, dengan platform yang sama, maupun heterogen, dengan
platform yang berbeda, asal di antara mereka bisa saling berkomunikasi.
PVM dapat menangani semua pengiriman proses, konversi data, dan
penjadwalan task secara message passing untuk sistem yang tidak
kompatibel sekalipun.
Sistem PVM terdiri dari dua bagian. Bagian pertama adalah daemon yang
diberi nama pvmd. Pvmd diaktifkan di setiap komputer yang akan
membentuk mesin virtual. Bagian kedua adalah pustaka rutin antarmuka
PVM yang berisi koleksi perintah-perintah primitif untuk mengoperasikan
proses-proses pustaka tersebut. Pustaka rutin ini digunakan dalam
program aplikasi paralel yang ditulis dengan bahasa pemrograman C, C+
+, atau FORTRAN 77. Aplikasi dalam bahasa pemrograman C dan C++
dihubungkan melalui pustaka libpvm3.lib, sedangkan aplikasi dalam
bahasa pemrograman FORTRAN 77 dapat mengambil rutin-rutin dalam
libfpvm3.lib. Kedua pustaka tersebut telah tersedia pada saat instalasi.
PVM memberi fasilitas untuk membuat sejumlah proses yang tidak
tergantung dari jumlah prosesor. Setiap proses diidentifikasi
menggunakan kode (task ID) dan dipetakan ke prosesor secara otomatis,
atau dapat juga diatur oleh programmer. Program PVM umumnya diatur
dengan model master-slave, yaitu satu proses yang dieksekusi pertama
kali menjadi master dan mengaktifkan semua client dengan memanggil
81 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

pvm_spawn. Rutin tersebut otomatis akan menjalankan semua proses


dalam sistem PVM. Cara lain untuk menjalankan proses adalah dengan
memanggil rutin pvm_mytid yang mengembalikan kode task ID dari
proses tersebut. Sebelum keluar dari sistem PVM, semua proses client
harus dimatikan dari PVM dengan memanggil rutin pvm_exit.
Komunikasi antar proses di dalam sistem PVM dilakukan secara message
passing menggunakan perintah rutin PVM seperti pvm_send dan
pvm_recv. Semua rutin pengiriman pesan dilakukan secara asinkron,
sedangkan semua rutin penerimaan pesan dapat dilakukan secara sinkron
maupun asinkron. Ada tiga tahap dalam mengirim pesan dalam PVM,
yaitu :
> Menginisialisasi buffer pengiriman dengan rutin pvm_initsend
> Mengemas isi pesan ke dalam buffer dengan memanggil rutin pvm_pk*.
Data yang dikemas dapat bertipe byte, complex, double, float, integer, dan
character. Tipe tersebut dinyatakan dengan mengganti tanda * dan
memberi tipe yang sesuai untuk tiap parameter di dalam rutin pvm_pk*.
Misalnya data yang akan dikemas bertipe float, maka digunakan
pvm_pkfloat().
> Mengirim pesan ke prosesor tujuan dengan memanggil pvm_send atau
pvm_mcast. Proses yang menerima pesan harus membuka paket pesan
pada buffer penerima sesuai dengan format pengiriman pesan.
PVM juga menyediakan rutin pvm_setopt untuk mengatur pilihan dalam
sistem PVM, seperti pencetakan pesan kesalahan secara otomatis, tingkat
pencarian kesalahan (debugging level), dan metode pengaturan jalur
komunikasi. Contoh yang paling umum dari penggunaan pvm_setopt
adalah memungkinkan jalur komunikasi langsung antar task dalam PVM.
Pvm_setopt(PvmRoute, PvmRouteDirect);Dengan perintah ini otomatis
bandwidth komunikasi di dalam jaringan akan digandakan.

MPI (Message Passing Interface)

82 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

MPI(Message Passing Interface) adalah bahasa pemrograman dengan


basis petukaran pesan. Dalam implementasinya MPI menggunakan
fungsi- fungsi pustaka yang dapat dipanggil dari program C, C++, atau
Fortran. Hampir sama dengan PVM, MPI juga portable untuk berbagai
arsitektur. Salah satu implementasi terbaru pada saat ini yang berjalan
pada lingkungan Windows adalah MPICH. Versi terakhirnya adalah
MPICH versi 1.2.5. Ditinjau dari sisi aplikasi, MPI hanya dapat
digunakan dengan model single program multiple data (SPMD),
sedangkan PVM dapat digunakan dengan model SPMD maupun multiple
program multiple data (MPMD). Model SPMD secara fisik ditunjukkan
dengan program master dan slave yang menyatu, sedangkan MPMD
ditunjukkan dengan program master dan slave yang terpisah, sehingga
slave dapat mengerjakan tugas yang berbeda-beda antara satu node
dengan node lainnya.
MPI adalah bahasa-independen protokol komunikasi yang digunakan
untuk program paralel komputer. Keduanya baik point-to-point dan
kolektif komunikasi didukungnya. MPI "adalah pesan-melewati
pemrogram aplikasi antarmuka, bersama-sama dengan semantik protokol
dan spesifikasi untuk fitur-fiturnya bagaimana harus berlaku dalam setiap
pelaksanaannya." MPI tujuan kinerja tinggi, skalabilitas, dan portabilitas.
MPI tetap dominan model yang digunakan dalam komputasi kinerja tinggi
hari ini.
MPI tidak disetujui oleh badan standar utama meskipun demikian, hal itu
telah menjadi de facto standar untuk komunikasi di antara proses-proses
yang model program paralel berjalan pada sistem memori terdistribusi.
Meskipun demikian, program-program MPI secara teratur dijalankan pada
komputer memori bersama. Walaupun MPI termasuk dalam lapisan 5 dan
yang lebih tinggi dari OSI Reference Model, implementasi dapat
mencakup sebagian besar lapisan model referensi, dengan soket dan TCP
yang digunakan pada lapisan transport. Kebanyakan implementasi MPI
terdiri dari serangkaian rutinitas tertentu (yakni, sebuah API) callable dari
Fortran, C, C + + atau Java dan dari bahasa apa pun mampu berinteraksi
dengan routine libraries. Keuntungan dari MPI diantaranya: portabilitas
(karena MPI telah diterapkan untuk hampir semua arsitektur memori
83 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

terdistribusi) dan kecepatan (karena setiap pelaksanaan pada prinsipnya


dioptimalkan untuk perangkat keras yang dijalankan).
MPI sering dibandingkan dengan PVM, yang merupakan lingkungan dan
didistribusikan populer lewat pesan sistem yang dikembangkan pada
tahun 1989, dan yang merupakan salah satu sistem yang termotivasi
kebutuhan standar sistem lewat pesan paralel. Memori bersama
pemrograman threaded model (seperti pthreads dan OpenMP) dan pesan
lewat pemrograman (MPI / PVM) dapat dianggap sebagai pelengkap
pendekatan pemrograman, dan kadang-kadang dapat dilihat digunakan
bersama-sama dalam aplikasi di mana arsitektur setelan ini, misalnya di
server dengan beberapa besar bersama memori node.

Pemrosesan Paralel PVM dan MPI


Pemrosesan Paralel
Pemrosesan paralel (parallel processing) adalah penggunakan lebih dari
satu CPU untuk menjalankan sebuah program secara simultan. Parallel
processing membuat program berjalan lebih cepat karena semakin banyak
CPU yang digunakan.

Tujuan utama dari pemrosesan paralel adalah untuk meningkatkan


performa komputasi. Semakin banyak hal yang bisa dilakukan secara
bersamaan (dalam waktu yang sama), semakin banyak pekerjaan yang
bisa diselesaikan.

Komputasi paralel
Komputasi paralel adalah salah satu teknik melakukan komputasi secara
bersamaan dengan memanfaatkan beberapa komputer secara bersamaan.
Biasanya diperlukan saat kapasitas yang diperlukan sangat besar, baik
karena harus mengolah data dalam jumlah besar ataupun karena tuntutan
proses komputasi yang banyak.
84 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

Untuk melakukan aneka jenis komputasi paralel ini diperlukan


infrastruktur mesin paralel yang terdiri dari banyak komputer yang
dihubungkan dengan jaringan dan mampu bekerja secara paralel untuk
menyelesaikan satu masalah. Untuk itu diperlukan aneka perangkat lunak
pendukung yang biasa disebut sebagai middleware yang berperan untuk
mengatur distribusi pekerjaan antar node dalam satu mesin paralel.
Selanjutnya pemakai harus membuat pemrograman paralel untuk
merealisasikan komputasi.

Pemrograman Paralel sendiri adalah teknik pemrograman komputer yang


memungkinkan eksekusi perintah/operasi secara bersamaan. Bila
komputer yang digunakan secara bersamaan tersebut dilakukan oleh
komputer-komputer terpisah yang terhubung dalam satu jaringan
komputer, biasanya disebut sistem terdistribusi. Bahasa pemrograman
yang populer digunakan dalam pemrograman paralel adalah MPI
(Message Passing Interface) dan PVM (Parallel Virtual Machine).

Komputasi paralel membutuhkan :


Algroritma
Bahasa Pemrograman
Compiler

Pemrograman Paralel
Pemrograman paralel adalah teknik pemrograman komputer yang
memungkinkan eksekusi perintah/operasi secara bersamaan baik dalam
komputer dengan satu (prosesor tunggal) ataupun banyak (prosesor ganda
dengan mesin paralel) CPU. Tujuan utama dari pemrograman paralel
adalah untuk meningkatkan performa komputasi.
Komunikasi data pada sistem paralel memori terdistribusi, memerlukan
alat bantu komunikasi. Alat bantu yang sering digunakan oleh sistem
85 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

seperti PC Jaringan pada saat ini adalah standar MPI (Message Passing
Interface) atau standar PVM (Parallel Virtual Machine)yang keduanya
bekerja diatas TCP/IP communication layer. Kedua standar ini
memerlukan fungsi remote access agar dapat menjalankan program pada
masing-masing unit prosesor.
Mesin virtual parallel atau Parallel Virtual Machine (PVM) dan
Antarmuka Pengiriman Pesan (MPI) adalah kumpulan library yang
memungkinkan kita untuk menulis program pengiriman pesan paralel
menggunakan bahasa pemrograman C dan FORTRAN agar bisa berjalan
pada system paralel.

Kemampuan sistem paralel tergantung dari kemampuan pemrogram untuk


membuat aplikasi terdistribusi ketika dijalankan pada sistem paralel. Jika
node slave mempunyai prosessor lebih dari satu maka pemrogram harus
memperhitungkan kemungkinan paralelisme 2 level: Paralelisme di dalam
slave node (intra-node parallelism) dan paralelisme antar slave node
(inter-node parallelism).
Inter-node parallelism menggunakan shared memory dalam node sehingga
tidak melakukan pertukaran data secaraexplicit. Sedangkan Inter-node
parallelism melakukan pertukaran data lewat media yang menghubungkan
antara node slave yang ada.
Terdapat tiga metode untuk mengimplementasikan Inter-node parallelism
yaitu :
Dengan cara membuat protokol komunikasi ad hoc level rendah.
Contohnya dengan menggunakan socket interface.
Dengan menggunakan distributed communication library. Contohnya
dengan menggunakan Message Passing Interface (MPI) library
Dengan memanfaatkan layer software dengan maksud untuk
menyembunyikan interconnect dari programmer.
Passing Message
86 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

Passing Message adalah secara luas menggunakan model programming


yang paralel Pesan yang lewat/ sampaikan perbentengan dengan
menciptakan ditetapkan perbaiki jumlah tugas yang serupa dengan
uniknya yang saling berhubungan dengan mengirimkan dan menerima
pesan ke dan dari satu sama lain.
Message passing adalah paradigma fundamental untuk aplikasi DS. Suatu
proses mengirimkan message yang mewakili suatu request, Message di
sampaikan ke penerima yang kemudian memproses request tsb dan
mengirim pesan balasan.
Kemudian, balasan tersebut memicu request lainnya, yang berlanjut pada
balasan berikutnya dan seterusnya. Operasi dasar yang dibutuhkan untuk
mendukung paradigma message passing adalah send dan receive. Untuk
komunikasi yang connection-oriented, operasi connect dan disconnect
juga dibutuhkan Dengan abstrasi yang disediakan oleh model ini, proses
yang saling terkoneksi melakukan operasi input dan output satu sama
lainnya, seperti halnya pada operasi I/O pada file. Operasi I/O
menyembunyikan detail komunikasi jaringannya pada level sistem
operasi. Antar muka pemrograman aplikasi soket berdasarkan pada
paradigma ini.
PVM (Parsing Virtual Machine)
Adalah paket software yang mendukung pengiriman pesan untuk
komputasi parallel antar komputer. PVM dapat berjalan diberbagai
macam variasi UNIX atau pun windows dan telah portable untuk banyak
arsitektur seperti PC, workstation, multiprocessor dan superkomputer.

Sistem PVM terbagi menjadi dua. Pertama adalah daemon, pvmd, yang
berjalan pada mesin virtual masing-masing komputer. Mesin virtual akan
dibuat, ketika User mengeksekusi aplikasi PVM. PVM dapat dieksekusi
melalui prompt UNIX disemua host. Bagian kedua adalah library
interface rutin yang mempunyai banyak fungsi untuk komunikasi antar
task . Library ini berisikan rutin yang dapat dipanggil untuk pengiriman
87 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

pesan, membuat proses baru, koordinasi task dan konfigurasi mesin


virtual.

Salah aturan main yang penting dalam PVM adalah adanya mekanisme
program master dan slave/worker. Programmer harus membuat Kode
master yang menjadi koordinator proses dan Kode slave yang menerima,
menjalankan, dan mengembalikan hasil proses ke komputer master. Kode
master dieksekusi paling awal dan kemudian melahirkan proses lain dari
kode master. Masing-masing program ditulis menggunakan C atau Fortran
dan dikompilasi dimasing-masing komputer. Jika arsitektur komputer
untuk komputasi paralel semua sama, (misalnya pentium 4 semua), maka
program cukup dikompilasi pada satu komputer saja. Selanjutnya hasil
kompilasi didistribusikan kekomputer lain yang akan menjadi node
komputasi parallel. Program master hanya berada pada satu node
sedangkan program slave berada pada semua node.
Komunikasi dapat berlangsung bila masing-masing komputer mempunyai
hak akses ke filesystem semua komputer. Akses kefile system dilakukan
melalui protokol rsh yang berjalan di unix atau windows.

Berikut adalah langkah pengaturan pada masing-masing komputer :


Buat file hostfile yang berisi daftar node komputer dan nama user yang
akan dipakai untuk komputasi paralel. Bila nama user pada semua
komputer sama misailnya nama user riset pada komputer C1,C2, C3 dan
C4, maka hostfile ini boleh tidak ada. Hostfile ini dapat digunakan bila
nama user di masing-masing komputer berbeda.
Dapatkan IP masing-masing komputer pada file /etc/hosts/ host.allow
dan /etc/hosts/hosts.equiv.
Penambahan dan penghapusan host secara dinamis dapat dilakukan
melalui konsole PVM. Bila IP tidak didefinisikan pada hostfile, cara ini
dapat dilakukan.

88 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

Program PVM terdiri dari master dan slave, dimana program master
dieksekusi paling awal dan kemudian melahirkan proses lain. PVM
memanggil rutin pvm_spawn() untuk melahirkan satu atau dua proses
lebih yang sama. Fungsi-fungsi untuk PVM versi bahasa C mempunyai
rutin awalan pvm. Pengiriman dan penerimaan task diidentifikasi dengan
TID (Task Identifier). TID ini bersifat unik dan digenerate oleh pvmd
lokal. PVM berisi beberapa rutine yang mengembalikan nilai TID
sehingga aplikasi user dapat mengidentifikasi task lain disistem.

MPI (Message Passing Interface)


Message Passing Interface (MPI) adalah sebuah standard pemrograman
yang memungkinkan pemrogram untuk membuat sebuah aplikasi yang
dapat dijalankan secara parallel dengan spesifikasi library pemrograman
untuk meneruskan pesan (message-passing), yang diajukan sebagai
standar oleh berbagai komite dari vendor, pelaksana dan Pemakai. MPI
menyediakan fungsi-fungsi untuk menukarkan antar pesan.
Message Passing Interface bertugas untuk mengirim data antar komputer
di dalam sistem paralel (biasanya disebut sebagai node atau host). Job
scheduler seperti yang tersirat dari namanya bertugas menerima tugas dari
user dan menjadwalkan tugas tersebut pada beberapa node didalam sistem
parallel sesuai kebutuhan.

MPI digunakan secara luas mengingat :


telah memiliki standar;
dirancang berkinerja tinggi pada mesin-mesin paralel;
tersedia secara bebas maupun komersial;
dikembangkan banyak pihak;
informasi penerapan dan pengujian dalam berbagai bahasa pemrograman
dan sistem telah tersedia.
89 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

Kegunaan MPI yang lain adalah :


menulis kode paralel secara portable
mendapatkan performa yang tinggi dalam pemrograman paralel, dan
menghadapi permasalahan yang melibatkan hubungan data irregular atau
dinamis yang tidak begitu cocok dengan model data parallel.
Kemampuan MPI digunakan untuk menginterpretasikan bahasa
pemrograman matrik kemampuan dynamic linking dari bahasa tersebut.
Fungsi library dari paket MPI dapat digabungkan dengan dynamic
extension dengan cara menghubungkan bahasa pemrograman tersebut
dengan bahasa C, C++, atau FORTRAN. Hal ini telah dilakukan untuk
menciptakan toolbox MPI (MPITB) untuk kebutuhan MATLAB, dan
bahasa pemrograman GNU Octave oleh Fernandez Baldomero .
Penggunaan MPITB dengan pertimbangan fungsionalitas dan
kelengkapannya disamping fakta bahwa MPITB dan GNU Octave adalah
bebas digunakan bahkan untuk keperluan komersial.

Ada beberapa versi MPI, salah satu yang open source adalah open MPI
Dalam pemodelan menggunakan message-passing, suatu proses (process)
adalah sebuah pencacah program dan ruang alamat. Proses dapat memiliki
banyak thread (pencacah program dan memory lokal) yang saling berbagi
ruang alamat. MPI dalam hal ini berfungsi sebagai alat komunikasi di
antara proses, yang saling memiliki ruang terpisah. Komunikasi ini
terutama berupa sinkronisasi dan perpindahan data antar proses. Informasi
dari domain komunikasi seluruh proses disimpan di sebuah variabel yang
disebut commun-cators, misalnya MPI_COMM_WOLRD yang
mencakup keseluruhan proses. Paralelisme dalam MPI bersifat Multiple
Instruction Multiple Data (MIMD).

90 | A

r s i t e k t u r

S i s t e m

K o m p u t e r

Pemrograman paralel menggunakan MPI bersifat eksplisit, yaitu


ditentukan dalam program secara jelas. Dalam melakukan komunikasi
data antar proses, pembuat program perlu menentukan mekanisme apa
yang digunakan dari fungsi-fungsi yang tersedia. Disediakan beberapa
fungsi dasar untuk keperluan ini, yaitu MPI_Send (mengirim), MPI_Recv
(menerima), dan MPI_Sendrecv (mengirim dan menerima sekali-gus).
Fungsi-fungsi ini masuk dalam kelompok ko-munikasi titik-ke-titik
(point-to-point). Komunikasi dalam MPI bersifat kooperatif, yaitu tiaptiap proses saling bekerjasama.
Parameter data atau message dalam fungsi-fungsi komunikasi memiliki
struktur dasar, yaitu:
Alamat buffer data untuk mengirim atau menerima.
Ukuran dari buffer data.
Jenis data pada buffer, berupa konstanta tertentu misalnya
MPI_INTEGER, MPI_CHAR dan MPI_DOUBLE.
Proses tujuan, berupa suatu integer rank dari proses.
Tag dari message, dapat digunakan sebagai penanda oleh proses.

Operasi dari fungsi-fungsi komunikasi titik-ke-titik memiliki 2 mode,


yaitu blocking dan non-blocking. Pada bentuk blocking maka proses akan
menunggu operasi kirim dan terima data selesai, sedangkan non- blocking
menggunakan event untuk memberitahu proses ketika terjadi kirim atau
terima data. Dalam tiap mode adalah penting untuk menjaga agar setiap
proses yang berkomunikasi tidak mengalami deadlock, yaitu saling
tunggu yang tidak berkesudahan.

MPI telah memiliki mekanisme agar deadlock tidak terjadi, tetapi dalam
kondisi tertentu ini tidak terhindarkan, misalnya ketika buffer tujuan
penuh atau tidak tersedia.
91 | A

r s i t e k t u r

S i s t e m

K o m p u t e r