Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Automatyka i Robotyka Systemy czasu rzeczywistego Wykład 2.

Podobne prezentacje


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

1 Automatyka i Robotyka Systemy czasu rzeczywistego Wykład 2

2 PODSTAWOWE SYSTEMY SIECIOWE Unix system operacyjny napisany w 1969 r. w Bell Labs Linux – rodzina uniksopodobnych systemów operacyjnych opartych o jądro Linux. Linux - wolne i otwarte oprogramowanie. Posiada wersje – tzw. dystrybucje: RedHat, Debian, Ubuntu i inne

3 Struktura katalogów hierarchiczna (drzewiasta) jak w Windows W ścieżce do katalogu oddzielamy katalogi znakiem / /home/grupa/user Nazwy plików i katalogów – rozróżniane małe i duże litery, można dwie kropki w nazwie, nie ma takiej roli rozszerzeń nazw jak w Windows / | | | | | | || dev bin lib etc tmp usr root home | | | | | | | || | |user1| |…| |userN |

4 Powłoki Powłoka (ang. shell) jest interfejsem między użytkownikiem a systemem operacyjnym. Jej podstawową funkcją jest interpretacja i wykonanie poleceń użytkownika. powłoka Bourne'a (sh) powłoka Korna (ksh) powłoka C (csh) Języki powłoki Polecenia wpisujemy ręcznie albo tworzymy pliki z ciągiem poleceń w osobnych wierszach a potem wykonanie pliku Strumienie – kierowanie wejściem i wyjściem: wyślij do Potoki polecenie | polecenie polecenie może przekazać dane do innego polecenia

5 login as: LOGIN Password: HASŁO % tu piszemy polecenia lub inne zgłoszenie – zależy od powloki zgłoszenie

6 Składnia: Polecenia systemowe polecenie [–opcje] [obiekty] [ ] opcjonalne – nie zawsze wymagane co robi w jaki sposóbczym się zajmuje przełączniki

7 Podstawowe polecenia pwd - podaj nazwę katalogu bieżącego ls - wypisz zawartość katalogu bieżącego ls ścieżka - lub innego ls –l z opcją dokładnego listowania # ls -l --rw-r--r--1tbajorek wbmil12 Oct 16 00:572.t d-wxr-xr-x2tbajorek wbmil 4096 Mar 14 22:41 aaa -rw-r--r-- 1tbajorek wbmil 7Jan 7 20:31b.t -rw tbajorek wbmil302Dec dead.letter polecenie właścicielgrupa prawa rozmiarnazwa katalog

8 cd - zmiana katalogu bieżącego cd katalogdo podrzędnego cd.. do nadrzędnego cd do domowego cd /do głównego mkdir - tworzenie katalogu mkdir nazwa tworzy katalog podrzędny rmdir – usuniecie katalogu (pustego) rmdir nazwa usuwa podrzędny rm – usuniecie plików lub katalogu niepustego rm plik rm * usuń wszystkie w katalogu rm a*usuń rozpoczynające się od litery a

9 mv – zmiana nazwy lub przeniesienie mv stara_nazwa nowa_nazwa cp – kopiowanie cp plik(lub wzorzec) cel cp plik..do nadrzędnego cp plik../nowa_nazwa zmiana nazwy kopii cp * nowywszystkie do podrz. ważne czy pliki (-i) są w katalogu bieżącym jeśli nie to podajemy jego położenie - ścieżka bezwzględna od kat. głównego /kat1/kat2/… plik - ścieżka względna, np... /../plik- 2 poziomy wyżej wzorzec: * - dowolny ciąg znaków ? – 1 znak

10 W Linuksie (UNIX-ie) wyróżniamy trzy rodzaje praw dostępu do pliku: prawo czytania (r - read) prawo pisania (w - write) prawo wykonywania (x - execute) Powyższe prawa w stosunku każdego pliku (katalogu) są niezależnie nadawane w trzech kategoriach: prawa właściciela pliku prawa użytkowników należących do określonej grupy prawa pozostałych użytkowników W systemie wielodostępnym potrzebne jest narzędzie, które zapewnić powinno organizację i ochronę dostępu do danych.

11 Wyjątkowym użytkownikiem jest root, który posiada wszystkie prawa dostępu do każdego pliku - może je zawsze zmienić, nawet gdy nie jest właścicielem pliku. W odniesieniu do konkretnego pliku(katalogu) użytkownik może posiadać dane prawo dostępu lub też nie. Każdy plik (katalog) ma swojego właściciela indywidualnego (najczęściej jest to użytkownik, który utworzył plik) oraz właściciela zbiorowego (grupę). Właściciel pliku jest automatycznie członkiem grupy (czasami jest to grupa jednoużytkownikowa). Pozostałym użytkownikom, również mogą być przypisane określone prawa do danego pliku.

