Systemy wbudowane. Systemy operacyjne czasu rzeczywistego

Podobne dokumenty
Czujniki obiektowe Sterowniki przemysłowe

Prezentacja systemu RTLinux

Podstawowe zagadnienia

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.1

Technika mikroprocesorowa. Systemy operacyjne czasu rzeczywistego

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

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

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

Planowanie przydziału procesora

Systemy operacyjne. Paweł Pełczyński

SYSTEMY OPERACYJNE WYKLAD 6 - procesy

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

Planowanie przydziału procesora

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

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

4. Procesy pojęcia podstawowe

4. Procesy pojęcia podstawowe

Systemy Czasu Rzeczywistego (SCR)

Materiały pomocnicze 1

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

Systemy czasu rzeczywistego wstęp

Systemy Czasu Rzeczywistego (SCR)

Wprowadzenie do systemów operacyjnych

Systemy czasu rzeczywistego. Systemy czasu rzeczywistego. Systemy czasu rzeczywistego. Systemy czasu rzeczywistego - przykłady

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

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

Podstawy Informatyki Systemy operacyjne

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

Systemy czasu rzeczywistego. Systemy czasu rzeczywistego. Systemy czasu rzeczywistego. Systemy czasu rzeczywistego - przykłady

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

LEKCJA TEMAT: Zasada działania komputera.

Działanie systemu operacyjnego

Działanie systemu operacyjnego

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI

4. Procesy pojęcia podstawowe

Definicja systemu operacyjnego (1) Definicja systemu operacyjnego (2) Miejsce systemu operacyjnego w architekturze systemu komputerowego

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

System komputerowy. System komputerowy

Wykład 3: Implementacja programów wbudowanych

Jądro systemu operacyjnego

Procesy, wątki i zasoby

Wbudowane systemy czasu rzeczywistego Wykład 14

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

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

Planowanie przydziału procesora

Systemy Czasu Rzeczywistego (SCR)

Ogólna koncepcja planowania. Planowanie przydziału procesora. Komponenty jądra w planowaniu. Tryb decyzji. Podejmowanie decyzji o wywłaszczeniu

Działanie systemu operacyjnego

Paweł Skrobanek. C-3, pok

Zarządzanie procesorem

Struktura systemu operacyjnego. Opracował: mgr Marek Kwiatkowski

SYSTEMY CZASU RZECZYWISTEGO - VxWorks

Budowa systemów komputerowych

WPROWADZENIE Mikrosterownik mikrokontrolery

Działanie systemu operacyjnego

Systemy wbudowane. Paweł Pełczyński

Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86

System plików. Warstwowy model systemu plików

Sieciowe Systemy Operacyjne

Projekt dotyczy stworzenia zintegrowanego, modularnego systemu informatycznego wspomagającego zarządzanie pracownikami i projektami w firmie

Podstawy informatyki. Izabela Szczęch. Politechnika Poznańska

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

Zarządzanie procesami i wątkami

Systemy operacyjne III

Systemy operacyjne i sieci komputerowe Szymon Wilk System operacyjny 1

System czasu rzeczywistego

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Politechnika Gdańska. Gdańsk, 2016

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

Programowanie współbieżne Wykład 2. Iwona Kochańska

Zarządzanie pamięcią w systemie operacyjnym

* Wymień typowe standardy sygnałów procesowych: - analogowy - dwustanowe

Architektura komputera

Pośredniczy we współpracy pomiędzy procesorem a urządzeniem we/wy. W szczególności do jego zadań należy:

Budowa Mikrokomputera

Wprowadzenie do systemów operacyjnych. mgr inż. Krzysztof Szałajko

1. Szeregowanie w systemach czasu rzeczywistego

POSIX ang. Portable Operating System Interface for Unix

SYSTEMY OPERACYJNE PROCESORÓW SYGNAŁOWYCH

Struktury systemów operacyjnych

Informatyka. informatyka i nauki komputerowe (computer science)

Budowa i zasada działania komputera. dr Artur Bartoszewski

System operacyjny wstęp

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

Wykład I. Podstawowe pojęcia. Studia Podyplomowe INFORMATYKA Architektura komputerów

Metody obsługi zdarzeń

Przerwania, polling, timery - wykład 9

Systemy Czasu Rzeczywistego (SCR)

Systemy czasu rzeczywistego wstęp

Porządek dostępu do zasobu: procesory obszary pamięci cykle procesora pliki urządzenia we/wy

Architektura systemu komputerowego. Działanie systemu komputerowego. Przerwania. Obsługa przerwań (Interrupt Handling)

1. Liczby i w zapisie zmiennoprzecinkowym przedstawia się następująco

