Kamu bisa jelasin ke aku soal Multi-program?

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