Završni ispit iz predmeta: Sustavi za rad u stvarnom vremenu Odgovarati kratko, jasno i čitko nečitki odgovori su krivi. 1. [1 bod] Koji

Слични документи
Drugi kolokvij iz predmeta Operacijski sustavi 2. srpnja Napomene: PISATI ČITKO! Zadatke 7-10 rješavati na ovom papiru ili uz njih napisati "na

1. OPĆE INFORMACIJE 1.1. Naziv kolegija Programiranje 1.6. Semestar Nositelj kolegija dr.sc. Bruno Trstenjak, v. pred Bodovna vrijednost

Vjezbe

P11.3 Analiza zivotnog veka, Graf smetnji

8 2 upiti_izvjesca.indd

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

2015_k2_z12.dvi

Programiranje 1

Državna matura iz informatike

OБЛАСТ: БЕЗБЕДНОСТ САОБРАЋАЈА ВЕШТАЧЕЊЕ САОБРАЋАЈНИХ НЕЗГОДА 1. Израчунати зауставни пут (Sz) и време заустављања ако су познати следећи подаци: брзин

Algoritmi SŠ P1

Microsoft PowerPoint - 07-DinamickeStrukturePodataka

_sheets.dvi

Uvod u računarstvo 2+2

18. ožujka Državno natjecanje / Osnovna škola (6. razred) Primjena algoritama (Basic/Python/Pascal/C/C++) Sadržaj Zadaci... 1 Zadatak: Kineski..

Programiranje 1 drugi kolokvij, 2. veljače Ime i prezime: JMBAG: Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanje,

Postavka 2: Osnovni graf algoritmi 1 DISTRIBUIRANI ALGORITMI I SISTEMI Iz kursa CSCE 668 Proleće 2014 Autor izvorne prezentacije: Prof. Jennifer Welch

TEST 2 Zaustavljanje vozila je: svaki prekid kretanja vozila do 15 minuta, osim prekida kretanja koji se pravi da bi se postupilo po znaku il

Logičke izjave i logičke funkcije

JMBAG IME I PREZIME BROJ BODOVA MJERA I INTEGRAL završni ispit 6. srpnja (Knjige, bilježnice, dodatni papiri i kalkulatori nisu dozvoljeni!) 1.

1 MATEMATIKA 1 (prva zadaća) Vektori i primjene 1. U trokutu ABC točke M i N dijele stranicu AB na tri jednaka dijela. O

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

Na temelju članka 81. Zakona o znanstvenoj djelatnosti i visokom obrazovanju te članka 19. i članka 44. stavak 5. točke 4. Statuta Visoke poslovne ško

kriteriji ocjenjivanja - informatika 8

TEST 2 Auto Škola LEMI FORCE mob: Da li je vozaču zabranjeno da pretiče vozilo koje se približava obilježenom pješačko

Programiranje 2 popravni kolokvij, 15. lipnja Ime i prezime: JMBAG: Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanj

Programski jezici i strukture podataka 2018/2019. Programski jezici i strukture podataka Računarske vežbe vežba 10 Zimski semestar 2018/2019. Studijsk

Slide 1

NAZIV PREDMETA UNUTARNJETRGOVINSKO POSLOVANJE I Kod Godina studija 2. Nositelj/i predmeta dr.sc. Ivana Plazibat, prof. Bodovna vrijednost 6 ECTS v.š.

EUROPSKA KOMISIJA Bruxelles, C(2018) 3697 final ANNEXES 1 to 2 PRILOZI PROVEDBENOJ UREDBI KOMISIJE (EU) /... o izmjeni Uredbe (EU) br. 1301

Algoritmi SŠ P1

UDŽBENIK 2. dio

SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA Zavod za elektroniku, mikroelektroniku, računalne i inteligentne sustave Interni materijal

Osnove fizike 1

Računarski praktikum I - Vježbe 09 - this, static

TEST Na putu izvan naselja zaustavljeno je vozilo zbog kvara. Na kojoj udaljenosti morate postaviti sigurnosni trougao iza zaustavljenog vozila

Microsoft Word - 09_Frenetove formule

Програмирај!

