Tworzenie aplikacji dla systemu operacyjnego QNX Neutrino

Wielkość: px
Rozpocząć pokaz od strony:

Download "Tworzenie aplikacji dla systemu operacyjnego QNX Neutrino"

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. Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych. 1. Przygotowanie środowiska programistycznego. Zajęcia będą

Bardziej szczegółowo

Programowanie Systemów Czasu Rzeczywistego

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

Bardziej szczegółowo

1. Tworzenie nowego projektu.

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

Bardziej szczegółowo

Poniższe funkcje opisane są w 2 i 3 części pomocy systemowej.

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,

Bardziej szczegółowo

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

Bardziej szczegółowo

Tworzenie oprogramowania

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

Bardziej szczegółowo

4. Procesy pojęcia podstawowe

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

Bardziej szczegółowo

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

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

Bardziej szczegółowo

1.Wstęp. 2.Generowanie systemu w EDK

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

Bardziej szczegółowo

SYSTEMY OPERACYJNE I laboratorium 3 (Informatyka stacjonarne 2 rok, semestr zimowy)

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

Bardziej szczegółowo

4. Procesy pojęcia podstawowe

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

Bardziej szczegółowo

Komputery przemysłowe i systemy wbudowane

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

Bardziej szczegółowo

Programowanie obiektowe

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ąć

Bardziej szczegółowo

4. Procesy pojęcia podstawowe

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

Bardziej szczegółowo

Załącznik 1 instrukcje instalacji

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

Bardziej szczegółowo

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

Bardziej szczegółowo

Procesy. Systemy Operacyjne 2 laboratorium. Mateusz Hołenko. 9 października 2011

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

Bardziej szczegółowo

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

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

Bardziej szczegółowo

CODE::BLOCKS & VALGRIND OPRACOWAŁ MICHAŁ BETHKE

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

Bardziej szczegółowo

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

Bardziej szczegółowo

Programowanie proceduralne w języku C++ Podstawy

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

Bardziej szczegółowo

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

Bardziej szczegółowo

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

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

Bardziej szczegółowo

Programowanie w Javie

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

Bardziej szczegółowo

Programowanie Systemów Wbudowanych

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

Bardziej szczegółowo

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

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

Bardziej szczegółowo

PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO

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

Bardziej szczegółowo

Programowanie obiektowe zastosowanie języka Java SE

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

Bardziej szczegółowo

Zaawansowane programowanie w języku C++ Zarządzanie pamięcią w C++

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

Bardziej szczegółowo

Autor: dr inż. Zofia Kruczkiewicz, Programowanie aplikacji internetowych 1

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

Bardziej szczegółowo

WPROWADZENIE DO JĘZYKA JAVA

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

Bardziej szczegółowo

Java jako język programowania

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)

Bardziej szczegółowo

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

Bardziej szczegółowo

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI

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ą

Bardziej szczegółowo

Wprowadzenie do biblioteki klas C++

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

Bardziej szczegółowo

PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO

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ę

Bardziej szczegółowo

Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 8

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

Bardziej szczegółowo

2. Zarządzanie procesami

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

Bardziej szczegółowo

BACKUP BAZ DANYCH FIREBIRD

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

Bardziej szczegółowo

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

Bardziej szczegółowo

Zaawansowane programowanie w języku C++ Klasy w C++

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ń

Bardziej szczegółowo

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:

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

Bardziej szczegółowo

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Linux.

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ć

Bardziej szczegółowo

Załącznik 1 instrukcje instalacji

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

Bardziej szczegółowo

Wprowadzenie do środowiska Qt Creator

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

Bardziej szczegółowo