Zaawansowane programowanie w języku C++ Zarządzanie pamięcią w C++

1. Budowa komputera schemat ogólny.

Urządzenia wejścia-wyjścia

Systemy wbudowane. Wykład 4: Systemy operacyjne dla systemów wbudowanych. Obsługa przez przerwania. Z wywłaszczaniem zadań:

Informatyka, systemy, sieci komputerowe

1.1 Definicja procesu

KARTA PRZEDMIOTU. Systemy czasu rzeczywistego: D1_9

Transkrypt:

Systemy wbudowane Systemy operacyjne czasu rzeczywistego

Definicje System czasu rzeczywistego to taki, w którym wynik przetwarzania nie zależy tylko i wyłącznie od jego logicznej poprawności, ale również od czasu, w jakim został osiągnięty. Jeśli nie są spełnione ograniczenia czasowe, mówi się, że nastąpił błąd systemu. System mikrokomputerowy działa w czasie rzeczywistym, jeżeli wypracowane przez ten system decyzje są realizowane w tempie obsługiwanego procesu. Inaczej mówiąc, system działa w czasie rzeczywistym, jeżeli czas reakcji systemu jest niezauważalny przez proces (decyzja jest wypracowana we właściwym czasie) Systemy operacyjne czasu rzeczywistego dzielimy na: Rygorystyczne Łagodne

Systemy rygorystyczne Rygorystyczne (twarde, ang. Hard real - time systems) - gwarantują terminowe wypełnianie krytycznych zadań. Osiągnięcie tego celu wymaga ograniczenia wszystkich opóźnień w systemie, poczynając od odzyskiwania przechowywanych danych, a kończąc na czasie zużywanym przez system na wypełnienie dowolnego zamówienia. Takie ograniczenia czasu wpływają na dobór środków, w które są wyposażane rygorystyczne systemy czasu rzeczywistego. Wszelkiego rodzaju pamięć pomocnicza jest na ogół bardzo mała albo nie występuje wcale. Wszystkie dane są przechowywane w pamięci o krótkim czasie dostępu lub w pamięci, z której można je tylko pobierać (ROM).

Systemy łagodne Łagodne(miękkie, ang. Soft real - time systems) - są mniej wymagające. W nich krytyczne zadanie do obsługi w czasie rzeczywistym otrzymuje pierwszeństwo przed innymi zadaniami i zachowuje je aż do swojego zakończenia. Podobnie jak w rygorystycznym systemie czasu rzeczywistego opóźnienia muszą być ograniczone - zadanie czasu rzeczywistego nie może w nieskończoność czekać na usługi jądra.

Schemat SOCR

Systemy rzeczywiste a systemy wbudowane Nie wszystkie systemy wbudowane zawierają cechy systemów czasu rzeczywistego, jak i również nie wszystkie systemy czasu rzeczywistego są wbudowane. Jednakże oba te typy systemów nie stanowią zbiorów rozłącznych. Ich część wspólna, to wbudowane systemy czasu rzeczywistego.

Cechy SOCR - ciągłość działania (stany oczekiwania na wystąpienie zdarzenia) zależność od otoczenia - współbieżność - przewidywalność - punktualność - uzależnienie pracy systemu mikrokomputerowego od wymagań czasowych obiektu - niezawodność - zapewnienie bezpiecznej pracy obiektu w przypadku awarii

Budowa SOCR - jądro(czasami utożsamiane jest z całym SO) systemu zawiera właściwe mechanizmy systemowe zarządzają one systemem plików, planują przydział procesora, zarządzają pamięcią - interfejs programów użytkowych określa sposób odwoływania się do systemu operacyjnego z poziomu wszystkich programów (użytkownika, programów systemowych tworzących powłokę) - powłoka jest modułem wymiennym i realizuje prosty interfejs użytkownika oraz niektóre polecenia systemowe - programy systemowe i użytkowe są dostarczane łącznie z jadrem SO - najniższą warstwą są programy obsługi sprzętu zawierające procedury bardzo niskiego poziomu

Funkcje SOCR Aby prawidłowo zarządzać procesami, systemy czasu rzeczywistego muszą realizować następujące funkcje : - tworzenie i usuwanie procesów użytkowych - wznawianie i wstrzymywanie procesów - synchronizację procesów - komunikację miedzy procesami - obsługę blokad

