Što je multiprogramiranje?

Multiprogramiranje je jedna od osnovnih vrsta paralelne obrade koja se može koristiti u mnogim različitim okruženjima. U suštini, omogućuje da nekoliko programa bude aktivno u isto vrijeme, dok se i dalje izvodi kroz jedan procesor. Njegova funkcionalnost u ovom okruženju uključuje kontinuirani proces uzastopnog izvršavanja zadataka povezanih s funkcijom jednog programa, a zatim prelazak na pokretanje zadatka povezanog sa sljedećim programom.

Ova vrsta obrade uvelike se razlikuje od višeprocesne jer, iako trenutno može biti nekoliko aktivnih programa, jednoprocesor ne izvršava istovremeno naredbe za sve programe. Umjesto toga, procesor se obraća svakom programu, izvršava jednu naredbu, a zatim prelazi na sljedeći program u redu čekanja. Prethodni program ostaje aktivan, ali ulazi u pasivno stanje sve dok se jednoprocesor ne vrati na početak reda i izvrši drugu naredbu.

Sa stajališta krajnjeg korisnika, proces je besprijekoran. Što se stvarne funkcionalnosti tiče, čini se da korisnik koristi nekoliko različitih aplikacija u isto vrijeme. To je zato što multiprogramiranje koristi jednoprocesor za brzo izvršavanje naredbi. Krajnji rezultat je da korisnik primjećuje malo ili uopće vrijeme kašnjenja kada minimizira jednu aplikaciju kako bi izvršio zadatak povezan s drugom aplikacijom.

Mehanizam unutar multiprogramiranja poznat je kao prekid. Svaki zadatak ima određeno vrijeme za obradu prije nego što operativni sustavi pređu na sljedeći program i sljedeći zadatak. U određenom smislu, ova metoda se odnosi na žongliranje s nekoliko zadataka u isto vrijeme, brzo izvođenje jednog dijela potrebne radnje, zatim prelazak na nešto s drugim zadatkom prije povratka na prethodni posao.

Memorija je važna za ispravno funkcioniranje ovog oblika obrade. Mora postojati dovoljan kapacitet kako bi se osiguralo da, ako jedan program unutar rotirajućeg reda naiđe na problem, ne spriječi kašnjenja ili utječe na rad drugih otvorenih aplikacija. Istodobno, neka vrsta zaštite memorije trebala bi biti uspostavljena. Ako to nije slučaj, onda problem s jednom aplikacijom može stvoriti kaskadni efekt koji gasi ili barem usporava druge otvorene aplikacije.