Maturski, seminarski i diplomski radovi iz informatike.
Deo programa koji je u stanju izvršavanja naziva se PROCES. Ukoliko imate dva terminal windows pokazana na vašem monitoru, onda je najverovatnije reč o izvšavanju istog terminalnog programa dva puta – dakle, postoje dva terminalna procesa. Svaki terminalni prozor se najverovatnije izvršava u shellu. Svaki shell koji je u stanju izvršavanja je novi proces. Kada pozivate komandu iz shell-a odgovarajući program se izvršava u novom procesu; kada se proces završi shell proces nastavlja sa radom.
Napredni programeri često koriste višestruko kooperativne procese u jednoj aplikaciji, da bi tako
omogućili da aplikacija radi više od jedne stvari istovremeno, da bi povećali snagu aplikacije i da bi koristili već postojeće programe.
Većina funkcija koje služe za rad sa procesima, opisanih u ovom poglavlju, su slične onima iz drugih UNIX sistema. Većina njih je deklarisana u datoteci koja predstavlja zaglavlje <unistd.h>, ali treba proveriti uputstvo, za svaku od funkcija da biste bili sigurni.
Proces koji je u stanju izvršavanja možete ukinuti naredbom kill. Jednostavno, u komandnoj liniji odredite Identifikator procesa za proces koji će biti ukinut.
Naredba kill radi tako što procesu prosleđuje SIGTERM, odnosno signal za ukidanje.[1] Ovo uzrokuje ukidanje procesa, osim ako to izvršni program eksplicitno radi ili postoji maskiranje za SIGTERM signal.
SISTEMSKE OPERACIJE ZA STVARANJE I UNIŠTENJE PROCESA
Za stvaranje procesa potrebno je pristupiti odgovarajućoj izvršnoj datoteci sa inicijalnom slikom procesa, koja, između ostalog, sadrži mašinske naredbe i početne vrednosti (inicijalizovanih) statičkih promenljivih odgovarajućeg programa, ali i podatak o veličini (pojedinih delova) slike procesa.
Takođe, potrebno je zauzeti deskriptor procesa, kao i dovoljno veliku zonu radne memorije za sliku procesa. Svećto, kao i pravljenje slike procesa na osnovu njegovećinicijalne slike, odnosno popunjavanje atributa njegovog deskriptora, spada u nadležnost sistemske operacije stvaranja procesa.
Ovu operaciju poziva proces stvaralac i ona se obavlja u toku njegove aktivnosti. U okviru poziva sistemske operacije stvaranja procesa kao argument se navodi pitanja odgovarajuće izvršne datoteke.
Svi atributi deskriptora stvaranog procesa ne moraju biti navođeni u okviru poziva sistemske operacije stvaranja procesa, jer se jedan njihov deo nasleđuje iz deskriptora procesa stvaraoca (na primer, numerička oznaka vlasnika procesa, podatak o radnom direktorijumu procesa ili njegov prioritet), a jedan deo nastaje u toku stvaranja procesa (na primer, podaci o slici procesa).
Kada se, u okviru stvaranja procesa, stigne do pokretanja njegove aktivnosti, moguće je priključivanje procesora sa procesa stvaraoca na stvarani proces. To se desi, ako je prioritet stvaranog procesa viši od prioriteta procesa stvaraoca. U tom slučaju, proces stvaralac dospeva među spremne procese. Inače tamo dospeva stvarani proces.
Razlozi za stvaranje novog procesa su :
• nova grupa zadataka
• prijavljivanje na sistem
• potreba OS da omogući neki servis
• potreba tekućeg procesa za novim procesom
Za uništenje procesa potrebno je osloboditi njegov deskriptor i zonu radne memorije sa njegovom slikom. Ovo spada u nadležnost sistemske operacije uništenja procesa. Nju automatski poziva proces na kraju svoje aktivnosti, čime izaziva svoje samouništenje. Uništenje procesa se završava preključivanjem procesora sa uništavanog na neki od spremnih procesa. U okviru poziva sistemske operacije uništenja procesa uputno je predvideti argument, posredstvom koga uništavani proces može da saopšti svom stvaraocu svoje završno stanje, odnosno informaciju da li je aktivnost uništavanog procesa bila uspešna ili ne. Jasno, da bi proces stvaralac mogao iskoristiti ovakvu povratnu informaciju od stvorenog procesa, on mora da, u okviru poziva sistemske operacije stvaranja procesa, posebnim argumentom zatraži zaustavljanje svoje aktivnosti (i tako omogući preključivanje procesora na stvarani proces).
U ovom slučaju, proces stvaralac ne dospeva među spremne procese, nego među procese u stanju čekanja, jer čeka kraj aktivnosti stvorenog procesa. Takođe, u ovom slučaju sistemska operacija uništenja stvorenog procesa ima i zadatak da prevede proces stvaralac među spremne procese i tako omogući nastavak njegovećaktivnosti.
Razlozi za uništenje procesa su :
• Uspešno završenje procesa
• Prekoračenje vremenskog limita za izvršavanje
• Nedostupnost radne memorije
• Pokušaj pristupa nedozvoljenoj memorijskoj lokaciji
• Greška u zaštiti procesa
• Aritmetička greška
• Predugo čekanje na neki događaj
• Greška sa I/O
• Loša instrukcija
• Privilegovana instrukcija
• Nedostatak podataka
• Intervencija operatera ili OS
• Završetak procesa stvaraoca
• Zahtev stvaraoca
Sistemska operacija uništenja procesa se automatski poziva, kada se desi nepopravljiv prekid (izuzetak) u toku aktivnosti procesa.
NAČIN IZVRŠAVANJA PROCESA
Većina procesora podržava makar 2 načina izvršavanja: u kernel i korsničkom načinu rada (modu). Postoji bit u PSW registru (Program Status Word) koji označava u kom modu se izvršava proces.
Kernel (system, control) mode – ovo je “privilegovani” način izvršenja instrukcija, što
podrazumjeva čitanje CONTROL registra, osnovne ulazno-izlazne instrukcije, instrukcije koje se odnose na upravljanje memorijom, i pristup određenim memorijskim lokacijama. U ovom modu softver ima punu kontrolu nad procesorom i svim njegovim instrukcijama, registrima I memorijom. Korisničkim programima ovaj nivo kontrole nije potreban a iz sigurnosnih razloga nije ni poželjan.
User mode - manje privilegovan mod se naziva korisnički ili USER mod zato što se korisnički programi obično izvršavaju u njemu.
Ova dva moda su uvedena zbog toga što je potrebno zaštititi operativni sistem i ključne tabele operativnog sistema od korisničkih programa.
Stvaranje procesa
Tokom svog izvođenja proces može stvoriti novećprocese pomoću sistemskih poziva za stvaranje novog procesa. Novo stvoreni procesi nazivaju se deca (children) dok se proces koji ih je stvori naziva roditelj (parent). Naravno, novo stvoreni procesi, deca, mogu dalje stvoriti nove procese stvarajući stablastu hijerarhijsku strukturu procesa. Ovakva struktura operacijskog sastava Unix prikazana je slikom.
Uopšteno, proces tokom izvođenja koristi resurse računarskog sastava (procesor, memoriju, datoteke, U/I uređaje). Kada proces stvori novi proces on može zahtevati resurse direktno od operacijskog sastava ili može biti ograničen resursima koji su dodeljeni roditelju. U drugom slučaju roditelj može resurse ili u potpunosti prepustiti detetu ili ih deliti s njim. Pristup da su resursi koji se dodeljuju detetu podskup resursa dodeljenih roditelju osigurava da se sastav ne preoptereti zahtevima velikog broja novonastalih procesa.
Uz resurse koje novonastali proces dobije nakon stvaranja, može dobiti i određene ulazne podatke od svog roditelja. Kao primer može se navesti proces čija zadatak je ispisati sadržaj datoteke ulaz na ekranu. Tokom stvaranja novog procesa on dobija od roditelja ulazne podatke, a to su ime datoteke ulaz kao i U/I uređaj na koji se sadržaj datoteke mora ispisati. U zavisnosti o operacijskom sastavu potrebne resurse novonastali proces dobija ili od roditelja ili od operacijskog sastava.
S gledišta izvođenja procesa postoje sledeće dvećmogućnosti:
-roditelj nastavlja konkurentno izvođenje s detetom,
-roditelj čeka dok dete (deca) ne završe s izvođenjem.
Takođe, s gledišta memorijskog prostora koje dobiva diete na korišćenje postoje dvećmogućnosti:
-adresni prostor deteta je kopija adresnog prostora roditelja (sadržaj adresnog prostora roditelja kopira se u adresni prostor deteta),
-u adresni prostor deteta upisuje se određeni program.
Razlika između navedenih mogućnosti opisati će se na primeru operacijskog sastava Unix. Kod Unix-a svaki proces ima svoj identifikacijski broj (process identifier).Novi proces, dete, stvara se sistemskim pozivom fork. Adresni prostor deteta kopija je adresnog prostora roditelja. Ovakav pristup omogućava jednostavnu komunikaciju, odnosno prijenos podataka između roditelja i deteta. Oba procesa (roditelj i dete)