Multiprogramming adalah bentuk dasar
dari pengolahan paralel dimana beberapa program dijalankan
pada saat yang sama pada prosesor tunggal a. Karena hanya ada satu prosesor , tidak ada eksekusi simultan benar
program yang berbeda. Sebaliknya, sistem operasi menjalankan bagian dari
satu program, kemudian bagian lain, dan seterusnya. Untuk pengguna tampak
bahwa semua program mengeksekusi pada waktu yang sama.
Jika mesin memiliki kemampuan
menyebabkan interupsi setelah interval waktu tertentu,
maka sistem operasi akan menjalankan setiap program untuk jangka waktu
tertentu, mendapatkan kembali kontrol, dan kemudian jalankan program lain
selama jangka waktu tertentu, dan sebagainya. Dengan tidak adanya
mekanisme ini, sistem operasi tidak memiliki pilihan selain untuk mulai
menjalankan program dengan harapan, tetapi tidak kepastian, bahwa program ini
akhirnya akan kembali kontrol ke sistem operasi.
Jika mesin memiliki kemampuan
melindungi memori , maka bug dalam satu program kurang cenderung
mengganggu pelaksanaan program lain. Dalam sistem tanpa perlindungan
memori, satu program bisa mengubah isi dari penyimpanan ditugaskan untuk
program lain atau bahkan penyimpanan ditugaskan untuk sistem
operasi. Sistem crash dihasilkan tidak hanya mengganggu, mereka mungkin
sangat sulit untuk debug karena mungkin tidak jelas yang dari beberapa program
yang bersalah.
Komputer awal berlari satu proses pada
suatu waktu. Sedangkan proses menunggu untuk melayani perangkat lain, CPU
itu menganggur. Dalam / O proses intensif I, CPU bisa menganggur sebanyak
80% dari waktu. Kemajuan dalam sistem operasi menyebabkan komputer yang
memuat beberapa proses independen ke dalam memori dan CPU beralih dari satu
pekerjaan ke pekerjaan lain ketika pertama tersumbat sambil menunggu untuk
melayani dengan perangkat lain. Gagasan multiprogramming mengurangi
waktu idle CPU. Multiprogramming mempercepat throughput
yang sistem dengan efisien menggunakan
waktu CPU.
Program dalam lingkungan Multiprogrammed
muncul untuk menjalankan pada saat yang sama. Proses yang berjalan di
lingkungan Multiprogrammed disebut proses konkuren. Pada
kenyataannya, CPU proses satu instruksi pada satu waktu, tetapi dapat
mengeksekusi instruksi dari setiap proses aktif.
Sebagai ilustrasi menunjukkan, penggunaan
CPU dari sistem dapat ditingkatkan dengan
menggunakan multiprogramming. Misalkan P adalah fraksi waktu itu proses
menghabiskan jauh dari CPU. Jika ada satu proses dalam memori, penggunaan
CPU adalah (1-P). Jika ada N proses dalam memori, probabilitas N proses
menunggu I / O adalah P * P ... * P (N kali). Pemanfaatan CPU (1 - P ^ N)
di mana N disebuttingkat multiprogramming (MPL) atau tingkat
multiprogramming. Sebagai N meningkat, CPU utilisasi
meningkat. Sementara persamaan ini menunjukkan bahwa CPU terus bekerja
lebih efisien karena proses yang lebih dan lebih ditambahkan, secara logis, hal
ini tidak mungkin benar. Setelah sistem melewati titik utilisasi CPU yang
optimal, thrashes .
(Untuk lebih lanjut tentang masalah
kinerja OS, lihat Kinerja
Operasional Sistem Module )
Untuk menggunakan konsep multiprogramming,
proses harus dimuat ke bagian atau independen partisi memori. Jadi, memori utama dibagi menjadi partisi berukuran
tetap atau variabel ukuran. Karena partisi mungkin tidak cukup untuk
seluruh proses besar, memori virtual diimplementasikan untuk menjaga proses
mengeksekusi. Jawaban atas beberapa pertanyaan penting untuk menerapkan
sistem memori virtual efisien dalam lingkungan Multiprogrammed.
Oleh Nanda Ridho W 151411513033
Alfian Hariyono 151411513034