Dio 1 – Šta je realno vrijeme
Dio 2 – Petlja, senzori, RTOS
Dio 3 – Redundancija i IoT
Praksa – Raspored zadataka i alarm hladnjaka
Materijale priredio Erkan Islamović
erkan.islamovic@eubd.edu.ba · erkan.islamovic@gmail.com
Petnaest sedmica, svaka s tri časa teorije i tri časa prakse. Danas: poglavlje 13 (Sedmica 13, označeno). Isti primjer kroz knjigu: DeliveryApp, narudžba N-1001 (24,50 €).
| Sed. | Poglavlje | Sed. | Poglavlje |
|---|---|---|---|
| 1 | P1 Zašto projektujemo | 9 | P9 Arhitektura |
| 2 | P2 Životni ciklus | 10 | P10 Integracija i API |
| 3 | P3 Zahtjevi | 11 | P11 Korisnički interfejs |
| 4 | P4 Poslovni procesi | 12 | P12 Sigurnost i privatnost |
| 5 | P5 UML i slučajevi korištenja | 13 | P13 Realno vrijeme i IoT |
| 6 | P6 Klase i objekti | 14 | P14 Kvalitet i isporuka |
| 7 | P7 Sekvence i stanja | 15 | P15 AI i završni projekat |
| 8 | P8 Baza podataka |
Dvadesetog jula 1969. godine lunarni modul Eagle misije Apollo 11 spuštao se prema površini Mjeseca. Na nekoliko minuta do slijetanja, na ekranu računara pojavio se alarm koji astronauti nikad nisu vidjeli na vježbi: 1202, a malo kasnije i 1201. Računar je javljao da je preopterećen: dobija više poslova nego što stigne obaviti. Kasnije se pokazalo da je jedan prekidač radara za susret u orbiti bio u položaju koji je računaru stalno slao nepotrebne poslove. U kontroli leta u Houstonu inženjeri su za nekoliko sekundi morali odlučiti: prekinuti slijetanje ili nastaviti. Odluka je bila „nastavite”, jer su znali kako je softver projektovan. Tim na MIT-u, u kojem je softver za letjelicu vodila Margaret Hamilton, napravio je računar koji svakom poslu daje prioritet. Kad posla ima previše, računar se ponovo pokrene, odbaci manje važne poslove i nastavi samo s onima od kojih zavisi slijetanje. Upravo to se desilo, više puta, i modul se spustio. Računar nije bio brži od posla; bio je projektovan da zna šta je važnije kad sve ne stigne na vrijeme. To je suština sistema u realnom vremenu.
U poglavljima 9 i 10 projektovali smo DeliveryApp kao web sistem: zahtjev dođe, server odgovori, i ako odgovor kasni sekundu, kupac je malo nestrpljiv, ali niko nije u opasnosti. Ali DeliveryApp dodiruje i fizički svijet: dostavljač vozi s telefonom koji javlja položaj, a hrana u restoranu stoji u hladnjaku koji mora držati temperaturu. Postoje i sistemi kod kojih je zakašnjeli odgovor isto tako pogrešan kao i netačan: kočnice, pejsmejker, upravljanje fabrikom. Ovo poglavlje uči kako se takvi sistemi projektuju. Prvo objašnjavamo šta je realno vrijeme i po čemu se razlikuju tvrdi i meki rokovi. Zatim upravljačku petlju, vezu računara sa senzorima i motorima, i operativne sisteme za realno vrijeme. Na kraju pouzdanost, glasanje dva od tri i Internet stvari. Na praktičnoj nastavi simuliramo hladnjak restorana i provjeravamo da li zadaci stižu na vrijeme.
Nakon poglavlja možete:
objasniti šta je sistem u realnom vremenu i zašto zakašnjeli rezultat može biti pogrešan; razlikovati tvrde, čvrste i meke rokove na primjerima; objasniti kašnjenje, treperenje i najgore vrijeme izvršavanja; nacrtati upravljačku petlju i razlikovati otvorenu i zatvorenu petlju; objasniti regulator uključi-isključi s histerezom na hladnjaku restorana; izračunati rezoluciju A/D pretvarača; navesti čemu služe procesna magistrala i standard ISA-88; objasniti raspoređivanje po prioritetima i provjeriti test iskorištenosti procesora; izračunati pouzdanost glasanja dva od tri; objasniti nadzorni tajmer i siguran kvar; izračunati kako se nakuplja greška sata na primjeru Patriota 1991; opisati arhitekturu IoT sistema i obrazac objavi–pretplati se (MQTT).
| Čas | Sadržaj | Na času |
|---|---|---|
| Teorija 1 | 13.1–13.3 Realno vrijeme, rokovi, specifičnosti | Kočnica, video, praćenje dostavljača |
| Teorija 2 | 13.4–13.6 Upravljačka petlja, sprezanje s fizičkim svijetom, RTOS | Hladnjak R-1; U = 0,25; Apollo 1202 |
| Teorija 3 | 13.7–13.9 Redundancija, sat i vrijeme, IoT | 99,97 %; Patriot 0,34 s; MQTT |
| Praksa 1–3 | Simulacija hladnjaka; test rasporedivosti; glasanje dva od tri | hladnjak.py, alarm u 40. minuti |
U običnom informacionom sistemu rezultat je ispravan ako je tačan. Ako izvještaj o prometu DeliveryApp stigne za 3 sekunde umjesto za jednu, i dalje je ispravan. U sistemu u realnom vremenu rezultat je ispravan samo ako je tačan i na vrijeme. Ako računar kočnica tačno izračuna koliko treba pritisnuti kočnicu, ali to izračuna pola sekunde prekasno, auto je već udario.
Važno je razumjeti šta „realno vrijeme” ne znači: ne znači „vrlo brzo”. Znači predvidivo na vrijeme. Sistem koji uvijek odgovori za 50 milisekundi je sistem u realnom vremenu; sistem koji obično odgovori za 1 milisekundu, ali ponekad za 2 sekunde, nije, iako je u prosjeku brži.
Ključni pojam je rok (deadline): najkasniji trenutak do kojeg rezultat mora biti gotov. Rokovi se dijele po tome šta se desi kad se propuste:
| Vrsta roka | Šta se desi kad se propusti | Primjeri |
|---|---|---|
| Tvrdi (hard) | katastrofa: šteta, povreda, gubitak života | ABS kočnice, zračni jastuk, pejsmejker, upravljanje letom |
| Čvrsti (firm) | zakašnjeli rezultat je bezvrijedan, ali rijetka propuštanja se mogu podnijeti | sličica u video pozivu, očitavanje bar-koda na traci |
| Meki (soft) | rezultat i dalje vrijedi, samo manje | položaj dostavljača na mapi kupca, obavještenje „narudžba je krenula” |
DeliveryApp ima uglavnom meke rokove: ako se položaj dostavljača na mapi osvježi za 12 umjesto za 10 sekundi, kupac to jedva primijeti. Ali hladnjak u kojem restoran čuva meso i salate ima čvršći zahtjev: ako temperatura dugo bude previsoka, hrana se mora baciti, a rizik je i zdravlje kupaca. Zato i DeliveryApp, kao sistem koji spaja restorane, ima razloga da razumije realno vrijeme.
Projektant sistema u realnom vremenu razmišlja drugačije od projektanta web aplikacije. Tri pojma su mu najvažnija.
Kašnjenje (latency) je vrijeme od događaja do reakcije: od trenutka kad senzor izmjeri 5,1 °C do trenutka kad se kompresor upali.
Treperenje (jitter) je koliko se kašnjenje mijenja od jednog puta do drugog. Ako se senzor očitava „svakih 10 ms”, a stvarni razmaci su 9, 11, 10, 14 i 8 ms, treperenje je veliko. Kod upravljanja motorom ili zvukom treperenje smeta koliko i samo kašnjenje.
Najgore vrijeme izvršavanja (WCET, worst-case execution time) je najduže vrijeme koje neki posao može trajati, u najgorem slučaju. Web projektant pita „koliko traje u prosjeku?”. Projektant realnog vremena pita „koliko traje najduže?”, jer rok mora biti ispoštovan i u najgorem slučaju, a ne samo obično.
Zato sistemi u realnom vremenu izbjegavaju sve što je nepredvidivo: čekanje na mrežu bez vremenskog ograničenja, pozive koji ponekad traju dugo, pa čak i automatsko čišćenje memorije koje neki programski jezici rade kad im odgovara. Programi za tvrde rokove češće se pišu u jezicima kao što su C, C++, Ada ili Rust, za male procesore, i provjeravaju u simulatoru (alati iz poglavlja 2).
Slika iz života: redovni gradski autobus. Putnicima je manje važno da autobus vozi brzo, a više da dolazi kad piše u redu vožnje. Autobus koji nekad dođe za 2, a nekad za 25 minuta, gori je od autobusa koji uvijek dođe za tačno 12.
Sistemi u realnom vremenu dijele se na još dva korisna načina.
Po tome šta ih pokreće:
Po tome gdje rade:
Odgovori: tipka R ili klik na zamućeno polje.
Mnogi sistemi u realnom vremenu upravljaju nečim u fizičkom svijetu. Osnovni obrazac je upravljačka petlja:
Ovakva petlja zove se zatvorena, jer se rezultat djelovanja vraća kao novo mjerenje (povratna veza). Otvorena petlja nema povratnu vezu: toster drži hljeb tačno dvije minute, bez obzira da li je hljeb već izgorio. Zatvorena petlja je kao vozač koji gleda brzinomjer i podešava gas; otvorena je kao vozač koji drži papučicu na istoj poziciji i nada se.

