Rozszerzenia czasu rzeczywistego w systemach Linux
|
|
- Janusz Rutkowski
- 8 lat temu
- Przeglądów:
Transkrypt
1 Rozszerzenia czasu rzeczywistego w systemach Linux Witold Paluszyński Instytut Informatyki, Automatyki i Robotyki Politechnika Wroc lawska Ten utwór jest dostepny na licencji Creative Commons Uznanie autorstwa- Na tych samych warunkach 3.0 Unported Utwór udostepniany na licencji Creative Commons: uznanie autorstwa, na tych samych warunkach. Udziela sie zezwolenia do kopiowania, rozpowszechniania i/lub modyfikacji treści utworu zgodnie z zasadami w/w licencji opublikowanej przez Creative Commons. Licencja wymaga podania oryginalnego autora utworu, a dystrybucja materia lów pochodnych może odbywać sie tylko na tych samych warunkach (nie można zastrzec, w jakikolwiek sposób ograniczyć, ani rozszerzyć praw do nich).
2
3 System Linux Linux jest popularnym systemem operacyjnym, zbudowanym na wzór systemu Unix. To znaczy, wzorujac sie na istniejacym systemie operacyjnym Unix, napisany zosta l od podstaw system bardzo wiernie go imitujacy. Linux jest systemem dzia lajacym na wielu platformach sprzetowych, w tym na komputerach typu PC, ale również na wielu typach mikrokontrolerów. Jest systemem szeroko wykorzystywanym, i silnie rozwijajacym sie w wielu dziedzinach. Jedna z przyczyn tej popularności jest fakt, że Linux jest niekomercyjnym systemem typu FOSS (Free and Open Source Software). To znaczy, jego kod źród lowy jest dostepny do dowolnego wykorzystania. W szczególności, można tworzyć rozszerzenia systemu dla dowolnych potrzeb, i wykorzystywać go komercyjnie. Drugim ważnym źród lem popularności Linuksa jest bogaty zestaw dobrej jakości oprogramowania, które w wiekszości również jest dostepne na zasadzie FOSS. Rozszerzenia czasu rzeczywistego w systemach Linux 3
4 Modyfikacje Linuksa Powyższe cechy powoduja, że wielu użytkowników, w tym firmy komercyjne, także ca lkiem duże, próbuja dostosować i wykorzystać Linuksa do innych celów, niż jego zasadnicze przeznaczenie. Obejmuje to budowe kolejnych dystrybucji, niekiedy specjalizowanych do określonych zastosowań, przenoszenie go na coraz to nowe platformy sprzetowe, itd. Jak również dostosowanie do potrzeb systemów wbudowanych i systemów czasu rzeczywistego. Jednak Linux sam w sobie, jako system operacyjny ogólnego przeznaczenia (GPOS - General Purpose Operating System), nie jest w stanie spe lniać twardych wymagań czasu rzeczywistego. Wynika to z silnie wbudowanych weń zasad demokratycznego zarzadzania zasobami i procesami, zarzadzania pamieci a przez naprzemienne jej alokowanie i zwalnianie, oraz ochrone, a także z niewyw laszczalności pewnych krytycznych obszarów jadra nawet przez nadchodzace przerwania. Mechanizmy standard POSIX b wprowadzone już od wersji 2.0 jadra, dostarczaja dodatkowych algorytmów szeregowania, oraz pewnych mechanizmów czasu rzeczywistego, jednak zmiany te pozwalaja tworzyć na bazie Linuksa co najwyżej miekkie systemy czasu rzeczywistego o charakterze miekkim. Rozszerzenia czasu rzeczywistego w systemach Linux 4
5 Rozszerzenia czasu rzeczywistego Linuksa Podstawowa zasada systemów GPOS jest, że najważniejsze jest jadro systemu operacyjnego, które decyduje o wszystkim. Gdy jadro ma jakieś prace do wykonania, to wykonuje je przed wszystkimi zadaniami. W systemie czasu rzeczywistego, jadro nie jest najważniejsze. Jeśli jakieś zadanie musi mieć gwarantowany czas wykonania, to może ono być również wykonywane kosztem jadra. Mówimy, że jadro jest wyw laszczane (usuwane z procesora, aby go zwolnić dla innego zadania). Poza ogólnym przygotowaniem Linuksa do tworzenia zadań czasu rzeczywistego, jak implementacja funkcji POSIX, timerów, oraz wprowadzenia priorytetu czasu rzeczywistego, stworzone zosta ly systemy stanowiace rozszerzenia Linuksa, pozwalajace budować prawdziwe aplikacje czasu rzeczywistego. Rozszerzenia te nazywane sa Real-Time Linux (RT Linux), i jest ich ca ly szereg, niektóre komercyjne, a inne o charakterze FOSS. Trzy bardziej znaczace: RTLinux, opracowany przez New Mexico Tech i obecnie utrzymywany przez Wind River Systems (komercyjny), RTAI (Real-Time Application Interface), opracowany przez Politechnike Mediolańska, Xenomai, wywodzacy sie z RTAI Linux, wprowadza uzupe lnienia umożliwiajace czysta przenośność (tzw. skórki). Rozszerzenia czasu rzeczywistego w systemach Linux 5
6 Historia Pierwszym linuksowym systemem czasu rzeczywistego o charakterze twardym by l RTLinux (1996). Wkrótce autorzy rozdzielili projekt na ścieżke otwarta (GPL) i komercyjna. Obecnie rozwijana jest tylko wersja komercyjna. W roku 2000 powsta l projekt RTAI korzystajacy z rozwiazań RTLinuksa. Problemy wynikajace z licencji RTLinuksa zmusi ly twórców RTAI do zmiany oprogramowania odpowiedzialnego za emulacje warstwy sprzetowej (HAL). W roku 2003 powsta l Adeos, inna warstwa abstrakcji, która zapewni la niezbedn a baze wirtualizacji sprzetu dla RTAI. W roku 2001 pojawi l sie Xenomai ze swoim mikrojadrem czasu rzeczywistego Nucleus. Oba projekty mia ly wspólny cel wyjście z przestrzeni jadra i sprostanie twardym wymaganiom w przestrzeni użytkownika. Z ich fuzji powsta l RTAI/Fusion. W 2005 roku projekty sie rozdzieli ly i postanowi ly podażać w lasnymi drogami. Prace stworzone w ramach RTAI/Fusion sa kontynuowane pod szyldem Xenomai, natomiast RTAI przemianowa l sie na RTAI/LXRT. Rozszerzenia czasu rzeczywistego w systemach Linux 6
7 RT Preempt patch Linux może spe lniać wymagania czasu rzeczywistego na dwa sposoby. Pierwszym jest doprowadzenie do pe lnej wyw laszczalności jadra poprzez zmiany w nim samym, natomiast drugi dotyczy modelu dodatkowego mikrojadra czasu rzeczywistego i wykonywanie jadra Linuksa jako jednego z zadań. Prace prowadzone nad lata RT Preempt podażaj a pierwsza droga. Oprócz wyw laszczalnego jadra, modyfikacji w obs ludze przerwań wprowadza ona dodatkowe timery wysokiej rozdzielczości. Rozwiazanie to nie wymaga dodatkowego API, programy sa zwyk lymi procesami Linuksa. Jako takie moga być debugowane oraz analizowane jak inne programy, zapewniona jest również ochrona pamieci. Reszta tego opracowania koncentruje sie na drugim podejściu, tzn. mikrojadra czasu rzeczywistego. Pierwszym systemem tego typu by l RTLinux. Rozszerzenia czasu rzeczywistego w systemach Linux 7
8 Rozszerzenia czasu rzeczywistego w systemach Linux 8
9 RTLinux RTLinux sk lada sie z dwóch elementów: mikrojadra czasu rzeczywistego, oraz samego Linuksa. Systemy te nie istnieja jednak na równi. Bezpośredni dostep do rzeczywistych przerwań (sprzetowych, zegara) ma tylko mikrojadro, natomiast po stronie Linuksa przerwania sa emulowane. Najważniejszym elementem mikrojadra jest planista, który jest odpowiedzialny za szeregowanie zadań czasu rzeczywistego. W tym uk ladzie Linux również jest zadaniem czasu rzeczywistego dzia lajacym pod kontrola mikrojadra. Dodatkowo posiada najniższy priorytet co sprawia, że jest tzw. procesem bezczynności (idle task), czyli wykonuje sie tylko wtedy, gdy inne zadania akurat nie korzystaja z czasu procesora. Oznacza to, że żadne zadanie po stronie Linuksa nie może wp lynać na dzia lanie ca lego systemu, a dzieki emulacji przerwań jest pewność, że inne zadania czasu rzeczywistego otrzymaja je pierwsze. Rozszerzenia czasu rzeczywistego w systemach Linux 9
10 RTLinux posiada modu lowa architekture, każdy z elementów systemu, np. modu l kolejek FIFO, może być za ladowany, badź od laczony w ramach potrzeb. Algorytmy szeregowania również sa modu lami, dzieki czemu w wzglednie latwy sposób można dodać kolejne. Programy realizujace zadania czasu rzeczywistego moga być uruchamiane tylko z przestrzeni adresowej jadra, dlatego musza być kompilowane i ladowane jako jego modu ly. Narzuca to pewne ograniczenia co do API i bibliotek, zasady sa takie jak przy pisaniu modu lów jadra. Niestety przez to nie można używać standardowych debuggerów, a b lad w programie może oznaczać zawieszenie sie, badź nawet uszkodzenie ca lego systemu. Jednak RTLinux dostarcza szereg mechanizmów komunikacji miedzyprocesowej, w tym komunikacji pomiedzy zadaniami RT, a zwyk lymi procesami Linuksa. Ograniczenie wynikajace z ladowania programów jako modu lów narzuca logiczny podzia l, w którym zadania RT zajmuja sie tylko ściśle określonymi dzia laniami (np. akwizycja danych) po czym wyniki wysy laj a do programu wizualizacyjnego. Taka komunikacja może sie odbywać za pomoca kolejki FIFO, która po stronie Linuksa widziana jest jako plik urzadzenia i tak też może być odczytywana. Mechanizmy komunikacji po stronie Linuksa sa nieblokujace, wiec praktycznie program odczytujacy dane może być nawet skryptem pow loki, badź Pythona i nie wp lynie to na jakość pobieranych wyników. Rozszerzenia czasu rzeczywistego w systemach Linux 10
11 System przerwań System operacyjny jest napedzany przez system przerwań, które można uważać za puls komputera. Wszystkie programy dzia lajace w systemie operacyjnym sa planowane przez planiste, który jest uruchamiany przez przerwanie zegarowe (tik). Wykonujacy sie program może zablokować sie w oczekiwaniu na jakieś zasoby, lub dobrowolnie zwolnić procesor. W takim przypadku planista jest informowany poprzez przerwanie programowe (wywo lanie systemowe). Sprzet może generować przerwania w celu przerwania normalnej pracy systemu operacyjnego dla szybkiej obs lugi zdarzenia sprzetowego. Rozszerzenia czasu rzeczywistego w systemach Linux 11
12 Obs luga przerwań RT Linux używa systemu przerwań dla zapewnienia mikrojadru priorytetu wyższego od jadra Linuksa. Kiedy pojawia sie przerwanie, jest ono przekazywane do mikrojadra czasu rzeczywistego, a nie do jadra Linuksa. Jednak przerwania sa przechowywane, i nastepnie przekazywane jadru Linuksa, gdy mikrojadro czasu rzeczywistego skończy lo swoja obs luge. Ponieważ mikrojadro jest pierwsze, może uruchamiać swoje zadania zgodnie z otrzymanymi przerwaniami. Dopiero gdy mikrojadro czasu rzeczywistego nie ma nic do roboty, zapamietane przerwania sa przekazywane do jadra Linuksa. Jako drugie, jadro Linuksa może planować w lasne procesy zgodnie z otrzymanym przerwaniem. Rozszerzenia czasu rzeczywistego w systemach Linux 12
13 Obs luga przerwań (cd.) Kiedy w czasie dzia lania normalnego programu pojawia sie nowe przerwanie: najpierw jest ono obs lugiwane przez procedure obs lugi przerwań mikrojadra czasu rzeczywistego, typowo procedura obs lugi przerwań mikrojadra wywo luje zadanie czasu rzeczywistego realizujace rzeczywista obs luge przerwania (mikrojadro nazywa sie mikrojadrem, bo usunieto z niego wiele procedur, przeniesionych do zwyk lych programów), natychmiast po obs ludze przerwania (a w laściwie jej zainicjowaniu w postaci zadania), uruchamiany jest planista zadań czasu rzeczywistego, planista czasu rzeczywistego zauważa, że istnieje zadanie czasu rzeczywistego gotowe do uruchomienia, wiec wyw laszcza jadro Linuksa, i uruchamia gotowe zadanie czasu rzeczywistego. Aby mikrojadro czasu rzeczywistego i zwyk le jadro Linuksa mog ly wspó listnieć na jednym komputerze, musi istnieć szczególny mechanizm przekazywania przerwań pomiedzy tymi jadrami. Każda wersja RT Linux realizuje to na swój sposób. Np. Xenomai używa potoku przerwań tzw. Adeos. Rozszerzenia czasu rzeczywistego w systemach Linux 13
14 Rozszerzenia czasu rzeczywistego w systemach Linux 14
15 Adeos Adeos jest warstwa wirtualizacji zasobów w postaci laty na jadro Linuksa. Stanowi ona platforme, na której można budować systemy czasu rzeczywistego. Umożliwia wykonywanie normalnego środowiska GNU/Linux i systemu RTOS, jednocześnie na tym samym sprzecie. Adeos wprowadza pojecie domen, które istnieja jednocześnie na tej samej maszynie. Domeny nie musza widzieć siebie nawzajem, ale każda z nich widzi Adeos. Domeny zwykle zawieraja kompletne systemy operacyjne. Podstawowa struktura Adeosa jest kolejka zdarzeń (event pipeline). Life-with-Adeos-rev-B.pdf Rozszerzenia czasu rzeczywistego w systemach Linux 15
16 Rozszerzenia czasu rzeczywistego w systemach Linux 16
17 RTAI RTAI oraz Xenomai by ly przez d lugi czas rozwijane jako jeden projekt. Dlatego sa one dość podobne pod wzgledem budowy i w laściwości. Wiecej na temat Xenomai bedzie dalej, natomiast tu bed a przedstawione g lówne różnice tych rozwiazań. Wspólnym celem RTAI/Xenomai by lo stworzenie możliwości pisania programów RT w przestrzeni użytkownika. W zamian za niewielkie straty wydajności zwiazane z prze laczaniem kontekstu można uzyskać korzyści tj. ochrona pamieci, dostep do bibliotek użytkownika czy debugowanie. Taki program po zaprojektowaniu i przetestowaniu może zostać bezproblemowo przeniesiony do przestrzeni jadra, gdyż API jest niezależne od kontekstu. Modu l o nazwie LXRT zapewnia w laśnie taka funkcjonalność. Pozwala zwyk lemu użytkownikowi (nie root) na wywo lywanie funkcji systemowych RTAI. Rozszerzenia czasu rzeczywistego w systemach Linux 17
18 RTAI udostepnia w lasny interfejs programistyczny zawierajacy podstawowe mechanizmy do komunikacji i synchronizacji: Kolejki FIFO Pamieć wspólna Komunikaty (Mailboxes) Semafory Zdalne wywo lanie procedur (RPC) Oprócz tego zapewnia zgodność z nastepuj acymi standardami POSIX: c Watki (Pthreads), muteksy i zmienne warunkowe b Kolejki (Pqueues) RTAI jest wykorzystywane w środowisku kontroli i akwizycji danych o nazwie RTAI-Lab. Sk lada sie ono dodatkowo z oprogramowania Scicos/Scilab. Razem pozwala to na graficzne tworzenie aplikacji czasu rzeczywistego tworzacych ca ly system akwizycji pomiarów i kontrolowania urzadzeń zewnetrznych. Rozszerzenia czasu rzeczywistego w systemach Linux 18
19 Xenomai Projekt Xenomai zosta l uruchomiony w sierpniu 2001 roku. Xenomai opiera sie na abstrakcyjnym rdzeniu RTOS, dostarczajacym zestaw ogólnych us lug RTOS: timery bufory IPC zmienne warunkowe flag zdarzeń us lugi sterty pamieci obs luga przerwań muteksy potoki kolejki komunikatów semafory obs luga watków obs luga timerów Rozszerzenia czasu rzeczywistego w systemach Linux 19
20 Różne interfejsy programistyczne (skórki) Porównujac podejście Xenomai do RTAI można powiedzieć, że o ile RTAI koncentruje sie na zapewnieniu najmniejszych technicznie możliwych opóźnień, Xenomai uwzglednia również przenośność kodu. Lista funkcji zapewniajacych dostep do us lug Xenomai stanowi tzw. native API, to znaczy interfejs bezpośredni. Jednak istnieja inne specyfikacje interfejsów funkcji czasu rzeczywistego, jak np. interfejs POSIX, realizowany przez wiele systemów. System Xenomai zapewnia alternatywny interfejs POSIX do tych samych us lug. Oznacza to, że us lugi RTOS Xenomai można również wywo lywać przez funkcje POSIX. Na przyk lad, wywo lanie funkcji utworzenia muteksu pthread_mutex_create w systemie Xenomai spowoduje utworzenie muteksu czasu rzeczywistego Xenomai. System Xenomai rozciagn a l te koncepcje dalej, tworzac szereg alternatywnych interfejsów programistycznych do swoich us lug RTOS. Te interfejsy nazywane sa w terminologii Xenomai skórkami (skins). Pozwalaja one przenosić programy napisane w innych systemach RTOS i kompilować je w systemie Xenomai bez modyfikacji. (Jest to tylko możliwe o tyle o ile dany program korzysta w sposób standardowy z danego mechanizmu RTOS, a nie używa jakichś specyficznych mechanizmów danego systemu operacyjnego.) Rozszerzenia czasu rzeczywistego w systemach Linux 20
21 Przyk ladowe skórki realizowane w Xenomai: native bezpośredni interfejs do funkcji Xenomai też jest traktowany jako skórka POSIX PSO+ VxWorks VRTX uitron RTAI: tylko w watkach jadra Rozszerzenia czasu rzeczywistego w systemach Linux 21
22 Rozszerzenia czasu rzeczywistego w systemach Linux 22
23 Zadania w systemach grupy RT Linux Program w systemie RT Linux tworzy watki czasu rzeczywistego. Zwyk le programy linuksowe (nie-realtime) używaja zwyk lych watków Pthread. Zadanie czasu rzeczywistego może być wykonywane w przestrzeni jadra wykorzystujac modu l mikrojadra. Zadanie wykonywane w module jadra ma niższe narzuty, ale jakikolwiek b lad w takim zadaniu może zak lócić prace mikrojadra, albo wywalić ca ly system. Zadanie czasu rzeczywistego może być również wykonywane w przestrzeni użytkownika za pomoca zwyk lego programu w C. Daje to wieksze bezpieczeństwo, ponieważ b l ad w programie użytkownika może jedynie zawiesić ten program. Ponadto, programy uruchamiane w przestrzeni użytkownika moga korzystać z interfejsu funkcji czasu rzeczywistego, jak również ze zwyk lych funkcji Linuksa. (W trybie jadra można korzystać tylko z interfejsu funkcji czasu rzeczywistego i funkcji mikrojadra.) Jednak podczas korzystania przez zadania przestrzeni użytkownika z API Linuksa, nie moga być one planowane przez planiste czasu rzeczywistego, tylko musza być planowane przez zwyk lego Linuksa. Nie bed a wiec one zadaniami HARD real-time, lecz SOFT real-time. Po zakończeniu wywo lania funkcji z API Linuksa, zadanie powraca do planisty czasu rzeczywistego. Rozszerzenia czasu rzeczywistego w systemach Linux 23
24 Zadania w systemie Xenomai Planista czasu rzeczywistego systemu Xenomai realizuje algorytm planowania oparty na priorytetach z wyw laszczaniem. W ten sposób realizowany jest model wieloprocesowości. Mechanizmy wieloprocesowości sa g lównymi us lugami systemu Xenomai. Zadania czasu rzeczywistego Xenomai sa podobne do watków Linuksa. Tworzone sa funkcja rt_task_create. W chwili utworzenia zadanie jest w zasadzie tylko deskryptorem zadania, i musi być uruchomione funkcja rt_task_start. Można jednocześnie stworzyć i od razu uruchomić zadanie funkcja rt_task_spawn. Typowymi operacjami wykonywanymi przez zadania, majacymi zwiazek z planowaniem zadań sa: zawieszanie i wznawianie, oraz usypianie. Rozszerzenia czasu rzeczywistego w systemach Linux 24
25 Tworzenie zadania Podczas tworzenia zadania czasu rzeczywistego w Xenomai struktura RT_TASK jest używana jako deskryptor tego zadania. S luży ona do przechowywania wszelkich informacji na temat zadania, takich jak: funkcja do wykonania przez zadanie czasu rzeczywistego, przekazywany do niej argument, rozmiar stosu przeznaczonego na jego zmienne, jego priorytet, czy bedzie używa l arytmetyki zmiennoprzecinkowej, handler sygna lu, która zostanie wywo lany, gdy zadanie stanie sie aktywne. Zadanie jest tworzone poprzez wywo lanie: int rt_task_create(rt_task *task, const char *name, int stack_size, int priority, int mode) task jest wskaźnikiem do struktury RT_TASK, która musi być wcześniej utworzona i wype lniona. name jest napisem stanowiacym symboliczna nazwe zadania. Tej symbolicznej nazwy można użyć aby pobrać strukture zadaniowa przez wywo lanie funkcji rt_task_bind(). Rozszerzenia czasu rzeczywistego w systemach Linux 25
26 stack_size jest rozmiarem stosu, który może być wykorzystany przez nowe zadanie. priority jest priorytetem zadania od 1 do 99. mode to wektor flag, które wp lywaj a na zadanie: T_FPU umożliwia zadaniu używanie FPU (jednostka zmiennoprzecinkowa), jeśli jest dostepna (flaga wymuszana dla zadań przestrzeni użytkownika) T_SUSP powoduje uruchomienie zadania w trybie zawieszonym; w takim przypadku, watek bedzie musia l być jawnie wznowiony za pomoca rt_task_resume(), T_CPU(CPUID) określa, że nowe zadanie ma dzia lać na procesorze nr CPUID (od 0 do RTHAL_NR_CPUS-1 w lacznie). T_JOINABLE (tylko w przestrzeni użytkownika) pozwala innemu zadaniu na oczekiwanie na zakończenie nowo tworzonego zadania, oznacza to, że rt_task_join() bedzie wywo lane po zakończeniu tego zadania dla wyczyszczenia wszelkich zaalokowanych zasobów przestrzeni użytkownika. Rozszerzenia czasu rzeczywistego w systemach Linux 26
27 Uruchamianie zadania Zadanie jest uruchomiane przez wywo lanie: int rt_task_start(rt_task *task, void (* task_func) (void *), void *arg) task jest wskaźnikiem do struktury typu RT_TASK, która musi być już zainicjowana przez wywo lanie rt_task_create() task_func jest funkcja do wykonania przez to zadanie czasy rzeczywistego arg jest argumentem typu void pointer przekazywanym do funkcji zadania Jeśli flaga T_SUSP zosta la podana jako flaga trybu rt_task_create(), to zadanie zostanie uruchomione w trybie zawieszonym. W takim przypadku należy jawnie wznowić to zadanie funkcja rt_task_resume(). W przeciwnym wypadku, zadanie czasu rzeczywistego staje sie gotowe do wykonania natychmiast. Rozszerzenia czasu rzeczywistego w systemach Linux 27
28 #include <stdio.h> #include <signal.h> #include <unistd.h> #include <sys/mman.h> #include <native/task.h> #include <native/timer.h> #include <rtdk.h> RT_TASK demo_task; void demo(void *arg) { RT_TASK *curtask; RT_TASK_INFO curtaskinfo; // hello world rt_printf("hello World!\n"); Przyk ladowy program Xenomai // inquire current task curtask=rt_task_self(); rt_task_inquire(curtask,&curtaskinfo); Rozszerzenia czasu rzeczywistego w systemach Linux 28
29 } // print task name rt_printf("task name : %s \n", curtaskinfo.name); int main(int argc, char* argv[]) { char str[10] ; // Perform auto-init of rt_print buffers if the task doesn t do so rt_print_auto_init(1); // Lock memory : avoid memory swapping for this program mlockall(mcl_current MCL_FUTURE); rt_printf("start task\n"); /* * Arguments: &task, * name, * stack size (0=default), * priority, * mode (FPU, start suspended,...) */ sprintf(str,"hello"); rt_task_create(&demo_task, str, 0, 50, 0); /* Rozszerzenia czasu rzeczywistego w systemach Linux 29
30 } * Arguments: &task, * task function, * function argument */ rt_task_start(&demo_task, &demo, 0); Rozszerzenia czasu rzeczywistego w systemach Linux 30
31 Blokowanie stron pamieci W programie powyżej, pamieć jest zablokowana przez wywo lanie mlockall ( MCL_CURRENT MCL_FUTURE); Powoduje to wy laczenie mechanizmu pamieci wirtualnej dla tego zadania, i przydzielone mu strony pamieci fizycznej nie bed a podlega ly wymianie na dysk. Jest to praktycznie konieczne dla wszystkich zadań czasu rzeczywistego, ponieważ operacje pamieci wirtualnej trwaja zbyt d lugo, aby mog ly być zachowane jakiekolwiek wymagania czasu rzeczywistego. Xenomai generuje ostrzeżenie, kiedy ten krok jest pominiety w programie. Rozszerzenia czasu rzeczywistego w systemach Linux 31
32 Zadania jednorazowe i okresowe Systemy czasu rzeczywistego czesto wymagaja okresowego wykonywania pewnych zadań. Ich wielokrotne każdorazowe indywidualne uruchamianie wprowadza loby narzuty na tworzenie tych zadań, oraz konieczność utworzenia dodatkowego zadania do ich uruchamiania. Zamiast tego, stosuje sie zadania okresowe, które istnieja ca ly czas, i sa okresowo wznawiane przez system. Rozszerzenia czasu rzeczywistego w systemach Linux 32
33 Tworzenie zadań okresowych Zadania tworzone funkcja rt_task_start sa domyślnie zadaniami jednorazowymi (one-shot tasks). Można przekszta lcić je na okresowe za pomoca funkcji rt_task_set_periodic(). Zadaje ona czas wystartowania zadania (który można podać za pomoca makra TM_NOW), oraz jego okres. const long long SLEEP_TIME = ; /* = 1 s */ /*... */ rt_task_create(&task1, "task1", 0, 50, 0); rt_task_set_periodic(&task1, TM_NOW, SLEEP_TIME); rt_task_start(&task1, &func1, NULL); Przekszta lcenie zadania na okresowe musi nastapić albo przed jego uruchomieniem, albo musi to zrobić samo zadanie (może wtedy podać wskaźnik do opisu zadania jako NULL). Gdy okresowe zadanie kończy swoja prace w danym uruchomieniu, musi jawnie zwolnić procesor wywo luj ac funkcje rt_task_wait_period Rozszerzenia czasu rzeczywistego w systemach Linux 33
34 #include <stdio.h> #include <signal.h> #include <unistd.h> #include <sys/mman.h> #include <native/task.h> #include <native/timer.h> RT_TASK demo_task; /* NOTE: error handling omitted. */ void demo(void *arg) { RTIME now, previous; Przyk lad zadania okresowego /* * Arguments: &task (NULL=self), * start time, * period (here: 1 s) */ rt_task_set_periodic(null, TM_NOW, ); previous = rt_timer_read(); Rozszerzenia czasu rzeczywistego w systemach Linux 34
35 while (1) { rt_task_wait_period(null); now = rt_timer_read(); } } /* * NOTE: printf may have unexpected impact on the timing of * your program. It is used here in the critical loop * only for demonstration purposes. */ printf("time since last turn: %ld.%06ld ms\n", (long)(now - previous) / , (long)(now - previous) % ); previous = now; void catch_signal(int sig) { } int main(int argc, char* argv[]) { signal(sigterm, catch_signal); signal(sigint, catch_signal); Rozszerzenia czasu rzeczywistego w systemach Linux 35
36 /* Avoids memory swapping for this program */ mlockall(mcl_current MCL_FUTURE); /* * Arguments: &task, * name, * stack size (0=default), * priority, * mode (FPU, start suspended,...) */ rt_task_create(&demo_task, "trivial", 0, 99, 0); /* * Arguments: &task, * task function, * function argument */ rt_task_start(&demo_task, &demo, NULL); pause(); } rt_task_delete(&demo_task); Rozszerzenia czasu rzeczywistego w systemach Linux 36
37 Biblioteka drukowania czasu rzeczywistego rtdk Zauważ, że w powyższym programie użyto funkcji rt_printf() zamiast printf(). Nie użyto printf() ponieważ używa ona wywo lania funkcji Linuksa i dlatego znacznie spowalnia zadanie czasu rzeczywistego. Zamiast tego można używać funkcji czasu rzeczywistego rt_printf() biblioteki rtdk. Jest to osadzona w przestrzeni użytkownika Xenomai biblioteka us lug printf. W rzeczywistości nie zależy ona nawet od żadnych us lug Xenomai, tylko wykorzystuje czyste API POSIX. API biblioteki librtprint wyglada podobnie jak strony podrecznika printf(3): rt_vfprintf rt_vprintf rt_fprintf rt_printf Podstawowa idea librtdk jest utrzymanie drukowania tak tanio, jak to możliwe nie sa używane żadne blokady ani żadne funkcje systemowe. Każdy watek, który używa rt_printf() i podobnych ma swój lokalny bufor ko lowy. Centralny watek wyjściowy (zwyk ly, nie czasu rzeczywistego; jest to jeden watek na proces) nadzoruje przekazywanie treści wszystkich buforów ko lowych watków do strumieni wyjściowych. Kolejność komunikatów zostanie zachowana (zgrubnie) przez globalny licznik sekwencji. Watek wyjściowy wykorzystuje okresowe odpytywanie (domyślnie: 10 Hz), aby uniknać potrzeby stosowania specjalnych mechanizmów sygnalizacji. Rozszerzenia czasu rzeczywistego w systemach Linux 37
38 Aby uruchomić watek wyjściowy (non-rt) zadanie musi wywo lać na poczatku nastepuj ac a funkcje Xenomai: rt_print_auto_init(1); Ta funkcja inicjalizuje bufory rt_print i uruchamia watek wyjściowy. Rozszerzenia czasu rzeczywistego w systemach Linux 38
39 Real-Time Driver Model Dla konkretnych uk ladów peryferyjnych konieczne jest napisanie dedykowanych sterowniki czasu rzeczywistego. Obecnie sa dostepne drivery dla RS232, CAN, FireWire i kart pomiarowych National Semiconductors. RTDM-and-Applications.pdf Rozszerzenia czasu rzeczywistego w systemach Linux 39
40 Rozszerzenia czasu rzeczywistego w systemach Linux 40
41 Kompilacja programów Xenomai Aby skompilować dowolny program Xenomai, należy najpierw uzyskać CFLAGS i LDFLAGS przez: $ xeno-config --xeno-cflags $ xeno-config --xeno-ldflags Aby ustawić te flagi, można użyć: $ export CFLAGS= xeno-config --xeno-cflags $ export LDFLAGS= xeno-config --xeno-ldflags Skompilowanie programu ex01.c z natywna bibliotek a implementujac a Xenomai API i biblioteka druku rtdk: $ gcc $CFLAGS $LDFLAGS -lnative -lrtdk ex01.c -o ex01 $ export LD_LIBRARY_PATH=/usr/xenomai/lib Uruchomienie programu: $./Ex01 Rozszerzenia czasu rzeczywistego w systemach Linux 41
42 Ćwiczenia Ćwiczenie 1a Skompiluj i uruchom program ex01.c, aby uzyskać pewne podstawowe doświadczenie w pracy z zadaniami Xenomai. Najpierw spróbuj kompilacji recznej za pomoca polecenia podanego powyżej. Nastepnie spróbuj zbudować program binarny w sposób zautomatyzowany za pomoca dostarczonego Makefile (za pomoca polecenia make./ex01 ). Ćwiczenie 1b Wprowadź b lad, wykomentowujac przypisanie identyfikatora bieżacego zadania w nastepuj acy sposób: // Curtask = rt_task_self(); Zapisz wynikajacy z niego program jako ex01b.c. Skompiluj i uruchom ten program. Obserwuj wynik. Rozszerzenia czasu rzeczywistego w systemach Linux 42
43 Przyk lady programów user alarm.c tworzenie alarmów alarm_8c-example.html event flags.c tworzenie zdarzeń i synchronizacja event_flags_8c-example.html msg queue.c kolejki komunikatów, pozwalaja przesy lać dowolnej d lugości komunikaty od nadawcy do odbiorcy: queue_8c-example.html potoki komunikatów (message pipe) pozwalaja przesy lać dowolnej d lugości komunikaty miedzy zadaniami RT a zwyk lymi procesami Linuksa: szeregowanie zadań priorytetowe: szeregowanie zadań rotacyjne: Rozszerzenia czasu rzeczywistego w systemach Linux 43
System Linux. Ten wyk lad zawiera wprowadzenie do systemu Xenomai, który jest jednym z systemów rozszerzajacych
System Linux Ten wyk lad zawiera wprowadzenie do systemu Xenomai, który jest jednym z systemów rozszerzajacych system operacyjny Linux dla zadań czasu rzeczywistego. Linux jest popularnym systemem operacyjnym,
1 Zapoznanie się ze środowiskiem Xenomai.
1 Zapoznanie się ze środowiskiem Xenomai. Wszystkie ćwiczenia oraz programy opracowane zostały w Xenomai w wersji 2.5.6. Dlatego też odwołania do dokumentacji dotyczą dokumentu pod adresem: http://www.xenomai.org/documentation/xenomai-2.5/html/api/
Prezentacja systemu RTLinux
Prezentacja systemu RTLinux Podstawowe założenia RTLinux jest system o twardych ograniczeniach czasowych (hard real-time). Inspiracją dla twórców RTLinux a była architektura systemu MERT. W zamierzeniach
Systemy Operacyjne - Operacje na plikach
Systemy Operacyjne - Operacje na plikach Andrzej Stroiński Institute of Computer Science Poznań University of Technology 1 październik, 2012 Wprowadzenie do ANSI-C Pomoc systemowa man gcc man 2 write man
Funkcje systemów operacyjnych czasu rzeczywistego
Funkcje systemów operacyjnych czasu rzeczywistego Witold Paluszyński Katedra Cybernetyki i Robotyki Wydzia l Elektroniki, Politechnika Wroc lawska http://www.kcir.pwr.edu.pl/~witold/ 2011 2015 Ten utwór
Funkcje systemu Unix
Funkcje systemu Unix Witold Paluszyński witold@ict.pwr.wroc.pl http://sequoia.ict.pwr.wroc.pl/ witold/ Copyright c 2002 2005 Witold Paluszyński All rights reserved. Niniejszy dokument zawiera materia ly
Wieloprogramowy system komputerowy
Wieloprogramowy system komputerowy sprzet: procesor(y), pamieć(i), lacza i magistrale komunikacyjne, urzadzenia wejścia/wyjścia system operacyjny obs luguje i zarzadza sprzetem, umożliwia prace i korzystanie
Funkcje systemów operacyjnych czasu rzeczywistego
Funkcje systemów operacyjnych czasu rzeczywistego Witold Paluszyński Katedra Cybernetyki i Robotyki Wydzia l Elektroniki, Politechnika Wroc lawska http://www.kcir.pwr.edu.pl/~witold/ 2011 2017 Ten utwór
SYSTEMY CZASU RZECZYWISTEGO - VxWorks
WZAJEMNE WYKLUCZANIE Wiele metod. Np. wyłączanie przerwań: funkcja() //... Int blokada = intlock(); // Obszar krytyczny, któremu nie możemy przerwać intunlock(blokada); wyłączanie wywłaszczania: funkcja()
Wieloprogramowy system komputerowy
Wieloprogramowy system komputerowy sprzet: procesor(y), pamieć(i), lacza i magistrale komunikacyjne, urzadzenia wejścia/wyjścia system operacyjny obs luguje i zarzadza sprzetem, umożliwia prace i korzystanie
4.2 Sposób korzystania z l acza
4.2 Sposób korzystania z l acza 31 Opis programu: Program procesu potomnego (linie 16 19) jest taki sam, jak w przyk ladzie na listingu 3. W procesie macierzystym nastepuje z kolei przekierowanie standardowego
Q E M U. http://www.qemu.com/
http://www.qemu.com/ Emulator procesora Autor: Fabrice Bellard Obsługiwane platformy: Windows, Solaris, Linux, FreeBSD, Mac OS X Aktualna wersja: 0.9.0 Większość programu oparta na licencji LGPL, a sama
projekt akademicki w Institute for Mining and Technology of New Mexico. Autor Victor Yodaiken FSMLabs komercyjna odmiana RTLinuxPro
projekt akademicki w Institute for Mining and Technology of New Mexico. Autor Victor Yodaiken FSMLabs komercyjna odmiana RTLinuxPro Rygorystyczny (twardy) system operacyjny czasu rzeczywistego. Jego charakterystyczną
Jadro Linux 2.6. a zadania czasu rzeczywistego. Artur Lewandowski. Jądro Linux 2.6 p.1/14
Jadro Linux 2.6 a zadania czasu rzeczywistego Artur Lewandowski al167167@students.mimuw.edu.pl Jądro Linux 2.6 p.1/14 1 Wprowadzenie Linux 2.6 wprowadza dużo nowych cech polepszajacych wydajność zadań
Wieloprogramowy system komputerowy
Wieloprogramowy system komputerowy sprzet: procesor(y), pamieć, lacza i magistrale komunikacyjne, urzadzenia wejścia/wyjścia system operacyjny: obs luguje i zarzadza sprzetem, umożliwia prace i korzystanie
Functionalization. Funkcje w C. Marcin Makowski. 30 listopada Zak lad Chemii Teoretycznej UJ
w C Zak lad Chemii Teoretycznej UJ 30 listopada 2006 1 2 3 Inicjalizacja zmiennych Zmienne jednowymiarowe można inicjować przy ich definicji. #include i n t x = 1 ; l o n g day = 1000L * 60L
z powielaniem wielu struktur danych oraz komunikacja
c Wies law P laczek 28 8 Watki 8.1 Wprowadzenie Wiele rozwiazywanych problemów można podzielić na zadania czastkowe, które daja sie wykonać niemal niezależnie. Każde z takich zadań można by powierzyć oddzielnemu
Szeregowanie w systemach czasu rzeczywistego
Szeregowanie w systemach czasu rzeczywistego Witold Paluszyński Katedra Cybernetyki i Robotyki Wydzia l Elektroniki, Politechnika Wroc lawska http://www.kcir.pwr.edu.pl/~witold/ 2011 2015 Ten utwór jest
Functionalization. Jeszcze o funkcjach i strukturze projektu. Marcin Makowski. 3 grudnia Zak lad Chemii Teoretycznej UJ
Jeszcze o funkcjach i strukturze projektu Zak lad Chemii Teoretycznej UJ 3 grudnia 2008 1 2 3 4 5 typedef Plan typedef specyfikator typu nazwa S luży do stworzenia nowej nazwy dla jakiegoś typu. Nazwa
Obliczenia rozproszone z wykorzystaniem MPI
Obliczenia rozproszone z wykorzystaniem Zarys wst u do podstaw :) Zak lad Metod Obliczeniowych Chemii UJ 8 sierpnia 2005 1 e konkretniej Jak szybko, i czemu tak wolno? 2 e szczegó lów 3 Dyspozytor Macierz
SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)
(opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX) W informatyce występują ściśle obok siebie dwa pojęcia: sprzęt (ang. hardware) i oprogramowanie
Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Linux.
Kod szkolenia: Tytuł szkolenia: PS/LINUX Programowanie systemowe w Linux Dni: 5 Opis: Adresaci szkolenia Szkolenie adresowane jest do programistów tworzących aplikacje w systemie Linux, którzy chcą poznać
PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO
PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO LABORATORIUM Temat: QNX Neutrino Interrupts Mariusz Rudnicki 2016 Wstęp W QNX Neutrino wszystkie przerwania sprzętowe przechwytywane są przez jądro systemu. Obsługę
Tworzenie oprogramowania
Tworzenie oprogramowania dr inż. Krzysztof Konopko e-mail: k.konopko@pb.edu.pl 1 Tworzenie oprogramowania dla systemów wbudowanych Program wykładu: Tworzenie aplikacji na systemie wbudowanym. Konfiguracja
IdyllaOS. Prosty, alternatywny system operacyjny. www.idyllaos.org. Autor: Grzegorz Gliński. Kontakt: milyges@gmail.com
IdyllaOS www.idyllaos.org Prosty, alternatywny system operacyjny Autor: Grzegorz Gliński Kontakt: milyges@gmail.com Co to jest IdyllaOS? IdyllaOS jest to mały, prosty, uniksopodobny, wielozadaniowy oraz
Zaawansowane programowanie w C++
Zaawansowane programowanie w C++ Micha l Tanaś, PhD Adam Mickiewicz University, Faculty of Physics http://www.amu.edu.pl/~mtanas Michal.Tanas@amu.edu.pl Wykonanie klasycznego programu System operacyjny
pami eć operacyjna przechowuje dane do przetworzenia, tymczasowe dane pomocnicze,
16 3 Procesy 3 Procesy Pojecie procesu jest kluczowe dla zrozumienia funkcjonowania wielozadaniowych systemów operacyjnych. Trudność w zrozumieniu tego pojecia i tym samym zg lebienie mechanizmu obs lugi
Wykład 3: Implementacja programów wbudowanych
Systemy wbudowane Wykład 3: Implementacja programów wbudowanych Problemy implementacji oprogramowania wbudowanego Szeregowanie zadań System operacyjny Obsługa przerwań 10/16/2010 S.Deniziak:Systemy wbudowane
Watki. kod programu za ladowany do pami eci operacyjnej, wraz ze środowiskiem (zbiorem
Watki Procesy stanowia podstawowa jednostke, z której tradycyjnie sk lada sie wiekszość systemów operacyjnych. Procesy posiadaja dwie podstawowe cechy: kod programu za ladowany do pamieci operacyjnej,
U M L. System operacyjny Linux zagnieżdżony w zewnętrznym systemie operacyjnym (Linux)
http://user-mode-linux.sourceforge.net/ System operacyjny Linux zagnieżdżony w zewnętrznym systemie operacyjnym (Linux) Autor: Jeff Dike Koncepcja powstała w 1999 r. Początkowo jako patch do jądra 2.0
1. Tworzenie nowego projektu.
Załącznik do Instrukcji 1. Tworzenie nowego projektu. Wybieramy opcję z menu głównego New->QNX C Project. Wprowadzamy nazwę przechodzimy do następnego kroku NEXT. Wybieramy platformę docelową oraz warianty
Technika mikroprocesorowa. Systemy operacyjne czasu rzeczywistego
System operacyjny czasu rzeczywistego (RTOS Real Time Operating System) jest programem bazowym ułatwiającym tworzenie programu użytkowego systemu mikroprocesorowego. System operacyjny czasu rzeczywistego
Systemy wbudowane. Systemy operacyjne czasu rzeczywistego
Systemy wbudowane Systemy operacyjne czasu rzeczywistego Definicje System czasu rzeczywistego to taki, w którym wynik przetwarzania nie zależy tylko i wyłącznie od jego logicznej poprawności, ale również
1.1 Definicja procesu
1 Procesy pojęcia podstawowe 1 1.1 Definicja procesu Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa
Instytut Teleinformatyki
Instytut Teleinformatyki Wydział Inżynierii Elektrycznej i Komputerowej Politechnika Krakowska programowanie usług sieciowych Dziedzina Unix laboratorium: 06 Kraków, 2014 06. Programowanie Usług Sieciowych
UNIX: architektura i implementacja mechanizmów bezpieczeństwa. Wojciech A. Koszek dunstan@freebsd.czest.pl Krajowy Fundusz na Rzecz Dzieci
UNIX: architektura i implementacja mechanizmów bezpieczeństwa Wojciech A. Koszek dunstan@freebsd.czest.pl Krajowy Fundusz na Rzecz Dzieci Plan prezentacji: Wprowadzenie do struktury systemów rodziny UNIX
Systemy operacyjne. Paweł Pełczyński
Systemy operacyjne Paweł Pełczyński ppelczynski@swspiz.pl 1 Program przedmiotu Wprowadzenie Struktura systemów operacyjnych Procesy i Wątki Komunikacja międzyprocesowa Szeregowanie procesów Zarządzanie
Paradygmaty programowania
Paradygmaty programowania Programowanie generyczne w C++ Dr inż. Andrzej Grosser Cz estochowa, 2016 2 Spis treści 1. Zadanie 3 5 1.1. Wprowadzenie.................................. 5 1.2. Obiekty funkcyjne................................
4. Procesy pojęcia podstawowe
4. Procesy pojęcia podstawowe 4.1 Czym jest proces? Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa
Systemy czasu rzeczywistego
Systemy czasu rzeczywistego Co to jest system czasu rzeczywistego RTS (Real-Time System)? Czesto proponowana definicja RTS mówi, że sa to systemy, w których można określić maksymalny czas wykonania poszczególnych
Paradygmaty programowania. Paradygmaty programowania
Paradygmaty programowania Paradygmaty programowania Dr inż. Andrzej Grosser Cz estochowa, 2013 2 Spis treści 1. Zadanie 2 5 1.1. Wprowadzenie.................................. 5 1.2. Wskazówki do zadania..............................
1.Wstęp. 2.Generowanie systemu w EDK
1.Wstęp Celem niniejszego ćwiczenia jest zapoznanie z możliwościami debuggowania kodu na platformie MicroBlaze oraz zapoznanie ze środowiskiem wspomagającym prace programisty Xilinx Platform SDK (Eclipse).
1. Ustanawianie ograniczeń na użycie zasobów
1. Ustanawianie ograniczeń na użycie zasobów W każdym systemie komputerowym zasoby potrzebne do tworzenia i wykonywania procesów są ograniczone. W przypadku gdy w systemie działa wiele procesów ważną rzeczą
Procesy pojęcia podstawowe. 1.1 Jak kod źródłowy przekształca się w proces
Procesy pojęcia podstawowe 1 1.1 Jak kod źródłowy przekształca się w proces W języku wysokiego poziomu tworzy się tak zwany kod źródłowy który po zapisaniu będzie plikiem z programem źródłowym. Plik źródłowy
4. Procesy pojęcia podstawowe
4. Procesy pojęcia podstawowe 4.1 Czym jest proces? Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa
Programowanie obiektowe zastosowanie języka Java SE
Programowanie obiektowe zastosowanie języka Java SE Wstęp do programowania obiektowego w Javie Autor: dr inŝ. 1 Java? Java język programowania obiektowo zorientowany wysokiego poziomu platforma Javy z
Sieciowe Systemy Operacyjne
1 Sieciowe Systemy Operacyjne 1. Etapy rozwoju systemów komputerowych System scentralizowany System sieciowy System rozproszony 1.1 System scentralizowany Zastosowane duże komputery (mainframes ) Użytkownicy
Rozdzia l 3. Laboratorium 3. danych zawierajac
Rozdzia l 3 Laboratorium 3 3.1. Tablice Tablica jest struktura danych zawierajac a zmienne tego samego typu. CLR środowiska.net Framework wspiera tworzenie tablic jedno oraz wielo wymiarowych. 3.1.1. Tablice
Temat zajęć: Tworzenie i obsługa wątków.
Temat zajęć: Tworzenie i obsługa wątków. Czas realizacji zajęć: 180 min. Zakres materiału, jaki zostanie zrealizowany podczas zajęć: Tworzenie wątków, przekazywanie parametrów do funkcji wątków i pobieranie
Wprowadzenie do systemów kontroli wersji
Wprowadzenie do systemów kontroli wersji Witold Paluszyński Katedra Cybernetyki i Robotyki Politechnika Wroc lawska http://www.kcir.pwr.edu.pl/~witold/ 2016 Ten utwór jest dostepny na licencji Creative
Wprowadzenie do systemów kontroli wersji
Wprowadzenie do systemów kontroli wersji Witold Paluszyński Katedra Cybernetyki i Robotyki Politechnika Wroc lawska http://www.kcir.pwr.edu.pl/~witold/ 2016 Ten utwór jest dostepny na licencji Creative
SYSTEMY OPERACYJNE PROCESORÓW SYGNAŁOWYCH
Zastosowania procesorów sygnałowych SYSTEMY OPERACYJNE PROCESORÓW SYGNAŁOWYCH Opracowanie: Grzegorz Szwoch Politechnika Gdańska, Katedra Systemów Multimedialnych Programowanie bez OS Proste programy na
Ghost in the machine
Operacje na pami eci i odrobina I/O Zak lad Chemii Teoretycznej UJ 8 stycznia 2007 Funkcje operujace Wstep do operacji I/O na plikach 1 Operacje na pami eci 2 Funkcje operujace 3 Wst Funkcje operujace
System operacyjny MACH
Emulacja w systemie MCH System operacyjny MCH 4. SD Systemu V HP/UX MS-DOS VMS inne Mikrojądro Zbigniew Suski Zbigniew Suski Podstawowe cele projektu MCH! Dostarczenie podstawy do budowy innych systemów
Wstęp do Informatyki. Klasyfikacja oprogramowania
Wstęp do Informatyki Klasyfikacja oprogramowania Oprogramowanie komputerowe Funkcjonalność komputera jest wynikiem zarówno jego budowy, jak i zainstalowanego oprogramowania Komputer danej klasy znajduje
Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Zadania systemu operacyjnego. Abstrakcyjne składniki systemu. System komputerowy
Systemy operacyjne Systemy operacyjne Dr inż. Ignacy Pardyka Literatura Siberschatz A. i inn. Podstawy systemów operacyjnych, WNT, Warszawa Skorupski A. Podstawy budowy i działania komputerów, WKiŁ, Warszawa
Systemy operacyjne II
Systemy operacyjne II Wojciech Kwedlo Wydział Informatyki PB, p. 205 wkwedlo@ii.pb.bialystok.pl aragorn.pb.bialystok.pl/~wkwedlo Pracownia specjalistyczna: Wojciech Kwedlo Krzysztof Bandurski Wojciech
1. Timery i zdarzenia
Sygnały 1 1. Timery i zdarzenia 1.1 Funkcje i programowanie timerów Jedną z najczęściej spotykanych funkcji systemu jest generowanie zdarzeń które w ustalonym czasie uruchomić mają określone akcje systemu.
Wyk lad 7 Metoda eliminacji Gaussa. Wzory Cramera
Wyk lad 7 Metoda eliminacji Gaussa Wzory Cramera Metoda eliminacji Gaussa Metoda eliminacji Gaussa polega na znalezieniu dla danego uk ladu a x + a 2 x 2 + + a n x n = b a 2 x + a 22 x 2 + + a 2n x n =
Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.
Języki C i C++ to bardzo uniwersalne platformy programistyczne o ogromnych możliwościach. Wykorzystywane są do tworzenia systemów operacyjnych i oprogramowania użytkowego. Dzięki niskiemu poziomowi abstrakcji
Projekty Zaliczeniowe Laboratorium Sieci Komputerowych
Projekty Zaliczeniowe Laboratorium Sieci Komputerowych Rok Akademicki 2015/2016 Micha l Kalewski, Lukasz Piatkowski Revision : 2.2 Spis treści 1 Proponowane tematy projektów zaliczeniowych 1 1.1 Uwagi...............................
Mechanizmy pracy równoległej. Jarosław Kuchta
Mechanizmy pracy równoległej Jarosław Kuchta Zagadnienia Algorytmy wzajemnego wykluczania algorytm Dekkera Mechanizmy niskopoziomowe przerwania mechanizmy ochrony pamięci instrukcje specjalne Mechanizmy
Maszyny wirtualne. System zainstalowany i dzia lajacy w ramach maszyny wirtualnej nazywamy systemem gościa.
Maszyny wirtualne Maszyna wirtualna wprowadza warstwe abstrakcji, która znajduje sie nad poziomem sprzetu, ale poniżej systemu operacyjnego (lub oprogramowania bezpośrednio obs lugujacego sprzet): prezentuje
Fizyka laboratorium 1
Rozdzia l Fizyka laboratorium.. Elementy analizy matematycznej Funkcje Zmienna y nazywa sie zmienna zależna albo funkcja zmiennej x, jeżeli przyjmuje ona określone wartości dla każdej wartości zmiennej
1. Etapy rozwoju systemów komputerowych
1 Sieciowe Systemy Operacyjne Wprowadzenie do wykładu, podstawowe definicje, rola 1 systemu operacyjnego Procesy POSIX, zarządzanie procesami 2 Pliki, komunikacja przez pliki, blokowanie 1 Łącza nazwane
Wykład 3. Procesy i wątki. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB
Wykład 3 Procesy i wątki Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB Pojęcie procesu Program = plik wykonywalny na dysku Proces = uruchomiony i wykonywany program w pamięci
Równoleg le sortowanie przez scalanie
Równoleg le sortowanie przez scalanie Bartosz Zieliński 1 Zadanie Napisanie programu sortuj acego przez scalanie tablicȩ wygenerowanych losowo liczb typu double w którym każda z procedur scalania odbywa
Jesień LinuksowaLinux - Real-Time w systemach wbudowanych
Jesień Linuksowa Linux - Real-Time w systemach wbudowanych marcin@bis-linux.com 13 padziernika 2012 Jesień LinuksowaLinux - Real-Time w systemach wbudowanych O mnie http://bis.org.pl/ GNU/Linux (administracja,
Funkcje. Piotr Zierhoffer. 7 października Institute of Computer Science Poznań University of Technology
Funkcje Piotr Zierhoffer Institute of Computer Science Poznań University of Technology 7 października 2012 Funkcje Funkcja podprogram. Nazwany blok kodu realizujacy jakieś zadanie. sin(x), arccos(x), min(a,
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE WINDOWS 1 SO i SK/WIN 007 Tryb rzeczywisty i chroniony procesora 2 SO i SK/WIN Wszystkie 32-bitowe procesory (386 i nowsze) mogą pracować w kilku trybach. Tryby pracy
Szkolenia specjalistyczne
Szkolenia specjalistyczne AGENDA Programowanie mikrokontrolerów w języku C na przykładzie STM32F103ZE z rdzeniem Cortex-M3 GRYFTEC Embedded Systems ul. Niedziałkowskiego 24 71-410 Szczecin info@gryftec.com
Jądro systemu operacyjnego
Jądro systemu operacyjnego Jądro (ang. kernel) jest to podstawowa część systemu operacyjnego, która jest odpowiedzialna za wszystkie jego zadania. Zapewnia ono usługi systemowe takie jak: komunikacja między
Systemy Operacyjne Ćwiczenia
Systemy Operacyjne Ćwiczenia Wies law P laczek Wydzia l Fizyki, Astronomii i Informatyki Stosowanej, Uniwersytet Jagielloński ul. Reymonta 4, 30-059 Kraków 4 lutego 2009 Streszczenie Praca ta zawiera materia
Systemy wbudowane - wykład 9. Systemy czasu rzeczywistego Notes. Systemy czasu rzeczywistego Notes. Systemy czasu rzeczywistego Notes.
Systemy wbudowane - wykład 9 Przemek Błaśkiewicz 26 maja 2017 1 / 93 Systemy czasu rzeczywistego sterowanie silnikiem rakietowym; 2 / 93 Systemy czasu rzeczywistego sterowanie silnikiem rakietowym; system
Systemy operacyjne Operating Systems
Kierunek: Informatyka Przedmiot: Systemy operacyjne Operating Systems Czas trwania: semestr 4 Przedmiot: kierunkowy Język wykładowy: polski Rodzaj zajęć Prowadzący Liczba godzin Tryb zaliczenia Wykład
Struktury systemów operacyjnych
Struktury systemów operacyjnych Jan Tuziemski Część slajdów to zmodyfiowane slajdy ze strony os-booi.com copyright Silberschatz, Galvin and Gagne, 2013 Cele wykładu 1. Opis usług dostarczanych przez OS
Interfejs GSM/GPRS LB-431
LAB-EL Elektronika Laboratoryjna ul. Herbaciana 9, 05-816 Regu ly Witryna: http://www.label.pl/ Poczta: info@label.pl Tel. (22) 753 61 30, Fax (22) 753 61 35 Interfejs GSM/GPRS LB-431 modem LWA Instrukcja
Wstęp do programowania
Wstęp do programowania Przemysław Gawroński D-10, p. 234 Wykład 1 8 października 2018 (Wykład 1) Wstęp do programowania 8 października 2018 1 / 12 Outline 1 Literatura 2 Programowanie? 3 Hello World (Wykład
Przegląd technik wirtualizacji i separacji w nowoczesnych systemach rodziny UNIX
Przegląd technik wirtualizacji i separacji w nowoczesnych systemach rodziny UNIX CONFidence 2005 IX Liceum Ogólnokształcące im. C.K. Norwida w Częstochowie Krajowy Fundusz na Rzecz Dzieci Wojciech A. Koszek
Podstawowe zagadnienia
SWB - Systemy operacyjne w systemach wbudowanych - wykład 14 asz 1 Podstawowe zagadnienia System operacyjny System czasu rzeczywistego Systemy wbudowane a system operacyjny Przykłady systemów operacyjnych
Szablony funkcji i szablony klas
Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2011 Bogdan Kreczmer Niniejszy dokument
Laboratorium Systemów Operacyjnych. Ćwiczenie 4. Operacje na plikach
Laboratorium Systemów Operacyjnych Ćwiczenie 4. Operacje na plikach Wykonanie operacji wymaga wskazania pliku, na którym operacja ma zostać wykonana. Plik w systemie LINUX identyfikowany jest przez nazwę,
Wielozadaniowość w systemie Microsoft Windows
Wielozadaniowość w systemie Microsoft Windows mgr inż. Tomasz Jaworski tjaworski@kis.p.lodz.pl http://tjaworski.kis.p.lodz.pl/ Idea wielozadaniowości Proces główny Wątki Algorytm szeregowania ustala kolejność
Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2016/2017. Forma studiów: Niestacjonarne Kod kierunku: 11.
Państwowa Wyższa Szko la Zawodowa w Nowym Sa czu Instytut Techniczny Karta przedmiotu obowiązuje studentów rozpoczynających studia w roku akademickim 06/07 Kierunek studiów: Informatyka Profil: Praktyczny
Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2012/2013. Forma studiów: Stacjonarne Kod kierunku: 06.
Państwowa Wyższa Szko la Zawodowa w Nowym Sa czu Karta przedmiotu Instytut Techniczny obowiązuje studentów rozpoczynających studia w roku akademickim 2012/2013 Kierunek studiów: Mechatronika Profil: Ogólnoakademicki
System komputerowy. System komputerowy
System komputerowy System komputerowy System komputerowy układ współdziałających ze sobą (według pewnych zasad) dwóch składowych: sprzętu komputerowego (hardware) oraz oprogramowania (software) po to,
SYLABUS DOTYCZY CYKLU KSZTAŁCENIA realizacja w roku akademickim 2016/2017
Załącznik nr 4 do Uchwały Senatu nr 430/01/2015 SYLABUS DOTYCZY CYKLU KSZTAŁCENIA 2014-2018 realizacja w roku akademickim 2016/2017 1.1. PODSTAWOWE INFORMACJE O PRZEDMIOCIE/MODULE Nazwa przedmiotu/ modułu
2 Przygotował: mgr inż. Maciej Lasota
Laboratorium nr 2 1/7 Język C Instrukcja laboratoryjna Temat: Wprowadzenie do języka C 2 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie do języka C. Język C jest językiem programowania ogólnego zastosowania
sposób wykonywania operacji zapisu i odczytu dane odczytywane z l acza usuwane (nie można ich odczytać ponownie),
27 4 L acza L acza w systemie UNIX sa plikami specjalnymi, s luż acymi do komunikacji pomiedzy procesami. L acza maja kilka cech typowych dla plików zwyk lych, czyli posiadaja swój i-weze l, posiadaja
>>> Techniki rozbudowy systemów wbudowanych >>> Biblioteki wspomagające rozbudowę systemów wbudowanych. Name: Mariusz Naumowicz Date: 29 maja 2019
>>> Techniki rozbudowy systemów wbudowanych >>> Biblioteki wspomagające rozbudowę systemów wbudowanych Name: Mariusz Naumowicz Date: 29 maja 2019 [~]$ _ [1/14] >>> Treści wykładu I 1. HAL 2. libusb 3.
Systemy operacyjne oparte na mikrojądrze na przykładzie Minix3. Maciej Łaszcz, Wojciech Łowiec, Patryk Spanily 2 XII 2008
Systemy operacyjne oparte na mikrojądrze na przykładzie Minix3. Maciej Łaszcz, Wojciech Łowiec, Patryk Spanily 2 XII 2008 Systemy oparte na mikrojądrze Jądro systemu jest bardzo małe Architektura mocno
4. Procesy pojęcia podstawowe
4. Procesy pojęcia podstawowe 4.1 Czym jest proces? Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa
Przegląd technik wirtualizacji i separacji w nowoczesnych systemach rodziny UNIX
Przegląd technik wirtualizacji i separacji w nowoczesnych systemach rodziny UNIX Wojciech A. Koszek dunstan@freebsd.czest.pl IX Liceum Ogólnokształcące im. C.K. Norwida w Częstochowie Krajowy Fundusz na
QEMU działa na procesorach procesorach: emuluje procesory: dostępne dla s.o. hosta:
QEMU Stosunkowo szybki emulator procesora, korzystający z tzw. dynamicznej translacji i kilku innych ciekawych technik programistycznych i optymalizacyjnych. działa na procesorach procesorach: Intel x86,
Wykorzystanie pami eci operacyjnej przez system
Zarzadzanie pamieci a Wykorzystanie pamieci operacyjnej przez system W dawnych systemach operacyjnych, ale także w bardziej prymitywnych systemach wspó lczesnych (np. w ma lych systemach przeznaczonych
Instrukcja do laboratorium Systemów Operacyjnych. (semestr drugi)
Instrukcja do laboratorium Systemów Operacyjnych (semestr drugi) Ćwiczenie drugie (jedne zajęcia) Temat: Procesy i sygnały w Linuksie. Opracowanie: mgr in ż. Arkadiusz Chrobot Wprowadzenie 1. Budowa procesu
Paradygmaty programowania. Paradygmaty programowania
Paradygmaty programowania Paradygmaty programowania Dr inż. Andrzej Grosser Cz estochowa, 2013 2 Spis treści 1. Zadanie 1 5 1.1. Wprowadzenie.................................. 5 1.2. Wskazówki do zadania..............................
Komputery przemysłowe i systemy wbudowane
Komputery przemysłowe i systemy wbudowane Systemy operacyjne w systemach wbudowanych 2 KSEM WETI PG October 7, 2015 System operacyjny System operacyjny (OS) - opcjonalny w systemach wbudowanych. zbiór
Procesy. Systemy Operacyjne 2 laboratorium. Mateusz Hołenko. 9 października 2011
Procesy Systemy Operacyjne 2 laboratorium Mateusz Hołenko 9 października 2011 Plan zajęć 1 Procesy w systemie Linux proces procesy macierzyste i potomne procesy zombie i sieroty 2 Funkcje systemowe pobieranie