p-procesi_2005_06

9
Fakultet informacijskih tehnologija [email protected] SOS::Predavanja Copyright © by: FIT 1 Datum: 31.03.2005 Predavanje Uvod u Operativne Sisteme Sadržaj Procesi (Dio #1)

Upload: goran-petrovic

Post on 16-Sep-2015

218 views

Category:

Documents


3 download

TRANSCRIPT

  • Fakultet informacijskih tehnologija

    [email protected]

    SOS::Predavanja Copyright by: FIT

    1

    Datum: 31.03.2005

    Predavanje

    Uvod u Operativne Sisteme

    Sadraj

    Procesi (Dio #1)

  • Fakultet informacijskih tehnologija

    [email protected]

    SOS::Predavanja Copyright by: FIT

    2

    Procesi Ukratko, proces moemo definirati kao program u izvravanju. Centralna tema operativnih sistema su procesi, t.j. nain implementacije procesa od strane operativnog sistema. Razlog tome je to sve ostale komponente operativnih sistema ovise o nainu implementacije procesa. Moderni kompjuteri obavljaju vie stvari istovremeno. Primjer: izvravanje korisnikog programa, printanje na ekran ili printer itd. Kao to smo ranije naveli, kod multiprogramming sistema CPU switch-uje poslove (procese):

    Iako se svo vrijeme na procesoru nalazi samo jedan proces korisnici sistema stiu iluziju paralelizma iluziju da raunar obavlja vie stvari istovremeno.

    Model procesa

    Slika koja slijedi grafiki ilustrira multiprogramiranje 4 programa Ukoliko kompjuter posjeduje samo jedna procesor, samo jedan program e biti u

    stanju da izvrava u odreenom momentu. Iluzija paralelizma se stie brzim switchovanjem procesa sa/na CPU. Kod

    interaktivnih sistemam tipina situacija izvravanja je takva da procesi (programi u izvravanju) naizmjenino koriste CPU, kao to je prikazano slikom (c).

    Slika : (a) Multiprogramiranje 4 programa. (b) Konceptualni model 4 nezavisna, sekvencijalna procesa. (c) Samo jedan program je aktivan u svakom momentu (Lit. br. 3) Koncept Procesa

    Koja je zapravo osnovna razlika izmedju programa i procesa? Program statian entitet Proces dinamian entitet

    Analogija kuhinjsko-orjentisanog informatiara nam moe pomoi da lake sagledamo gore pomenutu razliku: Kuhar pravi kola za svoju ker. Kuhar posjeduje recept za kola te ima pristup svim potrebnim inputima za pravljenje kolaa: jaja, eer, vanilija itd.

    Po ovoj analogiji: Kuhar = procesor (CPU) Jaja, eer vanilija = input data recept = program

  • Fakultet informacijskih tehnologija

    [email protected]

    SOS::Predavanja Copyright by: FIT

    3

    Proces je aktivnost koja se sastoji od informatiara (CPU-a) koji ita recept (program), dodaje sastojke (input podatke), pee kola.

    Operativni sistem izvrava razne programe istovremeno. (npr. MS Word, Web browser, Photoshop)

    Proces je program u izvravanju; izvravanje procesa mora se odvijati sekvencijalno.

    Medjutim, proces (pored programskog koda) sadri i: program counter - PC stack

    data section (podatkovnu sekciju)

    Procesi mogu da dijele odredjene resurse. Na primjer: Vie otvorenih MS Word dokumenata predstavlja vie procesa koji koriste isti programski kod Stanje Procesa

    Za vrijeme svog ivotnog vijeka procesi prolaze kroz razliita stanja. U mogua stanja spadaju:

    Novo (new state): Proces se kreira. Izvravanje (running state): Proces je u fazi izvravanja. ekanje (waiting state): Proces je u stanju oekivanja nekog dogaaja,

    obino neophodnog za nastavak izvravanja (uglavnom se radi o ekanju na neku vrstu inputa).

    Spreman (ready state): Proces je privremeno zaustavljen kako bi se dopustilo da drugi proces izvrava.

    Zavreno (terminated state): Proces je zavrio (sa izvravajem) Dijagram Stanja Procesa

    Slika : Gornja slika prikazuje dijagram stanja procesa, koji ilustrira mogua kretanja procesa za vrijeme svog ivotnog vijeka. Strelice oznaene kao Process Scheduler prikazuju promjene stanja na koje utie Process Scheduler (raporediva procesa) o kojem e vie govora biti neto kasnije.

    Process Scheduler

  • Fakultet informacijskih tehnologija

    [email protected]

    SOS::Predavanja Copyright by: FIT

    4

    Kontrolni Blok Procesa Process Control Block (PCB) Svaki proces je predstavljen sa svojim Kontrolnim Blokom (PCB-om), koji pohranjuje informacije o procesu. Ove informacije nisu uvijek iste za sve operativne sisteme. Kod veine operativnih sistema ove informacije obuhvataju informacije o:

    Stanju procesa (Process State) Programskom brojau (Program counter) CPU registrima (CPU registers) CPU scheduling informacijama informacije vezane za rasporeivanje

    procesa (npr. prioritet procesa) Memory-management informacijama (ukljuuje limit registre) Accounting informacijama (vremenski limiti, brojevi procesa, itd.) I/O status informacijama (I/O zahtjevi, informacije o I/O ureajima

    alociranim na specifian proces, itd.)

    Slika: Process Control Block: sadri mnoge informacije asocirane sa specifinim procesom

  • Fakultet informacijskih tehnologija

    [email protected]

    SOS::Predavanja Copyright by: FIT

    5

    CPU (Process) Switch Kako bi bio u stanju da omogui iluziju paralelizma operativni sistemi switch-uje procesa sa I na CPU. Ovo switch-ovanje naziva se Process Switch ili CPU Switch, i ilustriran je slikom koja slijedi:

    Slika 4: Prikaz CPU switch-ovanja sa jednog procesa na drugi. Prolikom Process Swtich-ovanja operativni sistem pohranjuje informacije koje se tiu trenutnog stanja procesa koji se skida sa procesora (P0), te uitava informacije procesa koji se stavlja na procesor(P1). Kasnije, kada OS dozvoli procesu P0 da nastavi sa izvravanjem, uitava informacije o njegovom trenutnom (informacije koje je prethodno pohranio).

    To bi po analogiji informatiara kuhara izgledalo ovako:

    Dok na informatiar pravi kola (izvrava jedan proces) njegovog sina je ujela pela. Informatiar biljei dokle je stigao u receptu (stanje trenutnog procesa se pohranjuje), vadi upustvo prve pomoi i poinje slijediti njegove instrukcije. Ovdje informatiar (procesor) prekida sa jednim procesom (pravljenje kolaa), te switch-uje na drugi proces (ukazivanje prve pomoi), svaki od kojih ima drukiji program (recept, odnosno upustvo za prvu pomo). Nakon to informatiar podmiri sina, vraa se na mjesto gdje je stao u procesu pravljenja kolaa te nastavlja.

    Ukratko, prilikom Process Switching-a deava se sljedee: Procesi se zaustavljaju

  • Fakultet informacijskih tehnologija

    [email protected]

    SOS::Predavanja Copyright by: FIT

    6

    Procesi moraju biti restartovani u istom stanju kao i kad su zaustavljeni

    Informacije o procesu moraju biti pohranjene

    Operativni sistem je taj koji treba da implementuje gore navedene stvari Context switch vrijeme predstavlja overhead (dodatan troak), jer sistem za vrijeme

    switch-anja ne obavlja neke druge korisne poslove. Context switch vrijeme je ovisno o hardverskoj platformi

    Proces Scheduling Queues Prije nego detaljnije pojasnimo ulogu process schedulera korisno je definirati pojam scheduling redova:

    Ready queue skup svih procesa koji se nalaze u glavnoj (main) memoriji, koji su spremni (ready) i ekaju (waiting) na izvravanje.

    Device queues (red ureaja) skup procesa koji ekaju na odgovarajui I/O ureaj. Svaki uredjaj obino ima svoj zaseban device queue.

    Ovi redovi su ilustrirani slikom koja slijedi:

    Slika: Ready Queue i razliiti I/O redovi ureaja Redovi su obino implementirani kao linked liste. Procesi se pomjeraju izmeu razliitih scheduling redova u toku njihovih ivotnih ciklusa. Na primjer, kada proces zatrai odredjenu input-output operaciju na disk koji

  • Fakultet informacijskih tehnologija

    [email protected]

    SOS::Predavanja Copyright by: FIT

    7

    je trenutno busy, operativni sistem moe da ga stavi na listu ekanja za disk (na ovoj listi mogu ekati i drugi procesi). Kada process konano obavi neophodnu input-ouput operaciju operativni sistem ga vraa u ready queue. Proces scheduler potom moe da iz scheduling queue-a izabere sljedei proces za izvravanje.

    Process Scheduler Modul operativnog sistema koji je zaduen za process scheduling (rasporedjivanje procesa) naziva se Process Scheduler. Ovisno o operativnom sistemu, OS moe da implementira vie nivoa schedulinga:

    Short-term scheduler (ili CPU scheduler) izabire slijedei proces (izmeu procesa ready za izvravanje) koji bi trebao biti izvren te mu alocira CPU.

    Long-term scheduler (ili job scheduler) je scheduler koji izabire procese koji bi

    trebali biti pomjereni u ready queue, tj. uitava ih sa pomone memorije u glavnu. - UNIX, Windows nemaju long term scheduler-e

    Short-term scheduler se poziva veoma frekventno (radi se o milisekundama) mora biti brz radi kratkog vremena izvravanja pojedinih procesa.

    Predstavlja velik overhead za sistem (na pr. Ukoliko vrijeme neophodno da se obavi process scheduling iznosi 10ms, a vrijme koje dati proces provede na procesoru (prije nego zavri ili bude switch-ovan) iznosi 100ms onda se 9% CPU vremena potroi samo na process switchovanje).

    Long-term scheduler se poziva mnogo rjee (radi se o sekundama ili minutama). Long-term scheduler kontrolie stepen multiprograminga, tj. broja procesa koji se nalaze u radnoj memoriji.

    Neki od operativnih sistema posjeduju i dodatni nivo scheduling-a: Medium Term Scheduler. Ovaj scheduler implementuje swapping izmjetaje procesa iz radne memorije na pomonu (disk) radi smanjivanja stepena multiprogramiranja na nain da isti procesi kasnije mogu biti vraeni u radnu memoriju (RAM) te nastaviti izvravati (od mjesta do kojeg su bili doli). Swapping se obino implementuje radi:

    - poboljsanje mixa procesa - RAM ogranicenja (nedostatka radne memorije)

    Slika: Dodatak Medium Term Scheduler-a na queueing dijagram

  • Fakultet informacijskih tehnologija

    [email protected]

    SOS::Predavanja Copyright by: FIT

    8

    Procesi generalno mogu biti opisani na slijedei nain:

    I/O-bound (I/O vezani) procesi Procesi koji troe vie vremena na I/O nego na komputacije; posjeduju mnoga kratkovremena CPU izvravanja.

    CPU-bound (I/O vezani) procesi Procesi koji troe vie vremena na komputacije, a manje na Input/Output; manji broj veoma dugih CPU izvravanja

    Slika

    Slika: Prikaz a) CPU bound procesa, i b) I/O bound procesa

    Pitanje za razmiljanje: Zato je u memoriji dobro imati kombinaciju I/O-bound procesa i CPU-bound procesa?

  • Fakultet informacijskih tehnologija

    [email protected]

    SOS::Predavanja Copyright by: FIT

    9

    Obrada i prijevod dijelova sljedee litarature: Bajgori (2004), Operativni Sistemi: Knjiga 1 Silberschatz (2004), Operating System Concepts, 6th edition Tanenbaum (2001), Modern Operating Systems, 2nd edition