Jesień LinuksowaLinux - Real-Time w systemach wbudowanych



Podobne dokumenty
Linux - Real-Time (?)

Technika mikroprocesorowa. Systemy operacyjne czasu rzeczywistego

Podstawowe zagadnienia

Architektury systemów czasu rzeczywistego RTOS. Wykonał: Bartłomiej Bugański

Prezentacja systemu RTLinux

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.1

Jesień Linuksowa - Embedded Linux Security

Systemy wbudowane - wykład 9. Systemy czasu rzeczywistego Notes. Systemy czasu rzeczywistego Notes. Systemy czasu rzeczywistego Notes.

PROGRAMOWALNE STEROWNIKI LOGICZNE

Jądro systemu operacyjnego

Jadro Linux 2.6. a zadania czasu rzeczywistego. Artur Lewandowski. Jądro Linux 2.6 p.1/14

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Linux.

System czasu rzeczywistego

Systemy wbudowane. Systemy operacyjne czasu rzeczywistego

PRZEWODNIK PO PRZEDMIOCIE

System komputerowy. System komputerowy

Systemy czasu rzeczywistego wstęp

U M L. System operacyjny Linux zagnieżdżony w zewnętrznym systemie operacyjnym (Linux)

Systemy operacyjne oparte na mikrojądrze na przykładzie Minix3. Maciej Łaszcz, Wojciech Łowiec, Patryk Spanily 2 XII 2008

Struktury systemów operacyjnych

Opis efektów kształcenia dla modułu zajęć

Real-Time Linux. Wprowadzenie

Nagios czyli jak mieć na oku zasoby sieci. Przygotował: Andrzej Nowrot Leon Sp. z o.o.

1. Etapy rozwoju systemów komputerowych

Większe możliwości dzięki LabVIEW 2009: programowanie równoległe, technologie bezprzewodowe i funkcje matematyczne w systemach czasu rzeczywistego

Systemy wbudowane. Paweł Pełczyński

Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Zadania systemu operacyjnego. Abstrakcyjne składniki systemu. System komputerowy

Cyfrowy rejestrator parametrów lotu dla bezzałogowych statków powietrznych. Autor: Tomasz Gluziński

Zagadnienia egzaminacyjne INFORMATYKA. Stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Wprowadzenie do systemów operacyjnych

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2010/2011

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Projekt i implementacja systemu obsługi kart chipowych

POSIX ang. Portable Operating System Interface for Unix

UNIX: architektura i implementacja mechanizmów bezpieczeństwa. Wojciech A. Koszek dunstan@freebsd.czest.pl Krajowy Fundusz na Rzecz Dzieci

Systemy czasu rzeczywistego Real Time Systems. Automatyka i Robotyka I stopień ogólnoakademicki

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Windows.

Tworzenie sterowników dla FreeBSD. Michał Hajduk

dokument DOK wersja 1.0

Czujniki obiektowe Sterowniki przemysłowe

Sieciowe Systemy Operacyjne

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

projekt akademicki w Institute for Mining and Technology of New Mexico. Autor Victor Yodaiken FSMLabs komercyjna odmiana RTLinuxPro

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Podstawy informatyki. System operacyjny. dr inż. Adam Klimowicz

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Sprawozdanie z projektu MARM. Część druga Specyfikacja końcowa. Prowadzący: dr. Mariusz Suchenek. Autor: Dawid Kołcz. Data: r.

Struktura systemu operacyjnego. Opracował: mgr Marek Kwiatkowski

Regulator PID w sterownikach programowalnych GE Fanuc

Szybkie prototypowanie w projektowaniu mechatronicznym

WPROWADZENIE Mikrosterownik mikrokontrolery

Systemy czasu rzeczywistego wstęp

Embedded Solutions Automaticon Efektywne pomiary i sterowanie przy użyciu systemu wbudowanego MicroDAQ

Roger Access Control System. Aplikacja RCP Point. Wersja oprogramowania : 1.0.x Wersja dokumentu: Rev. C

Tango-RedPitaya. Tango device server for RedPitaya multi-instrument board. Grzegorz Kowalski 31 sierpnia 2015

<Nazwa firmy> <Nazwa projektu> Specyfikacja dodatkowa. Wersja <1.0>

