Procesi Flashcards

1
Q
  1. Što su procesi i kako se modeliraju?
A

Procesi su programi u izvođenju, uključuju trenutna stanja računala, registara i varijabli.
Modeliranje funkcionira na način da svaki program ima vlastiti tijek upravljanja te se istovremeno na CPU izvodi samo jedan proces.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q
  1. Navedite uobičajene događaje (i primjere) koji dovode do stvaranja procesa, te
    objasnite razliku u stvaranju procesa u UNIXu/Linuxu i Windowsima.
A
  1. Inicijalizacija sustava - kod boot-a stvaraju se prednji i pozadinski - daemons procesi.
    * Lista procesa: UNIX – ps, Windows – CTRL-ALT-DEL
  2. Izvođenje sustavskog poziva za stvaranje procesa od strane pokrenutog procesa (postojeći proces izaziva sustavski poziv za stvaranje novog procesa)
  3. Zahtjev korisnika za stvaranje novog procesa - više otvorenih prozora u WIndowsima
  4. Iniciranje nakupine poslova (batch job) – korisnik postavlja poslove sustavu na izvođenje, a kada OS odluči da ima resursa za neki posao, kreira novi proces i pokreće sljedeći posao iz reda čekanja.
  • Sustavski poziv: u UNIX-u, fork nakon kojega imamo dva procesa (roditelj i dijete) koji imaju jednaku sliku u memoriji, okolinu i otvorene datoteke. Dijete izvodi execve ili sličan poziv koji mijenja sliku u memoriji i pokreće novi program.
  • Sustavski poziv: u Windows-ima CreateProcess obavlja kreiranje procesa i učitavanje odgovarajućeg programa u novi proces. Poziv ima 10 parametara
  • U oba OS-a, nakon što je proces kreiran, i dijete i roditelj imaju vlastite odvojene adresne prostore
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q
  1. Navedite uobičajene razloge (i primjere) i uvjete završetka procesa.
A
  1. Normalni izlazak (svojevoljno), nakon obavljenog posla. Npr. kada prevoditelj prevede program, on izvodi sustavski poziv kojim OS-u govori da je gotov (exit ili ExitProcess), ali i da nešto treba ukloniti.

2.** Izlazak zbog pogreske** (svojevoljno), odnosno otkrivene pogreške. Npr. pokrenemo prevoditelj cc foo.c, a programa foo.c nema (Pop-Up prozor)

  1. Fatalna pogreska (nije svojevoljno), često zbog pogreške u programu. Npr. izvođenje nepostojeće instrukcije, referenciranje nepostojeće adrese u memoriji, dijeljenje s 0.
  2. Ubijanje od strane drugog procesa (nije svojevoljno), gdje proces izvodi sustavski poziv koji OS-u govori da ubije neki drugi proces. Ubojica mora biti ovlašten za ubijanje. U UNIX-u je to kill, a u Windows TerminateProcess.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q
  1. Ukratko objasnite hijerarhiju procesa i razliku između Windowsa i UNIXa
A
  • UNIX: proces, njegova djeca i daljnji nasljednici čine skupinu procesa. Kada korisnik tipkovnicom pošalje signal, on se prosljeđuje svim članovima skupine pridruženima tipkovnici, a proces ga može uhvatiti, ignorirati ili poduzeti neku “default” akciju.

Posebni proces init nalazi se u boot-u. Kad se pokrene, gleda broj terminala, a onda stvara jednog ili više novih procesa po terminalu. Oni čekaju da se netko prijavi, što opet može razgranati stablo procesa.

  • Windows: nema hijerarhije procesa – svi su procesi jednaki. Ipak, kreiranom procesu roditelj daje posebnu oznaku (token), zvanu rukovatelj (handle) koju koristi za nadzor djeteta. Dijete može oznaku dati drugom procesu.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q
  1. Navedite barem 10 parametara iz svih skupina parametara iz tablice procesa
    potrebnih pri implementiranju procesa.
A

