Käyttöjärjestelmä on tärkein ohjelmisto ja tietokoneen sydän, joka ei vain hallinnoi muistia ja prosessoi tietokoneen sisällä, vaan myös antaa käyttäjille mahdollisuuden ajaa sovellusohjelmistoja. Se on joukko ohjelmia, jotka abstraktivat järjestelmän laitteistot ja tarjoavat käyttäjille täydellisen virtuaalikoneen. Perustehtävien, kuten tiedostojen tai hakemistojen seurannan, oheislaitteiden ohjaamisen, ulostulon lähettämisen näyttöruudulle, ohella käyttöjärjestelmä palvelee myös korkeampia tarkoituksia, kuten moniohjelmointia ja monitehtäviä varmistaakseen, että samanaikaisesti toimivat ohjelmat eivät häiritse toisiaan. Nykyaikaiset käyttöjärjestelmät eivät vain helpota rinnakkaisprosessointia, vaan myös ajankäyttöä, joka on vain käsite moniohjelmoinnista. Monitehtävä on vain alkeellinen muoto moniohjelmoinnista, jota käytetään eri tilanteessa.
Moniohjelmointi on usean käyttäjän kyky käyttää tietokonetta kerrallaan käyttämällä yhtä suoritinta. Ajatuksena on käyttää prosessoria tehokkaasti luomaan useita valmiita suoritettavia prosesseja, jolloin jokainen prosessi kuuluu eri käyttäjälle. Jos nykyinen prosessi pysähtyy jostain syystä, koska sen on odotettava tiettyä tapahtumaa, käyttöjärjestelmä allokoi CPU: n toiselle jonossa olevalle prosessille. Koko toimintaa helpottaa moniohjelmoitu käyttöjärjestelmä, joka maksimoi prosessorin käytön CPU: n lepotilan vähentämiseksi. Ajatuksena on pitää prosessori varattu niin kauan kuin mahdollista.
Monitehtävä tarkoittaa useiden prosessien samanaikaista suorittamista yhden käyttäjän toimesta samassa tietokoneessa käyttämällä useita CPU: ita. Esimerkiksi monitehtävissä olevassa käyttöjärjestelmässä voit työskennellä Word-asiakirjan kanssa yhdellä ohjelmalla samalla kun kuuntelet musiikkia samalla kertaa toisen ohjelman kanssa. Monitehtävä on tehokasta, kun laskennan ohjelmat vaativat suurta yhdenmukaisuutta. Se perustuu ajankäytön käsitteeseen, koska useita prosesseja tai tehtäviä voidaan vaihtaa vastaavasti säännöllisin väliajoin, jotta käyttäjät saavat käsityksen siitä, että ne suoritetaan samanaikaisesti.
Termi moniohjelmointi on alkeellista muotoa rinnakkaisprosessoinnista, joka tarkoittaa useita prosesseja samanaikaisesti saman prosessorin aikana. Tätä termiä käytetään nykyaikaisissa käyttöjärjestelmissä, kun useita ohjelmia tai prosesseja suoritetaan yhdellä prosessorilla, ja käyttöjärjestelmän tehtävänä on hallita kaikkia prosesseja tehokkaasti. Monitehtävä tarkoittaa OS: n kykyä suorittaa useita tehtäviä kerrallaan käyttämällä useita CPU: ita. Periaatteessa se käyttää kahta tai useampaa CPU: ta samassa järjestelmässä tehtävien jakamiseen, joilla on yhteiset resurssit mukaan lukien CPU ja muisti.
Moniohjelmointi perustuu kontekstikytkentäkonseptiin, joka on vakioproseduuri, joka helpottaa CPU: n vaihtamista ketjun prosessista toiseen käyttämällä yhtä CPU: ta. Se tallentaa prosessorin aktiivisen prosessin tilan prosessinohjauslohkoon (PCB) siten, että prosessi jatkuu samasta tilasta. Multitasking puolestaan perustuu ajankäytön käsitteeseen, joka on tekniikka, jota käytetään tarjoamaan kullekin käyttäjälle osa aikajakojärjestelmästä, jonka avulla käyttäjät voivat jakaa samat resurssit samanaikaisesti. Se on looginen jatko moniohjelmoinnille.
Molemmilla termeillä on melkein sama merkitys ja ne ovat yleisiä termejä, joita käytetään nykyaikaisissa käyttöjärjestelmissä, mutta joilla on eri tavoitteet. Moniohjelmoinnin käsite perustuu yksinomaan tietokoneen kykyyn tallentaa ohjelmia tai ohjeita pidemmäksi ajaksi CPU: n lepotilan vähentämiseksi. Prosessien allokointi tapahtuu aikataulutusalgoritmin avulla. Käyttöjärjestelmä suorittaa osan yhdestä ohjelmasta kerrallaan, jota seuraa osa toisesta ohjelmasta ja niin edelleen. Monitasoisessa käyttöjärjestelmässä CPU sallii useiden prosessien ajaa samanaikaisesti ajanjaon kautta ja suorittaa ne vastaavasti.
Moniohjelmoidussa käyttöjärjestelmässä idea on tarjota täydellinen avoimuus käyttäjien välillä, koska useilla käyttäjillä on sama CPU, joka vaihtuu nopeasti yhdestä käyttäjästä toiseen CPU: n käytön parantamiseksi. Se mahdollistaa resurssien tehokkaan ja vaikuttavan jakamisen ilman käyttäjän vuorovaikutusta järjestelmän kanssa. Käyttöjärjestelmä suorittaa osan ohjelmasta, jota seuraa toinen ohjelma, mutta näyttää siltä, että kaikki ohjelmat suoritetaan samanaikaisesti. Monitasoisessa käyttöjärjestelmässä käyttäjät korvataan ohjelmilla tai prosesseilla, ja jokainen prosessi vie kohtuullisen osan CPU-ajasta. Prosessi tapahtuu niin nopeasti, että näyttää siltä, että useita tehtäviä suoritetaan samanaikaisesti.
Lyhyesti sanottuna, molempia termejä käytetään usein yhdessä toistensa kanssa edustamaan nykyaikaisia käyttöjärjestelmiä, mutta joilla on erilaiset tavoitteet ja toiminnallisuus. Vaikka moniohjelmoiva käyttöjärjestelmä sallii useamman kuin yhden ohjelman ajamisen samanaikaisesti yhdellä CPU: lla, monitehtäväinen käyttöjärjestelmä sallii useiden prosessien tai tehtävien suorittamisen samanaikaisesti käyttämällä useita CPU: ita. Moniohjelmointi perustuu kontekstin vaihtamiseen, joka ei salli prosessorin istua tyhjäkäynnillä, mikä maksimoi prosessorin käytön, kun taas monitehtävät perustuvat ajanjakoon, koska useita tehtäviä voidaan kytkeä prioriteetin mukaan säännöllisin väliajoin maksimaalisen suorittimen suorituskyvyn saavuttamiseksi..