Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Systemy czasu rzeczywistego

Podobne prezentacje


Prezentacja na temat: "Systemy czasu rzeczywistego"— Zapis prezentacji:

1 Systemy czasu rzeczywistego
Automatyka i Robotyka Systemy czasu rzeczywistego Wykład 1

2 Literatura Ułasiewicz J.: System czasu rzeczywistego QNX6 Neutrino, Wydawnictwo BTC 2008 Silberschatz A., Galvin P., Gagne G.: Podstawy systemów operacyjnych, WNT 2005 Ben-Ari M.: Podstawy programowania współbieżnego i rozproszonego, WNT 1996

3 System operacyjny- warstwa pomiędzy aplikacjami a sprzętem
Funkcje systemu operacyjnego: Udostępnia i rozdziela czas (moc obliczeniową) procesora dla wielu aplikacji, Udostępnia mechanizmy do synchronizacji i komunikacji pomiędzy zadaniami, Obsługuje urządzenia peryferyjne, Zarządza zadaniami (procesami, wątkami), Zarządza pamięcią, Udostępnia system plików, Zarządza komunikacją i transmisją danych

4 3 główne elementy systemu operacyjnego
Jądro systemu wykonujące zadania, Powłoka ang. shell - specjalny program umożliwiający komunikację użytkownika z systemem operacyjnym, System plików - sposób zapisu struktury danych na nośniku.

5 Jądro systemu składa się z:
planisty czasu procesora - ustalającego które zadanie i jak długo będzie wykonywane, schedulera zadań, odpowiedzialnego za przełączanie pomiędzy uruchomionymi zadaniami, modułu zapewniającego synchronizację i komunikację pomiędzy zadaniami, modułu obsługi przerwań i zarządzania urządzeniami, modułu obsługi pamięci, zapewniającego przydział i ochronę pamięci

6 Podział systemów operacyjnych
Podział ze względu na planowanie i przydział czasu procesora: system operacyjny czasu rzeczywistego (RTOS), systemy operacyjne czasowo niedeterministyczne. Podział ze względu na sposób realizacji przełączania zadań: systemy z wywłaszczaniem zadań, systemy bez wywłaszczania. Podział ze względu na przeznaczenie systemu: otwarte systemy operacyjne, wbudowane systemy operacyjne.\

7 Wielozadaniowość cecha systemu operacyjnego umożliwiająca pseudorównoczesne wykonywanie więcej niż jednego zadania. Wielozadaniowość realizowana jest na poziomie jądra systemu operacyjnego. Za przełączenia zadań odpowiedzialny jest planista oraz zarządca procesów.

8 Praca równoległa wielu zadań jest pozorna (przy założeniu, że mamy do dyspozycji tylko jeden procesor). Współdzielenie zasobów umożliwia jednoczesne uruchomienie kilku zadań – użytkownik ma wrażenie, że wszystkie zadania są wykonywane równolegle. Jednak zadania wykonywane są sekwencyjnie i ma to wpływ na czas realizacji poszczególnych zadań

9 Program pocztowy i przeglądarka internetowa mogą działać w tym samym czasie.
W czasach DOS trzeba by zapisać i zamknąć arkusz kalkulacyjny przed otwarciem edytorze tekstu. Wraz z pojawieniem się systemu Windows, można uruchomić wiele aplikacji jednocześnie.

10 W Windows 3.x była zastosowana wielozadaniowość oparta na współpracy (cooperative multitasking), która polegała na założeniu, że wszystkie uruchomione procesy mogą w każdej chwili umożliwiać wykonanie innych procesów. Problemem było to, że nie wszyscy producenci oprogramowania przestrzegali tych zasad i program, który nie wrócił pod kontrolę systemu destabilizował system operacyjny, powodując najczęściej "zawieszenie". Np. jeśli Windows 3.x rozpoczął taką aplikację, przestawał ją kontrolować zakładając, że kontrola będzie szybko zwrócona do Windows - jeśli tak się nie stało, wszystkie inne uruchomione aplikacje w tym systemie operacyjnym nie wykonywały poleceń.