Laboratorium 1. I. Zainstaluj program Eclipse (wersja C/C++ w odpowiednim systemie operacyjnym

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

Bardziej szczegółowo

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

Bardziej szczegółowo

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

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

Bardziej szczegółowo

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

Bardziej szczegółowo

Java pierwszy program w Eclipse «Grzegorz Góralski strona własna

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

Bardziej szczegółowo

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

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

Bardziej szczegółowo

Wykład Ćwiczenia Laboratorium Projekt Seminarium

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

Bardziej szczegółowo

Struktury systemów operacyjnych

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

Bardziej szczegółowo

Programowanie Urządzeń Mobilnych. Laboratorium nr 7, 8

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

Bardziej szczegółowo

Instalacja aplikacji

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

Bardziej szczegółowo

Dokumentacja fillup - MS SQL

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

Bardziej szczegółowo

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

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

Bardziej szczegółowo

Pierwsze kroki. Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura

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

Bardziej szczegółowo

Instrukcje instalacji pakietu IBM SPSS Data Access Pack dla systemu Windows

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

Bardziej szczegółowo

VinCent Administrator

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

Bardziej szczegółowo

Środowisko Keil. Spis treści. Krzysztof Świentek. Systemy wbudowane. 1 Trochę teorii. 2 Keil

Ś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

Bardziej szczegółowo

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

Bardziej szczegółowo

Instrukcja do programu Roger Licensing Server v1.0.0 Rev. A

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

Bardziej szczegółowo

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

Bardziej szczegółowo

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

Bardziej szczegółowo

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

Bardziej szczegółowo

ZSBD ćwiczenie 4. Obiektowe systemy zarządzania bazą danych. Przygotowanie środowiska pracy. Wymagania: ZSBD ćwiczenie 4

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ę

Bardziej szczegółowo

INSTRUKCJA INSTALACJI SYSTEMU

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

Bardziej szczegółowo

2. Zarządzanie procesami

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.

Bardziej szczegółowo

DESlock+ szybki start

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

Bardziej szczegółowo

Memeo Instant Backup Podręcznik Szybkiego Startu

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

Bardziej szczegółowo

Programowanie w języku C++

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

Bardziej szczegółowo

Galileo v10 pierwszy program

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

Bardziej szczegółowo

Działanie systemu operacyjnego

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

Bardziej szczegółowo

Instrukcja do programu Roger Licensing Server v1.0.0 Rev. A

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

Bardziej szczegółowo

1 Zapoznanie się ze środowiskiem Xenomai.

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/

Bardziej szczegółowo

1.1 Definicja procesu

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

Bardziej szczegółowo

Działanie systemu operacyjnego

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ęć

Bardziej szczegółowo

Testowanie I. Celem zajęć jest zapoznanie studentów z podstawami testowania ze szczególnym uwzględnieniem testowania jednostkowego.

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

Bardziej szczegółowo

oprogramowania F-Secure

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

Bardziej szczegółowo

Ć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 Ć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

Bardziej szczegółowo

FAQ: 00000042/PL Data: 3/07/2013 Konfiguracja współpracy programów PC Access i Microsoft Excel ze sterownikiem S7-1200

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

Bardziej szczegółowo

podstawowa obsługa panelu administracyjnego

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

Bardziej szczegółowo

Wykład 3: Implementacja programów wbudowanych

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

Bardziej szczegółowo

Instalacja NOD32 Remote Administrator

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

Bardziej szczegółowo

Informacje o aktualizacji oprogramowania

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

Bardziej szczegółowo

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

Bardziej szczegółowo

10 KROKÓW DO PAŃSTWA PIERWSZEGO PROGRAMU W QNX

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

Bardziej szczegółowo

Instrukcje dotyczące systemu Windows w przypadku drukarki podłączonej lokalnie

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

Bardziej szczegółowo

Podstawy programowania obiektowego

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

Bardziej szczegółowo

MentorGraphics ModelSim

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

Bardziej szczegółowo

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

Bardziej szczegółowo

Materiały dodatkowe. Raspberry Pi

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żą

Bardziej szczegółowo

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

Bardziej szczegółowo

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

Bardziej szczegółowo

Konfiguracja pakietu CrossStudio for MSP430 2.0.

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ę

Bardziej szczegółowo

Prezentacja systemu RTLinux

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

Bardziej szczegółowo

IdyllaOS. Prosty, alternatywny system operacyjny. www.idyllaos.org. Autor: Grzegorz Gliński. Kontakt: milyges@gmail.com

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

Bardziej szczegółowo

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

Bardziej szczegółowo