JEZGRO OPERATIVNOG SISTEMA I UPRAVLJANJE PROCESIMA 1. Šta je jezgro, a šta proces? Jezgro (nukleus ili kernel) je osnovni deo svakog operativnog siste

Слични документи
Generated by Foxit PDF Creator Foxit Software For evaluation only. Operativni sistem U računarstvu, operativni sistem (OS

Zbirka resenih zadataka iz arhitekture racunara

Algoritmi i arhitekture DSP I

P11.3 Analiza zivotnog veka, Graf smetnji

Slide 1

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvornog_Programa_I_Greske [Compatibility Mode]

Microsoft Word - 11 Pokazivaci

Увод у организацију и архитектуру рачунара 1

PowerPoint Presentation

P9.1 Dodela resursa, Bojenje grafa

Funkcije predavač: Nadežda Jakšić

PowerPoint Presentation

Microsoft PowerPoint - PRI2014 KORIGOVANO [Compatibility Mode]

Повезивање са интернетом

POSLOVNI INFORMACIONI SISTEMI I RA^UNARSKE

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvrsnog_Programa [Compatibility Mode]

KATALOG ZNANJA IZ INFORMATIKE

Dijagrami sekvenci

ELEKTROTEHNIČKI FAKULTET, UNIVERZITET U BEOGRADU KATEDRA ZA ELEKTRONIKU UVOD U ELEKTRONIKU - 13E041UE LABORATORIJSKA VEŽBA Primena mikrokontrolera

PowerPoint Presentation

PROMENLJIVE, TIPOVI PROMENLJIVIH

` 1.Врсте меморије На основу начина чувања података делимо их на меморије које привремено чувају податке (док је рачунар укључен) и меморије које трај

Programiranje za UNIX Okruženje unix procesa

RAČUNALO

OPIS RAČUNARSKOG SISTEMA Računarski sistem se sastoji od procesora, operativne memorije, tajmera i terminala. Sve komponente računarskog sistema su me

PowerPoint Presentation

Računarski softver Da bi računarski sistem mogao da radi, pored hardvera mora biti opremljen i odgovarajućim programima koji će njime upravljati.ova k

P1.0 Uvod

Орт колоквијум

OPERATIVNI SISTEMI

RAČUNARSKI SISTEM Ne postoji jedinstvena definicija pojma računarski sistem. Računarski sistem predstavlja skup mašina i pridruženih metoda (realizova

UVOD Svaki složeni postupak koji se može izraziti pomoću algoritma sa konačnim brojem elementarnih operacija, može se predati računaru na izvršenje. J

Razvoj programa, Code::Blocks, struktura programa, printf, scanf, konverzioni karakteri predavač: Nadežda Jakšić

Школа Ј. Ј. Змај Свилајнац МЕСЕЧНИ ПЛАН РАДА ЗА СЕПТЕМБАР Школска 2018 /2019. Назив предмета: Информатика и рачунарство Разред: 5. Недељни број часова

Microsoft Word - CAD sistemi

06 Poverljivost simetricnih algoritama1

Microsoft PowerPoint - 01 Uvod u operativne sisteme.ppt

12 Stanje

Inženjering informacionih sistema

UVOD Svaki složeni postupak koji se može izraziti pomoću algoritma sa konačnim brojem elementarnih operacija, može se predati računaru na izvršenje. J

Univerzitet u Novom Sadu Tehnički fakultet Mihajlo Pupin Zrenjanin Seminarski rad Predmet: Konkuretno programiranje doc. dr Dejan Lacmanovic Zorica Br

Microsoft PowerPoint - 6. CMS [Compatibility Mode]

ZIS

NACRT

Drugi kolokvij iz predmeta Operacijski sustavi 2. srpnja Napomene: PISATI ČITKO! Zadatke 7-10 rješavati na ovom papiru ili uz njih napisati "na

LAB PRAKTIKUM OR1 _ETR_

SRV_1_Problematika_real_time_sistema

Microsoft Word - pravila RTGS-precišcen tekst2007 (2).doc

Modem i lokalna mreža Vodič za korisnika

Funkcije predavač: Nadežda Jakšić

Microsoft Word - privitak prijedloga odluke

Biz web hosting

Classroom Expectations

Auto Salon 2 Korisničke upute za rad s programom Auto Salon AUTOSALON - DOKUMENTI Podaci o vozilu se upisuju do daljnjega kao i do sad na rad s vozilo

Univerzitet u Nišu Prirodno-Matematički fakultet Marko D. Petković OSNOVI KONKURENTNOG PROGRAMIRANJA SA ZBIRKOM ZADATAKA Niš, 2010

Microsoft PowerPoint - LB7-2_WCCF_2010.ppt

Посебни услови пружања TOTAL GROUP услуге

Испит из Основа рачунарске технике OO /2018 ( ) Р е ш е њ е Задатак 5 Асинхрони RS флип флопреализован помоћу НИ кола дат је на следећ

R u z v e l t o v a 5 5, B e o g r a d, t e l : , e - m a i l : p r o d a j p s i t. r s, w w w. p s i t. r s

Microsoft PowerPoint - Timer0 16F887.ppt [Compatibility Mode]

AKVIZICIJA PODATAKA SA UREĐAJEM NI USB-6008 NI USB-6008 je jednostavni višenamjenski uređaj koji se koristi za akviziciju podataka (preko USBa), kao i

Vjezbe

Испит из Основа рачунарске технике OO /2018 ( ) Р е ш е њ е Задатак 5 Асинхрони RS флип флопреализован помоћу НИЛИ кола дат је на след

Broj: 01-12/2014 Datum: Direktor preduzeća Phoneco doo, Marko Burgić dipl. Oecc., objavljuje OPŠTE USLOVE USTUPANJA PRAVA NA KORIŠĆENJE POS

Microsoft PowerPoint - LB7-2_WCCF_2012.ppt

P1.2 Projektovanje asemblera

Projektovanje tehnoloških procesa

Projektovanje informacionih sistema i baze podataka

Писање и превођење модула

Препоруке безбедности мрежних сервиса Copyright 2015 АМРЕС

Microsoft PowerPoint - 06 Uvod u racunarske mreze.ppt

Microsoft PowerPoint - Topic02 - Serbian.ppt

NAPOMENA: Studenti na ispit donose kod urađenog zadatka

Logicko projektovanje racunarskih sistema I

Microsoft PowerPoint - ARS_Ch_6 - IO sustavi.ppt

** Osnovni meni

Microsoft PowerPoint - Topic02 - Serbian.ppt

Vezbe_AOR1_2014_V1.0

QFD METODA – PRIMER

PuTTY CERT.hr-PUBDOC

SISTEM ZA VIDEO NADZOR TEŠKO DOSTUPNIH ILI NEDOSTUPNIH VELIKIH TERITORIJA Video nadzor velikih površina zahteva razvoj složene stacionarne infrastrukt

Microsoft PowerPoint - OOPpredavanja05 [Compatibility Mode]

PowerPoint Presentation

Microsoft PowerPoint - Strukturni dijagrami, Gantogram - Planiranje [Compatibility Mode]

Slide 1

DIGITALNA OBRADA SLIKE

P1.3 Projektovanje makroasemblera

13E114PAR, 13S113PAR DOMAĆI ZADATAK 2018/2019. Cilj domaćeg zadatka je formiranje petlje softverske protočnosti za minimalni broj ciklusa.

Programiranje u C-u ili C++-u Pseudo-slučajni brojevi; Dinamička alokacija memorije 1 ZADACI SA ČASA Zadatak 1 Napraviti funkciju koja generišlučajan

СТАРТ - СТОП ПАРКИНГ СИСТЕМ КОРИСНИЧКО УПУТСТВО страна 1 од 12

РЕ-АКТИВ ДОО Франклин Рузвелт 43А, 1000 Скопље, Македонија Тел.: Факс: МБ: ПИБ: МК

Slide 1

The Contemporary Systems Development Project Landscape

IV Spekulativno I predikatsko izvršavanje

Nastavna cjelina: 1. Jezik računala Kataloška tema: 1.1. Bit 1.2. Brojevi zapisani četvorkom bitova Nastavna jedinica: 1.1. Bit   1.2. Brojevi zapisan

Microsoft PowerPoint - GR_MbIS_12_IDEF

Microsoft Word - pr.o j.n.-web MC-prav.doc

Транскрипт:

JEZGRO OPERATIVNOG SISTEMA I UPRAVLJANJE PROCESIMA 1. Šta je jezgro, a šta proces? Jezgro (nukleus ili kernel) je osnovni deo svakog operativnog sistema. U hijerarhijskom (slojevitom) modelu, jezgro je najbliže hardveru i predstavlja vezu, tj. interfejs između hardvera i ostalih slojeva operativnog sistema. Izuzetak predstavljaju operativni sistemi Windows u čijoj se osnovi nalazi NT arhitektura. U slojevitom modelu NT arhitekture, ispod jezgra se nalazi sloj apstrakcije hardvera (HAL Hardware Abstraction Layer) koji omogućava operativnom sistemu da vidi različit hardver na isti način. Jezgro se može definisati i kao deo operativnog sistema koji omogućava programima da pristupi hardveru. Jezgro nije neophodno za pokretanje i izvršavanje programa ako se program napiše na niskom nivou (mašinski jezik). Ali, u ovom slučaju osnovni nedostatak bi bio nemogućnost prelaska sa jednog na drugi program. Za prelazak sa jednog programa na drugi, korisnik bi morao da prekine program, resetuje računar i pokrene drugi program. Jezgro se može definisati i kao deo operativnog sistema koji omogućava programima da na siguran način pristupe hardveru. Proces je jedan od najvažnijih koncepata operativnih sistema. To je program ili deo programa u stanju izvršavanja, zajedno sa svim resursima potrebnom za rad programa. 2. Šta je osnovna funkcija jezgra? Osnovna funkcija jezgra je upravljanje procesima tj. stvaranja okruženja u kome mogu postojati procesi, dodeljivanje procesora procesima i obezbeđivanje mehanizma za interprocesnu komunikaciju. Kako se na jednom procesoru u jednom trenutku može izvršavati samo jedan proces (procesor je nedeljiv resurs!), jezgro određuje kada i na koje vreme će proces dobiti procesor. Ova pojava se naziva multipleksiranje i predstavlja osnovu kvaziparalelnosti. 3. Koje preduslove treba da ispuni hardver da bi jezgro ostvarilo svoju osnovnu funkciju? Na nivou hardvera treba da postoje komponente koje omogućavaju nadogradnju hardvera jezgrom. U te komponente spadaju: Mehanizam prekida Zaštitni mehanizam adresiranja memorije Skup privilegovanih instrukcija Časovnik realnog vremena 4. Opiši mehanizam prekida Mehanizam prekida obezbeđuje izvršenje upravljačkog programa (prekidne rutine), tj. prebacivanje kontrole izvršavanja sa korisničkog na upravljački program. Najmanje što mehanizam prekida treba da uradi je da sačuva vrednost programskog brojača prekinutog korisničkog programa i pokrene upravljački 1

program sa fiksne lokacije u memoriji. Upravljački program dalje određuje izvor prekida i reaguje na odgovarajući način. 5. Opiši zaštitni mehanizam adresiranja memorije. Zaštitni mehanizam adresiranja memorije sprečava pogrešno adresiranje, tj. onemogućava da jedan proces upiše svoje prateće podatke u deo memorije koji je dodeljen drugom prcesu. Ovaj mehanizam automatski čuva integritet procesa i podataka koji se nalaze u radnoj memoriji. 6. Šta čini skup privilegovanh instrukcija? Skup privilegovanih instrukcija računara čine sve instrukcije koje su dostupne operativnom sistemu, ali ne i korisničkim programima. Ove instrukcije omogućavaju operativnom sistemu da: maskira prekide dodeli procesor drugom procesu pristupi zaštićenim registrima u memoriji izvrši ulazno izlaznu operaciju zaustave procesor Za razliku od neprivilegovanih instrukcija, koje se izvršavaju u korisničkom režimu, prilikom izvršavanja privilegovanih instrukcija operativni sistem se nalazi u sistemskom režimu. Korisnički program ne može da izvrši privilegovanu instrukciju direktno, već isključivo pomoću sistemskih poziva(system call). Korisnički program pomoću sistemskog poziva zahteva od operativnog sistema da izvrši privilegovanu instrukciju; nakon toga, operativni sistem prelazi u sistemski režim i izvršava tu iinstrukciju. 7. Čemu služi časovnik realnog vremena? Pomoću časovnika realnog vremena (real time clock) kontroliše se i evidentira potrošnja resursa računara za sve pojedinačne procese. Časovnik se može koristiti i za raspoređivanje i zakazivanje izvršenja raznih poslova. Delovi jezgra 1. Navedi imena delova jezgra i opiši čemu služe Prema Listeru i Kvaterniku, jezgro teoretskog modela operativnog sistema se može podeliti na tri celine: Prvi nivo obrade prekida (FLIH - First Level Interrupt Handler) čine rutine za određivanje izvora prekida i iniciranje servisa tj. opsluživanje pojedinih vrsta prekida. FLIH odgovara na spoljašnje prekide i sistemske pozive. 2

Dispečer sistema (planer poslova niskog nivoa) (dispatcher, low-level scheduler) je deo jezgra koji dodeljuje procesor procesima. Pri tome, procesor se dodeljuje uvek na osnovu nekog algoritma, kao što je Shortest Job First (prvo poslovi koji zahtevaju najmanje procesorskog vremena) Rutine za ostvarivanje interprocesne komunikacije deo jezgra operativnog sistema koji obezbeđuje komunikaciju među procesima. Postoji više načina ove komunikacije kao što su slanje poruka (send message, post message), semaforske tehnike, korišćenje imenovanih cevi (named pipes) i korišćenje deljive memorije Korisnik Korisnički interfejs (komandni interpreter ili grafičko radno okruženje) Viši slojevi u hijerarhijskom modelu FLIH Dispečer J e z g r o Rutine za interpr. kom. HARDVER sl. 1 - Jezgro u hijerarhijskom modelu operativnog sistema PROCESI 1. Šta mora da obezbedi operativni sistem za računarski sistem sa jednim procesorom? Računarski sistem koji ima samo jedan procesor može da izvršava samo jednu instrukciju u jednom trenutku. Operativni sistem mora da svim korisnicima računarskog sistema i svim programima obezbedi pristup procesoru, i ne sme dopustiti nikome da ostvari monopol nad njim. Da bi obavio taj zadatak, operativni sistem mora imati određene informacije o svakom korisniku i svakom programu u računaru, u svakom trenutku. 2. Šta je proces? Većina operativnih sistema upravlja procesima (processes) i zadacima (tasks). Proces predstavlja jedan od najvažnijih koncepata operativnih sistema. Proces je program ili deo programa u stanju izvršavanja, zajedno sa svim resursima koji su potrebni za rad programa. Jednostavno rečeno, program je pasivan 3

objekat tj. datoteka na disku. Kada se ta datoteka učita u memoriju ona postaje proces tj. aktivan objekat koji ima svoje resurse, poput registara i memorije. To znači da će tri korisnika koji obavljaju neku aktivnost (npr. izvršavaju korisničke aplikacije), biti predstavljena sa tri procesa. To takođe znači da će jedan program, koji je sam sebe razdelio na dva dela radi istovremenog izvođenja, biti predstavljen sa dva zasebna procesa. Sam operativni sistem je takođe sastavljen od niza procesa. 3. Koliko delova (tj. sekcija) ima svaki proces? Svaki proces ima tri fundamentalna memorijska dela (tj. sekcije): programska ili tekstualna sekcija koja se ne menja (read only) i koja sadrži programski kod; stek sekcija (stack section) koja sadrži privremene podatke (parametre za procedure, povratne adrese, lokalne promenljive); sekcija podataka (data section), koja sadrži globalne promenljive. Pošto se tekstualna sekcija ne menja, većina operativnih sistema formiraće zajednički segment za sve procese koji nastaju posle pokretanja jednog programa. Ovaj model je efikasan i poželjan, jer se na taj način štedi memorija. Naravno svaki od tih procesa imaće posebnu stek sekciju i sekciju podataka. Sem memorijskih sekcija, proces obuhvata i vrednost programskog brojača (program counter), kao i vrednost ostalih važnih registara procesora. Proces obuhvata i ulazno-izlazne resurse koje eventualno koristi, kao što su datoteke i razne vrste ulazno-izlaznih uređaja. Aktivnosti procesora se u literaturi operativnih sistema nazivaju: procesi (processes), poslovi (jobs) i zadaci (tasks). U operativnom sistemu UNIX, posao se definiše kao grupa procesa koja radi u pozadini ili je suspendovana. PREDSTAVLJANJE PROCESA 1. Uporedite program i proces Svaki program se satoji od niza instrukcija i statičkog je karaktera. Za razliku od programa, proces je dinamička struktura i najjednostavnije se može opisati kao program u stanju izvršenja, tj. kao niz aktivnosti koje su posledica izvršenja programa. Deo procesa su i podaci koji tu aktivnost opisuju tj. podaci koji su neophodni za upravljanje procesom. Ove podatke generiše i koristi operativni sistem tj. dispečer, a u literaturi se pominju: Process Control Blok (PCB) kontrolni blok procesa, vektor stanja ili deskriptor procesa. 2. Objasni ulogu kontrolnog bloka na primeru višeprocesnog operativnog sistema sa dva procesa. Na primer, posmatrajmo višeprocesni operativni sistem sa dva procesa (P1 i P2). Proces P1 koji se izvršava, u jednom trenutku se dovodi u stanje čekanja na resurs. Nakon toga, nastavlja se izvršavanje procesa P2 koji posle nekog vremena takođe biva blokiran. U međuvremenu se oslobađa resurs neophodan za izvršenje procesa P1, pa proces P1 može nastaviti izvršenje. Da bi operativni sistem znao gde treba nastaviti izvršenje, svakom procesu su dodeljuju prateće informacije, tj. jedinstveni kontrolni blok. 4

3. Šta je kontrolni blok? Kontrolni blok je deo radne memorije, tj. memorijska struktura sa osnovnim informacijama o procesu, koje operativni sistem koristi za upravljanje tim procesom. Zahvaljujući kontrolnom bloku program se može prekidati i nastavljati više puta. 4. Šta spada u informacije kontrolnog bloka? U informacije kontrolnog bloka spadaju: ime ili jedinstveni identifikator (PID) kontekst (okruženje) procesa prioritet procesa informacije o memoriji procesa lista otvorenih datoteka status zauzetih ulazno-izlaznih resursa trenutno stanje procesa Dijagram stanja procesa 1. Iz čega se sastoji proces? Proces se sastoji iz niza koraka koji slede jedan za drugim. 2. Kada se proces može prekinuti, a kada nastaviti? Proces može biti prekinut izmedju dva koraka, a njegovo izvršavanje se može nastaviti u drugom trenutku na istom ili drugom procesoru? 3. Šta se događa sa svim procesima koji uđu u računarski sistem? Svi procesi koji uđu u računarski sistem prolaze kroz niz stanja tokom svog boravka u računaru. Ustvari, stanje procesa (process state) opisuje ono što se u jednom trenutku događa sa procesom. Prevođenje procesa iz jednog stanja u drugo (state transition) obavlja operativni sistem. 4. U koliko stanja se proces može naći? proces se može naći u pet ili sedam stanja u zavisnosti od konačnog automata koji je korišćen za opisivanje stanja. 5. Koja tri stanja procesa su najznačajnija? stanje izvršavanja (RUN, RUNING) Procesor izvršava instrukcije ovog procesa stanje čekanja na procesor (READY, RUNNABLE) Proces je dobio sve potrebne resurse osim procesora, spreman je za rad i čeka da mu se dodeli procesor. stanje čekanja na resurs (WAIT, UNRUNNABLE) - Proces čeka na neki događaj (npr. da završi štampanje), jer su za dalje izvršavanje procesa potrebni resursi koji trenutno nisu na raspologanju. 5

Takođe, proces može ući u stanje WAIT ukoliko čeka završetak neke ulazno-izlazne operacije ili rezultat nekog drugog procesa. 6. Opiši konačni automat sa pet stanja (RUN, READY, WAIT, START, STOP). Ovde se koriste i dva pomoćna stanja vezana za nastanak procesa, tj. trenutak formiranja procesa (START) i prestanak tj. kraj izvršenja procesa (STOP). Proces se u svakom trenutku mora naći u jednom od ovih pet stanja prelazak iz jednog stanja u drugo zavisi od: događaja vezanih za proces, resursa koje proces koristi i ostatka računarskog sistema Na slici je dat dijagram stanja procesa, a zatim su opisani prelasci iz jednog u drugo stanje (promene stanja). RUN STOP START READY WAIT Prilikom upravljanja procesima, dispečer prati i ispituje stanja u kontrolnim blokovima procesa. Na primer, na osnovu toga procesi se mogu dodati u red za čekanje na procesor. Dodavanje u red је simboličko proces se fizički ne pomera s jedne lokacije na drugu, već se samo mewaju podaci u kontrolnim blokovima i pokazivači pomoću kojih se formiraju redovi. Svaki proces počinje u stanju START koje predstavlja vrstu pripreme, nakon čega se dovodi u stanje READY, tj. u stanje čekanja na dodelu procesa u procesorskom redu. Ovo je prvi prelazak (tranzicija) u dijagramu stanja. Posle, proces prolazi kroz dodatne tranzicije u konačnom automatu: READY RUN Dodela procesora procesu koji je došao na početak reda za dodelu procesora. Procesor prelazi iz stanja čekanja na procesor u stanje izvršavanja tekućeg procesa. RUN READY Oduzimanje procesora procesu nakon isticanja perioda u kome je procesor dodeljen.. RUN WAIT Oduzimanje procesora procesu ukoliko je resurs koji je potreban za izvršenje zauzet. Ova tranzicija (prelazak) je moguća i u jednoprocesnim i u višeprocesnim operativnim sistemima (npr. spuler štampača ne može da nastavi štampanje dokumenta dok se u štampač ne stavi papir; ili proces čeka rezultat operacije (npr. izračunavanja; ili se čeka određeni trenutak koji je unapreed programirani u kome se može nastaviti izvršenje.. Primer za ovo poslednje bili bi arhiviranje (backup), Ili antivirusni alati. 6

WAIT READY Proces se vraća na kraj procesorskog reda nakon oslobađanja resursa koji je neophodan za rad procesa. Napomena: Tranzicija WAIT RUN nije moguća u više procesnim operativnim sistemima. U takvim sistemima se proces prvo dovede u stanje READY. RUN STOP Proces završava rad (prirodno ili nasilno). U stanju RUN se u jednom trenutku može naći najviše onoliko procesa koliko procesora ima u sistemu. Procesi koji se nalaze u stanju RUN jesu tekući procesi. U stanju RUN se proces ne može zadržati do svog završetka, zato što se u opštem slučaju posmatra višeprocesno okruženje u kome se procesor dodeljuje na određeno vreme po nekom algoritmu. 7. Prošireni dijagram stanja procesa U nekim operativnim sistemima postoji mogućnost privremenog prekida izvršenja procesa. Proces čije je izvršenje privremeno prekinuto suspendovan je i prestaje da se takmiči za resurse. Ovaj model automata karakterističan je za operativni sistem UNIX. Osnovna pretpostavka je da korisnik koji inicira proces ima pravo da privremeno zaustavi njegovo izvršenje (suspend). Takođe korisnik može u određenom momentu da nastavi izvršenje suspendovanog procesa (revive). Sam operativni sistem može da dovede određeni broj procesa u suspendovano stanje čime se sprečavaju zastoji efekat zasićenja usled prevelike količine keširanih podataka. Do suspendovanja procesa može doći i usled swap prostora (prostor na disku za privremeno smeštanje neaktivnih procesa radi oslobađanja RAM memorije za izvršenje drugih procesa. Prekid procesa je moguć samo u stanjima WAIT i READY. Na taj način formiraju se dva dodatna stanja: SUSPENDED READY U ovo stanje proces dolazi ukoliko je suspendovan u stanju čekanja na procesor SUSPENDED WAIT U ovo stanje proces dolazi ukoliko je suspendovan u stanju čekanja na resurs RUN STOP START READY WAIT SUSP. READY SUSP. WAIT slika: prošireni dijagram stanja procesa READY SUSPENDED READY Dovođenje procesa iz stanja READY u suspendovano stanje. Ovo se događa ako na sistemu ima previše procesa u stanju READY ili treba izbeći zastoj (engl. deadlock) ili korisnik eksplicitno suspenduje sistem WAIT SUSPENDED WAIT Dovođenje procesa u suspendovano stanje iz stanja WAIT 7

SUSPENDED WAIT SUSPENDED READY Resurs neophodan za dalje izvršenje procesa je slobodan, ali je proces i dalje suspendovan SUSPENDED READY READY Proces je odmrznut i dovodi se na kraj procesorskog reda. Ova tranzicija je moguća samo na eksplicitan zahtev korisnika SUSPENDED WAIT WAIT Proces je odmrznut, ali resurs neophodan za njegovo izvršenje nije oslobođen. Ova tranzicija je moguća samo na eksplicitan zahtev korisnika. RASPOREĐIVANJE PROCESA Poznato je da se multiprogramiranjem memorija deli na particije u koje se smeštaju različiti procesi. Šta se ostvaruje multiprogramiranjem? Multiprogramiranjem se ostvaruje bolje iskorišćenje procesora ukoliko tekući proces čeka na resurs, procesor može izvršavati neki drugi proces koji se nalazi u stanju čekanja na procesor. Šta je podela vremena (time sharing)? To je poseban oblik multiprogramiranja koji omogućava da svaki korisnik radi interaktivno na računaru preko posebnog terminala kome pripada dozvoljeno dodeljeno procesorsko vreme (vremenski kvantum). Po isteku procesorskog vremena, procesor se dodeljuje drugom terminalu. Koliko procesa u jednom trenutku može da se izvrši u jednoprocesorskim računarskim sistemima? Može samo jedan proces. Koliko procesa u jednom trenutku može da se izvrši u višeprocesorskim računarskim sistemima? Može onoliko procesa koliko računarski sistem sasdrži procesora (jedan proces zahteva jedan procesor!). Šta mora da obezbedi operativni sistem da bi različitim procesima bio dodeljen procesor? Mora da obezbedi odgovarajući mehanizam za dodelu procesora različitim procesima. Delovi tog mehanizma su redovi čekanja i planer poslova. Redovi čekanja na procesor Proces u svom trajanju prolazi nekoliko redova čekanja (engl. sheduling queues). Svi procesi koji su spremni za rad nalaze se u radnoj memoriji čuvaju se u redu za čekanje procesora, tj, u redu čekanja spremnih procesa (ready queue) 1. Kako se realizuju redovi čekanja na procesor? Redovi čekanja na procesor se po pravilu realizuju kao povezane liste, formirane od kontrolnih blokova procesa sa definisanim redosledom izvršavanja procesa. Redosled se zadaje preko zaglavlja liste (queue header) koje sadrži informacije o početnom i poslednjem kontrolnom bloku u listi, i pokazivača na sledeći kontrolni blok. 8

2. Šta uvodi operativni sistem za svaki ulazno izlazni uređaj? Uvodi poseban red za čekanje. 3. Koliko vrsta redova za čekanje postoji? Postoje dve vrste: red čekanja na procesor i redovi čekanja na ulazno izlazne uređaje. 4. Prikaži tehniku raspopređivanja poslova Red za čekanje na procesor Procesor Isticanje vremenskog kvantuma Izvršavanje novog procesa Generisanje novog procesa Prekidna rutina Prekid Ulazno-izlazni uredjaj Red za čekanje na uređaj Zahtev za ulaznoizlaznom operacijom slika: Tehnike raspoređivanja poslova Novi proces se inicijalno postavlja u red čekanja za spremne procese u kome čeka dodelu procesora, nakon čega napušta red i počinje da se izvršava. Proces koji se nalazi u stanju izvršavanja može: ostati bez procesora kada mu istekne vremenski kvantum; napraviti nov proces i čekati u blokiranom stanju da se novi proces izvrši; ostati bez procesora kada se dogodi prekid; postaviti U/I zahtev, nakon čega se prebacuje u red čekanja na ulazno-izlazni uređaj, tj postaje blokiran; Proces se vraća u red čekanja na procesor sve dok se ne završi, posle čega oslobađa sve zauzete uređaje. Planer poslova i dispečer sistema Iz prethodnog se vidi da proces u svom trajanju prolazi kroz razna stanja i redove čekanja. Programi za raspoređivanje (engl. schedulers) odlučuju o tome kada će proces ući u neki red čekanja ili napustiti taj red. Ovi programi (tj. komponente operativnog sistema) se u literaturi nazivaju sledećim imenima: planer poslova (engl. job scheduler, long-term scheduler, long-term scheduler, high-level scheduler); dispečer (engl. dispatcher, short-term scheduler, low-level scheduler) 9

Planer poslova se u hijerarhijskom modelu nalazi iznad jezgra i obavlja sledeće funkcije: deli poslove na procese; na osnovu određenih algoritama dodeljuje prioritete procesima; dovodi procese u red na čekanje; 1. Kada se, ustvari, poziva planer poslova? Planer poslova se poziva uvek kada se pojavi novi proces. Planer poslova (potiče sa velikih računarskih sistema mainframes (engl.) za koje je karakteristična grupna obrada): reguliše stepen multiprogramiranja (tj. broj simultanih procesa u memoriji) pravi dobru selekciju procesa koji će dobiti memoriju (da bi sistem što efikasnije funkcionisao) 2. Od čega zavisi uspeh raspoređivanja procesora? Zavisi od osobina samih procesa. 3. Od čega se satoji izvršavanje jednog procesa? Izvršavanje jednog procesa se sastoji od jednog ili više ciklusa izvršavanja na procesoru (engl. CPU burst) i jednog ili više ciklusa čekanja na ulazno-izlazne operacije (engl. I/O burst). Proces počinje ciklusom izvršavanja na procesoru, posle čega može više puta da menja ove cikluse ili stanja. 4. Kako se procesi dele na osnovu resursa koje dominantno koriste? Dele se na: procese koji dominantno koriste procesor (engl. CPU bound); procesi koji dominantno koriste ulazno-izlazne operacije (engl. I/O bound); 5. Šta je zadatak dispečera sistema? Zadatak dispečera sistema je da dodeljuje procesor procesima koji se nalaze u procesorskom redu. Dispečer dodeljuje procesor kad god tekući proces pređe iz stanja RUN u stanje WAIT ili READY. Dispečer utvrđuje kom je procesu najpovoljnije dodeliti procesor tj. koji je proces u stanju READY najvišeg prioriteta. Ukoliko se procesorski red formira sa inkrementalnim prioritetima (dinamički izmenljiva lista) najpovoljniji je prvi proces u redu. Ukoliko na sistemu postoji više procesorskih redova - po jedan red za svaki prioritet uzima se prvi proces iz odgovarajućeg reda. Najejdnostavnije rečeno, dispečer odlučuje koji će proces dobiti procesor, kada će ga dobiti i na koliko dugo. 10

6. Kako se u literaturi planer poslova i dispečer sistema navode? Planer poslova i dispečer sistema se navode kao posebni moduli (prema Silbershatz-u) ili kao jedan modul (prema Lister-u i Kvaternik-u). U slučaju odvojenih modula, planer poslova niskog nivoa bira proces iz reda čekanja na procesor po nekom kriterijumu. Nakon toga, dispečer ažurira kontekst procesa, postavlja neophodno okruženje i predaje kontrolu nad procesorom izabranom procesu. 7. U kakvom su odnosu učestalost pozivanja dispečera i planera? One se znatno razlikuju. Zavisno od situacije, dispečer se poziva veoma često (npr. na svakih 100ms) i očekuje se da se veoma brzo odazove, kako bi mogao adekvatno da odgovori na uzastopne(sukcesivne) pozive. RUTINE ZA INTERPROCESNU KOMUNIKACIJU Rutine za interprocesnu komunikaciju moraju se implementirati u jezgro kako bi bile dostupne svim procesima i kako bi imale direktan pristup dispečeru (vidi sliku jezgra u hijerarhijskom modelu operativnog sistema). Interprocesna komunikacija se može ostvariti pomoću: semaforske tehnike slanje poruka korišćenja deljive memorije (npr. bafera) imenovanih cevi Semafori Semafor je celobrojna nenegativna promenljiva (0, 1, 2,...), čija vrednost štiti neki resurs i omogućava komunikaciju između procesa. Vrednost semafora određuje da li je resurs koji taj semafor štiti slobodan ili zauzet. Svaki semafor ima svoju početnu vrednost, a nad njim se mogu izvršiti dve nedeljive operacije, koje su radi jednostavnosti predstavljene kao signal (s) i wait (s). Operacije signal i wait ne mogu se podeliti na više ciklusa, tako da dva procesa ne mogu istovremeno izvršavati ove operacije nad istim semaforom. 1. Kako se štite resursi semaforima? Resursi se štite semaforima na sledeći način: operacija wait(s) dekrementira vrednost semafora s samo ako je s>0; ako je s=0, proces koji izvršava ovu operaciju, ulazi u stanje čekanja na resurs (stanje READY, tranzicija READY WAIT) Kada vrednost semafora s postane pozitivna tj. kada drugi proces oslobodi resurs operacijom signal, operacija wait će dekrementirati vrednost semafora (s=s-1) i uvesti proces u kritičnu sekciju. Kritična sekcija (engl. critical section) predstavlja deo koda u kome proces koristi resurs. Kada proces želi da prekine korišćenje resursa on izvršava operaciju signal(s) i napušta kritičnu sekciju. Operacija signal(s) inkrementira vrednost semafora koja 11

štiti resurs (s=s+1) i oslobađa proces koji na taj resurs čeka u stanju WAIT (tranzicija WAIT READY). Operacije wait(s) i signal(s) uvode resurse u stanje čekanja na resurs, odnosno izvode ih iz tog stanja, i kao takve moraju poslati informaciju dispečeru o promeni u procesorskom redu, pa je neophodno da se implementiraju u jezgro operativnog sistema kako bi imale direktan pristup dispečeru. 2. Kako se određuje vrednost semafora s? Vrednost semafora s se u svakom trenutku može odrediti formulom: val(s) =c(s) + ns(s) - nw(s), gde je: c(s) početna vrednost ns(s) broj operacija signal nw(s) broj operacija wait 3. U kom intervalu se nalaze vrednosti semafora kojim je zaštićen resurs koji istovremeno može koristiti N procesa? Koliko je N za nedeljive resurse, a koliko za deljive resurse? Vrednost N za zaštićeni resurs koji istovremeno može koristiti N procesa se nalazi u intervalu [0, N-1]. Za nedeljive resurse tj. za resurse koje moze koristiti samo jedan proces u jednom trenutku, N=1. U nedeljive resurse spada većina perifernih uređaja i datoteke otvorene za čitanje i pisanje. Za deljive resurse, tj. resurse koje može koristiti veći broj procesa istovremeno, N>1. Na primer, ova vrednost može opisivati broj ostvarenih veza sa deljenim direktorijumom na nekom mrežnom serveru. 12