Zdarzenia w SOCR System operacyjny czasu rzeczywistego musi odpowiednio zareagować na różne typy zdarzeń i w przeciwieństwie do zwykłych systemów musi być tak samo stabilny przed i po ich obsłużeniu. Rodzaje zdarzeń : - zdarzenia zewnętrzne sygnalizowane przez przerwania zgłaszane przez zewnętrzne urządzenia współpracujące - zdarzenia czasowe czyli sygnalizowane przez systemowy program obsługi zegara rejestrujący upływ zadanego czasu kontrolnego T - zdarzenia wewnętrzne czyli sygnalizowane przez przerwania generowane przez odpowiednie elementy komputera np.: koprocesor arytmetyczny w przypadku popełnienia błędu -zdarzenia programowe czyli generowane jawnie odwołania wykonywanych zadań do systemu operacyjnego

Zadania w SOCR Zadanie - fragment programu którego wykonanie jest wymuszone przez zdarzenie np.: działanie zegara czasu rzeczywistego, obsługa przerwania. Cechą SOCR jest stałe, ściśle określone ograniczenie czasowe nałożone na wykonywane zadanie. Jeśli aktualne zdanie musi czekać na zakończenie danej operacji, to system może przejść do wykonywania następnego zadania, a następnie powrócić do zadania pierwotnego. Zadania mogą znajdować się w różnych stanach: - zadanie wykonywane - zadanie zawieszone - zadanie w stanie oczekiwania - zadanie bez przydzielonych zasobów

Budowa SOCR Najniższe dwie warstwy to sprzęt oraz zbiór sterowników (BSP). Później jest jądro systemu oraz szereg modułów jak np. system plików, podsystem wejścia - wyjścia, dodatkowe sterowniki, protokoły sieciowe oraz komponenty wspierające tworzenie aplikacji. Na samym szczycie powyższej hierarchii, uruchamiane są aplikacje użytkownika.

Jądro SOCR Mikrojądro, to komponent dostarczający minimalną liczbę usług. jak np. tworzenie lub usuwanie zadania, alokowanie i dealokowanie potrzebnej pamięci, dostarczenie kolejek komunikatów itp. Klient ma dostęp do tych obiektów poprzez różne interfejsy, jak np. API. Najczęściej jest implementowane w języku niskiego poziomu (np. assembler). co sprawia, że jego przenośność jest ograniczona tylko i wyłącznie do konkretnego typu procesora. Nie jest to jednak ogromny problem, gdyż cała reszta systemu jest implementowana w językach jak np. C++ i przeniesienie całości z jednej platformy na inną, wiąże się tylko i wyłącznie z przepisaniem tych najbardziej podstawowych usług.

Mechanizmy jądra Przydzielają czas systemu dla poszczególnych zadań programu użytkowego: - obsługa priorytetowa zadań z wywłaszczeniem. Zaleta: czas miedzy zdarzeniami wewnętrznymi, a wykonywaniem zadania o największym priorytecie jest ściśle określony i spełniony. Wada: w przypadku zadań o niskim priorytecie może dojść do sytuacji są one wykonywanie bardzo rzadko. - obsługa cykliczna zdarzeń z wywłaszczeniem. Zaleta: wszystkie zadania mają ten sam priorytet oraz własny maksymalny czas wykonania. Wada: nie ma możliwości zagwarantowania natychmiastowej obsługi zgłoszonego zdarzenia zewnętrznego. Przydzielają pamięć dla poszczególnych zdań programu użytkowego (alokacja pamięci RAM przez zadanie).

Mechanizmy jądra mechanizmy wymiany informacji między zadaniami oraz między zadaniami i zdarzeniami zewnętrznymi: - kolejki do wymiany informacji między zadaniami za pomocą komunikatów przekazywanych w ustalonych buforach danych - gniazda do wymiany informacji między zadaniami, a systemami zewnętrznymi za pomocą standardowych protokołów sieciowych - semafory do synchronizacji pracy zadań, uzależnienie wykonywania danego zadania od wyników pracy innego zdania (operacja binarna) - sygnały do wymiany informacji między zdarzeniami zewnętrznymi, a wykonywanymi zadaniami (obsługa przerwań) - wspólna pamięć od korzystania ze wspólnych struktur danych przez wiele zadań Mechanizmy dostępu do układów peryferyjnych (sterowniki urządzeń) sterowniki urządzeń mogą kontaktować się z zadaniami tylko za pośrednictwem kilku standardowych funkcji

Szeregowanie zadań Jeśli właściwości kontrolowanego systemu mogą zostać określone z góry, to rodzaj i kolejność podejmowanych działań są określone przed rozpoczęciem wykonywania procesu. Wówczas stosuje się tzw. szeregowanie statyczne Niestety, kontrolowane procesy okazują się o wiele bardziej złożone, a środowiska w jakich najczęściej się wykonują, charakteryzuje niepewność. Istnienie elementów stochastycznych sprawia, że powstają także systemy z szeregowaniem dynamicznym Najważniejszą częścią jądra każdego systemu czasu rzeczywistego, jest tzw. program szeregujący (ang. scheduler). Dostarcza on algorytmów określających, jakie zadanie czy proces ma przejąć procesor oraz kiedy ma to nastąpić. Pozwala to na stworzenie wielozadaniowości (ang. multitasking).

