Tworzenie aplikacji dla systemu operacyjnego QNX Neutrino
|
|
- Teodor Michałowski
- 9 lat temu
- Przeglądów:
Transkrypt
1 Max Hansen Energy, Oil and Gas Industry Congo, Angola and Singapore Andrzej Rychlik Politechnika Radomska, Instytut Informatyczno-Techniczny Politechnika Łódzka, Instytut Informatyki Tworzenie aplikacji dla systemu operacyjnego QNX Neutrino Zintegrowane środowisko programistyczne (ang. Integrated Development Environment) to oprogramowanie udostępniające zestaw narzędzi i bibliotek służących do tworzenia, modyfikowania, testowania i konserwacji oprogramowania. W systemie QNX najpopularniejszym środowiskiem programistycznym jest Momentics IDE oparte o platformę Eclipse, działające w całości na Javie, a udostępniające programiście, m.in. możliwość kompilacji kodu pod wybrany procesor. Celem rozdziału jest przedstawienie procesu wytwarzania oprogramowania dla systemu QNX Neutrino, poczynając od prezentacji popularnych kompilatorów, a skupiając się głównie na tematyce wytwarzania w środowisku QNX Momentics IDE. Wprowadzenie do programowania dla QNX Neutrino Środowisk programistycznych dla systemu QNX jest wiele, jednak największą popularnością cieszy się zaledwie garstka. Najpopularniejszy multiplatformowy kompilator to CC i GCC wbudowany w system. Bardzo popularnym środowiskiem wykorzystującym GCC jest GNAT. Posiada on rozbudowany system testów ACATS, zaś źródłem dobrych przykładów na wykorzystanie w praktyce tego kompilatora może być strona programy/ gnat-examples.tar.bz2. Generalnie w systemie QNX praktycznie każde środowisko programistyczne oparte jest o kompilator GCC, który w zależności od parametrów potrafi obsługiwać różne języki programowania, poziomy optymalizacji, itp. QNX Neutrino i QNX Momentics IDE QNX to system czasu rzeczywistego, którego priorytetem jest bezpieczeństwo, w tym gwarancja wykonywania operacji w określonych ramach czasowych. W związku z tym istnieją odpowiednie zasady tworzenia oprogramowania dla tego systemu. Elementom tworzonego oprogramowania przypisuje się odpowiednie priorytety wykonywania, wedle których system będzie miał prawo na dopuszczanie opóźnień danego elementu, bądź tego prawa nie otrzyma. Dwa niezbędne składniki QNX Neutrino, traktowane łącznie jako jądro, objęte jedną nazwą pronto, to: mikrojądro systemu, będące modułem programowym dostarczającym elementarnych usług umożliwiających działanie procesów; 1
2 administrator procesów, czyli proces zarządzający pamięcią, przestrzenią nazw plików, czy procesami w systemie. Aby programować pronto niezbędna jest odpowiednia platforma programistyczna. Najlepszym rozwiązaniem na rynku cieszącym się coraz większą popularnością jest QNX Momentics. QNX Momentics zawiera w pakiecie system operacyjny QNX Neutrino, środowisko graficzne Photon, wraz z oprogramowaniem do tworzenia aplikacji okienkowych phab, środowisko programistyczne IDE, narzędzia do pisania sterowników DDK, pakiety BSP, biblioteki i narzędzia GNU, instruktarzowe klipy wideo, obszerną dokumentację oraz szereg kodów. Pakiety BSP (Board Support Package) są zestawem narzędzi do uruchamiania systemu operacyjnego wraz z kompletną obsługą urządzeń docelowej platformy sprzętowej. Liczba zestawów wciąż rośnie, a dostępne są pod adresem: ps_bsps. Przykładowy skrócony harmonogram tworzenia w QNX Momentics IDE oprogramowania dedykowanego: Utworzenie projektu i zaimportowanie do niego pakietów BSP File > Import ; Opisanie kodem i konfiguracja na bazie BSP; Budowanie projektu przez make all zawarty w BSP; W rezultacie mamy bootowalny obraz systemu operacyjnego! Rys. 1. QNX Momentics IDE: Import pakietów źródłowych i BSP, krok 1 2
3 Wybieramy repozytorium źródeł BSP. Rys. 2. QNX Momentics IDE: Import pakietów źródłowych i BSP, krok 2 Zaznaczamy interesującą nas wersję pakietów BPS. Rys. 3. QNX Momentics IDE: Import pakietów źródłowych i BSP, krok 3. Wybieramy architekturę na jaką ma być zaimportowany BSP 3
4 Ustawienia projektu, w tym katalog docelowy, prefix. Rys. 4. QNX Momentics IDE: Import pakietów źródłowych i BSP, krok 4 Instalacja QNX Software Development Platform Do pracy nad projektem dla systemu QNX niezbędne jest odpowiednie środowisko programistyczne, jak QNX Software Development Platform. Ściągamy oprogramowanie ze strony na której także wypełniamy formularz rejestracyjny. Otrzymamy na podany przez nas w formularzu adres , podziękowania za ściągnięcie testowej wersji platformy deweloperskiej QNX oraz w chwilę później klucz licencyjny potrzebny do aktywacji testowej wersji oprogramowania. QNX Software Development Platform oferuje wersje dla różnych systemów operacyjnych jak Windows, Solaris, Linux, czy QNX Neutrino. Na potrzeby prezentacyjne wybieramy wersję oprogramowania pod Windows, zaczynając instalację od zatwierdzenia harmonogramu instalacyjnego QNX SDP. (Możliwość tworzenia oprogramowania w QNX SDP dla jądra QNX Neutrino w systemach Windows, Solaris, czy Linux umożliwia zmniejszenie kosztów wdrożenia narzędzi deweloperskich w firmach pracujących trwale w środowiskach Windows/Linux) 4
5 Rys. 5. Instalacja QNX SDP rozpoczęcie instalacji Kolejnym krokiem jest wprowadzenie klucza produktu, który otrzymaliśmy po rejestracji na podany w formularzu adres . Rys. 6. Instalacja QNX SDP wprowadzanie klucza produktu Aby kontynuować należy także zaakceptować warunki licencji. Rys. 7. Instalacja QNX SDP akceptacja warunków licencji 5
6 Wybieramy ścieżkę, w której ma być zainstalowane oprogramowanie. Rys. 8. Instalacja QNX SDP wybór ścieżki instalacji Zaznaczamy opcjonalne elementy produktu. Rys. 9. Instalacja QNX SDP wybór opcjonalnych elementów Wyświetlone zostaje podsumowanie wybranych opcji do zatwierdzenia. Rys. 10. Instalacja QNX SDP zatwierdzenie podsumowania 6
7 Rozpoczyna się proces instalacji. Rys. 11. Instalacja QNX SDP proces ładowania środowiska Po instalacji otrzymujemy informację o lokalizacji przewodnika licencyjnego, po zatwierdzeniu, którego możemy rozpocząć pracę nad projektem. Rys. 12. Instalacja QNX SDP informacja o pozytywnym ukończeniu instalacji Rys. 13. Instalacja QNX SDP informacja o lokalizacji przewodnika licencyjnego Pierwsze uruchomienie QNX Momentics IDE 4.7 Przy pierwszym uruchomieniu QNX Momentics IDE ukazuje nam się zakładka Welcome dostępna przy późniejszych próbach odsłony pod menu Help > Welcom. 7
8 Rys. 14. Instalacja QNX SDP Powitanie Zakładka oferuje bezpośredni dostęp do dokumentacji środowiska i języków programowania, wprowadzenie do środowiska, kursy, przykładowe małe projekty wdrożeniowe programisty oraz bezpośrednie przekierowanie do właściwej części środowiska, celem rozpoczęcia pracy nad projektem (tzw. Workbench). Rys. 15. Instalacja QNX SDP Workbench starter Po kliknięciu opcji Workbench uruchomiona zostaje część właściwa środowiska. 8
9 Rys. 16. Instalacja QNX SDP Workbench Tworzenie projektu w QNX Momentics IDE 4.7 Aby utworzyć nowy projekt C++, wybieramy File > New > QNX C++ Project z głównego menu. Rys. 17. QNX SDP Tworzenie projektu, krok 1 Nadajemy jakąś nazwę projektowi (np. MyFirstProject ). 9
10 Rys. 18. QNX SDP Tworzenie projektu, krok 2 W następnym kroku wybieramy architekturę procesora (zakładka Build Variants), na którą będziemy tworzyć oprogramowanie (w naszym przypadku x86), klikając przycisk "Finish celem utworzenia szkieletu projektu. Rys. 19. QNX SDP Tworzenie projektu, krok 3 Naszym oczom ukaże się prosty przykładowy kod, realizujący wyświetlenie na ekranie powitania w środowisku QNX Momentics IDE. #include <cstdlib> #include <iostream> int main(int argc, char *argv[ ]) { std::cout << "Welcome to the QNX Momentics IDE" << std::endl; return EXIT_SUCCESS; Kompilacja, konsolidacja, uruchamianie w QNX Momentics IDE 4.7 Celem utworzenia plików wykonywalnych prawym przyciskiem myszy klikamy na nazwie projektu wybierając Build Project. W konsoli wyświetlone zostaną opcje z jakimi program został skompilowany i/lub ewentualne błędy kompilacji. 10
11 Rys. 20. QNX SDP Logi procesów tworzenia Uruchamianie programu konfigurujemy po wyborze opcji Run > Run As > C/C++ QNX application ustanawiając, m.in. argumenty uruchomieniowe, wirtualne środowisko w jakim projekt ma być uruchamiany, priorytet czy sposób kolejkowania. Rys. 21. QNX SDP Konfiguracja uruchomieniowa projektu Po uzupełnieniu pól przede wszystkim w karcie Main, możemy uruchomić aplikację, czego rezultat obejrzymy w podglądzie konsoli. Tworzenie oprogramowania dla urządzeń wbudowanych QNX Momentics wspiera 3 nurty tworzenia oprogramowania: self-hosted development Oprogramowanie tworzy się i uruchamia na tym samym komputerze. cross-development Przygotowuje się oprogramowanie dla maszyny docelowej target innego typu niż maszyna deweloperska host. Główną i chyba najistotniejszą różnicą jest typ procesora w obu komputerach. host-target development Oprogramowanie tworzy się na stacji zwanej hostem, a uruchamia na maszynie docelowej zwanej targetem. Metodą tą tworzy się oprogramowanie dla systemów wbudowanych, by uniknąć problemów związanych z różnicą architektury hosta i targetu. 11
12 Przykładowe problemy związane z różnicami architekturalnymi systemu hosta i systemu docelowego: za małe zasoby pamięciowe, procesorowe; brak, bądź zbyt ubogi interface; niewystarczające zasoby osprzętowe; brak wsparcia dla danych rozdzielczości. Celem uzyskania dostępu do systemu docelowego z IDE, należy utworzyć projekt docelowy ( Target Project ), przez otwarcie perspektywy informacji systemowej: w menu okna Open Perspective > Other > QNX System Information. W pustym oknie Target Navigator klikamy prawym przyciskiem myszy, po czym wybieramy Ad New Target. Wprowadzamy następnie nazwę systemu docelowego oraz jego adres IP. Jeśli docelowym systemem jest QNX Neutrino w konsoli ukaże się lista procesów uruchomionych w tymże systemie. Obsługa wątków W systemie QNX obsługa wątków realizowana jest przez mikrojądro. System zapewnia wszystkie procedury obsługi i synchronizacji wątków, dostarcza standardowego interfejsu wątków POSIX Tworzenie wątków w programach Neutrino jest bardzo proste. Wystarczy dołączyć bibliotekę pthread.h do nagłówka programu C/C++ i wykorzystać funkcje pthread_*(). Dołączanie nagłówka celem korzystania z wątków POSIX: #include <pthread.h>... Przy kompilacji (dokładniej przy konsolidacji) należy dołączyć bibliotekę libc. Przykładowo, żeby skompilować program a.c należy wpisać: $ qcc a.c -l c Wszystkie funkcje oraz typy danych tworzące API wątków POSIX owych mają nazwy rozpoczynające się od przedrostka pthread_. Wątki obiektowo Wątkowość bardzo słabo nadaje się do implementacji obiektowej. Wątki tworzone i wysyłane są w blokach kodowych, po czym dostarczane z wywołań zwrotnych funkcji do wykonywanych zadań. Taka kolej rzeczy wpływa na to, że programista sięga do zmiennych globalnych, powstają segmenty, całkowicie słabego jakościowo kodu. Tradycyjnie tworzenie i wysyłanie wątku wygląda mniej więcej tak: void * callback_function(void *object) { // Wykonywanie jakiegoś kodu int main(int argc, char **argv) {... int threadid; threadid = ThreadCreate(0, &callback_function, NULL, NULL); 12
13 ... ThreadCreate jest funkcją, która tworzy i wysyła wątek. #include <sys/neutrino.h> int ThreadCreate( pid_t pid, void* (func)( void* ), void* arg, const struct _thread_attr* attr ); pid: tu używamy ID procesu, którym chcemy utworzyć wątek lub 0 by utworzyć wątek w aktualnym procesie. Przykład uproszczonego programu opartego o wątki: #include <pthread.h> // void * functhreada( void ) { int a_petla; for ( a_petla = 1; a_petla <= 20; a_petla++ ) { printf( "A\n" ); sleep( 1 ); // opoznienie return; // void * functhreadb( void ) { int b_petla; for ( b_petla = 1; b_petla <= 10; b_petla++ ) { printf( "B\n" ); sleep( 2 ); return; // int main( void ) { pthread_t threada; 13
14 pthread_t threadb; printf( "Startowanie glownego programu\n" ); /* Tworz watek, dodaj do istniejacego, pthread_create( &threada, NULL, &functhreada, NULL ); pthread_create( &threadb, NULL, &functhreadb, NULL ); printf( "Glowny program oczekuje..\n" ); pthread_join( threada, NULL ); pthread_join( threadb, NULL ); printf( "Glowny program konczy\n" ); return 0; Istnieje możliwość na znalezienie prostego rozwiązania obiektowego tworzenia wątku. class SomeClass { public: SomeClass() { ThreadCreate(0, &SomeClass::someMethod, NULL, NULL); private: int somevariable; static void *somemethod(void *object) { SomeClass *classinstance = dynamic_cast<someclass*>(object); if (!classinstance) return NULL; while (!done) { if (somethingchanged) classinstance->somevariable++; ; Administracja procesami Procesy są podstawowymi składnikami budulcowymi każdej aplikacji systemów wielozadaniowych. W systemie QNX istnieje kilka metod tworzenia procesów. Metody tworzące procesy w systemie QNX to: fork() tworzy proces potomny procesu macierzystego w formie kopii; exec*() zastąpienie bieżącego procesu procesem utworzonym z podanego jako parametr funkcji pliku wykonywalnego; spawn*() dają efekt wywołania sekwencji funkcji fork() i exec*(); system() najprostsza metoda utworzenia procesu. Na zakończenie procesu powinny składać się następujące czynności: zakończenie komunikacji z innymi procesami; 14
15 zwolnienie zasobów zajmowanych przez proces; oczekiwanie na zakończenie procesów potomnych. Metody kończące procesy w systemie QNX to: exit() powoduje zakończenie bieżącego procesu; wait(), waitpid() wykorzystywane do synchronizacji zakończenia procesu; spawn*() dają efekt wywołania sekwencji funkcji fork() i exec*(); system() najprostsza metoda utworzenia procesu. Do kontroli procesów w systemie QNX wprowadzono odpowiednie limity, które można określać metodą setrlimit(), zaś testować metodą getrlimit(). Tab. 1. Zasoby systemowe podlegające ograniczeniu Oznaczenie Opis Akcja przy przekroczeniu RLIMIT_CORE Pamięć operacyjna Zakończenie procesu RLIMIT_CPU Czas procesora Wysłanie sygnału SIGCPU do procesu przekraczającego zasób RLIMIT_DATA Wielkość pamięci pobranej ze sterty Funkcja pobierająca pamięć kończy się błędem RLIMIT_FSIZE Max plik tworzony przez proces Wysłanie sygnału SIGXFSZ do procesu przekraczającego zasób Max liczba deskryptorów plików Funkcja tworząca ponad limitowe pliki RLIMIT_NOFILE tworzonych przez proces zakończy się błędem ELIMIT_STACK Maksymalny rozmiar stosu Wysłanie sygnału SIGSEGV do procesu przekraczającego stos RLMIT_NPROC Maksymalna liczba procesów Procesy potomne przekraczające limit potomnych tworzonych przez proces nie będą tworzone Celem kontrolowania danych procesów należy posługiwać się odpowiednimi atrybutami procesów. 15
16 Tab. 2. Atrybuty procesów w systemie QNX Atrybut procesu Testowanie Ustawianie Identyfikator procesu PID getpid() Identyfikator procesu macierzystego PPID getppid() Numer grupy procesów PGID getpgrp() setpgrp(), setpgid() Identyfikator sesji SID getsid() setsid() Rzeczywisty identyfikator użytkownika UID getuid() Rzeczywisty identyfikator grupy GID getgid() Środowisko procesu getenv() putenv() Katalog bieżący getcwd() chdir() Priorytet procesu getprio(), setprio(), sched_getparam() sched_setparam() Strategia szeregowania sched_getparam() sched_setparam() Zarządzanie procesami wiąże się z następującymi czynnościami: testowaniem i ustawianiem atrybutów procesu; tworzeniem i kończeniem procesu; synchronizacją zakończenia procesu potomnego z jego procesem macierzystym; testowaniem statusu zakończonego procesu potomnego. W systemach wielozadaniowych prawie zawsze istnieje pewien podzbiór procesów oddziaływującym na siebie. Źle zorganizowany dostęp do tych samych zasobów prowadzi do wielu problematycznych sytuacji. W systemach opartych o priorytety z możliwością wywłaszczania (w tym QNX), projektanci muszą wykazywać się szczególną ostrożnością. Najczęściej powstającym złym scenariuszem jest tworzenie procesów o wysokich priorytetach, przekazujących między sobą zasoby, a nie dopuszczających pozostałych procesów. Takie sytuacje doprowadzają do niemożliwości zakończenia zadań mniej priorytetowych, aczkolwiek nadal ważnych, nazywa się to głodzeniem, bądź wykluczeniem. Innym jeszcze gorszym problemem są zakleszczenia procesów lub inwersja priorytetów. Zakleszczenie procesów to sytuacja, w której dane procesy nawzajem blokują sobie wzajemnie zasoby systemowe. Przykładowo, istnieją w systemie 3 procesy, nazwijmy je P1, P2, P3 oraz docelowe zasoby zwane Z1, Z2, Z3. Proces P1 posiada Z1, lecz potrzebuje do działania również dostępu do Z2, zaś P2 nie może być wykonane, ponieważ potrzebuje dostępu do Z3, do tego jeśli P3 potrzebuje dostępu do Z1, zarezerwowanego przez P1 system potrzebuje jakichś określonych metod wykrywania sytuacji i limitów czasowych na jej blokowanie (algorytmy wykrywające zakleszczenie procesów opierają się o teorię grafów). Inwersja priorytetów polega na tym, że zadanie o niskim priorytecie zajmując zasób dzielony, zmusza zadanie o wyższym priorytecie do przejścia w stan blokowane i oczekiwania na zwolnienie tego zasobu. Taka sytuacja prowadzi do wielu 16
17 niebezpieczeństw, które w najgorszym wypadku mogą powodować powstanie sporych anomalii czasowych w systemie. System operacyjny QNX posiada sprawne systemy zarządzania procesami współbieżnymi, tj. nadawanie procesom priorytetów, wywłaszczanie procesów mniej priorytetowych, kolejkowanie procesów, zoptymalizowane czasowo przełączanie procesów. W systemie QNX priorytety, to liczby całkowite z zakresu 0-31 dla zadań super użytkownika lub 0-19 dla pozostałych. Wątki dziedziczą priorytet od swoich zadań macierzystych. Najniższy priorytet działa w tak zwanym tle (ang. idle), a jego wątki realizowane są wtedy, gdy w systemie nie ma nic innego do roboty. Zadanie idle jest zawsze gotowe do wykonania (ang. ready to run). Zadania uruchomione przez powłokę standardowo uzyskują priorytet 10. Każde zadanie, w oparciu o swój priorytet, trafia do odpowiedniej kolejki, tzw. FIFO (ang. First In First Out), działając wedle zasady pierwszy przyszedł, pierwszy zostanie obsłużony. System QNX dostarcza trzy algorytmy szeregowania procesów, które są używane, gdy istnieją równoważne priorytetowo zadania ubiegające się o procesor: Kolejka FIFO. Zadanie wybrane do wykonywania, kontynuuje swoje działania, aż samo odda sterowanie, np. procesowi systemowemu, zostanie wywłaszczone przez zadanie o wyższym priorytecie, bądź trwa do zakończenia. Algorytm karuzelowy, oparty o kolejkę FIFO, lecz z limitem czasowym, który wynosi 50 ms. Wówczas zadanie zostaje wywłaszczone, poza warunkami opisanymi we wcześniejszym algorytmie, również wtedy, kiedy wykorzysta przydzielony mu czas. Algorytm adaptacyjny (ang. adaptive scheduling), podobnie jak karuzelowy ograniczony kwantem czasu, lecz jeśli dane zadanie wykorzysta przydzielony czas procesora i nie zostanie zablokowane, to jego priorytet jest dekrementowany o jeden poziom, po czym po przebiegu każdej kolejnej sekundy oczekiwania na wykonanie podnoszony o jeden, lecz nie wyżej niż do stanu początkowego. Algorytm ten znajduje zastosowanie w sytuacjach, kiedy zadania wykonujące ogromne ilości obliczeń dzielą czas procesora z zadaniami interaktywnymi. Jest to domyślny algorytm dla programów uruchamianych przez powłokę. Algorytm szeregowania może być przyporządkowywany do zadania w sposób dynamiczny. Wybór konkretnego algorytmu szeregowania może być dokonywany przy pomocy funkcji POSIX takich jak: sched_getscheduler(), sched_set_scheduler(). Reasumując, podczas projektowania aplikacji działających w oparciu o priorytety należy trzymać się zasad bardzo starannego zarządzania zasobami, bowiem nawet te najlepsze metody zabezpieczeń systemowych niosą za sobą ryzyko krytycznych opóźnień systemu, utraty danych, bądź innych niekorzystnych sytuacji. Zadania powinny działać według określonych zasad: procesy zwalniają zasoby możliwie najszybciej; hierarchiczna organizacja zasobów; implementacja protokołu przydziału. 17
18 Błędy a QNX Neutrino Odnajdywanie błędów Ponieważ każdy program posiada błędy, nigdy nie ma pewności czy i kiedy otrzymamy zapytanie od użytkownika stworzonej przez nas aplikacji dlaczego po kilku dniach użytkowania program przestaje działać. Jeśli tak się stanie może to oznaczać, że nasz program generuje błędy, gdzieś w pamięci. Debugowanie błędów pamięciowych potrafi być irytujące, jednak na nasz ratunek przychodzi perspektywa analizy pamięci QNX. Ułatwieniem dla tejże perspektywy jest modułowa budowa systemu Neutrino, izolująca problematyczne procesy w systemie. Perspektywa analizy pamięci QNX pokazuje jak nasz program wykorzystuje pamięć pomagając upewnić się, że nie wywołuje problemów. Perspektywa ta pomaga szybko wskazać błędy pamięciowe naszego środowiska testowego przed tym jak nasz klient otrzyma produkt. Należy pamiętać jednak, iż perspektywa analizy pamięci potrafi dawać nieoczekiwane rezultaty, kiedy więcej niż jedno IDE komunikuje się z systemem docelowym. Tak więc do używania omawianej perspektywy należy zawsze mieć pewność, iż tylko jedno IDE jest podłączone pod system docelowy. Wycieki pamięciowe Wycieki pamięciowe polegają na nadmiernym zużywaniu pamięci przez aplikację, bądź próbie zapisu danych w niedozwolonym obszarze. Działania takie mogą być spowodowane przez alokację pamięci, która nie jest wolna, referencję na zły obszar pamięci, bądź nie zwalnianie pamięci przez programistę. Typową reakcją zabezpieczeń systemu przy wycieku aplikacji jest błąd krytyczny w momencie, gdy system identyfikuje próbę zapisu w chronionym obszarze. Nie ma jednak zabezpieczeń przed sytuacjami, gdzie programista nie zwalnia zarezerwowanej wcześniej pamięci. W takiej sytuacji, jeśli rezerwacja wywoływana jest na zasadzie aktualnych potrzeb automatycznie może dojść do sytuacji niekontrolowanego rozrastania się aplikacji w przestrzeni pamięciowej. (Sytuacje takie wyklucza Java, która zaopatrzona jest w tzw. garbage collection, działający na zasadzie regularnego sprawdzania i usuwania z pamięci niepotrzebnych elementów. Jednak języki programowania systemów specjalistycznych jak C/C++ wymuszają na programiście konieczność przykładania dodatkowej uwagi, co swoją drogą ma dobre strony pod kątem oszczędności zasobów. QNX Neutrino tropi zachowanie każdego programu oraz zarezerwowaną przez niego pamięć, więc kiedy nastąpi zawieszenie programu system przywróci całą pamięć przez niego zarezerwowaną, włączając tą utraconą przez wycieki. Jeśli nasz program ma poważny wyciek, bądź wyciek powolny, ale niezawieszający programu, może to prowadzić nawet do błędów głównych serwisów systemu. Następujące elementy edytora analizy pamięci mogą pomóc odnaleźć błędy i uporać się z nimi: Allocation tabs: pokazuje wszystkie instancje, w których nasz program alokuje, realokuje czy też zwalnia pamięć, co pozwala określić, które elementy zostały niepotrzebnie zarezerwowane w zły sposób. 18
19 Errors tabs: pokazuje wszystkie błędy pamięciowe, wliczając w to wycieki. Aby uruchomić program z analizą pamięci, należy we właściwościach aplikacji wybrać typ uruchamiania lub debbugowania, po czym odszukać opcje memory analisys. Literatura [dostęp [dostęp ] [dostęp ] [dostęp ] [dostęp ] [dostęp ] [dostęp ] [dostęp ] Hansen M., Rychlik A.: Przeglad systemów operacyjnych w systemach bezpieczenstwa. [W:] Informatyka w dobie XXI wieku. Nauka, technika, edukacja a nowoczesne technologie informatyczne. Pod red. Aleksandra Jastriebowa i Marii Raczynskiej. Radom
Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.
Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych. 1. Przygotowanie środowiska programistycznego. Zajęcia będą
Programowanie Systemów Czasu Rzeczywistego
Programowanie Systemów Czasu Rzeczywistego Laboratorium Wprowadzenie Mariusz RUDNICKI mariusz.rudnicki@eti.pg.gda.pl 2016 Spis treści Przygotowanie platform docelowej.... 3 Przygotowanie środowiska programistycznego
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
Poniższe funkcje opisane są w 2 i 3 części pomocy systemowej.
Procesy Proces (zwany też zadaniem) jest jednostką aktywną, kontrolowaną przez system operacyjny i związaną z wykonywanym programem. Proces ma przydzielone zasoby typu pamięć (segment kodu, segment danych,
Warsztaty AVR. Instalacja i konfiguracja środowiska Eclipse dla mikrokontrolerów AVR. Dariusz Wika
Warsztaty AVR Instalacja i konfiguracja środowiska Eclipse dla mikrokontrolerów AVR Dariusz Wika 1.Krótki wstęp: Eclipse to rozbudowane środowisko programistyczne, które dzięki możliwości instalowania
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
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 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
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).
SYSTEMY OPERACYJNE I laboratorium 3 (Informatyka stacjonarne 2 rok, semestr zimowy)
Procesy i shell. Polecenia ps, sleep, exit, jobs, bg, fg, top, kill, bash, tcsh, which, type, whereis, touch. Metaznak & i >>. Dowiązania miękkie i twarde. Proces jest programem, który jest wykonywany
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
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
Programowanie obiektowe
Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć
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
Załącznik 1 instrukcje instalacji
Załącznik 1 instrukcje instalacji W poniższym załączniku przedstawione zostaną instrukcje instalacji programów wykorzystanych w trakcie tworzenia aplikacji. Poniższa lista przedstawia spis zamieszczonych
Język JAVA podstawy. wykład 1, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna
Język JAVA podstawy wykład 1, część 2 1 Język JAVA podstawy Plan wykładu: 1. Krótka historia Javy 2. Jak przygotować sobie środowisko programistyczne 3. Opis środowiska JDK 4. Tworzenie programu krok po
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
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
CODE::BLOCKS & VALGRIND OPRACOWAŁ MICHAŁ BETHKE
CODE::BLOCKS & VALGRIND OPRACOWAŁ MICHAŁ BETHKE O CZYM PREZENTACJA? Code::Blocks Informacje wstępne Skąd ściągnąć? Jak zainstalować? (wersja linuksowa) Rzut okiem na panel główny Tworzenie naszego pierwszego
Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl
Narzędzia i aplikacje Java EE Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Niniejsze opracowanie wprowadza w technologię usług sieciowych i implementację usługi na platformie Java EE (JAX-WS) z
Programowanie proceduralne w języku C++ Podstawy
Programowanie proceduralne w języku C++ Podstawy Mirosław Głowacki 1 1 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Ktrakowie Wydział Inżynierii Metali i Informatyki Stosowanej Katedra Informatyki
Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.
Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu. Dr inż. Zofia Kruczkiewicz Dwa sposoby tworzenia apletów Dwa sposoby
Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;
14.3. Podstawy obsługi X Window 14.3. Podstawy obsługi X Window W przeciwieństwie do systemów Windows system Linux nie jest systemem graficznym. W systemach Windows z rodziny NT powłokę systemową stanowi
Programowanie w Javie
Programowanie w Javie Andrzej Czajkowski Lista nr 0 Debugger w Javie Celem ćwiczenia jest poznanie podstawowych funkcji narzędzia debugera (odpluskwiacz) w środowisku Eclipse. Po ukończeniu ćwiczenia student
Programowanie Systemów Wbudowanych
Programowanie Systemów Wbudowanych Debugowanie z GDB Iwona Kochańska Gdansk University of Technology GNU debugger Identyfikacja i naprawianie błędów to część procesu wytwarzania oprogramowania Techniki
Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe
Architektury Usług Internetowych Laboratorium 2. Usługi sieciowe Wstęp Celem laboratorium jest zapoznanie się z modelem usług sieciowych na przykładzie prostego serwera Apache Axis2. Apache Axis2 Apache
PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO
PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO LABORATORIUM Temat: THREADS Mariusz Rudnicki 2016 1. Przygotowanie platformy i środowiska IDE. Przed uruchomieniem własnego kodu zwiększ priorytet procesu qconn
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
Zaawansowane programowanie w języku C++ Zarządzanie pamięcią w C++
Zaawansowane programowanie w języku C++ Zarządzanie pamięcią w C++ Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka
Autor: dr inż. Zofia Kruczkiewicz, Programowanie aplikacji internetowych 1
Wątki 1. Wątki - wprowadzenie Wątkiem nazywamy sekwencyjny przepływ sterowania w procesie, który wykonuje dany program np. odczytywanie i zapisywanie plików Program Javy jest wykonywany w obrębie jednego
WPROWADZENIE DO JĘZYKA JAVA
WPROWADZENIE DO JĘZYKA JAVA programowanie obiektowe KRÓTKA HISTORIA JĘZYKA JAVA KRÓTKA HISTORIA JĘZYKA JAVA 1991 - narodziny języka java. Pierwsza nazwa Oak (dąb). KRÓTKA HISTORIA JĘZYKA JAVA 1991 - narodziny
Java jako język programowania
Java jako język programowania Interpretowany programy wykonują się na wirtualnej maszynie (JVM Java Virtual Machine) Składnia oparta o język C++ W pełni zorientowany obiektowo (wszystko jest obiektem)
WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.
WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM NetBeans Wykonał: Jacek Ventzke informatyka sem. VI 1. Uruchamiamy program NetBeans (tu wersja 6.8 ) 2. Tworzymy
Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI
Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI plan Cechy, właściwości procesów Multitasking Scheduling Fork czym jest proces? Działającą instancją programu Program jest kolekcją
Wprowadzenie do biblioteki klas C++
Instrukcja laboratoryjna nr 7 Programowanie w języku C 2 (C++ poziom zaawansowany) Wprowadzenie do biblioteki klas C++ WxWidgets mgr inż. Lasota Maciej dr inż. Kaczmarek Tomasz dr inż. Wilk-Jakubowski
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ę
Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 8
Początki Javy Java została pierwotnie zaprojektowana dla telewizji interaktywnej, ale była to zbyt zaawansowaną technologią dla branży cyfrowej telewizji kablowej. James Gosling, Mike Sheridan i Patrick
2. Zarządzanie procesami
J. Ułasiewicz Komputery i systemy równoległe 1 2. Zarządzanie procesami 2.1 Funkcje zarządzania procesami Administrowanie procesami obejmuje następujące czynności: Tworzenie procesu. Testowanie atrybutów
BACKUP BAZ DANYCH FIREBIRD
BACKUP BAZ DANYCH FIREBIRD SPIS TREŚCI Informacje ogólne... 2 Tworzenie projektu... 2 Krok 1: Informacje podstawowe... 2 Krok 2: Dane... 3 Backup bazy umieszczonej na serwerze... 3 Bezpośredni backup pliku
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
Zaawansowane programowanie w języku C++ Klasy w C++
Zaawansowane programowanie w języku C++ Klasy w C++ Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka bez ograniczeń
Scenariusz lekcji. Scenariusz lekcji 1 TEMAT LEKCJI: 2 CELE LEKCJI: 2.1 Wiadomości: 2.2 Umiejętności: 3 METODY NAUCZANIA: 4 ŚRODKI DYDAKTYCZNE:
Praca z projektemi w MS VB.NET Scenariusz lekcji Scenariusz lekcji 1 TEMAT LEKCJI: Praca z projektami w MS VB.NET. 2 CELE LEKCJI: 2.1 Wiadomości: Uczeń potrafi: podać definicje podstawowych pojęć związanych
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ć
Załącznik 1 instrukcje instalacji
Załącznik 1 instrukcje instalacji W poniższym załączniku przedstawione zostaną instrukcje instalacji programów wykorzystanych w trakcie tworzenia aplikacji. Poniższa lista przedstawia spis zamieszczonych
Wprowadzenie do środowiska Qt Creator
1.Instalacja środowiska Qt Creator Qt Creator jest wygodnym środowiskiem programistycznym przeznaczonym do tworzenia projektów, czyli aplikacji zarówno konsolowych, jak i okienkowych z wykorzystaniem biblioteki
Laboratorium 1. I. Zainstaluj program Eclipse (wersja C/C++ w odpowiednim systemie operacyjnym
Laboratorium 1 I. Zainstaluj program Eclipse (wersja C/C++ http://www.eclipse.org/downloads/) w odpowiednim systemie operacyjnym II. Zainstaluj narzędzia Windows CDT (w Eclipse jako software site dodajemy
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
Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki
Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Język programowania prosty bezpieczny zorientowany obiektowo wielowątkowy rozproszony przenaszalny interpretowany dynamiczny wydajny Platforma
Programowanie równoległe i rozproszone. Monitory i zmienne warunku. Krzysztof Banaś Programowanie równoległe i rozproszone 1
Programowanie równoległe i rozproszone Monitory i zmienne warunku Krzysztof Banaś Programowanie równoległe i rozproszone 1 Problemy współbieżności Problem producentów i konsumentów: jedna grupa procesów
Java pierwszy program w Eclipse «Grzegorz Góralski strona własna
Strona 1 z 9 «Przykładowe zadania do cz. III ćwiczeń z genetyki Java pierwsze kroki w programowaniu (01)» Kategoria: java, Tagi: eclipse - java - programowanie. Autor: Grzegorz, napisał dnia: February
Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz
Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania
Wykład Ćwiczenia Laboratorium Projekt Seminarium
WYDZIAŁ ELEKTRONIKI KARTA PRZEDMIOTU Nazwa w języku polskim Języki programowania Nazwa w języku angielskim Programming languages Kierunek studiów (jeśli dotyczy): Informatyka - INF Specjalność (jeśli dotyczy):
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
Programowanie Urządzeń Mobilnych. Laboratorium nr 7, 8
Programowanie Urządzeń Mobilnych Laboratorium nr 7, 8 Android Temat 1 tworzenie i uruchamianie aplikacji z użyciem Android SDK Krzysztof Bruniecki 1 Wstęp Platforma Android jest opartym na Linuxie systemem
Instalacja aplikacji
1 Instalacja aplikacji SERTUM... 2 1.1 Pobranie programu z Internetu... 2 1.2 Instalacja programu... 2 1.3 Logowanie... 3 2 Instalacja aplikacji RaportNet... 4 2.1 Pobranie programu z Internetu... 4 2.2
Dokumentacja fillup - MS SQL
Dokumentacja fillup - MS SQL e-file.pl 28 lipca 2017 Spis treści Wstęp 2 Wymagania sprzętowe 2 Windows Server 2012.......................... 2 Windows 10............................... 3 MS SQL Server.............................
JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.
JAVA Java jest wszechstronnym językiem programowania, zorientowanym obiektowo, dostarczającym możliwość uruchamiania apletów oraz samodzielnych aplikacji. Java nie jest typowym kompilatorem. Źródłowy kod
Pierwsze kroki. Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura
Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Pierwsze kroki Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura Co znaczy
Instrukcje instalacji pakietu IBM SPSS Data Access Pack dla systemu Windows
Instrukcje instalacji pakietu IBM SPSS Data Access Pack dla systemu Windows Spis treści Rozdział 1. Przegląd......... 1 Wstęp................. 1 Wdrażanie technologii Data Access........ 1 Źródła danych
VinCent Administrator
VinCent Administrator Moduł Zarządzania podatnikami Krótka instrukcja obsługi ver. 1.01 Zielona Góra, grudzień 2005 1. Przeznaczenie programu Program VinCent Administrator przeznaczony jest dla administratorów
Środowisko Keil. Spis treści. Krzysztof Świentek. Systemy wbudowane. 1 Trochę teorii. 2 Keil
Środowisko Krzysztof Świentek Systemy wbudowane Spis treści 1 2 Źródła 1 http://infocenter.arm.com 2 http://www.keil.com/arm/mdk.asp 3 http://pl.wikipedia.org Spis treści 1 2 Co to jest toolchain? Zbiór
Programowanie sterowników przemysłowych / Jerzy Kasprzyk. wyd. 2 1 dodr. (PWN). Warszawa, Spis treści
Programowanie sterowników przemysłowych / Jerzy Kasprzyk. wyd. 2 1 dodr. (PWN). Warszawa, 2017 Spis treści Przedmowa 11 ROZDZIAŁ 1 Wstęp 13 1.1. Rys historyczny 14 1.2. Norma IEC 61131 19 1.2.1. Cele i
Instrukcja do programu Roger Licensing Server v1.0.0 Rev. A
Instrukcja do programu Roger Licensing Server v1.0.0 Rev. A Spis treści Spis treści... 2 Wprowadzenie... 3 Przeznaczenie... 3 Moduły... 3 Koncepcja działania... 3 Wymagania... 4 Instalacja... 5 Używanie
Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1
Współbieżność i równoległość w środowiskach obiektowych Krzysztof Banaś Obliczenia równoległe 1 Java Model współbieżności Javy opiera się na realizacji szeregu omawianych dotychczas elementów: zarządzanie
Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga!
Programowanie I O czym będziemy mówili Podstawy programowania w językach proceduralnym ANSI C obiektowym Java Uwaga! podobieństwa w podstawowej strukturze składniowej (zmienne, operatory, instrukcje sterujące...)
Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak
Java język programowania obiektowego Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 Język Java Język Java powstał w roku 1995 w firmie SUN Microsystems Java jest językiem: wysokiego
ZSBD ćwiczenie 4. Obiektowe systemy zarządzania bazą danych. Przygotowanie środowiska pracy. Wymagania: ZSBD ćwiczenie 4
Zaawansowane Systemy Bazy Danych - ZSBD ZSBD ćwiczenie 4 Obiektowe systemy zarządzania bazą danych. Przygotowanie środowiska pracy. ZSBD ćwiczenie 4 W ramach tych i dwóch kolejnych ćwiczeń zapoznacie się
INSTRUKCJA INSTALACJI SYSTEMU
Zarządzanie Procesami Informatycznymi Sp. z o.o. 54-204 Wrocław, ul. Legnicka 62 Tel. : ( 071 ) 354 88 88 Fax : ( 071 ) 354 88 99 E-mail : biuro@vilico.pl INSTRUKCJA INSTALACJI SYSTEMU Wersja 1.4-1 - Spis
2. Zarządzanie procesami
J. Ułasiewicz Programowanie aplikacji współbieżnych 1 2. Zarządzanie procesami 2.1 Funkcje zarządzania procesami Administrowanie procesami obejmuje następujące czynności: Testowanie atrybutów procesu.
DESlock+ szybki start
DESlock+ szybki start Wersja centralnie zarządzana Wersja bez centralnej administracji standalone WAŻNE! Pamiętaj, że jeśli chcesz korzystać z centralnego zarządzania koniecznie zacznij od instalacji serwera
Memeo Instant Backup Podręcznik Szybkiego Startu
Wprowadzenie Memeo Instant Backup pozwala w łatwy sposób chronić dane przed zagrożeniami cyfrowego świata. Aplikacja regularnie i automatycznie tworzy kopie zapasowe ważnych plików znajdujących się na
Programowanie w języku C++
Programowanie w języku C++ Część siódma Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów nie zastąpi
Galileo v10 pierwszy program
Notatka Aplikacyjna NA 03011PL Galileo v10 Spis treści 1. Wstęp... 2 1.1. Wymagania programowe... 2 2. Podstawy... 3 2.1. Tworzenie nowego projektu... 3 2.2. Dodawanie pola tekstowego... 10 2.3. Przechodzenie
Działanie systemu operacyjnego
Działanie systemu operacyjnego Budowa systemu komputerowego I NIC Jednostka centralna Sterownik dysku Sterownik drukarki Sterownik sieci Szyna systemowa (magistrala danych) Sterownik pamięci operacyjnej
Instrukcja do programu Roger Licensing Server v1.0.0 Rev. A
Instrukcja do programu Roger Licensing Server v1.0.0 Rev. A Spis treści Spis treści... 2 Wprowadzenie... 3 Przeznaczenie... 3 Moduły... 3 Koncepcja działania... 3 Wymagania... 4 Instalacja... 5 Używanie
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/
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
Działanie systemu operacyjnego
Działanie systemu operacyjnego Budowa systemu komputerowego Jednostka centralna Sterownik dysku Sterownik drukarki Sterownik sieci Szyna systemowa (magistrala danych) Sterownik pamięci operacyjnej Pamięć
Testowanie I. Celem zajęć jest zapoznanie studentów z podstawami testowania ze szczególnym uwzględnieniem testowania jednostkowego.
Testowanie I Cel zajęć Celem zajęć jest zapoznanie studentów z podstawami testowania ze szczególnym uwzględnieniem testowania jednostkowego. Testowanie oprogramowania Testowanie to proces słyżący do oceny
oprogramowania F-Secure
1 Procedura wygenerowania paczki instalacyjnej oprogramowania F-Secure Wznowienie oprogramowania F-Secure zaczyna działać automatycznie. Firma F-Secure nie udostępnia paczki instalacyjnej EXE lub MSI do
Ćwiczenie Nr 6 Przegląd pozostałych najważniejszych mechanizmów systemu operacyjnego Windows
Ćwiczenie Nr 6 Przegląd pozostałych najważniejszych mechanizmów systemu operacyjnego Windows Cel ćwiczenia: Zapoznanie się z: zarządzaniem systemami plików, zarządzaniem atrybutami plików, prawami do plików
FAQ: 00000042/PL Data: 3/07/2013 Konfiguracja współpracy programów PC Access i Microsoft Excel ze sterownikiem S7-1200
Spis treści 1 Opis zagadnienia omawianego w dokumencie.. 2 2 Wstęp do nowego projektu..... 3 2.1 Nowy projekt... 3 2.2 Dodanie nowego urządzenia... 4 3 Program w main... 6 4 Program PC Access.... 8 4.1
podstawowa obsługa panelu administracyjnego
podstawowa obsługa panelu administracyjnego Poniższy dokument opisuje podstawowe czynności i operacje jakie należy wykonać, aby poprawnie zalogować się i administrować środowiskiem maszyn wirtualnych usługi
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
Instalacja NOD32 Remote Administrator
Instalacja NOD32 Remote Administrator Program do zdalnego zarządzania stacjami roboczymi, na których zainstalowany jest program NOD32, składa się z dwóch modułów. Pierwszy z nich Remote Administrator Server
Informacje o aktualizacji oprogramowania
Informacje o aktualizacji oprogramowania 1. Najczęstszy problem po aktualizacjach aplikacja nie uruchamia się Jeśli po uruchomieniu aktualizatora (serwisu lub aplikacji) program aktualizujący nie uruchamia
Dokonaj instalacji IIS opublikuj stronę internetową z pierwszych zajęć. Ukaże się kreator konfigurowania serwera i klikamy przycisk Dalej-->.
Dokonaj instalacji IIS opublikuj stronę internetową z pierwszych zajęć Ukaże się kreator konfigurowania serwera i klikamy przycisk Dalej-->. Następnie wybieramy Serwer aplikacji (IIS, ASP.NET) i klikamy
10 KROKÓW DO PAŃSTWA PIERWSZEGO PROGRAMU W QNX
10 KROKÓW DO PAŃSTWA PIERWSZEGO PROGRAMU W QNX 1. Wymagania W celu opracowania programów pracujących pod kontrolą systemu operacyjnego twardego czasu rzeczywistego, będą Państwo potrzebowali przede wszystkim
Instrukcje dotyczące systemu Windows w przypadku drukarki podłączonej lokalnie
Strona 1 z 6 Połączenia Instrukcje dotyczące systemu Windows w przypadku drukarki podłączonej lokalnie Uwaga: Przy instalowaniu drukarki podłączonej lokalnie, jeśli dysk CD-ROM Oprogramowanie i dokumentacja
Podstawy programowania obiektowego
Podstawy programowania obiektowego Technologie internetowe Wykład 5 Program wykładu Podejście obiektowe kontra strukturalne do tworzenie programu Pojęcie klasy i obiektu Składowe klasy: pola i metody Tworzenie
MentorGraphics ModelSim
MentorGraphics ModelSim 1. Konfiguracja programu Wszelkie zmiany parametrów systemu symulacji dokonywane są w menu Tools -> Edit Preferences... Wyniki ustawień należy zapisać w skrypcie startowym systemu
Tworzenie programów równoległych cd. Krzysztof Banaś Obliczenia równoległe 1
Tworzenie programów równoległych cd. Krzysztof Banaś Obliczenia równoległe 1 Metodologia programowania równoległego Przykłady podziałów zadania na podzadania: Podział ze względu na funkcje (functional
Materiały dodatkowe. Raspberry Pi
Katedra Inżynierii Systemów Sterowania Materiały dodatkowe Raspberry Pi Opracowali: mgr inż. Tomasz Karla Data: Listopad, 2016 r. Dodatkowe informacje Materiały dodatkowe mają charakter ogólny i służą
PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),
PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 2. Przygotowanie środowiska pracy
Najczęściej występujące problemy z instalacją i konfiguracją i ich rozwiązania.
Najczęściej występujące problemy z instalacją i konfiguracją i ich rozwiązania. Q. Jak uruchomić instalator? A. Trzeba nadać instalatorowi atrybut 'wykonywalny'. Można to zrobić wydając polecenie `chmod
Konfiguracja pakietu CrossStudio for MSP430 2.0.
Konfiguracja pakietu CrossStudio for MSP430 2.0. 1. Przed rozpoczęciem pracy przeczytaj całego manuala. 2. Gratulujemy wyboru modułu MMmsp430x1xxx. W celu rozpoczęcia pracy należy pobrać 30-dniową wersję
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
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
Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4
Wdrożenie modułu płatności eservice dla systemu Gekosale 1.4 - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie do integracji...