Stack pointer,
Priority,
Registers,
Pointer to text segment,
Pointer to data segment,
Pointer to stack segment,
User ID,
Group ID,
Process ID

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q
  1. Objasnite postupak razmjene procesa i stanje suspendiranosti procesa.
A

Razmjena procesa je premještanje dijela ili cijelog procesa iz glavne memorije na disk. Kada nijedan od procesa u glavnoj memoriji nije u stanju spremnosti, operacijski sustav premješta jedan od tih procesa na disk, a u glavnu memoriju učitava neki od spremnih procesa iz reda čekanja ili dozvoljava kreiranje novog procesa.

Proces je u suspendiranom stanju kada biva premješten na disk, a iz njega se može vratiti samo u stanje čekanja.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q
  1. Što su niti i kako se modeliraju?
A

Niti (dretve = threads) su dijelovi procesa koji se sastoje od:
- PC- pokazuje koja se instrukcija sljedeća izvodi
- registara - čuvaju trenutne vrijednosti varijabli
- stoga - sadrži povijest izvođenja
Sve niti dijele isti adresni prostor (time i globalne varijable, otvorene datoteke, childeove…) pa nisu neovisne.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q
  1. Navedite osnovne razlike između procesa i niti, te navedite parametre koji su
    nužni pri implementiranju niti.
A

Razlike procesa i niti: procesi imaju različite adresne prostore,dok niti dijele isti; procesi predstavljaju način
objedinjavanja resursa, a niti postoje kao entiteti koji se izvode na CPU.
Parametri za implementaciju niti: PC, registri, stog, stanje

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

10.Navedite razloge korištenja niti i ukratko opišite jedan primjer korištenja niti, te
mogući način programskog ostvarenja višenitnosti.

A

Zašto niti? Zato što se u većini aplikacija više aktivnosti izvodi od jednom, pa povremeno mogu zablokirati.

Dekompozicijom aplikacije u višestruke slijedne niti koje se pokreću kvazi-paralelno, izvođenje je jednostavnije:
1. I procesi su omogućavali paralelizam, ali kod niti se radi o paralelnim entitetima koji dijele adresni prostor, a tako i sve pripadajuće podatke.
2. Niti nemaju pridružene resurse, pa ih je lakše kreirati i uništiti (oko 100x brže od procesa).
3. Performanse. Ukoliko rade samo na CPU, nema poboljšanja performansi, ali ako koriste CPU i U/I, te aktivnosti se
mogu preklopiti, a performanse poboljšati .
4. Niti su vrlo pogodne na višestrukim procesorima gdje je moguć i pravi paralelizam.

Primjer: Web poslužitelj (na zahtjev za stranicom, odgovara se njenim slanjem klijentu)
Neke stranice češće se dohvaćaju od ostalih. Njih poslužitelj smješta u glavnu memoriju, kako ne bi pristupao HDD-u. Taj sadržaj naziva se web cache. Dispečerska nit čita dolazne zahtjeve i bira slobodnu (blokiranu) radnu nit, te joj prosljeđuje zahtjev – tako je budi iz stanja blokirana u stanje pripravna. Tada radna nit provjerava je li traženi sadržaj u web cache-u. Ako nije, pokreće čitanje s diska, a druga radna nit prihvaća novi zahtjev.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

11.Objasnite razliku između niti na korisničkoj razini te niti na razini jezgre.

A

Korisnička razina- jezgra ne zna ništa o tome i rukuje s njima kao s jednonitnim procesima pa se mogu implementirati
i u OS koji ne podržava niti
Razina jezgre- zna za niti i rukuje s njima

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

12.Što su Pthreads i kojim pozivima se njima upravlja.

A

POSIX threads, dozvoljavaju programu da kontrolira više različitih tokova rada koji se odvijaju u isto vrijeme
->Pthread_create, Pthread_exit, …_join, …_yield, …_attr_init, …_attr_destroy

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

13.Što je kritični odsječak i zašto je potreban? Objasnite po potrebi i slikom.

A