Aktualizowanie systemów operacyjnych

Programowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

Tworzenie aplikacji czasu rzeczywistego z użyciem sprzętu i oprogramowania National Instruments

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA realizacja w roku akademickim 2016/2017

Mechanizmy pracy równoległej. Jarosław Kuchta

Uniwersytet Mikołaja Kopernika w Toruniu. Profilowanie ruchu sieciowego w systemie GNU/Linux

Modelowanie procesów współbieżnych

Instrukcja użytkownika ARSoft-WZ1

Opracował: Jan Front

Bazy danych 2. Wykład 1

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński

>>> Techniki rozbudowy systemów wbudowanych >>> Biblioteki wspomagające rozbudowę systemów wbudowanych. Name: Mariusz Naumowicz Date: 29 maja 2019

Na chwilę obecną biblioteka ElzabObsluga.dll współpracuje tylko ze sprawdzarkami RSowymi.

Komputery przemysłowe i systemy wbudowane

SYLABUS/KARTA PRZEDMIOTU

Technika mikroprocesorowa. Struktura programu użytkownika w systemie mikroprocesorowym

Zagadnienia egzaminacyjne INFORMATYKA. stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Wykład I. Wprowadzenie do baz danych

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2009/2010

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

Budowa systemów komputerowych

Analiza ilościowa w przetwarzaniu równoległym

Obliczenia równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

Systemy Czasu Rzeczywistego. dr inż. Piotr Szwed C3, pok

1. Wprowadzenie Programowanie mikrokontrolerów Sprzęt i oprogramowanie... 33

SYSTEMY OPERACYJNE WYKLAD 6 - wątki

Ćwiczenie nr: 9 Obliczenia rozproszone MPI

Architektura komputerów

IdyllaOS. Prosty, alternatywny system operacyjny. Autor: Grzegorz Gliński. Kontakt:

Systemy operacyjne i sieci komputerowe Szymon Wilk System operacyjny 1

Przegląd rozwiązań z oferty firmy 4D Systems

SELinux. SELinux Security Enhanced Linux. czyli. Linux o podwyższonym bezpieczeństwie

Systemy operacyjne III

Mariusz Rudnicki PROGRAMOWANIE WSPÓŁBIEŻNE I SYSTEMY CZASU RZECZYWISTEGO CZ.3

Laboratorium Komputerowe Systemy Pomiarowe

Szeregowanie zadań w Linux Kernel 2.6. Daniel Górski Przemysław Jakubowski

Konfigurowanie modułu BK9050 firmy Beckhoff wprowadzenie

Systemy operacyjne. wykład dr Marcin Czarnota laboratorium mgr Radosław Maj

1.1. Wymogi bezpieczeństwa Pomoc techniczna TIA Portal V13 instalacja i konfiguracja pakietu...18

SYSTEMY CZASU RZECZYWISTEGO - VxWorks

3. Sieć PLAN. 3.1 Adresowanie płyt głównych regulatora pco

Tworzenie oprogramowania

Platformy programistyczne:.net i Java L ABORATORIUM 7,8: HACKATHON - JTTT

Transkrypt:

Jesień Linuksowa Linux - Real-Time w systemach wbudowanych marcin@bis-linux.com 13 padziernika 2012 Jesień LinuksowaLinux - Real-Time w systemach wbudowanych

O mnie http://bis.org.pl/ GNU/Linux (administracja, programowanie) Embedded Linux szkolenia, konsulting, wsparcie techniczne przemysłowe zastosowania systemu Linux (Real-Time)

Ogólny trend w systemach Embedded Linux (i open-source) jest coraz częściej wykorzystywany w systemach wbudowanych. Sprzęt zdolny do uruchamiania Linuksa jest coraz tańszy (procesory, pamięci). Linux wspiera dużo sprzętu i protkołów. Kod tworzony pod Linuksa jest z reguły re-używalny.... koszt systemu, brak vendor lock-in. Coraz więcej tego typu aplikacji musi działać w czasie rzeczywistym.