Kada računar sam, u svakom krugu, izračuna i pošalje upravljački signal aktuatoru, to se zove direktno digitalno upravljanje (DDC, direct digital control). Ključni parametar je perioda uzorkovanja: koliko često se mjeri. Prerijetko mjerenje propusti promjenu; prečesto bespotrebno troši procesor.
Najjednostavniji regulator je uključi-isključi: kompresor ili radi punom snagom, ili ne radi. Ali ako bi se kompresor palio na 4,0 °C i gasio na 4,0 °C, palio bi se i gasio svakih nekoliko sekundi i brzo se pokvario. Zato se koristi histereza: dvije granice. Hladnjak Picerije R-1 projektovan je ovako:
Isto radi termostat grijanja u stanu: peć se ne pali i gasi na svaku desetinku stepena.
U simulaciji (praktična nastava, primjeri/deliveryapp/hladnjak.py) temperatura, kad kompresor radi, pada 0,6 °C po minuti, a kad ne radi, raste 0,4 °C po minuti. Hladnjak tada mirno kruži između oko 3 i 5 °C. Od 25. do 45. minute vrata su otvorena (neko u kuhinji ih je zaboravio zatvoriti), pa toplota ulazi brže nego što kompresor može izbaciti: temperatura raste i dostiže 12,0 °C u 45. minuti. Sistem pali alarm kad je temperatura iznad 8,0 °C duže od pet minuta; u simulaciji alarm se pali u 40. minuti, a gasi u 52. minuti, kad se temperatura poslije zatvaranja vrata vrati ispod 8,0 °C.