Dio programa u kojem proces pristupa dijeljenoj memoriji. Zabranjuje da više od jednog procesa čitaju ili pišu iz ili u dijeljeni prostor podataka u isto vrijeme - osigurati međusobno isključivanje (mutual exclusion).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

14.Navedite četiri uvjeta koji omogućuju međusobno isključivanje.

A
  1. Dva procesa istovremeno ne mogu biti u kritičnom odsječku
  2. Ne rade se pretpostavke o brzinama i broju procesora
  3. Proces pokrenut izvan kritičnog odsječka ne može blokirati drugi proces
  4. Proces ne mora beskonačno čekati do ulaska u svoj kritični odsječak
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

15.Opišite razlike između poznatih problema kontrole istovremenosti u višenitnim
aplikacijama: međusobnog isključivanja, zastoja i gladovanja.

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

16.Navedite zahtjeve za komuniciranjem među procesima, te zahtjeve za komuniciranjem među nitima

A

Zahtjevi među procesima:
1. Prosljeđivanje informacije jednog procesa drugom procesu
2. Sprječavanje da procesi jedan drugom ulaze u kritične odsječke
3. Omogućavanje redoslijeda izvođenja koji poštuje međusobnu zavisnost među procesima

Zahtjevi među nitima:
1. primjenjiv za niti i to još lakše za niti u istom adresnom prostoru, a pod nadzorom procesa za niti u različitim
adresnim prostorima
2. jednako primjenjivo i za niti

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

17.Navedite postupke koji postižu međusobno isključivanje čekanjem, te ukratko opišite barem jedan od njih.

A

Postupci koji omogućuju isključivanje čekanjem:
1. Zabrana prekida
2. Varijable ključanja - proces pri ulasku u K.O. postavlja LOCK (dijeljena varijabla) iz 0 u 1; samo kad je 0 može ući
3. Strogo izmjenjivanje
4. Petersonovo rješenje
5. TSL instrukcija (test and set lock)

17
Q

19.Ukratko objasnite sljedeće pojmove i način njihovog međusobnog korištenja: semafor, muteks, futeks, monitor.

A
  • SEMAFORI - rješavaju problem istovremenog spavanja i proizvođača i potrošača uvođenjem varijable koja pamti broj
    buđenja-semafor. Metoda se sastoji od dvije operacije up i down(kao wakeup i sleep), koje proces može izvesti tek
    nakon provjere semafora - ako oba procesa spavaju i ne mogu završiti down, jedan od njih se budi da je završi
  • MUTEKS - pojednostavljeni semafor, dobar samo za upravljanje isključivanjem na dijeljenom resursu; ima samo 2
    stanja: 0 - otključano i 1-zaključano; za ulazak se poziva mutex_lock, a za izlazak mutex_unlock
  • MONITOR - skup procedura, varijabli i struktura grupiranih u paket ili modul; predstavlja sinkronizacijski mehanizam;
    samo 1 proces može biti u monitoru, ako drugi hoće ući procedura prvo ispituje ima li koji proces unutra
18
Q

20.Ukratko objasnite postupak izmjene poruka i na tome zasnovano rješenje
problema proizvođač-potrošač.

A

IZMJENA PORUKA - koriste se sustavski pozivi send (destination, &message) i recieve (source, &message)
Sve poruke su jednako duge, OS sprema poslane poruke kojesu poslane, a ne mogu biti primljene (ima ih N).
Potrošač šalje proizvođaču N praznih poruka, a on ako nešto ima šalje natrag punu poruku. Svaki proces ima jedinstvenu
adresu na koju je svaka poruka adresirana. Koristi se u paralelnim sustavima.

19
Q

21.Ukratko objasnite i skicirajte način rada i ulogu barijera.

A

Neke aplikacije podijeljene su u faze, pri čemu proces ne može ići u
sljedeću fazu (blokira se), dok svi procesi ne budu spremni za ulazak u tu fazu. Zato se iza svake faze stavlja barijera
(poziv barrier). Proces pristupa barijeri, od svih procesa, jedan blokira barijeru, posljednji proces dolazi, svi prolaze.

