Professional Documents
Culture Documents
Operativni sistemi
Milena Vujo sevi c-Jani ci c
www.matf.bg.ac.rs/~milena
Operativni sistemi
Procesi
Procesi
Operativni sistemi
Procesi
Procesi
Proces je program u izvr senju. Linux omogu cava istovremeno izvr savanje vi se procesa. Ovakvi procesi se izvr savaju u odvojenim virtualnim adresnim prostorima. Komunikacija izmedu procesa je mogu ca samo pomo cu bezbednih mehanizama koje omogu cava i kontroli se kernel.
Operativni sistemi
Procesi
Procesi
Procesi u toku izvr savanja koriste razne resurse sistema (procesor, memorija, fajlovi, zi cki uredaji). Linux mora da upravlja ovim resursima u cilju pravednog izvr savanja svih procesa. Najva zniji resurs je procesor i prilikom upravljanja procesima bitno je maksimizovati njegovu iskori s cenost. Procesi se identikuju identikacionim brojevima (PID).
Operativni sistemi
Procesi
Procesi
Informacije o procesima se cuvaju u nizu task_struct struktura (tzv. task vektor, tabela procesa) koja sadr zi slede ce informacije:
Stanje
Izvr sno proces se izvr sava ili je spreman za izvr savanje Cekanje proces ceka neki dogadaj kao sto je signal sistema ili hardverski resurs. Zaustavljen proces mo ze da se vrati u izvr sno stanje Zombi proces koji je zavr sio izvr savanje, ali su njegovi podaci i dalje u task vektoru.
Operativni sistemi
Procesi
Procesi
Informacije o rasporedu (politika, prioritet, preostalo vreme...) Identikatori (uid, gid, eektivni uid i gid...) Informacije o mehanizmima meduprocesne komunikacije Pokaziva ci na roditeljski proces, decu i procese sa istim roditeljem. Informacije o vremenu izvr savanja i tajmerima. Informacije o otvorenim fajlovima. Informacije o virtualnoj memoriji. Sadr zaj registara procesora (processor context).
Operativni sistemi
Procesi
Init
Po pokretanju sistema kreira se jedan proces init ciji je PID 1 i koji vr si inicijalizaciju sistema npr. vezivanje root fajlsistema i pokretanje osnovnih procesa iz /etc/inittab (Ubuntu /etc/init). init je krajnji roditeljski proces svih procesa na sistemu.
Operativni sistemi
Procesi
Procesi
Hijerarhija: roditelj, dete, siro ce, zombi Roditelj proces koji kreira novi proces, novi proces je njegovo dete Ukoliko roditelj zavr si sa radom pre deteta, ili nasilno bude prekinut, dete postaje siro ce i usvaja ga proces Init Kada dete zavr si sa radom, o cekuje se da njegov roditelj pro cita exit status deteta, ukoliko roditelj to ne uradi, dete postaje zombi Zombi ne dr zi memoriju, ve c samo PID i unos u tabeli procesa Postojanje zombija u sistemu ukazuje na nekakvu gre sku u roditelju (ukoliko postoje du zi vremenski period) Zombi se ne mo ze ubiti, mo ze se ubiti samo roditelj, cime zombi postaje siro ce i njegov status razre sava init proces
Milena Vujo sevi c-Jani ci c Operativni sistemi
Procesi
Kreiranje procesa
Operativni sistemi
Procesi
Prvi proces je init. Nakon inicijalizacije sistema, init kreira svoju kopiju pomo cu fork, a zatim kopija pomo cu exec pokre ce agetty program. agetty otvara tty port, tra zi login ime i kada korisnik unese svoje ime pokre ce login program pomo cu exec (da bi se tra zila lozinka). nakon uspe snog logovanja, login pokre ce bash pomo cu exec. bash pravi kopiju pomo cu fork, a ona pomo cu exec pokre ce program (npr. ls).
Operativni sistemi
Procesi
Vrste procesa
Operativni sistemi
Procesi
Demonski
Demonski procesi su serverski procesi koji se izvr savaju u pozadini. Kod Windows sistema, ovakvi procesi se nazivaju servisi Oni se obi cno pokre cu u vreme podizanja sistema i cekaju dok nekom procesu ne zatreba njihova usluga. init, syslogd, sendmail, crond, agetty, inetd, named, httpd...
Operativni sistemi
Procesi
Interaktivni procesi
Interaktivni procesi se pokre cu i kontroli su iz terminala. Interaktivni proces mo ze biti izvr savan vezan za terminal kada samo on mo ze da prima ulaz sa terminala ili u pozadini kada je terminal slobodan za pokretanje drugih programa. Procesi se mogu poslati u pozadinu ili se iz nje vratiti na terminal.
Operativni sistemi
Procesi
Komanda ps
ps lista trenutne procese ps [-options] ps --help ps -e ili ps -A prikazuje PID, TTY, TIME i CMD svih procesa na sistemu ps -f full: prikazuje dodatne informacije o svim procesima koji su pokrenuti iz teku ceg shell konteksta ili Terminal prozora. U dodatne informacije spadaju: ID korisnika koji je pokrenuo komandu koja je inicirala proces (UID), identikator proces roditelja (PPID), prioritet procesa (C) i vreme kada je proces po ceo sa izvr senjem (STIME). ps -u UID prikazuje PID, TTY, TIME i CMD svih procesa koje je inicirao korisnik ciji je UID naveden kao parametar. opcija --forest
Milena Vujo sevi c-Jani ci c Operativni sistemi
Procesi
Komanda top
top dinami cki pogled na sistem, sli cno kao system monitor, samo tekstualni interfejs
Operativni sistemi
Procesi
Vreme
Komanda time procesa Odredivanje vremena potrebnog za izvr senje
Komanda time na ekranu prikazuje tri vremena: realno (real), sistemsko (system) i korisni cko (user). Realno vreme obuhvata interval od zadavanja komande do potpunog izvr senja i povratka komandnog prompta, uklju cuju ci i vreme cekanja na ulaz, izlaz i ostale dogadaje. Korisni cko vreme je koli cina procesorskog vremena utro sena na samo izvr senje procesa. Sistemsko vreme je vreme koje je kernel utro sio na opslu zivanje procesa.
Milena Vujo sevi c-Jani ci c Operativni sistemi
Procesi
Signali
Signali predstavljaju na cin meduprocesne komunikacije. Slu ze da obaveste procese o nekim dogadajima u sistemu. Procesi mogu na neki na cin da odgovore na signale ili da ih ignori su. Odgovor na signal mo ze da deni se proces, ukoliko ga ne deni se izvr sava se podrazumevana akcija Jedini signali koji se ne mogu ignorisati i predenisati su SIGKILL i SIGSTOP. Zavisno od implementacije, u svakom UNIX sistemu je denisano 30 do 40 signala, od kojih je svaki predstavljen imenom i brojem pogledati signal.h (locirati ga sa locate, pogledati default action za signale). Tu su i real-time signali.
Milena Vujo sevi c-Jani ci c Operativni sistemi
Procesi
Slanje signala
Komanda stty stampa ili menja karakteristike terminala stty -a Ctrl-C Ctrl-Z Ctrl-\ stampa karakteristike terminala SIGINT SIGSTOP SIGQUIT
kill salje odgovaraju ci signal procesu koji se zadaje koriste ci PID, opcija -l stampa imena signala i odgovaraju ce brojeve, info kill killall salje signal procesu a kao argument prima ime procesa, a ne PID kao kill, po default-u salje SIGTERM signal info killall
Milena Vujo sevi c-Jani ci c Operativni sistemi
Procesi
Slanje signala
Koji signal treba poslati procesu? Ne treba zapo ceti sa KILL, ve c prvo probati sa TERM Ukoliko uni stenje ne uspe, nastaviti signalom INT Ukoliko uni stenje ne uspe, nastaviti signalom HUP Ukoliko uni stenje ne uspe, nastaviti signalom QUIT, ovaj signal daje sliku procesa Ukoliko je proces i dalje ziv, uni stava se signalom KILL (kill -s 9 PID)
Operativni sistemi
Procesi
Slanje signala
Signal HUP hang-up se koristi prilikom odjavljivanja sa sitema ovaj signal se salje svim procesima koji su pokrenuti u pozadini i njime se zaustavlja rad tih procesa kada se korisnik odjavi sa sistema Ukoliko zelimo da neki proces nastavi izvrsavanje i nakon odjavljivanja korisnika sa sistema, koristi se nohup komanda: nohup komanda argumenti Na taj na cin pokrenuta komanda postaje imuna na neke signale i nastavlja sa izvr savanjem i nakon odjavljivanja sa sistema
Operativni sistemi
Procesi
fg prebacuje pozadinski posao u terminal argument je broj pozadinskog posla (moze se procitati sa jobs), ukoliko je jedinstveno ime posla onda moze sa imenom, ukoliko je samo jedan pozadinski posao mo ze i bez argumenta bg prebacuje posao u pozadinu & prilikom pokretanja pokre ce u pozadini
Operativni sistemi
Procesi
Ve zbanje
Izlistati aktivne procese komandom ps Izlistati aktivne procese komandom ps sa opcijom -A Pokrenuti proces evince sa argumentom aos13.pdf u pozadini Izlistati sve pozadinske procese (komanda jobs) Prebaciti pozadinski proces evince u terminal Poslati procesu SIGSTOP signal Izlistati sve pozadinske procese i obratiti paznju na status procesa Prebaciti proces ponovo u pozadinu Izlistati pozadinske procese i obratiti paznju na status procesa Pratiti stanje sistema koriste ci komandu top
Milena Vujo sevi c-Jani ci c Operativni sistemi
Procesi
Pitanja
je proces? Sta Koja su cetiri osnovna stanja procesa? Koji se proces prvi pokre ce prilikom pokretanja operativnog sistema? Koji sistemski poziv slu zi za kreiranje novog procesa? su demonski procesi? Sta su signali? Sta Nabroj imena i brojeve tri signala. Koji signali se ne mogu ignorisati? Kako se salje SIGSTOP? Kako se salje SIGINT?
Milena Vujo sevi c-Jani ci c Operativni sistemi