A. Multi-programming
Multi-programming 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.
Gambar Multi Programiming
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.
B. 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.
Gambar Multiprocessing
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.
1. Jenis-jenis multiprocessing
Berdasarkan simetrinya,
multiprocessing dapat dibagi ke dalam
a)
Asymmetric Multiprocessing (ASMP)
b)
Symmetric Multiprocessing (SMP)
c)
Non-uniform memory access (NUMA)
multiprocessing
d)
Clustering
Berdasarkan jumlah instruksi dan
datanya, dapat dibagi ke dalam (lihat Taksonomi Flynn)
a)
SISD (Single Instruction on Single
Data Stream)
b)
SIMD (Single Instruction on Multiple
Data Stream)
c)
MISD (Multiple Instruction on Single
Data Stream)
d)
MIMD (Multiple Instruction on
Multiple Data Stream)
Berdasarkan kedekatan antar
prosesor, dapat dibagi ke dalam
a)
Loosely coupled
b)
Thightly coupled
C. 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.
Gambar Multitasking
Sistem operasi komputer dapat juga mengadopsi berbagai macam strategi
penjadwalan, yang secara garis besar dapat dikategorikan sebagai berikut:
a)
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.
b)
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.
c)
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.
D. Time sharing
Adalah inovasi yang memungkinkan komputer
komputer besar memproses banyak tugas secara simultan, dengan memberikan
potongan waktu pada masing-masing tugas, dan beralih
dari satu tugas ketugas lainnya dengan cepat.
Gambar Time Sharing
0 Response to "Multiprocessing and Multitasking"
Posting Komentar