Системи у реалном времену

Циљ и исход предмета

Циљ предмета је стицање знања о карактеристикама, функционалној спецификацији и имплементацији система који раде у реалном времену. Детаљно се анализирају разни примери из области ауто-индустрије, „паметних кућа“, медицинских уређаја, роботике и аутоматике. Појам „рада у реалном времену“ сагледава са становишта софтвера, електронике и механике, односно свега онога од чега су сачињени сложенији уређаји, машине и производни погони. Након завршетка курса студент:

  • разуме и у стању је да конципира софтвер који као ресурсе користи различите управљачке алгоритме, процесоре, контролере, сензоре и покретаче (моторе);
  • разуме и имплементира основне алгоритме распоређивања таскова;
  • разуме начине комуникације и синхронизације конкурентних процеса у оваквим системима;
  • разуме основне проблеме у комуникацији са сензорима и актуаторима (драјвере) код конкурентних процеса;
  • зна основне елементе програмског језика IEC 61131-3 (PLC) и начине реализације софтвера за системе у реалном времену помоћу овог језика;
  • разуме да, осим тачности алгоритама, на исправност рада оваквих система утиче и правовремена доступност и статус улазних података у алгоритам;
  • разуме основе рада сервера који омогућавају конкурентну обраду таскова;
  • разуме архитектуру софтверских алата и компоненти за пројектовање и брзу имплементацију система који раде у реалном времену: наменски графички и UML језици, генератори кода, библиотеке (окружења) и одредишни извршиоци.

Теоријска настава

Функционална анализа и спецификација реалних примера из праксе. Сензори и покретачи. Моделовање функционалних својстава уређаја који раде у реалном времену. Алати за моделовање. Генератори кода. Окружења (библиотеке). Извршиоци. Тестирање. Документовање. Различите верзије система. IEC 61131-3 (PLC): програми, типови података, функције, функцијски блокови, конвертори, лимитери, хардверски сигнали, конфигурациони фајлови. Појам таска: тип, приоритет, афинитет, интервал, редослед. Распоређивачи таскова. Концепт времена. Постизање предвидивости. FreeRTOS. Временска ограничења. Ограничење претхођења. Ограничења ресурса. Проблем распоређивања. Аномалије у распоређивању. Распоређивање апериодичних таскова (Џексонов алгоритам, Хорнов алгоритам). Распоређивање без истискивања: (Братлијев алгоритам, Спринг алгоритам). Распоређивање са ограничењем претхођења. Распоређивање периодичних таскова. Циклично распоређивање. Распоређивање монотоним темпом (RM). Earliest Deadline First (EDF). Deadline Monotonic. EDF са ограниченим роковима. Сервери са фиксним приоритетом. Позадинско распоређивање. Сервер са пропитивањем. Сервер са одлагањем. Размена приоритета. Спорадични сервер. Сервери са динамичким приоритетом. Сервер са разменом динамичких приоритета. Динамички спорадични сервер. Сервер са тоталним опсегом. Earliest Deadline Late сервер. Побољшани сервер са разменом приоритета. Сервер са константним опсегом.

Практична настава

Упознавање са командама које подржавају напредни системи – извршиоци. Специфичност преводиоца за системе у реалним времену. Дефинисање пројектних задатака, који се раде по групама. Рад са FreeRTOS оперативним системом у симулираном окружењу и на микроконтролеру. Познавање елемената FreeRTOS оперативног система. Типични проблеми конкурентности код система у реалном времену. Примена и модификација FreeRTOS распоређивача. Имплементација подршке за апериодичне и периодичне послове. Имплементација подршке за ограничења претхођења. Запис и анализа добијеног распореда системског распоређивача у симулираном и стварном окружењу. Имплементација послова са ограниченим ресурсима и њихово распоређивање. Комуникација са хардвером у оквиру различитих алгоритама за распоређивање. Документовање и презентација пројектних задатака. Имплементација неких од пројектних задатака на симулаторима и хардверској платформи.

3030-sistemi-u-realnom-vremenu