Задатак 4: Центрифугална пумпа познате карактеристике при n = 2900 min -1 ради на инсталацији приказаној на слици и потискује воду из резервоара А у р

Microsoft Word - 4.Ucenik razlikuje direktno i obrnuto proporcionalne velicine, zna linearnu funkciju i graficki interpretira n

Obveze i vrednovanje obaveza studenata

knjiga.dvi

NAZIV PREDMETA OBLIKOVANJE WEB STRANICA Kod SIT132 Godina studija 3. Bodovna vrijednost Nositelj/i predmeta Haidi Božiković, predavač 6 (ECTS) Suradni

Računarski praktikum I - Vježbe 01 - Uvod

Elementarna matematika 1 - Oblici matematickog mišljenja

Zadaci s pismenih ispita iz matematike 2 s rješenjima MATEMATIKA II x 4y xy 2 x y 1. Odredite i skicirajte prirodnu domenu funkcije cos ln

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

Microsoft PowerPoint - 10 PEK EMT Logicka simulacija 1 od 2 (2012).ppt [Compatibility Mode]

Grafovi 1. Posmatrajmo graf prikazan na slici sa desne strane. a) Odrediti skup čvorova V i skup grana E posmatranog grafa. Za svaku granu posebno odr

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

Programiranje 2 0. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog2 2019, 0. predavanje p. 1/4

(Microsoft Word - S1-MTS-Primjena ra\350unala u poslovnoj praksi -Breslauer N)

ЛИНЕАРНА ФУНКЦИЈА ЛИНЕАРНА ФУНКЦИЈА у = kх + n А утврди 1. Које од наведених функција су линеарне: а) у = 2х; б) у = 4х; в) у = 2х 7; г) у = 2 5 x; д)

Slajd 1

15.JANUAR PLUS TEST 1 STRANA 2 1 Vozač je: 1 svako lice koje se u saobraćaju na putu nalazi u vozilu; 2 lice koje na putu upravlja vozilom. 2 Kako se

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

Drveta odlucivanja - algoritmi

Računarski praktikum I - Vježbe 07 - Podstrukture, const, reference

Numeričke metode u fizici 1, Projektni zadataci 2018./ Za sustav običnih diferencijalnih jednadžbi, koje opisuju kretanje populacije dviju vrs

Електротехнички факултет Универзитета у Београду Катедра за рачунарску технику и информатику Kолоквијум из Интелигентних система Колоквију

PLAN I PROGRAM ZA DOPUNSKU (PRODUŽNU) NASTAVU IZ MATEMATIKE (za 1. razred)

Univerzitet u Beogradu Elektrotehnički fakultet Katedra za energetske pretvarače i pogone ISPIT IZ SINHRONIH MAŠINA (13E013SIM) 1. Poznati su podaci o

23. siječnja od 13:00 do 14:00 Školsko natjecanje / Osnove informatike Srednje škole RJEŠENJA ZADATAKA S OBJAŠNJENJIMA Sponzori Medijski pokrovi

Uvod u računarstvo 2+2

Objektno orjentirano programiranje 2P

UNIVERZITET CRNE GORE MEDICINSKI FAKULTET MEDICINSKA BIOHEMIJA INFORMATOR ZA STUDENTE MEDICINE Medicinska biohemija i hemija 2017/18 I UVOD Cilj izuča

Test ispravio: (1) (2) Ukupan broj bodova: 21. veljače od 13:00 do 14:00 Županijsko natjecanje / Osnove informatike Osnovne škole Ime i prezime

(Microsoft Word - S1 -OR- Osnove ra\350unarstva)

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

CD275/270 Croatian quick start guide

1. GRUPA Pismeni ispit iz MATEMATIKE Prezime i ime broj indeksa 1. (15 poena) Rexiti matriqnu jednaqinu 3XB T + XA = B, pri qemu

Infokup - Školsko Osnovne škole Algoritmi BaPaCpp

Microsoft Word - 2.FRANCUSKI A1 MOR

Funkcije predavač: Nadežda Jakšić

1 Konusni preseci (drugim rečima: kružnica, elipsa, hiperbola i parabola) Definicija 0.1 Algebarska kriva drugog reda u ravni jeste skup tačaka opisan

