Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałLechosław Kopyść Został zmieniony 10 lat temu
1
Budowa systemów operacyjnych czasu rzeczywistego
2
Systemy operacyjne przeznaczone dla wbudowanych systemów sterujących różnią się istotnie od systemów operacyjnych przewidzianych do stosowania w przetwarzaniu danych administracyjnych, bankowych lub naukowo-technicznych. Podstawowe różnice wynikają z różnic w sprzętowym otoczeniu komputera i z różnych wymagań stawianych systemom operacyjnym w różnych zastosowaniach. Najważniejszym wymaganiem stawianym systemom sterującym jest wymóg pracy w czasie rzeczywistym, wynikający z konieczność zapewnienia przewidywalnej reakcji komputera na pojawiające się zdarzenia, w określonym z góry terminie (deadline).
3
Wbudowane systemy czasu rzeczywistego permanentnie wymieniają informacje z otoczeniem, np. z instalacją sterowaną, i dostosowują rytm do zdarzeń zachodzących w tym utoczenia. Zdarzenie (event) można określić jako dowolną sytuację powstałą w komputerze, lub jego otoczeniu która wymaga wykonania określonego programu obsługującego. Zazwyczaj oprogramowanie użytkowe buduje się w postaci zespołu modułów związanych z obsługą poszczególnych zdarzeń. Moduły te są nazywane zadaniami (task) , i stanowią podstawowe jednostki programowe, którym system operacyjny przydziela zasoby komputera.
4
Podstawowymi zasobami komputera są: procesor (czas procesora), pamięć operacyjna, urządzenia zewnętrzne i zbiory danych. Przynajmniej dwa z nich — czas procesora i pamięć operacyjna są niezbędne dla wykonania każdego programu. Wymagania stawiane systemom operacyjny i czasu rzeczywistego można najpełniej scharakteryzować przez porównam mechanizmów zarządzania poszczególnymi zasobami.
5
-zarządzanie procesorem
Strategia szeregowania i przydziału zasobów są podporządkowane terminowemu wykonywaniu najpilniejszych zadań. -zarządzanie pamięcią Implementacja pamięci wirtualnej wprowadza element przypadkowości i prowadzi do spowolnienia i nieprzewidzialności czasu reakcji systemu. Najbardziej pożądaną strategią jest statyczna alokacja obszarów pamięci operacyjnej do poszczególnych zadań, z możliwością nakładkowania kontrolowanego przez zadania.
6
- Zarządzanie urządzeniami
Zarządzanie zbiorami Sposób organizacji zbiorów w przemysłowych systemach czasu rzeczywistego wyposażonych w pamięci zewnętrzne nie różni się istotnie od sposobu organizacji zbiorów w systemach operacyjnych przeznaczonych do przetwarzania danych. Środowisko wykonawcze i programowe a) komputer macierzysty b) komputer docelowy
7
Synchroniczne wykonywanie zadań
8
Oprogramowanie komputerów wbudowanych w regulatory, sterownik maszyn, urządzeń i sprzętu powszechnego użytku a także małe sterowniki logiczne, składa się z ustalonego zbioru zadań o znanym czasie wykonania. Komputery te nie mają pamięci wewnętrznych i zbiorów danych, a urządzenia sprzęgające ze sterowanym procesem są wykorzystywane w ustalony sposób. Zachowanie takich systemów jest w pełni przewidywalne, w związku z czym ich zasoby nie muszą być rozdzielane dynamicznie, przez system operacyjny, lecz mogą być rozdysponowane statycznie, przez projektanta oprogramowania
9
W wielu zastosowaniach konieczne jest wyróżnienie co najmniej dwóch częstotliwości wykonania zadań. W tym celu, oprócz podstawowego okresu wyróżnia się większą jednostkę czasu, nazywaną okresem nadrzędnym. Zadania wykonywane z większą częstotliwością otrzymują, tak jak poprzednio, odcinki w każdym okresie. Zadania wykonywane z mniejszą częstotliwością wykonują się w pozostałych odcinkach każdego okresu. Jeśli zadanie nie zdoła zakończyć się w ciągu jednego okresu, to jest kontynuowane w następnych okresach w tym samym okresie nadrzędnym.
10
Organizacja tego procesu należy do zadań programu zarządzającego zwanego egzekutorem (executive). Działanie egzekutora polega na wywoływaniu kolejnych zadań, zgodnie z kolejnością określoną przez listy zadań przygotowane przez programistę lub projektanta systemu. Podział zadań wykonywanych z częstotliwością okresu nadrzędnego na fragmenty wykonane w poszczególnych okresach może być dokonany przez programistę, który określa przypisanie podzadań do kolejnych okresów, lub automatycznie przez egzekutor.
11
Rozkład okresów implementowanych przez synchroniczny egzekutor musi być wykonalny, tzn. musi spełniać następujące warunki: • długość okresu musi być większa od sumy czasów wykonania zadań wykonywanych w każdym okresie plus długość odcinka zarezerwowanego na wykonania zadań inicjowanych zdarzeniami; • długość okresu nadrzędnego musi być większa od czasu przeznaczonego dla zadań wykonywanych w każdym okresie plus suma odcinków przeznaczonych dla zadań inicjowanych zdarzeniami plus suma czasów wykonania zadań wykonywanych z częstotliwością okresu nadrzędnego;
12
• długość odcinka zarezerwowanego dla zadań inicjowanych zdarzeniami musi zapewniać dotrzymanie czasów reakcji zdefiniowanych dla poszczególnych zdarzeń. Synchroniczne wykonanie jest efektywną metodą organizacji pracy systemu w tych zastosowaniach, w których zadania nie potrzebują czekać na przydział zasobów i są zawsze gotowe do wykonania. Zadanie, które musi oczekiwać na przydzielenie zasobu lub spełnienie określonego warunku, powinno zwolnić procesor w bieżącym okresie i sprawdzić spełnienie warunków w następnym okresie. W przeciwnym razie marnuje się czas procesora, co może prowadzić do niedotrzymania żądanych czasów reakcji systemu.
13
Egzekutor synchroniczny
(l1-lista zadań wykonywanych w każdym czasie L2-lista zadań wykonywanych w okresach nadrzędnych)
14
Praca wielozadaniowa Wiele zadań może być wykonywanych współbieżnie w systemie zbudowanym z wielu procesorów, wykonujących różne zadania lub w systemie jednoprocesorowym, dzielącym czas procesora i inne zasoby między wszystkie zadania Każde zadanie może znajdować się w jednym z czterech stanów. • Martwe. Zadanie jest zarejestrowane na liście zadań, ale nie może , żądać ani mieć przydzielonych żadnych zasobów. W tym stanie zadanie znajduje się przed rozpoczęciem i po zakończeniu wykonania.
15
• Gotowe. Warunki wymagane dla wykonania zadania są spełnione, zadanie ma przyznane wszystkie potrzebne zasoby i oczekuje na procesor który jest zajęty wykonaniem innych zadań, i • Wykonywane. Procesor wykonuje instrukcje programu tego zadania. • Zawieszone. Zadanie oczekuje na przydział potrzebnych zasobów, wystąpienie określonego zdarzenia lub upływ określonego czasu.
16
Podczas pracy systemu stan każdego zadania ulega zmianom pod wpływem zdarzeń zachodzących wewnątrz systemu komputerowemu i na zewnątrz, w procesie sterowanym. Wszystkie zdarzenia można podzielić na cztery grupy. • Zdarzenia zewnętrzne odpowiadają wystąpieniom sytuacji wyjątkowych w otoczeniu komputera. Z reguły, zdarzenia zewnętrzne są sygnalizowane przez przerwania zgłaszane przez urządzenia współpracujące np wyłączniki krańcowe. Możliwe jest jednak wykrywanie i zgłaszanie przez programy sprawdzające okresowo stan otoczenia.
17
Podział czasu w systemie wielozadaniowym
Graf stanów zadania (M-Martwe, G-gotowe, Z-zawieszone, W-wykonywane)
18
Zdarzenia czasowe sygnalizują upływ określonych odcinków czasu, np
Zdarzenia czasowe sygnalizują upływ określonych odcinków czasu, np. Δt podanego w instrukcji Delay(Δt) wykonanej przez zadanie. Zdarzenia czasowe są z reguły sygnalizowane przez systemowy program obsługi zegara przyjmujący przerwania zegara sprzętowego. Zdarzenia wewnętrzne odpowiadają błędom (wyjątkom) powstającym podczas wykonania programów, np. błąd dzielenia przez zero. Zdarzenia wewnętrzne mogą być sygnalizowane przez przerwania generowane przez odpowiednie układy komputera, np. koprocesor arytmetyczny, lub zgłaszane przez podprogramy, np. podprogram dzielenia w podwójnej precyzji.
19
Zdarzenia programowe odpowiadają zdarzeniom zachodzącym podczas wykonywania zadań, np. wysłanie wiadomości do innego węzła sieci i są generowane przez jawne odwołania zadań do systemu operacyjnego. Model systemu operacyjnego czasu rzeczywistego
20
Logiczną strukturę egzekutora wielozadaniowego przedstawia rys
Logiczną strukturę egzekutora wielozadaniowego przedstawia rys. Przejęcie sterowania przez egzekutor jest następstwem zdarzenia, sygnalizowanego przez przerwanie lub odwołanie zadania do systemu operacyjnego.
21
Monitor przerwań (interrupt monitor) rozpoznaje rodzaj przerwania i uruchamia program obsługi zdarzeń (event handler), który wywołuje odpowiednie podprogramy operacji zmian stanu zadań związanych ze zgłoszonym zdarzeniem. W ostatnim kroku program szeregujący (task scheduler) wybiera zadanie do wykonania i kończy wykonanie egzekutora. Wewnętrzna warstwa egzekutora składa się ze zbioru tablic systemowych opisujących poszczególne zadania i zbioru podprogramów implementujących zmiany stanu zadań. Każde zadanie jest reprezentowane przez tablicę stanu zadania (task stałe table — TST), która zawiera wszystkie dane opisujące stan zadania i przydzielone mu zasoby.
22
Podprogramy zmian stanu zadań przetwarzają zapisy przechowywane w tablicach stanu zadań. Dla przyspieszenia tych operacji egzekutor grupuje tablice w listy. Podstawowe znaczenie maja: • - słownik zadań (task directory - TD) zawierający identyfikatory (nazwy) i adresy tablic stanu wszystkich zarejestrowanych zadań; - lista gotowych zadań (ready list – RL) zawierająca adresy tablic stanu zadań gotowych do wykonania.
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.