Automatyka i Robotyka Systemy czasu rzeczywistego Wykład 2.

Slides:



Advertisements
Podobne prezentacje
Zerowanie mikroprocesorów Cel: wprowadzenie mikroprocesora w określony stan początkowy Zwykle realizowany poprzez: inicjalizację licznika rozkazów (PC)
Advertisements

Wirtualizacja zasobów w systemach operacyjnych
Mechanizmy pracy równoległej
SYSTEMY OPERACYJNE WSTĘP
SYSTEMY OPERACYJNE ·       SO : zestaw programów zarządzających zasobami komputera i wspomagających jego użytkowanie zarządzanie zasobami.
SO – LAB2 Wojciech Pieprzyca
Semafory Autorzy : Michał Winciorek Łukasz Jackowicz.
1 Linux jako system wielozadaniowy i wielodostępny.
Wykład 5 Przerwania w systemie SAB80C537 dr inż. Andrzej Przybył
Wprowadzenie do Unix’a
Systemy operacyjne Wykład nr 5: Wątki Piotr Bilski.
Systemy operacyjne Wykład nr 4: Procesy Piotr Bilski.
Wykład nr 2: Struktura systemu komputerowego a system operacyjny
Wykład nr 6: Planowanie przydziału procesora
Systemy operacyjne.
Systemy operacyjne Bibliografia:
Podstawowe polecenia systemu DOS
Podstawowe komendy UNIXA
Temat nr 10: System przerwań
SO - LAB1 Wojciech Pieprzyca
ZARZĄDZANIE PROCESAMI
Język Java Wielowątkowość.
9. KOORDYNACJA PROCESÓW WSPÓŁBIEŻNYCH PRZY UŻYCIU INTERPRETATORA
1 Podstawy informatyki H. P. Janecki- 2006_ Systemy Operacyjne W6.
WINDOWS 95 WYCINEK AUTOSTART TWORZENIE POWIĄZAŃ PLIKÓW Z APLIKACJAMI
Wieloprocesowy system operacyjny dla komputerów ATARI XL/XE
Procesy odrębne –Unikatowy PID ( ) –Zmienne –Zbiory deskryptorów plików –Przestrzeń stosu (lokalne zmienne, wywołania funkcji) –Środowisko –Licznik.
Wątki.
Pamięć wspólna Przegląd stosowanych rozwiązań Marcin Kamiński, Michał Kotra Wydział EAIiE Katedra Automatyki Kraków, 2008.
SIEĆ P2P 1. Definicja sieci równouprawnionej. To taka sieć, która składa się z komputerów o takim samym priorytecie ważności, a każdy z nich może pełnić.
Zdzisław Stryła Instytut Fizyki UAM
ogólne pojęcia struktury
Opracowanie: Maria W ą sik. Pierwsze komputery budowano w celu rozwi ą zywania konkretnych problemów. Gdy pojawiało si ę nowe zadanie, nale ż ało przebudowa.
Administracja linux-em
Tworzenie nowych kont lokalnych i domenowych, oraz zarządzanie nimi
Interpretatory poleceń - powłoki systemu
Linux - polecenia.
Wielozadaniowowść systemu operacyjnego Linux
Systemy operacyjne.
Budowa systemu komputerowego
Automatyka i Robotyka Systemy czasu rzeczywistego Wykład 4.
Podstawowe usługi systemów operacyjnych
Systemy operacyjne.
System plików systemu linux
Problem sekcji krytycznej
Przerwanie ang. interrupt.
Koncepcja procesu Zadanie i proces. Definicja procesu Process – to program w trakcie wykonywania; wykonanie procesu musi przebiegać w sposób sekwencyjny.
Polecenia systemowe dos, winodws, linux
POŚREDNIK Jak reprezentowana jest informacja w komputerze? liczby – komputer został wymyślony jako zaawansowane urządzenie służące do wykonywania.
Sieciowe systemy operacyjne - UNIX
Etapy uruchamiania systemu Pliki konfiguracyjne
W ą t e k (lekki proces) thread.
Planowanie przydziału procesora
Projektowanie stron WWW
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
Systemy operacyjne (wiosna 2014)
Systemy rozproszone  Rozdzielenie obliczeń między wiele fizycznych procesorów.  Systemy luźno powiązane – każdy procesor ma lokalną pamięć; procesory.
Systemy Operacyjne Dr inż. Sławomir Samolej D108 A, tel: ,
Linux, to kompletny system operacyjny (jądro i programy użytkownika), który powstał na zasadzie GNU – czyli Powszechnej Licencji Publicznej (General Public.
System plików.
Procesor, pamięć, przerwania, WE/WY, …
Uprawnienia w Windows Server
Procesy, wątki Program a proces Proces: Przestrzeń adresowa, kod, dane, stos (część pamięci do przechowania zmiennych lokalnych i niektórych adresów) Otwarte.
Struktura systemu operacyjnego
Wstęp do programowania Wykład 7
T. 18. E Proces DGA - Działania (operatorka).
Podstawowe komendy „unixowych”
System operacyjny Linux
Mikrokontrolery System przerwań
Zapis prezentacji:

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

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 |

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

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

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

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

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

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

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

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.

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

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

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

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

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

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

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

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.

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.

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

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

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

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

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

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

koncept UNIX

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

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

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

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

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.

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.

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

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.

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

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

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.

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);

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.

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

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.

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

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

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

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)

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.

QNX Stany blokowania

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.

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.

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