Uvod u računarstvo 2+2

Microsoft Word - Dopunski_zadaci_iz_MFII_uz_III_kolokvij.doc

PowerPoint Presentation

Microsoft Word - Ispitni_rok_2016_avg_sept_okt

PROGRAMIRANJE Program je niz naredbi razumljivih računalu koje rješavaju neki problem. Algoritam je postupak raščlanjivanja problema na jednostavnije

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

Microsoft PowerPoint - MR - Vjezbe - 03.ppt [Compatibility Mode]

NAZIV PREDMETA UNUTARNJETRGOVINSKO POSLOVANJE II Kod Godina studija 2. Nositelj/i predmeta dr.sc. Ivana Plazibat, prof. Bodovna vrijednost 6 ECTS v.š.

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

Funkcije predavač: Nadežda Jakšić

Sveučilište J.J. Strossmayera Fizika 2 FERIT Predložak za laboratorijske vježbe Cilj vježbe Određivanje specifičnog naboja elektrona Odrediti specifič

Microsoft PowerPoint - PRI2014 KORIGOVANO [Compatibility Mode]

ZOBS

Optimizacija

PowerPoint Presentation

1. OPĆE INFORMACIJE 1.1. Naziv kolegija Strani jezik 2 - engleski 1.6. Semestar Nositelj kolegija Marija Miščančuk Bodovna vrijednost (E

Microsoft Word - 24ms241

PowerPoint Presentation

JMBAG Ime i Prezime Mreže računala Završni ispit 16. veljače Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i službeni šalabahter.

RAČUNALO

Microsoft Word - 24ms221

(Microsoft Word - Dr\236avna matura - studeni osnovna razina - rje\232enja)

ДРУШТВО ФИЗИЧАРА СРБИЈЕ МИНИСТАРСТВО ПРОСВЕТЕ И СПОРТА РЕПУБЛИКЕ СРБИЈЕ Задаци за републичко такмичење ученика средњих школа 2006/2007 године I разред

Sadržaj 1 Diskretan slučajan vektor Definicija slučajnog vektora Diskretan slučajan vektor

Транскрипт:

Završni ispit iz predmeta: Sustavi za rad u stvarnom vremenu 27. 6. 2019. Odgovarati kratko, jasno i čitko nečitki odgovori su krivi. 1. [1 bod] Koji postupak raspore divanja nazivamo optimalnim? Navesti primjer. onaj kojim možemo rasporediti sve sustave zadataka koje mogu rasporediti i svi drugi postupci u istoj klasi raspore divača primjeri: - RMPA u klasi jednoprocesorskih raspore divača sa statičnom pridjelom prioriteta - EDF u klasi jednoprocesorskih raspore divača 2. [1 bod] Skicirati oblik koda dretve koja se raspore duje prema krajnjim trenucima završetka. Osim postavljanja parametara raspore divanja, koje pozive dretva mora pozvati a da bi raspore divač radio? edf-dretva postavi_raspore divanje ( EDF, period ) ponavljaj odradi_periodički_posao odgodi()/prepusti_procesor() 3. [1 bod] Navesti moguće probleme u korištenju mehanizma signala (npr. kada bi se Linux koristio u nekom SRSV-u, što treba paziti pri korištenju signala, što se može, što ne,...). - kad blokirana dretva dobije signal, ovisno o razlogu blokiranja različito reagira (prihvaća signal i vraća u blokirano stanje ili vraća grešku) - "pamćenje" samo jednog signala istog tipa na čekanju (osim ako nisu "prošireni" signali) - "puno" ostvarenje je na razini procesa, ne dretvi * nema pravu podršku za SRSV - puno neodre denosti kad se koriste raspore divanja SCHED_FIFO/RR - koji je prioritet signala/obrade - što kad RT dretva dobije signal? 4. [1 bod] Navesti nekoliko problema na koje treba paziti kada sustav koristi višeprocesorski sustav ili procesor s više jezgri. - kad se koristi višedretvenost mora se koristiti sinkronizacija (npr. zabrana prekida više nije dostatna kao na jednoproc.) - paralelnim radom dretva manjeg prioriteta utječe na dretvu višeg prioriteta jer koristi zajedničku sabirnicu, priručni spremnik procesora, UI naprave, pozive jezgri 5. [1 bod] Navesti osnovna svojstva operacijskih sustava za SRSV kojima se oni izdvajaju od ostalih tipova operacijskih sustava. - vrlo brza reakcija na doga daj (prihvat prekida, predvidljiva maksimalna odgoda) - raspore divanje (prema prioritetu barem) - priritetno korištenje UI naprava - determinističko ponašanje svih elemenata sustava

6. [2 boda] Zadan je sustav zadataka koji se raspore duje prema krajnjim trenucima završetaka (engl. earliest deadline first EDF): T 1 : T 1 = 10 ms, C 1 = 2 ms T 2 : T 2 = 15 ms, C 2 = 9 ms T 3 : T 3 = 20 ms, C 3 = 12 ms T 4 : T 4 = 30 ms, C 4 = 15 ms Simulirati izvo denje sustava na dvoprocesorskom sustavu do t = 30 ms ili do trenutka kad se neko ograničenje bilo kojeg zadatka prekorači. Dodatni kriterij, kada EDF nije jednoznačan, neka bude manja labavost. 4 4 3 3 2 2 2 1 1 1 1 t: 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 P1: 2 2 2 2 2 2 2 2 2 4 1 1 4 4 4 4 4 4 4 4 4 4 4 4 4 4 ------- P2: 1 1 3 3 3 3 3 3 3 3 3 3 3 3-2 2 2 2 2 2 2 2 1 2 1 3 3 3 3 (ili P2: 1 2 1 2 3 3 3 3) 7. [2 boda] Neki zadatak treba izvoditi svakih 50 ms, sa što manjim kašnjenjem (idealno baš svakih 50 ms). Za to je napravljena dretva sa sljedećim kodom. void *z5 ( void *x ) { struct timespec t = {.tv_sec = 0,.tv_nsec = 5000000 }; while (1) { periodicki_posao (x); //funkcija postoji clock_nanosleep ( CLOCK_REALTIME, 0, &t, NULL ); } } Navesti sve moguće probleme navedena koda i kako ih (pokušati) otkloniti. * tv_nsec = 50000000 (treba dodati nulu, inače je 5 ms!) * clock_nanosleep: - granulacija sata može biti premala + postaviti veću u OS-u - ažuriranje sata u me duvremenu zbog CLOCK_REALTIME + koristiti CLOCK_MONOTONIC - prekid signalom dok je dretva odgo dena (clock_nanosleep) + odspavati neprospavani dio - uvijek provjeriti povratnu vrijednost! * periodički posao može trajati (pre)dugo + ispitati trajanje prije, pa umanjiti spavanje + koristiti odgodu "do" trenutka, a ne relativnu * dretve većeg prioriteta istiskuju ovu + povećati prioritet * dodati "return NULL" na kraju funkcije (z5 je tipa void *) 8. [2 boda] Petrijevom mrežom modelirati polaganje predmeta SRSV kroz kontinuiranu nastavu. Podsjetnik: da bi se predmet položilo treba prvo odraditi vježbe 0, 1, 3 i 5, uz opcionalne 2, 4 i 6 te skupiti barem pet bodova ukupno iz njih. Nadalje, treba skupiti barem 10 bodova na pismenom dijelu završnog ispita, na usmenom biti pozitivno ocijenjen i dobiti

neke bodove (zanemarimo mogućnost negativnih bodova na usmenom) te ukupno skupiti 50 bodova (uključujući i me duispit koji nosi do 30 bodova). Za svaku aktivnost koju je student prošao (zadovoljio, npr. skupio dovoljno bodova) neka se koristi "doga daj" (ulazna tranzicija), npr. L0, L1,... Da bi student prošao, sve potrebne aktivnosti se trebaju dogoditi i odgovarajući bodovi moraju se prikupiti (po aktivnostima, ukupno). Broj bodova za neku aktivnost (koja se dogodila) računati s bod(aktivnost) (npr. kao broj tokena iz istog prijelaza koji označava doga daj). Neka mreža ima konačno stanje S P koje označava prolaz predmeta samo kada token do de u ovo stanje. Dok neka od aktivnosti nije ostvarena, ili neki broj bodova nije jednak traženom pragu, sustav ne smije doći u konačno stanje. Doga daji (ulazni prijelazi): L0-L6, MI, ZIP, ZIU Stanja: S-prolaz - skuplja tokene za prolaz labosa (4+1) S-bod-lab - bodovi iz labosa S-bod - ukupni bodovi S-P - konačno stanje Nije provjeravan prag na ZIP jer kaže u tekstu "Za svaku aktivnost koju je student prošao" (znači ako je doga daj, onda je student prošao tu aktivnost). (broj obaveznih vježbi i njihovih bodova + ZIP, ZIU) 1 --------> (S-prolaz) L0 --------> (S-bod-lab) bod(l0) slično za: L1, L3, L5, ZIP i ZIU (broj bodova za neobavezne vježbe) L2 --------> (S-bod-lab) bod(l2) slično za L2, L4 MI --------> (S-bod) bod(l2) (provjera minimalnih bodova za labose) 5 1 (S-bod-lab) ---------> ---> (S-prolaz) /--> ---> (S-bod) (računam i tih 5 u zbroju) (pomoćno stanje / 5 s jednim tokenom)\ \--O (uzimam sve ostale bodove (S-bod-lab) ---------> ---> (S-bod) iz labosa) (konačno) 7 (S-prolaz) ---> ---> (S_P) (S-bod) ---> 50 9. [3 boda] U nekom jednoprocesorskom sustavu se nalaze 4 dretve, svaka zadana s prioritetima i sredstvima (semaforima) koje koristi u svom izvo denju, prema priloženoj tablici.

Dretva Prioritet Sredstva D 1 20 S 1, S 4 D 2 15 S 1, S 2 D 3 10 S 3, S 4 D 4 5 S 1, S 3, S 4 Dretve se (ponovno) javljaju u trenucima: D 3 u 1., D 2 u 3., D 1 u 7. te D 4 u 8. jedinici vremena. Svaki zadatak D i kad dobije procesorsko vrijeme odmah pokuša zauzeti semavor S i. Ako/kada ga zauzme treba 3 jedinice procesorskog vremena, otpušta semafor te završava s radom. Pokazati što će se zbivati u sustavu dok sve dretve ne završe s radom, ako se koristi prioritetno raspore divanje te izvorni protokol stropnog prioriteta. (jednoprocesorski sustav) P1: D3+S3 D2+S2 D3S D1+S1 D4+S4 0 1 2 3 4 5 6 7 8 9 0 1 2 3 D3 D2 D1 D4 -D2 -D3 -D1 -D4 (višeprocesorski sustav) P1: D3+S3 ------------------------------------- P2: ------- D2+S2 --- D1+S1 D4+S4 0 1 2 3 4 5 6 7 8 9 0 1 2 3 D3 D2 D1 D4 -D3 -D2 -D1 -D4 10. [3 boda] U nekom raspodijeljenom sustavu nalaze se tri čvora: A, B i C. Čvor A upravlja sustavom, tj. šalje upravljačke naredbe čvorovima B i C. Me dutim, da bi to mogao potrebno je poznavati razlike u satovima te kašnjenja pri slanju poruka me du čvorovima. Stoga čvor A povremeno šalje poruku čvoru B koji ju nakon nadopunjavanja šalje čvoru C koji pak nakon nadopunjavanja šalje poruku natrag do B-a koji opet nakon drugog nadopunjavanja šalje poruku čvoru A. Svaki čvor pri primitku poruke, nju proširuje vrijednošću lokalnog sata i odmah proslije duje dalje (vrijeme zadržavanja u čvoru se može zanemariti). Poznato je da su veze me du čvorovima simetrične jednako traje slanje poruke u jedno i drugom smjeru. Tako der, satovi u čvorovima B i C su znatno manje precizni, odnosno idu 1% brže od sata u čvoru A. Prilikom jednog slanja sadržaj jedne poruke na kraju puta (u čvoru A) je: poruka = {t A,1 = 10000, t B,1 = 12345, t C,1 = 13579, t B,2 = 12446, t A,2 = 10300}. Izračunati vrijeme u čvorovima B i C u trenutku primitka navedene poruke (u lokalnim satovima tih čvorova). A B C 10000 -> 12345 -> 13579 10300 <- 12446 <- A-B-C-B-A: 10300-10000 = 300 po satu čvora A B-C-B: 12446-12345 = 101 po satu čvora B, 100 po satu čvora A B-C = 100/2 = 50 (simetrična veza, po satu od A) A-B-A = 300-100 = 200 (simetrična veza, po satu od A) A-B = 200/2 = 100 A-C = 300/2 = 150 U trenutku kad A primi poruku natrag: ta = ta2 = 10300 tb = tb2 + tba * 1,01 = 12446 + 100*1,01 = 12446 + 101 = 12547 tc = tc1 + tca * 1,01 = 13579 + 150*1,01 = 13579 + 151,5 = 13730,5

11. [3 boda] Neko električno vozilo (npr. el. bicikl) je upravljano mikroračunalom. Radi optimalnog rada i očuvanja svojstava posebne baterije treba poštivati odre dena ograničenja. Sve vrijednosti su izražene u postocima maksimalnih vrijednosti (od 0-100). a) Provjere zahtjeva vozača raditi svakih 200 ms, a odluke upravljanja donositi svakih 50 ms (odluke upravljanja trebaju imati prednost). b) Zahtjev vozača za snagom treba očitavati funkcijom req_power(). c) Postavljanje snage prema elektromotorima raditi funkcijom set_power(power). d) Zahtjev vozača za kočenjem pratiti preko sučelja req_breaks(). e) Kada je zahtijevana snaga kočenja veća od nule koristiti sustav za iskorištenje kinetičke energije za punjenje baterije, funkcijom kers(power) uz jednaku snagu kočenja pritom postaviti na snagu pokretanja na nulu (i obratno). f) Kada je zahtjevana snaga kočenja veća od 50% brzinu gibanja je potrebno pratiti s get_speed() te po potrebi (uz kers(power)) uključiti i mehaničke kočnice preko set_breaks(power) tako da zaustavljanje prati postavljenu snagu kočenja brzina mora opadati barem za zadani postotak svakih 10 sekundi (ali to prilago davati svakih 50 ms), ako već dostatno opada onda ne koristiti mehaničke kočnice!). g) Stanje baterije očitavati funkcijom capacity(). Kada je baterija napunjena preko 90% kapaciteta, tada se ne smije koristiti više od 70% od maksimalne snage; za stanje ispod 30% snagu treba ograničiti na 50%, a za stanje manje od 5% snagu pokretanja treba postaviti na nulu. Uz pretpostavku da sve navedene funkcije postoje, napisati upravljački program. Pretpostaviti postojanje operacijska sustava za SRSV sa svim potrebnim sučeljima. //iako u postocima, sve vrijednosti su realne! power = break = 0 //ulazi speed = 0 //zadnja brzina break_force = 0 //zadnje stanje kočnica - mehaničkih program t_ctrl = 0 // ili time_ms() t_io = 0 // ili time_ms() repeat t = time_ms() if t_ctrl <= t + 50 t_ctrl += 50 update_ctrl() if t_io <= t + 200 t_io += 200 update_io() delay_until (t+50) //i nije bitno/potrebno update_io() power = req_power() break = req_breaks()

update_ctrl() battery = capacity() if battery > 90 new_power = 70 else if battery < 5 new_power = 0 else if battery < 30 new_power = 50 else new_power = 100 power = min(power, new_power) new_speed = get_speed() if break == 0 && power > 0 new_power = power new_kers = 0 break_force = 0 else if break > 0 new_power = 0 new_kers = break if break > 50 && speed > 0 //promjena brzine u postocima dec = speed - new_speed / speed * 100 //skalirano na 10 sekundi dec = dec * 10/0.05 if dec < break break_force = min ( break_force+5, 100 ) else break_force = max ( break_force-5, 0 ) else break_force = 0 set_power(new_power) kers(new_kers) set_breaks(break_force) speed = new_speed