Sistem operasi adalah perangkat lunak yang paling penting dan jantung dari komputer yang tidak hanya mengelola memori dan proses di dalam komputer tetapi juga memungkinkan pengguna untuk menjalankan perangkat lunak aplikasi. Ini adalah seperangkat program kolektif yang mengabstraksi perangkat keras sistem dan menghadirkan pengguna dengan mesin virtual yang lengkap. Terlepas dari tugas-tugas dasar seperti melacak file atau direktori, mengontrol perangkat periferal, mengirim output ke layar tampilan, OS juga melayani tujuan yang lebih tinggi seperti multiprogramming dan multitasking untuk memastikan program yang berjalan secara bersamaan tidak saling mengganggu. Sistem operasi modern tidak hanya memfasilitasi pemrosesan paralel, tetapi juga pembagian waktu yang hanya merupakan konsep multiprogramming. Multitasking hanyalah suatu bentuk multiprogram yang digunakan dalam konteks yang berbeda.
Multiprogramming adalah kemampuan bagi lebih dari satu pengguna untuk menggunakan komputer secara bersamaan menggunakan satu CPU. Idenya adalah untuk menggunakan prosesor secara efektif untuk membuat beberapa proses yang siap dijalankan dengan setiap proses milik pengguna yang berbeda. Jika proses saat ini terhenti karena suatu alasan, karena harus menunggu beberapa peristiwa tertentu, sistem operasi mengalokasikan CPU ke proses lain dalam antrian. Seluruh operasi difasilitasi oleh sistem operasi multiprogram untuk memaksimalkan pemanfaatan CPU sehingga mengurangi waktu idle CPU. Idenya adalah untuk membuat CPU sibuk selama mungkin.
Multitasking berarti eksekusi bersamaan dari banyak proses oleh satu pengguna di komputer yang sama menggunakan banyak CPU. Misalnya, dalam sistem operasi multitasking, Anda dapat mengerjakan dokumen kata dengan satu program sambil mendengarkan musik bersamaan dengan program lain. Multitasking efektif ketika program pada komputasi membutuhkan tingkat paralelisme yang tinggi. Ini didasarkan pada konsep pembagian waktu karena banyak proses atau tugas dapat diubah sesuai dengan interval waktu yang teratur, sehingga pengguna mendapatkan gagasan bahwa mereka dilakukan bersamaan..
Istilah multiprogramming adalah bentuk dasar dari pemrosesan paralel yang berarti banyak proses berjalan secara bersamaan pada satu prosesor. Istilah ini digunakan dalam sistem operasi modern ketika banyak program atau proses dijalankan pada satu prosesor dan itu adalah tugas OS untuk mengelola semua proses secara efektif dan efisien. Multitasking mengacu pada kemampuan OS untuk menjalankan banyak tugas sekaligus menggunakan banyak CPU. Ini pada dasarnya menggunakan dua atau lebih CPU dalam satu sistem untuk alokasi tugas yang berbagi sumber daya bersama termasuk CPU dan memori.
Multiprogramming didasarkan pada konsep switching konteks yang merupakan prosedur standar yang memfasilitasi switching CPU dari satu proses thread ke yang lain menggunakan CPU tunggal. Ini menyimpan keadaan proses aktif untuk CPU di Process Control Block (PCB) sehingga proses dilanjutkan dari keadaan yang sama. Multitasking, di sisi lain, didasarkan pada konsep pembagian waktu yang merupakan teknik yang digunakan untuk memberikan setiap pengguna bagian dari sistem waktu bersama yang memungkinkan pengguna untuk berbagi sumber daya yang sama secara bersamaan. Ini adalah ekstensi logis dari pemrograman ganda.
Kedua istilah tersebut memiliki makna yang hampir sama dan merupakan istilah yang umum digunakan dalam sistem operasi modern, tetapi dengan tujuan yang berbeda. Konsep multiprogramming hanya didasarkan pada kemampuan komputer untuk menyimpan program atau instruksi untuk periode waktu yang lebih lama untuk mengurangi waktu idle CPU. Alokasi proses dilakukan melalui algoritma penjadwalan. OS menjalankan bagian dari satu program pada satu waktu, diikuti oleh bagian dari program lain dan seterusnya. Dalam OS multitasking, CPU memungkinkan beberapa proses berjalan secara simultan melalui pembagian waktu dan menjalankannya sesuai dengan itu.
Dalam sistem operasi multiprogram, idenya adalah untuk memberikan transparansi lengkap antara pengguna karena banyak pengguna berbagi CPU yang sama yang dengan cepat beralih dari satu pengguna ke pengguna lain untuk meningkatkan pemanfaatan CPU. Ini memungkinkan alokasi sumber daya yang efisien dan efektif tanpa interaksi pengguna dengan sistem. OS menjalankan bagian dari program yang diikuti oleh program lain, tetapi tampaknya semua program dijalankan secara bersamaan. Dalam sistem operasi multitasking, pengguna digantikan oleh program atau proses dan setiap proses membutuhkan waktu CPU yang adil. Proses terjadi begitu cepat sehingga muncul beberapa tugas yang dijalankan secara bersamaan.
Singkatnya, kedua istilah tersebut sering digunakan bersama satu sama lain untuk mewakili sistem operasi modern, tetapi dengan tujuan dan fungsi yang berbeda. Sementara sistem operasi multiprogram memungkinkan lebih dari satu program untuk berjalan secara bersamaan menggunakan CPU tunggal, sistem operasi multitasking memungkinkan beberapa proses atau tugas untuk dieksekusi pada saat yang sama menggunakan banyak CPU. Multiprogramming didasarkan pada pengalihan konteks yang tidak memungkinkan CPU untuk duduk diam sehingga memaksimalkan pemanfaatan CPU, sedangkan multitasking didasarkan pada pembagian waktu karena banyak tugas dapat diubah sesuai prioritas pada interval waktu reguler untuk kinerja CPU maksimum.