12 * czytania - umożliwia otwieranie pliku i przeglądanie jego zawartości * pisania - umożliwia otwieranie pliku i modyfikację jego treści * wykonywania - umożliwia wykonywanie programu (jeżeli jest to plik binarny) lub skryptu powłoki Posiadanie prawa: Dla katalogu: prawo czytania umożliwia listowanie zawartości, prawo wykonywania dostęp do zawartości katalogu

13 symbolicznie chmod u+r pliknadanie prawa czytania dla user chmod g-xodebranie prawa wykonywania grupie u – user g – grupa o – other (inni) lub numerycznie chmod 777 plik chmod 760 plik sumujemy r=4 w=2x=1 czyli 760 rwx rw---- chown – zmiana właściciela - może wykonać tylko administrator Polecenie chmod – ustawianie praw dostępu

14 cat, touch – tworzenie pliku touch plik tworzy pusty plik cat plik wyświetla treść pliku (na ekran) edycja pliku – edytor VI (vi-aj)lub dowolny edytor środowiska graficznego cat > nazwa_pliku treść pliku ^D (przykład strumienia – pisanie do pliku)

15 EDYTOR VI ogólne zasady: uruchomienie: vi lub vi plik ESC – przejście do trybu poleceń różne polecenia edycyjne w tym… : - tryb EX – tu m.in. zapisywanie pliku i lub I, a, A, o, O - powrót do trybu pisania

16 ps – lista procesów kill id_procesu – "zabicie" procesu find – wyszukiwanie plików (wiele przełączników) cmp –l plik1 plik2 – porównywanie plików grep – wyszukiwanie plików wg treści Inne polecenia

17 ….omówiliśmy dotychczas: specyfikę systemów RTS rolę i charakter procesów i wątków ogólnie, nie tylko w RTS Poznamy zagadnienia związane z programowaniem współbieżnym: Procesy - tworzenie i obsługa, atrybuty procesu, dziedziczenie atrybutów, bezpieczeństwo, żywotność, blokada, zagłodzenie, kolejność i fazy wykonania procesów, komunikacja międzyprocesowa i przez wspólną pamięć, obsługa błędów, semafory, synchronizacja procesów Wątki – tworzenie i obsługa, zasoby, synchronizacja, muteksy, blokady

18 Przerwanie (ang. interrupt) – sygnał powodujący zmianę przepływu sterowania. Przerwania Pojawienie się przerwania powoduje wstrzymanie aktualnie wykonywanego programu i wykonanie przez procesor kodu procedury obsługi przerwania (ang. interrupt handler). Źródłami przerwania są zdarzenia zewnętrzne i wewnętrzne: sygnały generowane przez sprzęt, np. wciśnięcie przycisku napływ danych do urządzenia komunikacyjnego DEFINICJE

19 Sprzętowe Zewnętrzne – sygnał przerwania pochodzi z zewnętrznego urządzenia peryferyjnego, Wewnętrzne – zgłaszane przez procesor w celu sygnalizacji sytuacji wyjątkowych, tzw. wyjątek (ang. exception), faults (niepowodzenie) – sytuacje, w których aktualnie wykonywana instrukcja powoduje błąd, traps (pułapki) – sytuacja, która nie jest błędem, jej wystąpienie ma na celu wykonanie określonego kodu, aborts – błędy, których nie można naprawić, Niemaskowalne – przerwania, których nie da się wyłączyć, Przerwania dzielą się na Programowe – wyzwalana jest instrukcja procesora z kodu programu. Dalsze zachowanie procesora jest identyczne jak dla przerwania sprzętowego.

20 jest to zdarzenie, które przerywa normalny tok działań procesora i wymusza wykonanie zbioru instrukcji w trybie specjalnym (uprzywilejowanym) generowane przez tzw. zdarzenia wewnętrzne jak np. niepoprawny efekt wykonania jakiejś instrukcji procesora. na przykład dzielenie przez zero niepoprawny odczyt z pamięci. Wyjątek (ang. exception)

21 Programowalny kontroler przerwań (ang. programmable interrupt controller, PIC). Jest on odpowiedzialny za komunikację z otoczeniem i umożliwia odbieranie z niego różnych sygnałów. Kontroler przerwań spełnia role: sortuje nadchodzące przerwania wg priorytetów tak, aby w danej chwili procesor odebrał tylko najważniejsze odciąża procesor z konieczności określenia źródła przerwania Wewnętrzna interpretacja przerwań i wyjątków

22 Przerwania są zatem jednym z mechanizmów przełączania procesów, umożliwianiem wykonania procedury obsługi przerwania ISR (interrupt service routine) czas ISR odtworzenie rejestrów PROCES P zachowanie rejestrów przerwanie wznowienie procesu obsługa przerwania

