310 likes | 619 Views
Upravljanje procesima. Ferenc Kasa. Cilj. Šta je to proces? Lična karta procesa (kontrolni blok procesa)? Stanja procesa Algoritmi za upravljanje (raspoređivanje) procesa. Operativni sistemi. VS. Prva asocijacija na procese. ?. Programi CPU Memorija End Process. Proces - Definisanje.
E N D
Upravljanje procesima Ferenc Kasa
Cilj • Šta je to proces? • Lična karta procesa (kontrolni blok procesa)? • Stanja procesa • Algoritmi za upravljanje (raspoređivanje) procesa
Prva asocijacija na procese ? Programi CPU Memorija End Process
Proces - Definisanje 1 • Program koji nije aktivan predstavlja datoteku (skup datoteka) na disku – pasivan odnos. • Aktivan program predstavlja proces – dimačka priroda. • Procesu se dodeljuju resursi, a OS kreira kontrolni blok procesa (Process Control Blok) • Resursi: Memorija, Procesor... • Upravljanje: End process
Proces - Kreiranje 2 • Kreiranjem procesa pravi se njegova slika u memoriji. Reprezentacija procesa ima tri memorijska aspekta. • Oblast koda - tu je smešten mašinski kod procesa • Oblast podataka – tu se čuvaju globalne promenjive • Polje steka – Čuvanje parametara funkcija, međurezultata, lokalnih promenjivih
Kontrolni blok procesa – Lična karta Ime procesa 3 ID Procesa Stanje procesa (Ready, Wait, Run) Kontekst procesa Prioritet
Dijagram stanja – kratkoročno planiranje procesa 4 • Proces ima tri osnovna stanja RUN, READY i WAIT.
Dijagram stanja – kratkoročno planiranje procesa 4 • Stanje READY – proces je spreman za izvršavanje (čeka da dobije glavni resurs - procesor) • Sanje WAIT – proces je u stanju čekanja (blokiran). • Stanje Run – proces je aktivan dobio je resurs – procesor. • Iz stanja RUN u READY proces prelazi ukoliko mu je isteklo vreme dodeljeno za korišćenje procesora. • Iz stanja RUN u stanje WAIT proces prelazi ukoliko je za njegovo izvršavanje potreban neki resurs (na primer U/I) koji u tom trenutku nije dostupan. • U stanju RUN se nalazi samo jedan proces • Dok se u stanju READY i WAIT nalazi više procesa organizovanih u redove.
Dijagram stanja – Srednjeročno planiranje 4 • Imamo dva nova stanja: Suspendovano čekanje i suspendovano spreman stanje.
Dijagram stanja - srednjeročno planiranje procesa 4 • Proces prelazi u suspendovano stanje – proces se iz operativne memorije prebacuje na spoljašnju memoriju. • Operativni sistem prebacije procese za koje se procenjuje da neće biti potrebe da se izvrše u skorije vreme. • U operativnoj memoriji ostaje samo kontrolni blok procesa. • Slanje procesa iz operativne memorije u spoljašnju, predstavlja princip rada virtuelne memorije, odnosno time se „proširuje“ operativna memorija.
Kriterijumi raspoređivanja • Protočnost – Propusna moć sistema • Vreme čekanja Tw • Ukupno vreme u sistemu • Vreme odziva
Algoritmi raspoređivanja procesa 5 • Prvi došao prvi poslužen (First-Come, First-Served – FCFS) • Reši prvo najkraći proces (Shortest-Job-First ) • Kružni algoritam (Round Robin)
Prvi došao prvi poslužen • Najjednostavniji algoritam. • Proces koji je prvi u redu čekanja dobiće pristup procesoru. • Pošto istekne vremenski kvant tekućem procesu, sledeći proces iz reda čekanja prelazi u izvršno stanje (RUN). • Novi proces (kontrolni blok procesa) se pozicionira na kraj reda. • Problem kod ovog algoritma je veliko srednje vreme čekanja – nije pogodan za interaktivne sisteme.
Vremenski dijagram – Prvi došao prvi poslužen + Jednostavan za realizaciju - Veliko vreme čekanja - Dugi procesi mogu da zaguše kratke procese (mala protočnost) P1 - 24 P2 - 3 P3 -3 Prosečno vreme čekanja
Vremenski dijagram – Prvi došao prvi poslužen Ukoliko se situacija malo promeni... Prvi u listi su kratki procesi, srednje vreme čekanja i protočnost se značajno poboljšava P1 - 3 P2 -3 P3 - 24 Prosečno vreme čekanja
Najkraći proces sledeći • Svakom procesu se dodeljuje vremenski kvant (vreme) za koje se smatra da je dovoljno za izvršenje. • Vremenski kvant se za procese predviđa na osnovu prethodnog iskustva (koliko mu je trebalo vremena za izvršenje). • Postoje dve varijante ovog algoritma • Bez prekidanja procesa – kad se CPU dodeli procesu ne oduzimam mu se dok proces ne završi sa radom. • Sa prekidanjem procesa – Ukoliko se pojavi novi proces čije je vreme izvršavanja kraće od vremena koje je potrebno da se završi tekući proces, novi proces prekida tekući.
Vremenski dijagram – Najkraći posao prvo – bez prekidanja U slučaju da se desi situacija da dva ili više procesa imaju isti vremenski kvant za izvršenje, sporna situacija se rešava primenom algoritma „prvi došao prvi poslužen“ + Smanjeno srednje vreme čekanja + Dobra protočnost P1 - 7 P2 -4 P3 - 1 P4 -4 Prosečno vreme čekanja
Vremenski dijagram – Najkraći posao prvo – Sa prekidom P1 - 5 P1 - 2 P2 - 2 P2 - 2 P3 - 1 P4 -4 Prosečno vreme čekanja
Algoritam kružnog izvršavanja – Round Robin • Svakom procesu se dodeli isti vremenski kvant (Q) za korišćenje procesora. • Po isteku vremenskog kvanta, tekući proces ide na kraj reda za čekanje, a procesor se dodeljuje sledećem procesu u redu. • I tako u krug....
Vremenski dijagram – Kružno izvršavanje • Svim procesima se dodeljuje isti vremenski kvant Q i ako imamo N procesa ni jedan proces na izvršno stanje ne čeka duže od (N-1)*Q. Vremenski kvant je Q=1
Vremenski dijagram – Kružno izvršavanje + Pogodan za interaktivne sisteme. - Moguća pojava „premašenje“ (OverHead)u slučaju da je Q< od vremna servisiranja prekida i nastavka procesa. Vremenski kvant je Q=1
Šta smo naučili? • Šta je to proces? • Ko upravlja procesima? • Koja su osnovna stanja procesa? • Kada proces prelazi iz stanja RUN u stanje READY? • Obajsni algoritam kružnog dodeljivanja! • Koje su slabe tačke algoritma kružnog dodeljivanja? • Objasni algoritam koji favorizuje proces sa najkraćim vremenom izvršavanja sa prekidanjem! • Kako će izgledati vremenski dijagram iz prethodnog primera (kružna dodela), ako postavimo vremenski kvant na Q=7.
PREZENTACIJU MOŽETE PREUZETI SA BLOGA WWW.LIMUNADA.WORDPRESS.COM
Zadatak 1 Procesi su zadati donjom tablicom, skiciraj dijagrame sledećih algoritama: Prvi došao prvi poslužen (First Come First Served) Najkraći posao prvo – bez prekidanja (Shortest Job Firs) Najkraći put prvo – sa prekidanjem (Shortest Remaining Time Firs) Kružni algoritam sa vremenskim kvantom Q=2
Zadatak 2 Koristeći algoritam najkraći posao prvo – varijanta sa prekidom, nacrtaj vremenski dijagram za sledeći red procesa.
Kriterijumi raspoređivanja • Protočnost – Propusna moć sistema • To je broj procesa koji se realizuju za jedinicu vremena • Vreme čekanja Tw • To je vrem koje proces provede od trenutka dolaska u red čekanja ( stanje READY) do trenutka prelaska u izvršno stanje (RUN). • Vreme prebivanja u sistemu – Ukupno vreme u sistemu • Vreme od trenutka ulaska procesa u sistem (READY) do trenutka kad se proces u celosti završi. • Vreme odziva • Vreme koje je potrebno da se dobiju prvi rezultati izvršavanja procesa (od predaje zahteva do dobijanja rezultata)
Prioritetni algoritmi • Savkom procesu se dodenjuje ceo broj koji nam govori kog je prioriteta proces. • Po pravilu manji broj predstavlja veći prioritet. • Ako imamo u redu za čekanje dva i više procesa sa istim prioritetom izbor ide po sistemu „Prvi došao prvi poslužen“. • Postoje dve varijante ovog algoritma • Sa prekidanjem – Ukoliko se pojavi proces sa većim prioritetom, izvršavanje tekućeg se prekida • Bez prekidanja • Najveći problem ovog algoritma je to što procesi sa niskim prioritetom praktično neće doći nikad na red za izvršenje. • Ova pojava se naziva gladovanje – Starvation. • Rešenje je da se postepeno povećava prioritet procesa, srazmerno vremenu čekanja. • Procesu koji je već bio u stanju RUN spuštamo prioritet.