11 Obecnie Windows wykorzystuje (preemptive multitasking) wielozadaniowość z wywłaszczaniem.
W tym modelu, zamiast programów, za powrót do kontroli systemu w regularnych odstępach czasu odpowiada system operacyjny. Jako główny wątek typowy program Windows wykonuje pętlę (tzw. pompa informacji). Pętla kontroluję kolejkę aby sprawdzić, czy jest coś do zrobienia, jeśli jest, to wykonuje zadanie.

12 Kliknięcie ikony programu powoduje dodanie zadania do kolejki i komunikat z informacją, która metoda powinna zostać zrealizowana. Jest to tzw. obsługa zdarzeń (event handler). Podczas wykonywania pętli obsługi zdarzeń, nie można przetwarzać dodatkowych informacji. Wielowątkowość (dokładniej - więcej niż jednego wątku) to metoda obejścia tego ograniczenia. Zamiast jednego głównego wątku, który ma wykonać czasochłonne prace, przydzielamy zadania oddzielnym wątkom

13 Program komputerowy jest obiektem pasywnym i nie jest procesem.
Program można zdefiniować jako procedurę lub grupę procedur, które współpracują w celu wykonania zadania – napisany przez programistę. Procedury to pakiety instrukcji działających w celu utrzymania elementów i zazwyczaj zebrane są w biblioteki dynamiczne (DLL) lub pliku wykonywalnym (EXE) lub kombinacją obu.

14 Proces jest obiektem aktywnym, który korzysta z zasobów dostępnych w systemie i dla którego można wskazać następny rozkaz do wykonania poprzez określenie zawartości wskaźnika instrukcji (licznika rozkazów) procesora.

15 Proces to uruchomiony program, któremu umożliwiono dostęp do pamięci i zasobów
Każdy proces przebiega stosunkowo niezależnie od innych procesów. Umieszczenie programów w procesach (przy użyciu tylko ograniczonej, uzgodnionej komunikacji między nimi) to zaleta - błąd w jednym procesie nie koliduje z innymi procesami.

16 Z punktu widzenia systemu operacyjnego każdy proces jest skojarzony z logiczną strukturą danych.
Pamięć procesu, w której zmienne alokowane są zmienne jest całkowicie oddzielona od pamięci używanej przez inne procesy. Za zarządzanie procesami odpowiada jądro systemu operacyjnego.

17 Przykład Np. klient pocztowy nie może bezpośrednio przypisać nowej wartości zmiennej w programie przeglądarki internetowej. Program może komunikować się z przeglądarką internetową (np. otworzyć stronę internetową z linkiem otrzymanym w mailu) - ale jest to forma komunikacji, a nie dostęp do pamięci.

18 Zanim nastąpiły wielozadaniowe systemami operacyjnymi było znacznie bardziej prawdopodobne spowodowanie awarii systemu. Umieszczenie zadań w procesach i ograniczenie interakcji z innymi procesami i systemem operacyjnym, zwiększyło stabilność systemów

19 Wątek (thread) Proces może zawierać wiele wątków
Elementarna jednostka pracy, zarządzana przez system operacyjny ubiegająca się o moc obliczeniową procesora. Procesy posiadają własne zasoby (stos, przydzieloną pamięć, otwarte deskryptory urządzeń I/O, pliki), Wątki współdzielą prawie wszystkie zasoby w ramach procesu (np. wspólna pamięć). Proces może zawierać wiele wątków

20 Alan Dennis porównuje proces do domu:
zasoby wątki

21 The cat spends most of its time sleeping, but occasionally it wakes up and performs some action, such as eating. The house shares many characteristics with a process. It contains resources available to beings in it, such as a litter box. These resources are available to things within the house, but generally not to things outside the house. Things in the house are protected from things outside of the house. This level of isolation helps protect resources from misuse. One house can easily be differentiated from another by examining its address. Most important, houses contain things, such as furniture, litter boxes, and cats. Cats perform actions. A cat interacts with elements in its environment, like the house it lives in. A housecat generally has a name. This helps identify it from other cats that might share the same household. It has access to … the entire house depending on its owner’s permission. A thread’s access to elements may also be restricted based on permissions, in this case, the system’s security settings.