System sterowania Przykładowy system oparty na projekcie TNKernel http://www.tnkernel.com/ Projekt Open-Source rozwijany głównie przez jednego człowieka (plus zainteresowane nim firmy). Elegancko zaprojektowany, przejrzysty kod. Przetestowany na wielu wdrożeniach. Problem - Klient zamawia: pobieranie logów przez FTP zdalne sterowanie urządzeniem ładniejsze ikonki Zbyt trudne do zrealizowania (w rozsądnym czasie). Te rzeczy mamy z pudełka w Linuksie! - sprawdźmy, czy się nadaje.

Co oznacza Real-Time? Definicja książkowa : Poprawność wykonania operacji zależy nie tylko od tego, czy wykonała się bez błędów i zwróciła poprawny rezultat, ale także od czasu (górnego ograniczenia) w jakim operacja się zakończyła.

Co oznacza Real-Time? Definicja praktyczna : System RT, to taki, w którym da się udowodnić, że każda wymagana operacja zakończy się w określonym czasie. W idealnym przypadku jest to dowód matematyczny. Niestety przy złożoności współczesnych systemów jest to niewykonalne, a nawet jeżeli, to istnieje ryzyko popełnienia błędu podczas dowodzenia. W praktyce stosuje się zestaw testów. System, który przejdzie takie testy określne w specyfikacji lub powstające podczas jego tworzenia, jest określany jako system czasu rzeczywistego.

Real-Time vs. Real-Fast Linux jest zaprojektowany jako system demokratyczny zasoby są przydzielane według potrzeb na przykład: planista zapobiega zagłodzeniu procesu Zazwyczaj determinizm nie jest brany pod uwagę liczy się maksymalna wydajność (throughput)

Real-Time vs. Real-Fast, cd... Większośc warstw i algorytmów jest złożona.

Praktyczny test

Wzorcowy układ

Wzorcowy układ Wejście jest wzbudzane sygnałem i system reaguje zmieniając stan wyjścia. W tym przypadku są to PIN-y GPIO. Sytuacja niczym się nie różni od wzbudzania wejścia przy pomocy innego (wewnętrznego mechanizmu). To jest timera lub przerwania z urządzenia (kamera).

Realizacja w procedurze obsługi przerwania

Realizacja w procedurze obsługi przerwania

Dodajemy obciążenie $ cat /proc/loadavg 5.02 3.76 2.04 2/47 432 odczyt danych z karty SD: cat /dev/mmcblk0p1 > /dev/null wysyłanie danych ASCII na terminal podłączony przez port szeregowy: cat /dev/zero od -v wysyłanie do badanego systemu dużej ilości pakietów IP (ICMP): ping -f <adres urządzenia> Uwaga!: te testy nie poddają systemu obciążeniom występującym podczas rzeczywistej pracy.

Realizacja w procedurze obsługi przerwania - obciążenie

Podstawowe pojęcia.

Deadline Punkt w czasie, w którym dana akcja ma nastąpić (np. reakcja na zmianę stanu wejścia). Hard Real-Time - operacja zawsze musi zakończyć się w określonym czasie. Wynik operacji zakończonej później - nie nadaje się do wykorzystania (awaria już nastąpiła). Soft Real-Time - okazjonalnie operacja może zakończyć się po ustalonym czasie (błąd nie jest krytyczny dla operacji) - na przykład zgubiona ramka obrazu.

Latency Czas pomiędzy momentem w którym akcja miała wystąpić, a momentem w którym w rzeczywistości wystąpiła. W idealnym przypadku (taki system nie istnieje) - opóźnienia byłyby zerowe. W rzeczywistości komputer potrzebuje pewnego czasu na ustabilizowanie i przetworzenie sygnałów ze sprzętu, oprogramowanie wprowadza własne opóźnienia itp.

Jitter Wariancja opóźnienia (poprzedniej wartości). Czas pomiędzy wystąpieniem przerwania (zgłoszeniem przez sprzęt) a uruchomieniem procedury jego obsługi nie jest stały. Jego zmienność jest równie groźna jak duże opóźnienie (na przykład uniemożliwia wykorzystanie systemu do akwizycji danych).

Predictability Przewidywalność. Oznacza wiedzę na temat tego ile czasu zajmie operacja (na przykład procedura obsługi przerwania). Teoria algorytmów zajmuje się określaniem złożoności obliczeniowej poszczególnych metod. W szczególności aby system był przewidywalny, konieczne jest używanie algorytmów działających w stałym czasie (niezależnym od ilości danych).