Precizniji regulator od uključi-isključi je PID regulator, koji upravljački signal računa iz greške e (razlike željenog i izmjerenog): proporcionalno trenutnoj grešci, njenom zbiru kroz vrijeme i brzini njene promjene, u = K_p·e + K_i·Σe·Δt + K_d·Δe/Δt. Tako rade tempomat u autu, dronovi i većina industrijskih procesa. Druga porodica, fuzzy (rasplinuto) upravljanje, koristi pravila s nejasnim granicama („ako je temperatura malo visoka i brzo raste, hladi jače”), slično kako bi čovjek rasuđivao; korišteno je u perilicama, klima-uređajima i vozovima. Oba su teme za predmete o automatskom upravljanju.
Računar razumije samo brojeve, a fizički svijet su naponi, temperature, pritisci i pokreti. Između njih stoje pretvarači.
A/D pretvarač (analogno-digitalni) pretvara napon senzora u broj. Njegova važna osobina je rezolucija: na koliko dijelova dijeli opseg napona. Pretvarač od n bita daje 2ⁿ različitih vrijednosti, pa je najmanji korak
Čemu služi. Formula kaže koliko sitnu promjenu senzor uopšte može primijetiti. Za 10-bitni pretvarač i opseg od 0 do 3,3 V (čest kod mikrokontrolera): ΔU = 3,3 V / 1024 ≈ 3,2 mV. Ako senzor temperature daje 10 mV po stepenu, sistem razlikuje promjene od oko 0,3 °C. Za hladnjak je to dovoljno; za medicinski termometar nije, pa bi trebao pretvarač s više bita.
D/A pretvarač radi obrnuto: broj pretvara u napon, npr. da podesi brzinu ventilatora.
U fabrikama i velikim kuhinjama senzora i aktuatora ima stotine, i ne mogu se svi povezati posebnim žicama na jedan računar. Povezuju se procesnom magistralom (fieldbus): industrijskom mrežom s pravilima koja garantuju da poruke stižu na vrijeme. Poznati primjeri su Modbus (star, jednostavan i vrlo raširen), CAN (nastao za automobile, danas i u mašinama) i PROFIBUS/PROFINET (fabrike). Za razliku od obične kancelarijske mreže, kod procesne magistrale važnije je da poruka stigne na vrijeme nego da stigne mnogo podataka.
Za upravljanje procesima u kojima se proizvod pravi u serijama („šaržama”), kao u prehrambenoj, farmaceutskoj i hemijskoj industriji, postoji standard ISA-88 (ranije S88). On dijeli posao na recept (šta se pravi i kojim redom: miješaj, zagrij na 80 °C, drži 10 minuta, ohladi) i opremu koja recept izvršava. Ideja je ista kao kod modelovanja procesa iz poglavlja 4: posao se rastavi na korake i faze koje se mogu provjeriti i ponoviti. Velika industrijska kuhinja koja priprema hiljade obroka mogla bi upravljati kotlovima upravo po takvim receptima.
Računar u hladnjaku ili autu istovremeno radi više poslova: mjeri temperaturu, prikazuje je na ekranu, šalje podatke u oblak, provjerava vrata. To su zadaci (tasks). Koji dobija procesor kad ih je više spremno? Na običnom računaru odlučuje operativni sistem po svom nahođenju, trudeći se da svi budu „zadovoljni u prosjeku”. Za realno vrijeme to nije dovoljno, pa se koristi operativni sistem za realno vrijeme (RTOS, real-time operating system), npr. FreeRTOS, Zephyr ili VxWorks.
RTOS radi po jednostavnom i strogom pravilu: svaki zadatak ima prioritet, i od svih spremnih zadataka uvijek radi onaj s najvišim prioritetom. Ako se pojavi važniji zadatak dok manje važan radi, RTOS prekida (preemption) manje važan i odmah daje procesor važnijem. To je višezadaćni rad (multitasking) s prioritetima, upravo onakav kakav je imao računar Apolla 11: kad je posla bilo previše, poslovi navođenja za slijetanje imali su prednost, a manje važni su odbačeni.
Za periodične zadatke (koji se ponavljaju sa stalnom periodom) postoji jednostavna provjera. Svaki zadatak i ima trajanje Cᵢ (najgore vrijeme izvršavanja) i periodu Tᵢ. Udio procesora koji zadatak troši je Cᵢ / Tᵢ, a ukupna iskorištenost je
Čemu služi. Ako se prioriteti dodijele tako da kraća perioda dobija viši prioritet (to se zove rate monotonic), Liu i Layland su 1973. pokazali da svi zadaci sigurno stižu na vrijeme ako je U ≤ n · (2^{1/n} − 1). Za tri zadatka granica je 3 · (2^{1/3} − 1) ≈ 0,78.
Računar hladnjaka R-1 ima tri zadatka:
| Zadatak | Trajanje C | Perioda T | C / T | Prioritet |
|---|---|---|---|---|
| mjerenje i regulacija | 1 ms | 10 ms | 0,10 | najviši |
| slanje podataka u oblak | 5 ms | 100 ms | 0,05 | srednji |
| osvježavanje ekrana | 20 ms | 200 ms | 0,10 | najniži |
U = 0,10 + 0,05 + 0,10 = 0,25, što je manje od 0,78, pa sva tri zadatka sigurno stižu na vrijeme, s velikom rezervom. Ako bi neko dodao zadatak „kamera u hladnjaku” koji traje 60 ms svakih 100 ms (0,60), U bi bio 0,85, iznad granice od 0,78 za četiri zadatka (≈ 0,76), i garancije više ne bi bilo.
I dobro projektovan RTOS može zakazati kad se zadaci takmiče za isti resurs. Letjelica Mars Pathfinder se 1997. na Marsu ponovo pokretala jer je zadatak niskog prioriteta držao zajednički resurs koji je trebao zadatku visokog prioriteta, a zadatak srednjeg prioriteta je stalno prekidao onaj niski. Pojava se zove inverzija prioriteta. Inženjeri su je reprodukovali na kopiji letjelice na Zemlji i ispravku poslali na Mars. Detaljno o tome govori predmet Testiranje softvera (testiranje paralelnih aplikacija).

