Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Automatyka i Robotyka Systemy czasu rzeczywistego Wykład 1.

Podobne prezentacje


Prezentacja na temat: "Automatyka i Robotyka Systemy czasu rzeczywistego Wykład 1."— Zapis prezentacji:

1 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 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 System operacyjny- warstwa pomiędzy aplikacjami a sprzętem Funkcje systemu operacyjnego:

4 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. 3 główne elementy systemu operacyjnego

5 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 Jądro systemu składa się z:

6 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.\ Podział systemów operacyjnych

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 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. Proces

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 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. Przykład

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 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 Wątek (thread)

20 zasoby Alan Dennis porównuje proces do domu: 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 owners permission. A threads access to elements may also be restricted based on permissions, in this case, the systems security settings.

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

23 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). Wielowątkowość

24 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. Współbieżność

25 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 Korzyści wynikające z zastosowania współbieżności

26 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 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. Wykonanie procesu przebiega sekwencyjnie. Procesy mogą znajdować się w jednym z poniższych stanów:

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ątekProces licznik rozkazówprzestrzeń adresowa stosotwarte pliki, semafory rejestry procesora zmienne globalne lista wątków potomnych lista procesów potomnych

31 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 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 Prosta definicja:

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

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

42 System sterujący jest systemem komputerowym, którego zadaniem jest utrzymywanie nadzorowanego obiektu w pożądanym stanie. System sterujący (ang. Control system) 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 Łagodny system czasu rzeczywistego ( ang. Soft Real Time System) Typy systemów RTS Rygorystyczny system czasu rzeczywistego (ang. Hard Real Time System)

44 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. 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 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. inna definicja…

47 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) Czas reakcji systemu

48 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. Wymagania dla systemów RTS

49 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. Szczegółowe wymagania na RTS

50 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. Błędne opinie na temat systemów RTS

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

52 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 Dlaczego Linux nie jest systemem czasu rzeczywistego


Pobierz ppt "Automatyka i Robotyka Systemy czasu rzeczywistego Wykład 1."

Podobne prezentacje


Reklamy Google