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 Unix system operacyjny napisany w 1969 r. w Bell Labs
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 Języki powłoki Strumienie – kierowanie wejściem i wyjściem:
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: < pobierz z… > wyślij do Potoki polecenie | polecenie polecenie może przekazać dane do innego polecenia

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

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

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 polecenie właściciel grupa rozmiar nazwa # ls -l --rw-r--r-- 1 tbajorek wbmil 12 Oct 16 00:57 2.t d-wxr-xr-x 2 tbajorek wbmil Mar 14 22:41 aaa -rw-r--r tbajorek wbmil 7 Jan 7 20:31 b.t -rw tbajorek wbmil 302 Dec dead.letter katalog prawa

8 cd - zmiana katalogu bieżącego
cd katalog do 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 * nowy wszystkie do podrz. wzorzec: * - dowolny ciąg znaków ? – 1 znak 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

10 W systemie wielodostępnym potrzebne jest narzędzie, które zapewnić powinno organizację i ochronę dostępu do danych. 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

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

12 Posiadanie prawa: * 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 Dla katalogu: prawo czytania umożliwia listowanie zawartości, prawo wykonywania dostęp do zawartości katalogu

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

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

15 EDYTOR VI : - tryb EX – tu m.in. zapisywanie pliku 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 Inne polecenia 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

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 DEFINICJE Przerwania Przerwanie (ang. interrupt) – sygnał powodujący zmianę przepływu sterowania. 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

19 Przerwania dzielą się na
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ć, Programowe – wyzwalana jest instrukcja procesora z kodu programu. Dalsze zachowanie procesora jest identyczne jak dla przerwania sprzętowego.

20 Wyjątek (ang. exception)
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.

21 Wewnętrzna interpretacja przerwań i wyjątków
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

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

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

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

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 element sprzętowy lub programowy systemu komputerowego Brak zasobu może zablokować realizację programu. Przykłady zasobów: pamięć, procesor, bufor, itp.,

29 Zasoby pamięciowe 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

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

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

32 Planista (ang. scheduler, dispatcher)
Algorytm szeregowania konkurujących zadań odpowiedzialny za podział czasu procesora (mocy obliczeniowej) 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.

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

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

35 Planista długoterminowy
(long-term scheduler, job scheduler) 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.

36 Algorytmy szeregowania zadań
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

37 Kolejka zadań (job queue, FIFO) – zbiór procesów systemu,
Kolejka procesów gotowych (ready queue) – zbiór procesów gotowych do wykonania, Kolejka urządzenia (device queue) – zbiór procesów czekających na zakończenie operacji wej.-wyj., 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 Planowanie rotacyjne (round-robin - karuzelowe)
każde z zadań otrzymuje kwant czasu. Po spożytkowaniu swojego kwantu zostaje wywłaszczone i ustawione na końcu kolejki.

39 Planowanie sporadyczne
zadania otrzymują tak zwany "budżet czasu" 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)
… i rzadziej stosowane 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. 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 Modyfikacje szeregowania
Działania planisty muszą być skonsolidowane z całością systemu. W algorytmach szeregowania pojawiają się dodatkowe cechy: Planowanie priorytetowe Planowanie wielopoziomowe Planowanie wieloprocesorowe

42 Planowanie priorytetowe
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.

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 Planowanie wieloprocesorowe
Rozdzielanie zadań dla jednakowych lub różnych procesorów/komputerów,

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

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 Podobnie jest dla wątków
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


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

Podobne prezentacje


Reklamy Google