22 wątki mają dostęp i mogą przetworzyć wszystkie dane procesu.
Podstawowa różnica między wątkiem a procesem: wątki mają dostęp i mogą przetworzyć wszystkie dane procesu. Tak więc, prosty dostęp do pamięci może wykonać zadanie ustalania zmiennej używanej w innym wątku. Każdy program ma co najmniej jeden wątek.

23 Wielowątkowość Wielowątkowość pozwala na nałożenie operacji wejścia/wyjścia (I/O) i obliczeń. Jeden wątek może wykonywać obliczenia podczas gdy inny wątek czeka na operację I / O, aby zakończyć. Wielowątkowość sprawia, że GUI (graficzny interfejs użytkownika) jest bardziej elastyczny. Wątku, który obsługuje zdarzenia GIU, takie jak kliknięcie myszką i naciśnięciu przycisku, może tworzyć dodatkowe wątki do wykonywania długotrwałych zadań w odpowiedzi na zdarzenia. Pozwala to wątkowi obsługi zdarzeń odpowiedzieć na więcej zdarzeń GUI (events).

24 Współbieżność Przy zwiększającej się liczbie rdzeni w procesorach wykorzystywanych w domowych komputerach, coraz większy nacisk kładzie się na współbieżność. Współbieżność to możliwość wykonywania przez program różnych zadań w tym samym czasie, np. nasz edytor tekstowy nasłuchuje czy nie przychodzą żadne pakiety z sieci a jednocześnie sprawdza naszą pisownię. Programowanie wielowątkowe pomaga uzyskać większą wydajność, jednak pojawiają się nowe wyzwania takie jak np. zakleszczanie czy sytuacje hazardowe.

25 Korzyści wynikające z zastosowania współbieżności
1. Polepszenie wykorzystania zasobów. Gdy jakiś proces czeka na niedostępny w danej chwili zasób, procesor może wykonywać inny proces. 2. Umożliwienie przetwarzania równoległego. Podział zadania na procesy umożliwia wykonywanie ich na oddzielnych maszynach. Prowadzi to do zrównoleglenia przetwarzania. 3. Ułatwienia projektowania i implementacji. Podział dużego zadania na wiele mniejszych komunikujących się procesów prowadzi do dekompozycji problemu, przez co ułatwia ich implementację, uruchamianie i testowanie

26 Jeszcze wrócimy do problematyki programowania współbieżnego
Wielowątkowość może przyspieszyć działanie poprzez równoległości. Program, który w pełni wykorzystuje dwa procesory może być wykonany połowie czasu. Jednak ten poziom przyspieszenia zwykle nie może być uzyskany ze względu na to, że komunikacja wymaga koordynacji wątków. Jeszcze wrócimy do problematyki programowania współbieżnego

27 Cechy procesów Wykonanie procesu przebiega sekwencyjnie. Procesy mogą znajdować się w jednym z poniższych stanów: Działający, Czekający na zasoby systemu, Przeznaczony do zniszczenia, Proces „zombie”, wpis w tablicy procesów opisujący proces zakończony, ale którego zamknięcie nie zostało jeszcze obsłużone przez proces rodzica Proces w trakcie tworzenia.

28 wykonywany: są wykonywane instrukcje procesu
oczekujący: proces czeka na wystąpienie zdarzenia nowy: proces został utworzony gotowy: proces czeka na przydzielenie procesora zakończony: proces zakończył wykonanie, przeznaczony do zniszczenia

29 Cykl życia procesów

30 Wątek Proces licznik rozkazów przestrzeń adresowa stos otwarte pliki, semafory rejestry procesora zmienne globalne lista wątków potomnych lista procesów potomnych

31 Aktywny proces może tworzyć nowe procesy lub wątki.
Do zarządzania procesami system operacyjny udostępnia specjalne funkcje (API - Application Programming Interface) — interfejs programowania aplikacji , sposób, w jaki komunikuje się ona z systemem operacyjnym i innymi programami). Program w formacie wykonywalnym (binarnym) staje się procesem, jeśli system operacyjny załaduje go do pamięci operacyjnej oraz uruchomi. Proces składa się z działającego programu oraz struktury danych opisującego jego stan i wykorzystywane zasoby, Aktywny proces może tworzyć nowe procesy lub wątki.