Odgovori: tipka R ili klik na zamućeno polje.
U poglavlju 9 vidjeli smo da dva paralelna servera povećavaju dostupnost. Kod sistema u realnom vremenu, posebno onih s tvrdim rokovima, redundancija ide korak dalje: nije dovoljno da rezervni dio postoji, nego treba i znati koji dio griješi.
Najpoznatiji obrazac je trostruka modularna redundancija (TMR, triple modular redundancy), ili glasanje dva od tri. Tri nezavisna računara (ili senzora) rade isti posao, a glasač uzima rezultat koji su dala bar dva. Ako jedan pogriješi, druga dva ga preglasaju. Slika iz života: tri sata na zidu. Ako jedan kasni pet minuta, a druga dva pokazuju isto, vjerujete onoj dvojici.
Ako je pouzdanost jednog dijela r (vjerovatnoća da radi ispravno), sistem dva od tri radi ispravno kad rade sva tri, ili tačno dva:
Čemu služi. Za r = 0,99: R = 3 · 0,9801 − 2 · 0,970299 ≈ 0,9997. Vjerovatnoća otkaza pada s 1 % na oko 0,03 %, odnosno oko 33 puta. Ovo važi samo ako dijelovi otkazuju nezavisno, i ako je sam glasač pouzdan. Zato se u avionima i svemirskim letjelicama koriste računari različitih proizvođača, pa čak i programi koje su pisali različiti timovi, da ista greška ne pogodi sva tri.
Još dva obrasca pouzdanosti:
U distribuiranim sistemima u realnom vremenu postoji pitanje koje izgleda trivijalno: koliko je sati? Svaki računar ima svoj sat, i satovi se razilaze. Kad računari sarađuju (radar i raketa, dva semafora, dostavljač i server), male razlike u vremenu mogu dati velike greške u položaju.
U februaru 1991, za vrijeme Zaljevskog rata, sistem protivvazdušne odbrane Patriot kod grada Dhahran u Saudijskoj Arabiji nije presreo iračku raketu Scud, koja je pogodila kasarnu; poginulo je 28 američkih vojnika. Izvještaj američke kontrolne službe GAO iz 1992. pokazao je uzrok. Sistem je vrijeme brojao u desetinkama sekunde i množio ga sa 0,1 da dobije sekunde. Broj 0,1 se u binarnom zapisu ne može tačno napisati (kao što se 1/3 ne može tačno napisati decimalno), a sistem ga je čuvao u 24 bita, pa je svaki otkucaj sata bio pogrešan za oko 0,000000095 sekundi. To je zanemarljivo jednom. Ali baterija je radila bez prekida više od 100 sati, a to je oko 3,6 miliona otkucaja, i greška se nagomilala na oko 0,34 sekunde. Scud leti oko 1700 metara u sekundi, pa je sistem tražio raketu više od pola kilometra od mjesta gdje je zaista bila. Ispravljen softver stigao je u Dhahran dan kasnije. Sistem je prvobitno projektovan za rad od nekoliko sati na jednom mjestu, a ne za stotinu sati bez ponovnog pokretanja; takav način rada niko nije predvidio u zahtjevima.
Račun greške je jednostavan i vrijedi ga ponoviti:
Čemu služi. ε je greška jednog otkucaja, f broj otkucaja u sekundi, a t vrijeme rada (100 sati = 360 000 sekundi). Formula pokazuje opštu pouku: mala greška koja se sabira raste s vremenom rada. Zato se u projektovanju pitaju dvije stvari: koliko dugo sistem smije raditi bez ponovnog pokretanja (zahtjev koji je Patriotu falio), i kako se satovi računara usklađuju (u običnim mrežama protokolom NTP, u preciznim industrijskim mrežama protokolom PTP, a mnogi uređaji vrijeme uzimaju iz satelita GPS).
Za DeliveryApp je pouka skromnija, ali ista: položaj dostavljača i vrijeme narudžbe uvijek se zapisuju s vremenom iz usklađenog sata, u UTC (poglavlje 10), a ne s vremenom koje telefon dostavljača „misli” da je.