Worst Case Ze względu na zmienność rzeczywistych systemów (nie da się zbudować systemu idealnego), głównym polem naszych zainteresowań pozostaje najgorszy możliwy przypadek. System będzie działał w sposób przewidywalny jeżeli będziemy znać jego opóźnienie w najgorszym możliwym przypadku.

W Linuksie: Oddzielamy logikę od mechanizmów

Userspace - obciążenie

Userspace - obciążenie

Jak z Linuksa zrobić system Real-Time? Przy pomocy rozwiązań Open-Source

1 Metody oparte na mikrojądrze: RTLinux - pierwsza implementacja. RTAI - najmniejsze możliwe opóźnienia. Adeos - nanokernel. Xenomai - oparty o Adeos - łatwe portowanie kodu z innych systemów RT. 2 Próba ulepszenia Linuksa: RT PREEMPT

Mikrojądro

I-Pipe (Adeos) Kontroluje przerwania sprzętowe (wszystkie) Kontroluje przerwanai software-owe (syscall) Przydziela je do poszczególnych domen.

$ cat /proc/ipipe/xenomai +----- Handling ([A]ccepted, [G]rabbed, +---- Sticky [W]ired, [D]iscarded) +--- Locked +-- Exclusive +- Virtual [IRQ] 38: W..X. 418: W...V [Domain info] id=0x58454e4f priority=topmost $ cat /proc/ipipe/linux 0: A... 1: A...... priority=100

Xenomai - architektura

Xenomai i RTAI Obydwa projekty mają wiele wspólnego. RTAI - ma dostarczać systemu o jak najmniejszych opóźnieniach. Xenomai - ma zapewniać kompatybilność z API klasycznych RTOS-ów. RTAI - jest projektem akademickim - rozwój przebiega dość chaotycznie (skokowo). Xenomai - ma większą bazę użytkowników.

RTAI - LinuxCNC Praktyczna demonstracja możliwości RTAI. Ubuntu (LiveCD) + RTAI + Aplikacje GUI Język G Wizualizacja Sterowniki Programowalne PLC

LinuxCNC

LinuxCNC

RT PREEMPT

Skąd się biorą opóźnienia?

Od wersji 2.6.0 dostępna jest możliwość włączenia wywłaszczania kodu jądra. Kernel Features ---> Preemption Model (Preemptible Kernel ()) --> ( ) No Forced Preemption (Server) ( ) Voluntary Kernel Preemption (Desktop) (X) Preemptible Kernel (Low-Latency Desktop) To nadal nie jest RT!

RT-Preempt Łaty pozwalające na uruchamianie wątków czasu rzeczywistego, rozwijane są w oddzielnym projekcie: http://www.kernel.org/pub/linux/kernel/projects/rt/ Są one sukcesywnie włączane do jądra. Kernel Features ---> Preemption Mode (Complete Preemption ()) ---> (X) Complete Preemption (Real-Time) -*- Thread Softirqs -*- Thread Hardirqs

Przerwania w wątkach 1 Standardowa obsługa przerwań 2 Obsługa przerwań w wątkach

Obciążenie

Obciążenie

Jądro z łatą RT PREEMPT nie sprawia, że system staje się RT. Trzeba skorzystać z: POSIX RT-API i dopiero aplikacje napisane z jego użyciem będą działały w reżimie czasu rzeczywistego!

Wsparcie dla POSIX RT API w Linuksie Standard IEEE 1003.1b - POSIX.1b. Najważniejsze deterministyczne mechanizmy programowania w systemach czasu rzeczywistego określone w standardzie, to: Planowanie uruchamiania procesów (API planisty, pozwalające zdefiniować na stałe priorytet procesu oraz klasę zaszeregowania). Blokowanie pamięci (w celu uniemożliwienia jej zeswapowana). Kolejki komunikatów. Pamięć współdzielona. Sygnały czasu rzeczywistego. Semafory. Timery (CLOCK MONOTONIC). AIO - nieblokujące operacje odczytu i zapisu danych, oraz kontroli zleceń

Aplikacja sterująca procesem przemysłowym

KONIEC