32 System Zespół obiektów oddziałujących na siebie i współpracujących z otoczeniem System Otoczenie ?! sekretarka stuka, a komputer aktualnie zapisuje coś na dysk i nie pojawiają się literki

33 System operacyjny komputera umożliwia tworzenie i uruchamianie programów na tej samej maszynie
Zwykle dla sterowania urządzeniami w czasie rzeczywistym stosuje się systemy wbudowane

34 System wbudowany (ang. embedded system)
System wbudowany jest to system komputerowy będący częścią większego systemu i wykonujący istotną część jego funkcji. Przykładowo komputer pokładowy samolotu sterowanie układem hamulcowym samochodu sterowanie windą sterowanie obsługą funkcji telefonu komórkowego radia, telewizory, magnetowidy itp..

35 System skrośnego rozwoju oprogramowania
Program jest tworzony, kompilowany na komputerze macierzystym (host) przy pomocy odpowiedniego środowiska (IDE) Przez łącze komunikacyjne przesyłany do wykonania na komputerze docelowym (target) – inny system operacyjny

36 Komputery dla zastosowań wbudowanych to:
- od kontrolerów 8-bitowych dla prostych urządzeń - do superkomputerów wieloprocesorowych Wymagania: - odporność na warunki pracy - ciągłość pracy - oprogramowanie w pamięciach trwałych – nie dyskowych! - wsparcie dla niezawodności – kontrola pracy, diagnostyka, budzik (watchdog) zabezpieczający przed awarią (np. przeprowadza restart)

37 Rola czynnika czasu w pewnych systemach nie jest to istotne – tylko denerwujące  - (jak naszą sekretarkę) w systemach sterowania pojazdami (np. reakcja układu ABS na śliskie podłoże lub autopilota na zmianę ciśnienia atmosferycznego) – jest to ISTOTNE

38 SYSTEM CZASU RZECZYWISTEGO
ang. real-time system RTS Prosta definicja: System komputerowy, w którym działania prowadzone równolegle z przebiegiem zewnętrznego procesu i mają na celu: nadzorowanie, sterowanie terminowe reagowanie na zachodzące w tym procesie zdarzenia

39 System czasu rzeczywistego
system, którego wynik przetwarzania zależy nie tylko od jego logicznej poprawności, ale również od czasu osiągnięcia tego przetwarzania

40 Wymagane jest spełnienie !!!!
Warunków logicznych – odpowiedź na zdarzenie przy uwzględnieniu stanu systemu musi być prawidłowa. Warunki czasowe – odpowiedź musi nadejść we właściwym czasie.

41 System czasu rzeczywistego współdziała z otoczeniem
ZEGAR SYSTEM STERUJĄCY OBIEKTY OTOCZENIA czas stan obiektu sterowanie zdarzenia Jego zachowanie zależy od: - stanu obiektów otoczenia - zdarzeń generowanych przez obiekty - czasu

42 System sterujący (ang. Control system)
System sterujący jest systemem komputerowym, którego zadaniem jest utrzymywanie nadzorowanego obiektu w pożądanym stanie. Terminowa reakcja na zdarzenia nadzorowanego systemu - system czasu rzeczywistego musi gwarantować, że czas odpowiedzi t na zdarzenie musi być mniejszy od ograniczenia czasowego Tmax. (ang. deadline)

43 Typy systemów RTS Rygorystyczny system czasu rzeczywistego (ang. Hard Real Time System) Łagodny system czasu rzeczywistego (ang. Soft Real Time System)

