1 / 51

Automatyka i Robotyka

Automatyka i Robotyka. Systemy czasu rzeczywistego. Wykład 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.

caitir
Download Presentation

Automatyka i Robotyka

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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: < 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 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 4096 Mar 14 22:41 aaa -rw-r--r-- 1 tbajorek wbmil 7 Jan 7 20:31 b.t -rw------- 1 tbajorek wbmil 302 Dec 17 2007 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 760 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 • 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 trybiespecjalnym (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. 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. decyzja szeregująca decyzja szeregująca przywrócenie kontekstu P2 zachowanie kontekstu P2 P2 zachowanie kontekstu P1 przywrócenie kontekstu P1 P1 P1 Kontekst informacje do zapamiętania – aby wznowić proces 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 procesprocnto 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. 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) Algorytmszeregowania 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 (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. … 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.

More Related