Kaj je večprogramiranje?

Večprogramiranje je ena izmed bolj osnovnih vrst vzporedne obdelave, ki se lahko uporablja v številnih različnih okoljih. V bistvu omogoča, da je več programov aktivnih hkrati, medtem ko se še vedno izvajajo prek enega samega procesorja. Njegova funkcionalnost v tem okolju vključuje stalen proces zaporednega izpolnjevanja nalog, povezanih s funkcijo enega programa, nato pa nadaljevanje izvajanja naloge, povezane z naslednjim programom.

Ta vrsta obdelave se zelo razlikuje od večprocesiranja, ker, čeprav je lahko trenutno aktivnih več programov, enoprocesor ne izvaja hkrati ukazov za vse programe. Namesto tega procesor naslovi vsak program, izvede en sam ukaz, nato pa se premakne na naslednji program v čakalni vrsti. Prejšnji program ostane aktiven, vendar preide v pasivno stanje, dokler se enoprocesor ne vrne na sprednji del čakalne vrste in izvede drugi ukaz.

S stališča končnega uporabnika je postopek brezhiben. Kar zadeva dejansko funkcionalnost, se zdi, da uporabnik uporablja več različnih aplikacij hkrati. To je zato, ker večprogramiranje uporablja enoprocesor za hitro izvajanje ukazov. Končni rezultat je, da uporabnik opazi malo ali sploh zamik, ko zmanjša eno aplikacijo, da bi izvedel nalogo, povezano z drugo aplikacijo.

Mehanizem v večprogramiranju je znan kot prekinitev. Vsaki nalogi je dodeljen določen čas za obdelavo, preden se operacijski sistem premakne na naslednji program in naslednjo nalogo. V nekem smislu gre pri tej metodi za žongliranje več nalog hkrati, hitro izvedbo enega dela zahtevanega dejanja, nato pa se premaknete, da naredite nekaj z drugo nalogo, preden se vrnete na prejšnje delo.

Pomnilnik je pomemben za pravilno delovanje te oblike obdelave. Zagotoviti mora biti dovolj zmogljivosti, da zagotovimo, da če en program znotraj vrtljive čakalne vrste naleti na težavo, ne prepreči zamud ali vpliva na delovanje drugih odprtih aplikacij. Hkrati bi morala biti na mestu neka vrsta zaščite pomnilnika. Če temu ni tako, potem lahko težava z eno aplikacijo povzroči kaskadni učinek, ki izklopi ali vsaj upočasni druge odprte aplikacije.