Multi Programming
Multi-program adalah salah satu teknik
penjadwalan dimana tugas (task) yang sedang berjalan tetap berjalan sampai ia
melakukan operasi yang membutuhkan waktu untuk menunggu respon dari luar
(external event), misalnya membaca data dari disket/CD/dsb, atau sampai
komputer memaksa untuk menukar tugas yang sedang berjalan dengan tugas lainnya.
Sistem operasi yang yang menggunakan multi-program sebagai scheduler-nya
bertujuan untuk memaksimalkan penggunaan CPU.
Pada masa-masa awal dunia perkomputeran, CPU cukup
mahal dan peripherals sangat lamban. Saat komputer menjalankan sebuah
program yang membutuhkan akses ke peripheral, CPU harus menghentikan
instruksi-instruksi program lainnya selama peripheral memproses data. Hal ini
dianggap sangat tidak efisien.
Usaha pertama untuk membuat sistem operasi berbasis
multi-program dilakukan pada tahun 1960an. Beberapa program yang berlainan di
dalam batch di-load ke memori komputer, dan program yang pertama akan
dijalankan. Saat program tersebut mencapai instruksi untuk menunggu akses ke
peripheral, konteks dari program ini disimpan, dan program berikutnya di memori
mulai dijalankan. Proses ini berulang terus sampai semua program selesai
dijalankan.
Multi-program tidak memberi garansi bahwa
program-program akan berjalan bersamaan. Bisa saja program pertama yang
dijalankan tidak membutuhkan akses ke peripheral sehingga program tersebut
berjalan terus berjam-jam. Namun demikian multiprogramming cukup mengurangi
waktu user untuk menunggu karena user tinggal memasukan sederetan program ke
komputer dan kembali beberapa jam kemudian untuk melihat hasilnya.
Primary Control Program (PCP) pada OS/360 versi
awal menggunakan sistem multiprogramming seperti yang disebut barusan, namun
kemudian diganti pada tahun berikutnya olehMFT dengan sistem multi-program
yang membatasi waktu proses bagi CPU sebelum mengganti dengan proses lainnya.
Multi Processing
Multiprocessing adalah
istilah teknologi informasi yang merujuk kepada kemampuan pemrosesan
komputer yang dilakukan secara serentak. Hal ini dimungkinkan dengan
menggunakan dua CPU atau lebih dalam sebuah sistem komputer.
Istilah ini juga dapat merujuk kepada dukungan sebuah sistem untuk mendukung
lebih dari satu prosesor dan mengalokasikan tugas kepada
prosesor-prosesor tersebut.
Multiprocessing' juga kadang merujuk kepada kemampuan
eksekusi terhadap beberapa proses perangkat lunak dalam sebuah sistem secara
serentak, jika dibandingkan dengan sebuah proses dalam satu waktu, meski
istilah multiprogramming lebih sesuai untuk konsep
ini. Multiprocessing sering diimplementasikan dalam perangkat keras
(dengan menggunakan beberapa CPU sekaligus), sementara multiprogramming sering
digunakan dalam perangkat lunak. Sebuah sistem mungkin dapat memiliki dua
kemampuan tersebut, salah satu di antaranya, atau tidak sama sekali.
Jenis-jenis Multiprocessing
Multiprocessing dibagi ke dalam beberapa kelas, yakni:
Berdasarkan simetrinya, multiprocessing dapat dibagi
ke dalam:
- Asymmetric Multiprocessing (ASMP)
- Symmetric Multiprocessing (SMP)
- Non-uniform memory access (NUMA) multiprocessing
- Clustering
Berdasarkan jumlah instruksi dan datanya, dapat dibagi
ke dalam (lihat Taksonomi Flynn):
- SISD (Single Instruction on Single Data Stream)
- SIMD (Single Instruction on Multiple Data Stream)
- MISD (Multiple Instruction on Single Data Stream)
- MIMD (Multiple Instruction on Multiple Data Stream)
Berdasarkan kedekatan antar prosesor, dapat dibagi ke
dalam:
- Loosely coupled
- Thightly coupled
Distributed Processing
Komputasi terdistribusi adalah suatu sistem pada
jaringan komputer yang dihubungkan dengan cara tertentu sehingga tampak seperti
satu komputer bagi pemakai individual. Komputasi terdistribusi menggunakan
sumber daya komputer yang ada dan melibatkan banyak komputer yang terdistribusi
dan terpisah secara geografis yang bertujuan untuk memecahkan berbagai macam
persoalan komputasi dalam skala besar. Komputasi terdistribusi
mentransformasikan banyak komputer dalam satu jaringan yang dapat digunakan
secara efektif seperti halnya sebuah komputer saja, sehingga memaksimalkan
penggunaan sumber daya komputasi. Hal ini berarti bahwa setiap klien dalam
jaringan dapat mengakses setiap file data yang terdapat dalam jaringan,
menjalankan program komputer yang ada dalam jaringan (baik yang ada dalam
server maupun yang ada dalam klien). Komputasi terdistribusi adalah jaringan,
tetapi tidak semua jaringan merupakan komputasi terdistribusi. Jaringan hanya
akan merupakan sistem komputasi terdistribusi apabila unsur-unsur data, file,
dan komputer di dalam jaringan dapat diakses melalui setiap klien berdasarkan
nama, bukan berdasarkan lokasi fisik. Ada 2 buah komponen penting dalam
komputasi terdistribusi yaitu server atau komputer pusat yang secara konstan
menyediakan dan menjalankan program komputer dan database yang dibutuhkan oleh
komputer lain di dalam jaringan tersebut serta workstation atau client yang
berisi program yang ditempatkan pada server jaringan.
0 komentar:
Posting Komentar