A. Multiprograming
Multiprograming 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 oleh MFT dengan sistem
multi-program yang membatasi waktu proses bagi CPU sebelum mengganti dengan
proses lainnya.
Pelaksanaan instruksi yang diterapkan adalah:
- program dimuat ke dalam memori,
- program dijalankan sampai mengakses perangkat I/O,
- berpindah (switch) ke pekerjaan lain,
- langkah tersebut berulang terus menerus,
- untuk proses perpindahan (switching), dilaksanakan oleh software
B. Multitasking
Multitasking adalah istilah teknologi
informasi dalam bahasa Inggris yang mengacu kepada sebuah metode dimana banyak
pekerjaan atau dikenal juga sebagai proses diolah dengan menggunakan sumberdaya
CPU yang sama. Dalam kasus sebuah komputer dengan prosesor tunggal, hanya satu
instruksi yang dapat bekerja dalam satu waktu, berarti bahwa CPU tersebut
secara aktif mengolah instruksi untuk satu pekerjaan tersebut. Multitasking
memecahkan masalah ini dengan memjadwalkan pekerjaan mana yang dapat berjalan
dalam satu waktu, dan kapan pekerjaan yang lain menunggu untuk diolah dapat
dikerjakan. Kondisi mengalokasikan CPU dari pekerjaan satu ke pekerjaan yang
lain disebut context switch. Ketika context switch terjadi dengan sangat cepat
— kondisi ini cukup untuk memberikan ilusi pengolahan-paralel. Bahkan dalam
komputer yang memiliki lebih dari satu CPU (disebut multi-prosesor),
multitasking memperbolehkan lebih banyak pekerjaan dijalankan dibanding dengan
jumlah CPU yang tersedia.
Sistem operasi komputer dapat juga mengadopsi
berbagai macam strategi penjadwalan, yang secara garis besar dapat
dikategorikan sebagai berikut:
- Dalam sistem multi-program, pekerjaan yang sedang diolah terus
berjalan hingga membutuhkan suatu operasi yang memerlukan interaksi dari
luar. (e.g. membaca dari tape). Sistem multi-program didesain untuk
memaksimalkan penggunaan CPU.
- Dalam sistem time-sharing , pekerjaan yang sedang diolah
diharuskan melepaskan kerja CPU, baik secara sukarela atau dari interaksi
luar, seperti interupsi-perangkat-keras. Sistem Time-sharing
didesain untuk memperbolehkan beberapa program seolah diproses secara bersamaan.
- Dalam sistem real-time, beberapa program yang sedang
menunggu dijamin untuk mendapatkan pengolahan dari CPU ketika interaksi
luar terjadi. Sistem real-time didesain untuk melakukan kontrol
mekanik seperti robot-robot industri, yang memerlukan ketepatan
pemrosesan.
C. Multiprocessing
Multiprocessing adalah istilah teknologi
informasi dalam bahasa Inggris 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 dapat 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
D. Distributed Processing
Distributed
processing/computing adalah manajemen banyak proses yang di eksekusi di banyak
komputer yang tersebar (terdistribusi) di satu jaringan.
Sumber 1
Sumber 2