20
Q

22.Objasnite pojam i razloge raspoređivanja, te navedite podjelu, vrste i ciljeve
algoritama raspoređivanja.

A

RASPOREĐIVANJE - postupak izrade rasporeda, zbog pseudoparalelnog izvođenja
- Kada raspoređivati:
1. kada se kreira novi proces, odlučiti pokreće li se child ili parent;
2. na kraju jednog izabrati slijedeći proces;
3. kada proces blokira na U/I,drugi se mora pokrenuti;
4. kada dođe do U/I prekida, proces koji je blokirao na U/I pokreće se
- Podjela algoritama s obzirom na obradu prekida sata:
- neprekidni (proces se izvodi do blokiranja ili čekanja)
- prekidni (proces se pokrene i izvodi neko fiksno vrijeme, a onda se pokreće drugi).
- Vrste algoritama raspoređivanja:
- batch (ne čekaju korisnici nestrpljivo, malo prekida ili uopće ne – OK)
- interaktivni (prekidanje, jer su procesi hitni korisniku, u protivnom crash)
- za rad u stvarnom vremenu (u prvom redu se pokreće proces bitan za dovršetak određene aplikacije,
prekidanje da, ali ne nužno)
- Ciljevi: - SVI SUSTAVI - fair share of CPU, poštivanje pravila, svi dijelovi sustava zaposleni
- BATCH SUSTAVI - maksimizirati broj poslova po satu, minimizirati vremena između poslova, držati CPU jedinicu
stalno zaposlenu
- INTERAKTIVNI SUSTAVI—-brzo reagiranje na zahtjev, proporcionalno udovoljiti svim korisnicima
- REALTIME SUSTAVI—poštivati zadane rokove, predvidljivost

21
Q

23.Naučite za zadani skup zadataka po jedan primjer raspoređivanja koristeći:
FCFS, SJF i SRTN algoritam.

A

FCFS (First-Come First-Served) - jednostavan, neprekidan, jedan red, kratki poslovi čekaju vrlo duge
SJF (Shortest Job First) - neprekidan, po SJF pojedinačna i prosječna vremena završetka poslova su bolja
- optimalan samo ako su poslovi istovremeno pripravni
SRTN (Shortest Remaining Time Next) - prekidan, statičan, dolazak kraćeg procesa izaziva prekid

22
Q

24.Objasnite što je trorazinsko raspoređivanje.

A
23
Q

25.Naučite za zadani skup zadataka po jedan primjer raspoređivanja koriteći: Round
Robin, raspoređivanje na više razina, višestruke redove, Shortest Process Next,
Guranteed Scheduling i Fair-Share Scheduling.

A
24
Q

26.Napišite izraz i ukratko objasnite uvjet rasporedivosti u sustavima stvarnog
vremena.

A
25
Q

27.Navedite i opišite osnovne grupe procesa u operacijskom sustavu.

A

Dvije osnovne grupe operacijskih sustava:
- jednokorisnički (desktop) – DOS, Windows 3.x/95/98/Me/XP, Linux, MAC OS,…
- višekorisnički (network) - UNIX, Windows Server NT/2000/2003, Nowell Netware, Mainframe NOSs (Digital Equipment
VMS, Hewlett-Packard MPE, IBM MVS,…)
Jednokorisnički operacijski sustavi sve više poprimaju obilježja mrežnih operacijskih sustava, podjela prema ulogama
računala: - poslužitelji: datotečni, aplikacijski, database, mail, web…
- desktop računala: multimedija, CAD radne stanice, uredska računala, računala za igru…
- embedded uređaji: mp3 playeri, uređaji posebne namjene, …
- real-time računala: upravljanje RT procesima – CNC strojevi za obradu materijala, …
Sve verzije modernih mrežnih operacijskih sustava podržavaju
- višekorisnički rad
- višezadaćnost
- raspodijeljeno procesiranje
- visok stupanj sigurnosti