Sistemi u realnom vremenu

Cilj i ishod predmeta

Cilj predmeta je sticanje znanja o karakteristikama, funkcionalnoj specifikaciji i implementaciji sistema koji rade u realnom vremenu. Detaljno se analiziraju razni primeri iz oblasti auto-industrije, „pametnih kuća“, medicinskih uređaja, robotike i automatike. Pojam „rada u realnom vremenu“ sagledava sa stanovišta softvera, elektronike i mehanike, odnosno svega onoga od čega su sačinjeni složeniji uređaji, mašine i proizvodni pogoni. Nakon završetka kursa student:

  • razume i u stanju je da koncipira softver koji kao resurse koristi različite upravljačke algoritme, procesore, kontrolere, senzore i pokretače (motore);
  • razume i implementira osnovne algoritme raspoređivanja taskova;
  • razume načine komunikacije i sinhronizacije konkurentnih procesa u ovakvim sistemima;
  • razume osnovne probleme u komunikaciji sa senzorima i aktuatorima (drajvere) kod konkurentnih procesa;
  • zna osnovne elemente programskog jezika IEC 61131-3 (PLC) i načine realizacije softvera za sisteme u realnom vremenu pomoću ovog jezika;
  • razume da, osim tačnosti algoritama, na ispravnost rada ovakvih sistema utiče i pravovremena dostupnost i status ulaznih podataka u algoritam;
  • razume osnove rada servera koji omogućavaju konkurentnu obradu taskova;
  • razume arhitekturu softverskih alata i komponenti za projektovanje i brzu implementaciju sistema koji rade u realnom vremenu: namenski grafički i UML jezici, generatori koda, biblioteke (okruženja) i odredišni izvršioci.

Teorijska nastava

Funkcionalna analiza i specifikacija realnih primera iz prakse. Senzori i pokretači. Modelovanje funkcionalnih svojstava uređaja koji rade u realnom vremenu. Alati za modelovanje. Generatori koda. Okruženja (biblioteke). Izvršioci. Testiranje. Dokumentovanje. Različite verzije sistema. IEC 61131-3 (PLC): programi, tipovi podataka, funkcije, funkcijski blokovi, konvertori, limiteri, hardverski signali, konfiguracioni fajlovi. Pojam taska: tip, prioritet, afinitet, interval, redosled. Raspoređivači taskova. Koncept vremena. Postizanje predvidivosti. FreeRTOS. Vremenska ograničenja. Ograničenje prethođenja. Ograničenja resursa. Problem raspoređivanja. Anomalije u raspoređivanju. Raspoređivanje aperiodičnih taskova (Džeksonov algoritam, Hornov algoritam). Raspoređivanje bez istiskivanja: (Bratlijev algoritam, Spring algoritam). Raspoređivanje sa ograničenjem prethođenja. Raspoređivanje periodičnih taskova. Ciklično raspoređivanje. Raspoređivanje monotonim tempom (RM). Earliest Deadline First (EDF). Deadline Monotonic. EDF sa ograničenim rokovima. Serveri sa fiksnim prioritetom. Pozadinsko raspoređivanje. Server sa propitivanjem. Server sa odlaganjem. Razmena prioriteta. Sporadični server. Serveri sa dinamičkim prioritetom. Server sa razmenom dinamičkih prioriteta. Dinamički sporadični server. Server sa totalnim opsegom. Earliest Deadline Late server. Poboljšani server sa razmenom prioriteta. Server sa konstantnim opsegom.

Praktična nastava

Upoznavanje sa komandama koje podržavaju napredni sistemi – izvršioci. Specifičnost prevodioca za sisteme u realnim vremenu. Definisanje projektnih zadataka, koji se rade po grupama. Rad sa FreeRTOS operativnim sistemom u simuliranom okruženju i na mikrokontroleru. Poznavanje elemenata FreeRTOS operativnog sistema. Tipični problemi konkurentnosti kod sistema u realnom vremenu. Primena i modifikacija FreeRTOS raspoređivača. Implementacija podrške za aperiodične i periodične poslove. Implementacija podrške za ograničenja prethođenja. Zapis i analiza dobijenog rasporeda sistemskog raspoređivača u simuliranom i stvarnom okruženju. Implementacija poslova sa ograničenim resursima i njihovo raspoređivanje. Komunikacija sa hardverom u okviru različitih algoritama za raspoređivanje. Dokumentovanje i prezentacija projektnih zadataka. Implementacija nekih od projektnih zadataka na simulatorima i hardverskoj platformi.

3030-sistemi-u-realnom-vremenu

77ag AMANAHTOTO