Multiprogrammeeritav operatsioonisüsteem on selline, mis võimaldab lõppkasutajatel korraga käitada rohkem kui ühte programmi. Sellise süsteemi väljatöötamine, esimene tüüp, mis seda funktsiooni võimaldas, oli suur samm keerukate arvutite arendamisel. Tehnoloogia töötab, võimaldades arvuti keskprotsessoril (CPU) lülituda kahe või enama töötava toimingu vahel, kui protsessor on jõude.
Varased arvutid olid suures osas pühendatud ühe programmi – või täpsemalt ühe programmi algatatud ülesande täitmisele – korraga. Ülesannete mõiste mõistmine on võtmetähtsusega, et mõista, kuidas multiprogrammeeriv operatsioonisüsteem toimib. “Task” on väike käskude jada, mis kombineerituna hõlmab töötava programmi täitmist. Näiteks kui programm on kalkulaator, oleks programmi üheks ülesandeks lõppkasutaja sisestatavate numbrite salvestamine.
Mitmeprogrammeerimisega operatsioonisüsteem analüüsib arvutis praegust protsessori tegevust. Kui protsessor on jõude – kui see on ülesannete vahel – on tal võimalus kasutada seda seisakut mõne teise programmi jaoks ülesannete käitamiseks. Sel viisil saab järjestikku täita mitme programmi funktsioone. Näiteks kui CPU ootab, et lõppkasutaja sisestaks arvutatavad numbrid, võib see täiesti jõudeoleku asemel käivitada kasutaja avatava veebilehe komponentide laadimise.
Selle funktsiooni peamine eelis seisneb selles, et see võib vähendada süsteemi toimimises raisatud aega. Nagu ettevõttes, on tõhusus ettevõttest suurima kasumi teenimise võti. Seda tüüpi operatsioonisüsteemi kasutamine kõrvaldab süsteemi raiskamise, tagades, et arvuti protsessor töötab suurema osa ajast maksimaalse võimsusega. Selle tulemuseks on lõppkasutaja seisukohast sujuvam arvutikasutuskogemus, kuna programmikäsklusi täidetakse pidevalt taustal kogu aeg, mis aitab programmide täitmist kiirendada.
Mitme programmeerimisega operatsioonisüsteem on suures osas välja tõrjutud uue põlvkonna operatsioonisüsteemidega, mida tuntakse multitegumtöötlussüsteemidena. Multitegumtöötlussüsteemis ei pea süsteem enne aktiivse programmiga tööle asumist ootama ülesande täitmist. Selle asemel võib see töötava programmi igal ajal katkestada, et suunata oma protsessori ressursse teisele aktiivsele programmile. See tagab dünaamilisema lähenemisviisi samaaegsete programmide käsitlemisele.