Algorytmy wywłaszczania z priorytetami Algorytm opiera się tylko o zestaw priorytetów, określających poziom ważności. Ich interpretacja oraz zakres zależą od konkretnej implementacji. Ogólna zasada polega na tym, że jeśli w danej chwili jest jednocześnie kilka zadań gotowych do uruchomienia, to wybierane jest to o najwyższym priorytecie. Jeśli natomiast, w czasie obliczeń, pojawi się zadanie o wyższym priorytecie od aktualnie wykonywanego, to wówczas scheduler przerywa je, zapisuje jego stan oraz oddaje procesor zadaniu ważniejszemu.

Algorytm wywłaszczania z priorytetami i podziałem czasu procesora Każdemu zadaniu przydzielony został określony przedział czasowy. Zadanie nr 1, po przejęciu procesora, wykonuje się przez określony czas, po czym oddaje procesor kolejnemu. Oczywiście jeśli w dowolnej chwili pojawi się zadanie o wyższym priorytecie od aktualnego, to wówczas ono staje się bieżącym. Jeśli jest ono przez cały czas swoich obliczeń zadaniem najważniejszym, to wykonuje się aż do zakończenia i dopiero oddaje procesor, aby inne zadania mogły się dokończyć. Wywłaszczone zadanie nr 1, po przywróceniu jego stanu nie otrzymuje dodatkowego czasu. Jest ono wykonywane dalej tak, jakby przełączenie kontekstu w ogóle nie miało miejsca.

Semafory Semafor, jest obiektem jądra, który może zostać zajęty przez jeden lub kilka wątków w celu sterowania dostępem do np. jakiegoś wspólnego zasobu. Każdy jest zdefiniowany przez swój unikalny numer, blok kontrolny zawierający dodatkowe dane, wartość (binarną lub wyliczeniową) oraz listę oczekujących zadań. Operacje: czekaj - to operacja opuszczająca semafor. Zmniejsza jego wartość o jeden. Pamiętać należy, że sam semafor jest liczbą nieujemną. Dlatego też operacja ta jest wykonywana tylko wtedy, gdy jest możliwa. sygnalizuj - jest operacją zwiększającą wartość semafora o jeden. Logicznie odpowiada operacji podniesienia semafora. Obie te operacje są niepodzielne, co oznacza, że w danej chwili może być wykonana tylko i wyłącznie jedna z nich. Raz rozpoczęte muszą się zakończyć.

Odmierzanie czasu Rozwiązania sprzętowe. Realizowane są przez układy scalone, które w sposób bezpośredni przerywają obliczenia procesora oraz sygnalizują, że upłynął jakiś okres. Są one stosowane wszędzie tam, gdzie bardzo istotna jest precyzja. Programowalne kontrolery czasu określają częstotliwość impulsu wejściowego oraz zbiór programowalnych rejestrów. Częstotliwość generowanych przez nie przerwań jest funkcją odpowiedniego rejestru oraz sygnału wejściowego. Reszta rejestrów może określać inne cechy, jak np. czy odmierzanie ma być cykliczne oraz jest zależna od konkretnej implementacji. Rozwiązania programowe pozwalają bardzo wydajnie szeregować zadania, dla których można założyć pewne niedokładności jeśli chodzi o impulsy czasowe. Ich użycie składa się zazwyczaj z trzech podstawowych etapów: - instalacja zegara (uruchomienie odliczania) - podtrzymywanie zegara(np. odliczanie) - usunięcie zegara (zatrzymanie odliczania).

FlexOS FreeRTOS ucrtos MicroC/OS-II ecos QNX OS9 VxWorks LynxOS Phoenix-RTOS irmx RT-Linux RTKernel DRYOS, i inne Przykłady SOCR

Przykłady zastosowań SOCR systemy sterowania procesów przemysłowych - nadzorowanie linii technologicznych, obrabiarek, robotów, układów napędowych itp. w urządzeniach telekomunikacyjnych i sieciowych w życiu codziennym: w aparatach cyfrowych, w samochodach, komputerach przenośnych, a także w systemach kina domowego i sekretarkach telefonicznych, w pralkach i zmywarkach, gdzie po zebraniu informacji z licznych czujników (jak stopień zabrudzenia wody), odpowiednio optymalizują przebieg programu. w zastosowaniach biurowych, jako funkcjonalna część urządzeń sieciowych jak np. przełączniki, routery, drukarki, modemy itp. w medycynie, fizyce, astronomii, wojskowości itp.