44 Rygorystyczne ograniczenie czasowe (ang
Rygorystyczne ograniczenie czasowe (ang. Hard Deadline) to ograniczenie, które zawsze pozostaje spełnione. Jeśli choć raz zostało przekroczone uważa się, że nie zostało spełnione. Musi istnieć procedura walidacyjna pozwalająca na sprawdzenie czy warunek ten został spełniony. Rygorystyczny system czasu rzeczywistego to system, w którym wymaga się spełnienia rygorystycznych ograniczeń czasowych. elektrownia atomowa

45 Łagodne ograniczenie czasowe (ang
Łagodne ograniczenie czasowe (ang. Soft Deadline) to takie ograniczenie czasowe, które czasami może być przekroczone Przykłady łagodnych systemów czasu rzeczywistego: · Multimedia · Sterowanie telefonem komórkowym · Centrala telefoniczna

46 inna definicja… Tolerancyjnym systemem czasu rzeczywistego jest system, którego działanie jest tylko gorsze, jeśli wyniki nie są dostępne zgodnie z ustalonymi wymaganiami czasowymi. Wymagający system czasu rzeczywistego to system, którego działanie jest niepoprawne, jeśli wyniki nie są tworzone zgodnie z ustalonymi wymaganiami czasowymi.

47 Czas reakcji systemu przedział czasu potrzebny systemowi operacyjnemu na wypracowanie decyzji (sygnału wyjściowego) w odpowiedzi na zewnętrzny bodziec (sygnał wejściowy) Czas ten może wahać się w granicach od ułamków sekund (np.:system pobrania akwizycji danych z kamery) do kilkudziesięciu godzin (np.: system w zbiorniku retencyjnym)

48 Wymagania dla systemów RTS
Ciągłość działania – System RTS powinien pracować bez przerwy lub wtedy gdy się tego od niego wymaga Zależność od otoczenia – System musi reagować na zdarzenia i dane powstające w zewnętrznym systemie. Przewidywalność – zdarzenia generowane przez otoczenie pojawiają się w przypadkowych momentach czasu. Może dojść do ich spiętrzenia. Mimo to system musi reagować zgodnie z wymaganiami (deterministycznie). Punktualność – reakcja na zdarzenia winna następować zgodnie z wymaganiami czasowymi tzn. nie może nastąpić zbyt późno.

49 1. Musi umożliwiać wykonywanie procesów wielowątkowych.
Szczegółowe wymagania na RTS 1. Musi umożliwiać wykonywanie procesów wielowątkowych. 2. Wątki muszą posiadać priorytety. 3. Musi być stosowana wywłaszczająca strategia szeregowania. 4. Musi wspierać mechanizm przewidywalnej synchronizacji wątków. 5. Musi istnieć dziedziczenie priorytetów. 6. System musi być deterministyczny (jednoznaczna reakcja - nie losowa). 7. Musi być pozbawiony błędów 8. Musi być dobrze udokumentowany.

50 Błędne opinie na temat systemów RTS
NIEKONIECZNIE zastosowanie szybszego sprzętu umożliwi rozwiązanie problemów związanych z systemami czasu rzeczywistego - zastosowanie szybkiego procesora nie poprawia czasu odpowiedzi.. NIEKONIECZNIE system czasu rzeczywistego to system szybki –np. statek. RTS to potocznie wykonywanie szybkich obliczeń – NIE ZAWSZE PRAWDA Aplikacje RTS NIE MUSZĄ być programowane w asemblerze - tworzy się w językach wysokiego poziomu takich jak C, ADA. NIEKONIECZNIE system wbudowany jest systemem czasu rzeczywistego. Istnieją systemy wbudowane, które nie są systemami czasu rzeczywistego jak i nie wszystkie systemy czasu rzeczywistego są wbudowane.

51 Systemy RTS Solaris LynxOS VxWorks QNX Neutrino RT Linux RTEMS - free
Windows CE – dla tabletów

52 Dlaczego Linux nie jest systemem czasu rzeczywistego
Zastosowano algorytm szeregowania z podziałem czasu Niska rozdzielczość zegara systemowego Niewywłaszczalne jądro (nie dotyczy wersji >2.6) Wyłączanie obsługi przerwań w sekcjach krytycznych Zastosowanie pamięci wirtualnej Optymalizacja wykorzystania zasobów sprzętowych


Pobierz ppt "Systemy czasu rzeczywistego"

Podobne prezentacje


Reklamy Google