23 Przełączanie procesów P1 P2 P3 czas Kolejność wykonania procesów – time slice Kiedy? wyznacza planista ( scheduler) lub przerwanie time slice

24 czas informacje do zapamiętania – aby wznowić proces P1 zachowanie kontekstu P1 P2 przywrócenie kontekstu P1 zachowanie kontekstu P2 przywrócenie kontekstu P2 decyzja szeregująca Kontekst

25 Kiedy przełączać procesy? wyczerpanie kwantu czasu – przerwanie zegarowe przerwanie zewnętrzne – np. kontroler we/wy – inny proces ma stan gotowości przerwanie wewnętrzne – gdy błąd procesu (np. próba dostępu do nieprzydzielonej pamięci) proces ustala stan gotowości innego procesu – np. żądanie dostępu zakończenie procesu

26 Procesy tworzą hierarchię - drzewo każdy proces ma swój proces macierzysty (z wyjątkiem procesu "korzenia" – np. w QNX Neutrino proces procnto zarządzający mikrojądrem i procesami) proces może mieć swoje procesy potomne, będące jego kopią lub wykonujące inne akcje każdy proces ma swój identyfikator liczbowy PID

27 koncept UNIX

28 element sprzętowy lub programowy systemu komputerowego Zasoby systemu Brak zasobu może zablokować realizację programu. Przykłady zasobów: pamięć, procesor, bufor, itp.,

29 segment kodu (code) – instrukcje kodu maszynowego segment danych (data) – dane globalne procesu segment stosu (stack) – dane lokalne zmienne procedur i ich parametry deskryptor procesu (process descriptor) – rekord informacji dla zarządzania procesem Zasoby pamięciowe

30 kontroluje procesy w celu: efektywnego bezpiecznego wykorzystania współdzielonych zasobów. Zarządca procesów (process manager)

31 realizuje przydział zasobów stosownie do: żądań procesów aktualnego stanu systemu ogólnosystemowej polityki przydziału. Zarządca zasobów (resource manager)

32 Algorytm szeregowania zadań stanowiących pewien zbiór - takie przydzielenie czasu procesora, aby każde zadanie było przetwarzane do momentu zakończenia. … ale przetwarzanie danego zadania może być przerwane na bliżej nieokreślony czas. Planista (ang. scheduler, dispatcher) Algorytm szeregowania konkurujących zadań odpowiedzialny za podział czasu procesora (mocy obliczeniowej)

33 zajmuje się przydziałem czasu procesora do procesów gotowych (czekających w kolejce ready queue). Planista krótkoterminowy musi działać szybko. Planista krótkoterminowy (CPU scheduler)

34 zajmuje się wymianą procesów pomiędzy pamięcią główną a pamięcią zewnętrzną (trwałą). Planista średnioterminowy (ang. medium-term scheduler)

35 zajmuje się ładowaniem nowych programów do pamięci i kontrolą liczby zadań w systemie oraz ich odpowiednim doborem w celu zrównoważenia wykorzystania zasobów. Planista długoterminowy nie musi działać zbyt szybko. Planista długoterminowy (long-term scheduler, job scheduler)

36 FIFO – first-in-first-out zadania wykonywane zgodnie z kolejnością umieszczenia w kolejce. Zadania wykonywane do końca, chyba że: zostaną wywłaszczone przez zadanie o wyższym priorytecie Algorytmy szeregowania zadań

37 Kolejka urządzenia (device queue) – zbiór procesów czekających na zakończenie operacji wej.-wyj., Kolejka zadań (job queue, FIFO) – zbiór procesów systemu, Kolejka procesów gotowych (ready queue) – zbiór procesów gotowych do wykonania, Kolejka procesów do synchronizacji - zbiór procesów blokowanych przez inne zadania lub zasoby procesora Procesy zwykle oczekują na sygnał synchronizacji, np. kolejka procesów blokowanych semaforem

38 każde z zadań otrzymuje kwant czasu. Po spożytkowaniu swojego kwantu zostaje wywłaszczone i ustawione na końcu kolejki. Planowanie rotacyjne (round-robin - karuzelowe)

39 zadania otrzymują tak zwany "budżet czasu" Planowanie sporadyczne pomaga pogodzić wykluczające się reguły dotyczące szeregowania zadań okresowych i nieokresowych; wciąż nie jest implementowany przez wiele systemów (jest w standardzie POSIX);

