Multiprogramirani sistemi
Sa Wikipedije, slobodne enciklopedije
Spooling sistemi su imali nedostatak u činjenici da korisnik nije mogao postići maksimalnu iskorištenost CPU-a ili U/I uređaja. Tada se došlo na ideju da bi operativni sistem umjesto jednog programa u memoriji trebao omogućiti istovremeno smještanje nekoliko programa. Upravo ova činjenica imala je veliki, a možda i presudan značaj za razvoj savremenih operativnih sistetema, jer je omogućila multiprogramiranje (istovremeno izvršavanje nekoliko različitih poslova) u pravom smislu te riječi. U multiprogramiranim sistemima, opeativni sistemi imaju jednostavnu ulogu da prebacuju kontrolu sa jednog posla na drugi. Kada je potrebno da jedan job čeka na neki resurs ili neku operaciju, CPU prebaci kontrolu na drugi posao. Bitno je naglasiti da je multiprogramiranje prva instanca gdje operativni sistem mora donositi odluku za korisnika.
Multiprogramirane operativne sisteme možemo uprediti sa poslom advokata. Advokat ima nekoliko klijenata kojima pruža svoje usluge. Dok jedan slučaj čeka da dođe na sud, advokat može da zastupa drugi slučaj aktivno na sudu. Za to vrijeme prvi klijent može sređivati papirologiju i sl.
Kod multiprogramiranih operativnih sistema se susreću dva nova pojma:
- job scheduling - što bi se moglo prevesti kao raspoređivanje poslova
- CPU scheduling - podrazumijeva dodjeljivanje procesora po određenom pravilu različitim poslovima, drugim riječima znači raspoređivanje procesora
Prvi pojam, job scheduling susreće se situaciji kada je potrebno dovesti nekoliko poslova koji se nalaze na nekom rezervnom skladištu, a koje se nazava job pool, u glavnu memoriju koja nije dovoljna da prihvati sve poslove odjednom. Tada operativni sistem treba odlučiti koje će poslove dovesti u memoriji.
Drugi pojam se odnosi na situaciju kada su već određeni poslovi dovedeni u memoriju i čekaju na izvršenje. Tada CPU treba odlučiti koje poslove da usluži, a da se sačuva ravnopravnost u izvršavanju različitih poslova.