Internet stvari (IoT, Internet of Things) su uređaji sa senzorima i aktuatorima koji preko interneta šalju podatke i primaju naredbe: pametni termostati, satovi, brojila struje, senzori u poljima, hladnjaci. Za DeliveryApp su dva primjera IoT-a sasvim prirodna:
Tipična IoT arhitektura ima četiri sloja:
Najčešći protokol za IoT je MQTT, a radi po obrascu objavi–pretplati se (publish–subscribe). Uređaj ne šalje poruku nekome određenom, nego je objavi na temu, npr. restorani/R-1/hladnjak/temperatura. Ko god se pretplatio na tu temu (DeliveryApp, aplikacija vlasnika, sistem za izvještaje), dobije poruku od posrednika. Ovo je ista ideja kao red poruka iz poglavlja 10, ali lagana, za uređaje sa slabim procesorom i nesigurnom vezom. Slika iz života: radio stanica. Stanica emituje na svojoj frekvenciji (tema), a sluša je ko god se na nju naštimao, bez da stanica zna ko sluša.
IoT donosi i posebne rizike za sigurnost (poglavlje 12): uređaja je mnogo, slabi su, dugo se ne ažuriraju, a često dolaze s istom fabričkom lozinkom. Pravila: svaki uređaj ima svoj ključ, saobraćaj je šifrovan, uređaj prima samo poruke na svoje teme, i postoji način da se ažurira na daljinu.
Rani ekspertni sistemi u realnom vremenu, iz osamdesetih godina, pokušavali su znanje iskusnog operatera u elektrani ili fabrici zapisati kao stotine pravila „ako je ovo, onda uradi ono”, pa da računar savjetuje operatera u stvarnom vremenu. Danas ulogu savjetnika sve češće preuzimaju modeli mašinskog učenja, o čemu govori poglavlje 15, ali problem ostaje isti: savjet koji stigne prekasno ne pomaže.
Odgovori: tipka R ili klik na zamućeno polje.
Cilj je simulirati upravljačku petlju hladnjaka, provjeriti rasporedivost zadataka i izračunati pouzdanost glasanja, sve u Pythonu. Radi se u folderu kod/realno-vrijeme/.
hladnjak.py iz primjeri/deliveryapp/ i pokrenite ga: python hladnjak.py.matplotlib), s horizontalnim linijama na 3,0, 5,0 i 8,0 °C i osjenčenim periodom otvorenih vrata.Mijenjajte po jedan parametar i zapišite posljedicu u kod/realno-vrijeme/nalazi.md:
Napišite funkciju koja za listu zadataka (C, T) računa iskorištenost U i granicu n · (2^{1/n} − 1) i ispisuje da li je skup sigurno rasporediv:
def rasporediv(zadaci):
n = len(zadaci)
U = sum(c / t for c, t in zadaci)
granica = n * (2 ** (1 / n) - 1)
return round(U, 3), round(granica, 3), U <= granica
print(rasporediv([(1, 10), (5, 100), (20, 200)])) # (0.25, 0.78, True)
print(rasporediv([(1, 10), (5, 100), (20, 200), (60, 100)])) # (0.85, 0.757, False)Provjerite oba primjera iz 13.6 i dodajte svoj zadatak (npr. „očitavanje vrata” 0,5 ms svakih 20 ms).
glasaj(a, b, c) koja vraća vrijednost koju su dala bar dva od tri senzora (za temperature: vrijednosti koje se razlikuju za najviše 0,5 °C smatraju se istim; vraća se njihov prosjek), ili None ako se nijedna dva ne slažu.Izračunajte u Pythonu grešku jednog otkucaja kada se 0,1 čuva sa 23 bita iza binarne tačke (0.1 - int(0.1 * 223) / 223), pa nagomilanu grešku za 8, 20, 48 i 100 sati rada pri 10 otkucaja u sekundi. Uporedite rezultat za 100 sati sa 0,34 s iz 13.8.
paho-mqtt i javni probni posrednik (npr. test.mosquitto.org) objavite temperaturu iz simulacije na temu deliveryapp-vjezba/<vaše-ime>/hladnjak i u drugom programu se pretplatite na nju. Ne šaljite ništa osim izmišljenih brojeva, jer je javni posrednik vidljiv svima.Rezultat koji se predaje: folder kod/realno-vrijeme/ sa simulacijom i grafikom, nalazi.md s rezultatima koraka 2 do 5, i funkcijama rasporediv i glasaj s ispisom provjera.
Rješenja su sakrivena – tipka R ili klik na okvir.
Tvrdi, čvrsti ili meki rok? a) računar koji upravlja ventilom za pritisak u kotlu; b) prikaz titlova u video zapisu; c) e-mail s računom poslije narudžbe; d) senzor koji zaustavlja pokretnu traku kad radnik stavi ruku unutra.
a) tvrdi (kašnjenje može izazvati eksploziju); b) čvrsti (zakašnjeli titl je bezvrijedan, ali rijetko kašnjenje se podnosi); c) meki; d) tvrdi (povreda radnika).
Koliki je najmanji korak 12-bitnog A/D pretvarača s opsegom od 0 do 5 V? Koliko je to stepeni za senzor koji daje 10 mV po °C?
ΔU = 5 V / 2¹² = 5 / 4096 ≈ 0,00122 V ≈ 1,22 mV. Uz 10 mV/°C to je oko 0,12 °C.
Tri zadatka: (C = 2 ms, T = 10 ms), (C = 10 ms, T = 50 ms), (C = 30 ms, T = 100 ms). Izračunajte U i provjerite da li je skup sigurno rasporediv po testu iz 13.6.
U = 0,2 + 0,2 + 0,3 = 0,7. Granica za tri zadatka je ≈ 0,78, a 0,7 ≤ 0,78, pa je skup sigurno rasporediv.
Svaki od tri senzora radi ispravno s vjerovatnoćom 0,95. Kolika je pouzdanost glasanja dva od tri? Je li to bolje od jednog senzora?
R = 3 · 0,95² − 2 · 0,95³ = 3 · 0,9025 − 2 · 0,857375 = 2,7075 − 1,71475 = 0,99275. Pouzdanost raste s 95 % na oko 99,3 %, a vjerovatnoća otkaza pada s 5 % na oko 0,7 %.
Sat u telefonu dostavljača kasni 2 sekunde, a dostavljač vozi skuter 36 km/h. Za koliko metara je pogrešno prikazan njegov položaj na mapi kupca, ako se položaj crta prema vremenu servera? Je li to opasno za DeliveryApp?
36 km/h = 10 m/s, pa je greška 10 m/s × 2 s = 20 m. Za praćenje dostave (meki rok) to nije opasno, ali pokazuje zašto se vrijeme mjerenja zapisuje iz usklađenog sata; za sistem s tvrdim rokom ista greška bila bi neprihvatljiva.