40 SJF (shortest job first) Najpierw najkrótsze zadanie. Jest algorytmem optymalnym ze względu na najkrótszy średni czas oczekiwania. W wersji z wywłaszczaniem, stosowana jest metoda: najpierw najkrótszy czas pracy pozostałej do wykonania. Algorytm powoduje blokowanie długich procesów. … i rzadziej stosowane FCFS (first come, first serve) Bardzo podobny do kolejki FIFO Pierwszy przyjdzie, pierwszy wykonany. Algorytm ten dokonuje najsprawiedliwszego przydziału czasu (każdemu według potrzeb), jednak powoduje bardzo słabą interakcyjność systemu - długi proces całkowicie blokuje system na czas swojego wykonania, gdyż nie ma priorytetów, zgodnie z którymi mógłby zostać wywłaszczony.

41 Działania planisty muszą być skonsolidowane z całością systemu. W algorytmach szeregowania pojawiają się dodatkowe cechy: Planowanie priorytetowe Planowanie wielopoziomowe Planowanie wieloprocesorowe Modyfikacje szeregowania

42 wybierany jest proces o najwyższym parametrze priorytet. … występuje problem nieskończonego blokowania procesu o niskim priorytecie przez procesy o wysokim priorytecie. Stosuje się "postarzanie procesów", polegające na powolnym podnoszeniu priorytetu procesów zbyt długo oczekujących. Planowanie priorytetowe

43 Planowanie wielopoziomowe zadania przypisywane są do wielu kolejek szeregowania w zależności od parametru opisującego (zwykle priorytet). Zadania w danej kolejce są następnie szeregowane określonym algorytmem takim jak na przykład FIFO lub round-robin i kierowane do wykonania. Jeśli w danej kolejce nie ma zadań gotowych do wykonywania, scheduler ponownie dokonuje analizy innej kolejki zadań o niższym priorytecie. możliwa jest zmiana kolejki, w której szeregowane jest zadanie, poprzez zmianę priorytetu zadania

44 Rozdzielanie zadań dla jednakowych lub różnych procesorów/komputerów, Planowanie wieloprocesorowe

45 Zmiana stanu procesu.. niekoniecznie wykonywanego Np. kontroler dysków udostępnia dane – zmiana stanu procesu z oczekującego na gotowy Podejmowanie decyzji szeregującej

46 Proces w swoim cyklu życiowym przechodzi przez fazy: stworzenie (ang. creation) - przydzielenie nowego ID oraz określenie jego środowiska; załadowanie (ang. loading) - przygotowanie do wykonania; wykonanie (ang. execution) - współzawodnictwo o dostęp do procesora; oczekiwanie na wznowienie (blokada) zakończenie (ang. termination)

47 Zakończenie może nastąpić poprzez: dostarczenie do procesu odpowiedniego sygnału bezpośrednie wywołanie funkcji exit() gdy swoje działanie zakończy funkcja main(). Zwolnione zostają wszelkie otwarte przez proces pliki oraz zwolnione zostają zasoby: bufory pamięci, zegary (ang. timers) itp. Jeśli potomny - Informacja o zakończeniu danego procesu jest także wysyłana do jego procesu macierzystego. Procesy potomne konkurują również ze swoimi procesami macierzystymi. Nie są z nimi specjalnie powiązane. Zabicie jednych nie niszczy drugich.

48 QNX Stany blokowania

49 Stan READY proces jest zdolny do wykonania - nie jest blokowany z żadnych powodów, może zostać wybrany przez scheduler'a oraz uzyskać dostęp do procesora. Stany SEND - blocked,REPLY - blocked, RECEIVE - blocked, SIGNAL - blocked, SEMAPHORE - blocked WAIT - blocked, różne przyczyny stanu blokowania, wiążą się z wywołaniem określonych funkcji lub wykonaniem operacji Stan WAIT – blocked - jest wynikiem oczekiwania na status od jednego z procesów potomnych.

50 Stan HELD proces otrzymał sygnał SIGSTOP. Nie może wówczas konkurować o procesor. Aby wznowić proces należy mu wysłać sygnał SIGCONT. Stan DEAD, to tzw. proces zombie. Pamięć przez niego zajmowana została już zwolniona - proces nie może się zakończyć gdyż proces macierzysty nie odebrał jeszcze jego kodu powrotu. Proces macierzysty może go usunąć poprzez wywołanie specjalnych funkcji: wait() waitpid() zombie zostanie usunięty, kiedy jego proces macierzysty zakończy działanie.

51 można wątek zablokować – gdy brak zasobów lub z powodu zdarzeń (upływ czasu, semafory, muteksy) można wątek wywłaszczyć – istnieje wątek o wyższym priorytecie - nie traci statusu gotowości dobrowolne zwolnienie procesora - sam proces się zablokuje lub zmieni szeregowanie – deskryptor przesuwany na koniec Podobnie jest dla wątków


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

Podobne prezentacje


Reklamy Google