Projektowanie oprogramowania systemów KONFIGURACJE OPROGRAMOWANIA; DEBUGGING, PROFILOWANIE, NARZĘDZIA ZAPEWNIANIA JAKOŚCI
|
|
- Zbigniew Kurek
- 9 lat temu
- Przeglądów:
Transkrypt
1 Projektowanie oprogramowania systemów KONFIGURACJE OPROGRAMOWANIA; DEBUGGING, PROFILOWANIE, NARZĘDZIA ZAPEWNIANIA JAKOŚCI
2 plan Konfiguracje budowania i uruchamiania oprogramowania Debugowanie Funkcje debuggerów Zdalne debugowanie Analiza post-mortem Narzędzia Narzędzia profilowania i optymalizacji kodu Hotspoty w kodzie Narzędzia Zapewnianie jakości Metryki pokrycia kodu Śledzenie problemów z alokacją pamięci Narzędzia
3 Programmers waste enormous amounts of time thinking about, or worrying about, the speed of noncritical parts of their programs, and these attempts at efficiency actually have a strong negative impact when debugging and maintenance are considered. We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. Yet we should not pass up our opportunities in that critical 3%. DONALD KNUTH w skrócie: przedwczesna optymalizacja jest źródłem wszelkiego zła ;)
4 konfiguracje budowania i uruchamiania oprogramowania Tworząc nowy projekt większość współczesnych środowisk IDE stworzy automatycznie 2 konfiguracje: Debug i Release Zgodnie z nazwą, konfiguracja Debug służy do debugowania (odpluskwiania, uzdatniania) kodu (a w zasadzie większości prac wdrożeniowych), zaś konfiguracja Release jest tym, co dostarczamy klientowi Uwaga więc na subtelne bugi, które pojawiają się tylko w konfiguracji Release! Debugowanie takiego kodu jest boleśnie trudne, ale czasami nieuniknione Z tego względu większość nietrywialnych systemów opiera się nie tylko na debugowaniu ale również implementuje pewnego rodzaju logowanie wykonania
5 konfiguracje Debug Optymalizacje wprowadzane przez kompilator są wyłączone Wyłączone jest rozwijanie funkcji inline Działają makra i funkcje debugowania (np. assert - asercje) Symbole debugowania są obecne w kodzie Kod działa dużo wolniej g++ -g O0 source.cpp Release Optymalizacje są włączone, przez co debugowanie jest nieprzewidywalne: kod ma zmienioną kolejność, zmienne są wyoptymalizowane z pamięci do rejestrów, pomijane są ramki stosu Makra debugowania nie są zdefiniowane lub nie robią nic Symbole debugowania są usunięte (stripped) z kodu lub przeniesione do osobnych plików Kod działa z pełną prędkością g++ -O2 DNDEBUG source.cpp
6 asercje Warunki, które programista zakłada, że zawsze muszą być spełnione Wprowadzane poprzez użycie makra assert (C/C++) lub analogicznych funkcji/słów kluczowych w innych językach W konfiguracji Release asercje są usuwane W konfiguracji Debug asercje spowodują zatrzymanie programu, wyświetlenie komunikatu debugującego, wywołanie funkcji abort(), która spowoduje crash (wywalenie się) programu sygnałem SIGABRT (Unix), a następnie zapisanie zrzutu pamięci (core dump) dla debugera post-mortem Używaj asercji dla weryfikacji warunków wstępnych i końcowych (pre- and post-conditions), nie dla regularnej obsługi błędów!
7 przełączanie konfiguracji
8 debugowanie W dalekiej przeszłości komputerów lampowych częstym źródłem błędów były owady które osiedlał się wewnątrz urządzeń powodując ich przegrzewanie, stąd nazwa odpluskwianie (debugging) Debugger jest narzędziem dynamicznej analizy innych programów, używanym do znajdowania i identyfikowania błędów programistycznych Większość środowisk IDE zawiera zintegrowany debugger, albo swój własny, albo front-end do GDB (GNU Debugger)
9 typowe funkcje debuggera Wykonanie krokowe Program jest wykonywany linia-po-linii albo instrukcja-po-instrukcji, umożliwiając zbadanie efektów każdego wywołania Tryby: step over, step into, step out, continue to line Ustawianie pułapek (breakpoints) Wstrzymuje wykonanie programu na określonej linii kodu albo kiedy określony warunek jest spełniony Call stack (podgląd stosu) Pokazuje stos wywołań funkcji umożliwiając wizualizację Jak się znaleźliśmy w tym miejscu?
10 typowe funkcje debugera Zmienne lokalne/obserwowanie (locals/watches) Badanie wartości lokalnych zmiennych w danej chwili czasu lub śledzenie jak wartość określonej zmiennej zmienia się w czasie Modyfikacja wartości zmiennych w czasie wykonania programu Wątki (threads) Badanie stanu wątków w programie, wymuszanie przełączenia wątków, badanie stosu każdego wątku, diagnozowanie deadlocków Pamięć (memory) Badanie i zmiana zawartości przestrzeni adresowej programu
11 typowe funkcje debugera Deasemblacja (disassembly) Pokazuje kod programu jako mnemoniki asemblera Krokowe wykonanie kodu asemblera Użyteczne do znajdowania bardzo tajemniczych bugów Kod asemblera jest przeplatany z odpowiadającym mu kodem wysokopoziomowym fajny sposób nauki asemblera ;>
12 typowe funkcje debugera Zdalne debugowanie Zainstaluj debugging stub na zdalnej maszynie Podłącz swój lokalny debuger do zdalnego komputera za pomocą sieci lub portu szeregowego Debuguj zdalny program tak jakby działał na maszynie lokalnej Użyteczne dla: Debugowania programów niskopoziomowych, np. jądra systemu operacyjnego, sterowników urządzeń Debugowania programów działających w ograniczonych środowiskach, np. na telefonie komórkowym, systemach osadzonych Debugowania problemów związanych z interfejsem użytkownika, kiedy interakcja z UI debugera sprawia, że nie można powtórzyć błędu
13 typowe funkcje debugera Podłączanie debugera do działającego programu Użyteczne dla debugowania programów działających w specyficznych środowiskach, nad którymi nie mamy pełnej kontroli, np. usług systemu operacyjnego/demonów, obiektów COM, kodu działającego wewnątrz serwerów aplikacji Debugowanie bibliotek współdzielonych ładowanych przez inne programy Modyfikuj ścieżkę wykonania programu grzebiąc w jego wewnętrznym stanie, wykrywaj luki bezpieczeństwa, projektuj i szerz wirusy!
14 typowe funkcje debugera Debugowanie post-mortem (pośmiertne) Badanie stanu padniętej aplikacji w momencie jej wywalenia się Na Uniksie badanie zrzutu pamięci - pliku core Na Windows możliwe za pomocą biblioteki dbghelp.dll, program musi zawierać jawne wywołanie kodu zapisującego pliki minidump Zwykle samo spojrzenie na stos programu w momencie crashu (jaka instrukcja była wywołana i jaki był jej kontekst) wystarcza aby wyśledzić przyczynę wywalenia się Ta informacja jest bezcenna! Po prostu załaduj zrzut do debugera i uruchom go jak normalny kod Wymuś zrzut pamięci poprzez wywołanie funkcji abort() lub niespełnioną asercję
15 tipsy Debuger jest prawdopodobnie pojedynczą najważniejszą przyczyną dla używania środowiska IDE zamiast ręcznego systemu budowania i ogólnych edytorów tekstu Naucz się i używaj skrótów klawiszowych debugera w Twoim środowisku IDE; niesamowicie podniesie to Twoją produktywność Jedynym powodem olbrzymiego sukcesu pierwszych wersji MS Visual Studio było to, że jego wizualny debuger był rewelacyjny, jako że kompilator zawsze był przestarzały i niezgodny ze standardami Większość (prawie wszystkie?) środowiska IDE nie pochodzące z Microsoftu używają GDB dla debugowania kodu C/C++; ma on mnóstwo potężnych funkcji ale jest generalnie trudny w obsłudze (interfejs z linii poleceń)
16 narzędzia Microsoft Visual Studio zintegrowany debuger, prawdopodobnie najlepszy jaki istnieje ;> GDB standardowy debuger na Linuksie/Uniksach, używalny także na Windows interfejs wiersza poleceń (używaj front-end!) Eclipse przyjemny GUI do GDB, zbliża się użytecznością do MSVC; zawiera własny, bardzo dobry debuger do Javy; również użyteczny do zdalnego debugowania aplikacji Androida Xcode IDE firmy Apple wraz z debuggerem; działa na Makach i pozwala również na zdalne debugowanie aplikacji ios WinDbg Microsoftowy debuger dla zdalnego debugowania systemu operacyjnego (jądro, sterowniki) DDD (Data Display Debugger) front-end do GDB i kilku innych debugerów uniksowych, lepszy niż nic Kdbg, xxdbg - patrz wyżej^
17 profilowanie i optymalizacja kodu programu Profilowanie dynamiczna analiza programu w celu zmierzenia czasu wykonania, użycia pamięci, wydajności Najprostsze/ad hoc podejście użyj wprost wywołań funkcji pomiaru czasu do mierzenia czasu wykonania fragmentu kodu Podejście systematyczne użyj profilera aby wykonać różne pomiary, m.in..: Instrumentacja wprowadza niewidoczny dla programisty kod mierzący czas wywołań do kodu binarnego dla każdej lub wybranych instrukcji Próbkowanie użycie specyficznych funkcji sprzętu (procesora) w celu próbkowania stosu wywołań programu z określoną częstotliwością
18 hot spoty Właściwe użycie profilera pozwala zidentyfikować hot spoty w kodzie programu Hot spot jest to fragment kodu, który jest wywoływany często lub program spędza wykonując go większość czasu wykonania Wpływ kodu znajdującego się poza hot-spotami na czas wykonania programu jest marginalny; nie ma sensu tracić czasu na ręczne optymalizacje takiego kodu Optymalizacja kodu hot spotów może w sposób znaczący wpłynąć na wydajność programu Decyzja o przeprowadzaniu optymalizacji bez znajomości hot spotów jest bez sensu
19 profilowanie innych wielkości Profilera można również użyć do mierzenia: Zajętości pamięci poprzez użycie specjalnych funkcji zastępujących standardowe narzędzia alokacji lub instrumentację kodu Wydajność I/O poprzez użycie odpowiednich usług systemu operacyjnego (counters) lub instrumentację funkcji I/O Niektóre języki zawierają wbudowane wsparcie dla takich pomiarów np. C#, Java (pamięć)
20 wady profilerów Instrumentacja i/lub proces przeprowadzania pomiarów przeprowadzany przez profiler może zafałszowywać gromadzone dane pomiarowe Zbyt drobnoziarnista instumentacja spowoduje, że kod mierzący stanie się właściwym hot spotem Profilowanie w rzeczywistym świecie podlega zasadzie nieoznaczoności (w mniejszym stopniu dotyczy to próbkowania, w większym instrumentacji)!
21 narzędzia profilowania Microsoft Visual Studio wbudowany profiler używający próbkowania CPU lub intrumentacji, również profiler pamięci w środowisku.net Intel VTune rozbudowany profiler Intela z funkcjami optymalizacji kodu wielowątkowego (thread contention, deadlock detection) AMD CodeAnalyst podobny do VTune (free!) gprof GNU Profiler, opiera się na instrumentacji wspomaganej przez kompilator (gcc), używaj z gcov dla śledzenia pogrycia kodu Valgrid profiler wykrywający również wycieki pamięci i mierzący użycie pamięci (Unix)
22 narzędzia zapewnienia jakości Statyczna lub dynamiczna analiza kodu w celu wykrycia problemów poza tymi standardowo wykrywanymi przez kompilator Przykłady Wykrywanie wycieków pamięci w czasie wykonania Sprawdzanie pokrycia kodu, wykrywanie martwego kodu
23 wykrywanie wycieków pamięci Wycieki pamięci to powszechny problem w językach nie posiadających odśmiecacza (Garbage Collector) np. C/C++ każdy zaalokowany fragment pamięci musi być ręcznie zwolniony, inaczej jest bezpowrotnie tracony Długo działający program z wyciekami ostatecznie pożre całą pamięć wirtualną powodując spadek wydajności a potem wywalenie się Narzędzia wykrywania wycieków przeprowadzają instrumentację funkcji alokacji pamięci w celu śledzenia każdego fragmentu pamięci i określenia, które fragmenty wyciekły Wycieki są też możliwe w językach z odśmiecaczem, ale są trudniejsze do wywołania (i wykrycia) ;> Wycieki mogą dotyczyć nie tylko pamięci, ale również innych zasobów (uchwyty plików, gniazda sieciowe, )
24 narzędzia wykrywania i zapobiegania wyciekom Visual Leak Detector biblioteka dla Visual C++ zastępująca standardowe mechanizmy alokacji pamięci Valgrind narzędzie wykrywania wycieków i profiler dla Uniksa ale również używaj smart-pointerów dla zarządzania czasem życia obiektów alokowanych na stercie!
25 narzędzia analizy i śledzenia pokrycia kodu Wykrywaj niedostępny (unreachable) kod martwy kod jest symptomem pomyłek programisty Pokrycie kodu jest miarą określającą jak duży procent kodu jest objęty procedurami testowymi Kod, który nigdy nie został uruchomiony dla przetestowania, nigdy nie może być nazwany działającym Narzędzia: profilery (MSVC, VTune, CodeAnalyst) gcov wykrywają również mnóstwo innych problemów
26 wymagania względem Waszych projektów Zademonstruj biegłość w używaniu funkcji wybranego debugera Zidentyfikuj hotspoty w swoim kodzie Używaj technik zapobiegania wyciekom pamięci i innych zasobów systemowych
NETBEANS PROFILER TOMASZ ŁUKASZUK
NETBEANS PROFILER TOMASZ ŁUKASZUK STRESZCZENIE: Dokument zawiera podstawowe informacje dotyczące programu NetBeans Profiler. Stanowi uproszczoną instrukcję jego używania. Dotyczy NetBeans Profiler w wersji
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
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
Visual VM, Java Management extension i inne ciekawostki
Visual VM, Java Management extension i inne ciekawostki Adam Dudczak adudczak (at) gmail.com Poznań Java User Group 6 października 2008 Plan prezentacji 1 Wprowadzenie do VisualVM 2 VisualVm jako klient
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
Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Windows.
Kod szkolenia: Tytuł szkolenia: PS/WIN Programowanie systemowe w Windows Dni: 5 Opis: Adresaci szkolenia Szkolenie adresowane jest do programistów tworzących aplikacje w systemach z rodziny Microsoft Windows,
C++ - [1-3] Debugowanie w Qt Creator
Slajd 1 z 10 C++ - [1-3] Debugowanie w Qt Creator Nysa 2004-2013. Autor: Wojciech Galiński. wersja dnia 15 maja 2013 r. Slajd 2 z 10 Pojęcia związane z debugowaniem DEBUGOWANIE (z ang. debugging odrobaczanie)
Zadania: 1. Funkcja przeliczająca F na C: float FtoC(float f){ return (f 32.0) * 5.0 / 9.0; }
Zadania: 1. Funkcja przeliczająca F na C: float FtoC(float f){ return (f 32.0) * 5.0 / 9.0; 2. Utworzyć dodatkową funkcję, która przelicza F na K, na bazie poprzedniej F to C (z poprzednich zajęć), wg
Techniki optymalizacyjne w kompilatorach. Piotr Błaszyński
Techniki optymalizacyjne w kompilatorach Piotr Błaszyński Generowanie kodu, wstęp: - Kod generowany jest dla różnych maszyn, trzeba pamiętać, że ten sam program źródłowy może się tłumaczyć na różne kody
Analizator wydajności AMD CodeAnalyst
Analizator wydajności AMD CodeAnalyst Dostępny bezpłatnie dla Windows i Linux (różne funkcjonalności w obu systemach) Pozwala na 4 tryby pracy - profilowania: Bazujące na upływie czasu próbkowanie aplikacji
Podstawy programowania
Podstawy programowania Część pierwsza Od języka symbolicznego do języka wysokiego poziomu Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót
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
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 w C. dr inż. Stanisław Wszelak
Programowanie w C dr inż. Stanisław Wszelak Przeszłość i przyszłość składni programowania w C Ken Thompson Denis Ritchie Bjarne Stoustrup Zespoły programistów B C C++ C# 1969 rok Do SO UNIX 1972 rok C++
Programowanie proceduralne INP001210WL rok akademicki 2017/18 semestr letni. Wykład 7. Karol Tarnowski A-1 p.
Programowanie proceduralne INP001210WL rok akademicki 2017/18 semestr letni Wykład 7 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Konfiguracja debuggera Wstrzymywanie działania
Zaawansowane programowanie w języku C++
Kod szkolenia: Tytuł szkolenia: C/ADV Zaawansowane programowanie w języku C++ Dni: 3 Opis: Uczestnicy szkolenia zapoznają się z metodami wytwarzania oprogramowania z użyciem zaawansowanych mechanizmów
U M L. System operacyjny Linux zagnieżdżony w zewnętrznym systemie operacyjnym (Linux)
http://user-mode-linux.sourceforge.net/ System operacyjny Linux zagnieżdżony w zewnętrznym systemie operacyjnym (Linux) Autor: Jeff Dike Koncepcja powstała w 1999 r. Początkowo jako patch do jądra 2.0
1) Czym jest architektura systemu Windows 7 i jak się ją tworzy? 2) Jakie są poszczególne etapy uruchomienia systemu Windows 7?
Temat. Architektura systemu Windows 7. 1) Czym jest architektura systemu Windows 7 i jak się ją tworzy? 2) Jakie są poszczególne etapy uruchomienia systemu Windows 7? 3) Do czego służy narzędzie BCD. Edit?
Laboratorium Informatyka (I) AiR Ćwiczenia z debugowania
Laboratorium Informatyka (I) AiR Ćwiczenia z debugowania Krzysztof Kluza, Janusz Miller 1 Debugowanie Debugowanie, czy też po polsku odpluskiwanie, to proces polegający na kontrolowanym wykonaniu programu
Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 8. Karol Tarnowski A-1 p.
Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni Wykład 8 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Biblioteka GSL Na podstawie: https://www.gnu.org/software/gsl/doc/html/index.html
Optymalizacja programów Open Source. Profilery wysokiego poziomu część 2. Krzysztof Lichota
Optymalizacja programów Open Source Profilery wysokiego poziomu część 2 Krzysztof Lichota lichota@mimuw.edu.pl gprof gprof Pomiar działa na zasadzie instrumentacji kompilowanego kodu (wejścia i wyjścia
Optymalizacja programów Open Source. Profilery wysokiego poziomu część 1. Krzysztof Lichota
Optymalizacja programów Open Source Profilery wysokiego poziomu część 1 Krzysztof Lichota lichota@mimuw.edu.pl strace strace Wypisuje wywołania funkcji systemowych wraz z najważniejszymi parametrami Zasada
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
Zarządzanie partycjami i dyskami w środowisku Windows.
15.03.2015 Temat. Zarządzanie partycjami i dyskami w środowisku Windows. Zarządzanie partycjami i dyskami w środowisku Windows. Partycja obszar, który jest przydzielony na dysku twardym by przeznaczyć
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
Instrukcja użytkownika ARSoft-WZ1
05-090 Raszyn, ul Gałczyńskiego 6 tel (+48) 22 101-27-31, 22 853-48-56 automatyka@apar.pl www.apar.pl Instrukcja użytkownika ARSoft-WZ1 wersja 3.x 1. Opis Aplikacja ARSOFT-WZ1 umożliwia konfigurację i
Q E M U. http://www.qemu.com/
http://www.qemu.com/ Emulator procesora Autor: Fabrice Bellard Obsługiwane platformy: Windows, Solaris, Linux, FreeBSD, Mac OS X Aktualna wersja: 0.9.0 Większość programu oparta na licencji LGPL, a sama
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE WINDOWS 1 SO i SK/WIN 007 Tryb rzeczywisty i chroniony procesora 2 SO i SK/WIN Wszystkie 32-bitowe procesory (386 i nowsze) mogą pracować w kilku trybach. Tryby pracy
CUDA Median Filter filtr medianowy wykorzystujący bibliotekę CUDA sprawozdanie z projektu
CUDA Median Filter filtr medianowy wykorzystujący bibliotekę CUDA sprawozdanie z projektu inż. Daniel Solarz Wydział Fizyki i Informatyki Stosowanej AGH 1. Cel projektu. Celem projektu było napisanie wtyczki
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
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ć
Sposoby wykrywania i usuwania błędów. Tomasz Borzyszkowski
Sposoby wykrywania i usuwania błędów Tomasz Borzyszkowski Mylić się jest rzeczą ludzką Typy błędów: błędy specyfikacji: źle określone wymagania błędy projektowe: nieodpowiednie struktury danych i algorytmy
Procesy i wątki. Krzysztof Banaś Obliczenia równoległe 1
Procesy i wątki Krzysztof Banaś Obliczenia równoległe 1 Procesy i wątki Proces: ciąg rozkazów (wątek główny) i ewentualnie inne wątki stos (wątku głównego) przestrzeń adresowa dodatkowe elementy tworzące
Działanie systemu operacyjnego
Budowa systemu komputerowego Działanie systemu operacyjnego Jednostka centralna dysku Szyna systemowa (magistrala danych) drukarki pamięci operacyjnej I NIC sieci Pamięć operacyjna Przerwania Przerwania
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
Niech wynik od 0 do 200F wyświetla w trzech kolumnach: F = (wartość) C = (wyliczona wartość) K = (wyliczona wartość)
Lab 3 - Podstawy Programowania (Kaja.Gutowska@cs.put.poznan.pl) Zadanie 1 - Wykorzystaj program z poprzednich zajęć (program z funkcją przeliczającą Fahrenheity na Celsjusze). Niech program operuje na
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ą
IBM SPSS Statistics dla systemu Linux Instrukcje instalacji (licencja sieciowa)
IBM SPSS Statistics dla systemu Linux Instrukcje instalacji (licencja sieciowa) Przedstawione poniżej instrukcje dotyczą instalowania IBM SPSS Statistics wersji 20 przy użyciu licencja sieciowa. Ten dokument
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ęć
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ą
Adam Kotynia, Łukasz Kowalczyk
Adam Kotynia, Łukasz Kowalczyk Dynamiczna alokacja pamięci Alokacja pamięci oraz dezalokacja pamięci jest to odpowiednio przydział i zwolnienie ciągłego obszaru pamięci. Po uruchomieniu, proces (program)
Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016
Wstęp - wykład 0 22 lutego 2016 Historia Simula 67 język zaprojektowany do zastosowan symulacyjnych; Smalltalk 80 pierwszy język w pełni obiektowy; Dodawanie obiektowości do języków imperatywnych: Pascal
Spis treści JĘZYK C - ŚLEDZENIE WYKONANIA PROGRAMU, DEBUGGER. Informatyka 1. Instrukcja do pracowni specjalistycznej z przedmiotu
Politechnika Białostocka Wydział Elektryczny Katedra Elektrotechniki Teoretycznej i Metrologii Instrukcja do pracowni specjalistycznej z przedmiotu Informatyka 1 Kod przedmiotu: ES1D200 009 (studia stacjonarne)
Sposoby zwiększania efektywności systemu Windows
Grzegorz Trześniewski kl 1Tia 26.05.08r. Sposoby zwiększania efektywności systemu Windows Prof. Artur Rudnicki Uruchamiianiie ii zamykaniie Należy monitorować oprogramowanie ładowane podczas uruchamiania
Wstęp do Informatyki. Klasyfikacja oprogramowania
Wstęp do Informatyki Klasyfikacja oprogramowania Oprogramowanie komputerowe Funkcjonalność komputera jest wynikiem zarówno jego budowy, jak i zainstalowanego oprogramowania Komputer danej klasy znajduje
PROGRAM TESTOWY LCWIN.EXE OPIS DZIAŁANIA I INSTRUKCJA UŻYTKOWNIKA
EGMONT INSTRUMENTS PROGRAM TESTOWY LCWIN.EXE OPIS DZIAŁANIA I INSTRUKCJA UŻYTKOWNIKA EGMONT INSTRUMENTS tel. (0-22) 823-30-17, 668-69-75 02-304 Warszawa, Aleje Jerozolimskie 141/90 fax (0-22) 659-26-11
Ćwiczenie Nr 4 Administracja systemem operacyjnym z rodziny Microsoft Windows
Ćwiczenie Nr 4 Administracja systemem operacyjnym z rodziny Microsoft Windows Cel ćwiczenia: Zapoznanie się z: zarządzaniem zasobami systemu operacyjnego, konfiguracją sieci w systemie operacyjnym z rodziny
Programowanie niskopoziomowe. dr inż. Paweł Pełczyński ppelczynski@swspiz.pl
Programowanie niskopoziomowe dr inż. Paweł Pełczyński ppelczynski@swspiz.pl 1 Literatura Randall Hyde: Asembler. Sztuka programowania, Helion, 2004. Eugeniusz Wróbel: Praktyczny kurs asemblera, Helion,
Przegląd technik wirtualizacji i separacji w nowoczesnych systemach rodziny UNIX
Przegląd technik wirtualizacji i separacji w nowoczesnych systemach rodziny UNIX Wojciech A. Koszek dunstan@freebsd.czest.pl IX Liceum Ogólnokształcące im. C.K. Norwida w Częstochowie Krajowy Fundusz na
Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.
GRZEGORZ FURDYNA Krótka Historia Co to jest NetBeans? Historia Wersje NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły NetBeans Profiler Narzędzie do projektowania GUI Edytor NetBeans
Visual Basic Debugging and Error Handling
Visual Basic Debugging and Error Handling Typy błędów 1. Compile-Time, (wykrywane w czasie kompilacji np. błąd w składni) 2. Run-Time, (pojawiające się podczas wykonywania programu, np. zły typ danych
dokument DOK 02-05-12 wersja 1.0 www.arskam.com
ARS3-RA v.1.0 mikro kod sterownika 8 Linii I/O ze zdalną transmisją kanałem radiowym lub poprzez port UART. Kod przeznaczony dla sprzętu opartego o projekt referencyjny DOK 01-05-12. Opis programowania
Przegląd technik wirtualizacji i separacji w nowoczesnych systemach rodziny UNIX
Przegląd technik wirtualizacji i separacji w nowoczesnych systemach rodziny UNIX CONFidence 2005 IX Liceum Ogólnokształcące im. C.K. Norwida w Częstochowie Krajowy Fundusz na Rzecz Dzieci Wojciech A. Koszek
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
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).
Podstawy informatyki. System operacyjny. dr inż. Adam Klimowicz
Podstawy informatyki System operacyjny dr inż. Adam Klimowicz System operacyjny OS (ang. Operating System) Program komputerowy bądź zbiór programów, który zarządza udostępnianiem zasobów komputera aplikacjom.
1. Od czego zacząć? - Instalacja środowiska pracy
1. Od czego zacząć? - Instalacja środowiska pracy 1.1 Jeśli mamy komputer z Windows 8.1 Prof. lub nowszy W takim przypadku potrzebne nam będą tylko aktualne aktualizacje no i oczywiście środowisko pracy.
PlantVisor_1.90PL Instrukcja instalacji, konfiguracji oraz obsługi
PlantVisor_1.90PL Instrukcja instalacji, konfiguracji oraz obsługi 1/27 Wymagania sprzętowe dla komputera PC Processor: Pentium 4 2.0 GHz Ram: 512MB Twardy dysk: 20GB (200MB dla instalacji oprogramowania
SYSTEMY OPERACYJNE WYKLAD 6 - wątki
Wrocław 2007 SYSTEMY OPERACYJNE WYKLAD 6 - wątki Paweł Skrobanek C-3, pok. 323 e-mail: pawel.skrobanek@pwr.wroc.pl www.equus.wroc.pl/studia.html 1 PLAN: 1. Wątki 2. Planowanie przydziału procesora (szeregowanie
Przedmiot : Programowanie w języku wewnętrznym. Ćwiczenie nr 4
Przedmiot : Programowanie w języku wewnętrznym Ćwiczenie nr 4 str. 1. 1. Użycie Asemblera. Polecenie JMP. Polecenie nakazuje procesorowi wykonywanie kodu programu od nowego innego miejsca. Miejsce to jest
1. Opis. 2. Wymagania sprzętowe:
1. Opis Aplikacja ARSOFT-WZ2 umożliwia konfigurację, wizualizację i rejestrację danych pomiarowych urządzeń produkcji APAR wyposażonych w interfejs komunikacyjny RS232/485 oraz protokół MODBUS-RTU. Aktualny
Działanie systemu operacyjnego
Budowa systemu komputerowego Działanie systemu operacyjnego Jednostka centralna dysku Szyna systemowa (magistrala danych) drukarki pamięci operacyjnej sieci Pamięć operacyjna Przerwania Przerwania Przerwanie
Programowanie mikrokontrolerów AVR
Programowanie mikrokontrolerów AVR Czym jest mikrokontroler? Mikrokontroler jest małym komputerem podłączanym do układów elektronicznych. Pamięć RAM/ROM CPU wykonuje program Układy I/O Komunikacje ze światem
Systemy operacyjne i sieci komputerowe. 1 SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE. Etapy uruchamiania systemu
Systemy operacyjne i sieci komputerowe. 1 SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE Etapy uruchamiania systemu 010 2 Systemy operacyjne i sieci komputerowe. Część 010. I. Etapy uruchamiania systemu Windows
EGZAMIN POTWIERDZAJĄCY KWALIFIKACJE W ZAWODZIE Rok 2017 CZĘŚĆ PRAKTYCZNA
Arkusz zawiera informacje prawnie chronione do momentu rozpoczęcia egzaminu Układ graficzny CKE 2016 Nazwa kwalifikacji: Montaż i eksploatacja komputerów osobistych oraz urządzeń peryferyjnych Oznaczenie
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
ABC systemu Windows 2016 PL / Danuta Mendrala, Marcin Szeliga. Gliwice, cop Spis treści
ABC systemu Windows 2016 PL / Danuta Mendrala, Marcin Szeliga. Gliwice, cop. 2016 Spis treści Wstęp 9 1 Instalacja i aktualizacja systemu 13 Przygotowanie do instalacji 14 Wymagania sprzętowe 14 Wybór
Programowanie na poziomie sprzętu. Programowanie w Windows API
Programowanie w Windows API Windows API Windows Application Programming Interface (API) to zestaw funkcji systemu operacyjnego Windows, które umożliwiają aplikacjom korzystanie z wszystkich usług systemu.
Pomoc do programu ISO Manager
Pomoc do programu ISO Manager Wersja 1.1 1 1. Nawiązanie połączenia detektora ISO-1 z aplikacją ISO Manager Należy pobrać program ISO Manager ze strony producenta www.ratmon.com/pobierz, zainstalować na
Podstawy programowania. Wprowadzenie
Podstawy programowania Wprowadzenie Proces tworzenia programu Sformułowanie problemu funkcje programu zakres i postać danych postać i dokładność wyników Wybór / opracowanie metody rozwiązania znaleźć matematyczne
Spis treści. Wstęp... 10
Spis treści Wstęp... 10 1. Yocto... 25 1.1. Podstawowe komponenty... 26 1.2. Metadane... 26 1.3. Przygotowanie systemu... 28 1.4. Rozpoczęcie pracy z Yocto... 29 1.4.1. Konfiguracja GIT... 29 1.4.2. fsl-community-bsp-platform...
OS 4.0. Revolution goes-on. Nowy system dla instrumentów: VIVO S7, S3, S1, SX7, VIVO P7, P3, VIVO H7, H3, H1, COMBO J7
Revolution goes-on Nowy system dla instrumentów: VIVO S7, S3, S1, SX7, VIVO P7, P3, VIVO H7, H3, H1, COMBO J7 Sercem każdego z instrumentów Dexibell jest jego system operacyjny, pozwalający na wirtualne
Hoare Advanced Homework Assistant
Aleksy Schubert 1 Tadeusz Sznuk 2 1 alx@mimuw.edu.pl 2 tsznuk@mimuw.edu.pl 3 października 2013 Cele projektu Cel Przeniesienie nauczania semantyki na wydziale w XXI wiek. Na początek chcemy się skupić
Ćwiczenie 10.1. Zmiana sposobu uruchamiania usług
Rozdział 10. Zarządzanie komputerem Ćwiczenia zawarte w tym rozdziale prezentują najważniejsze narzędzia służące do konfigurowania i monitorowania pracy komputera. Ponieważ system Windows XP został opracowany
Ć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
Program APEK Użytkownik Instrukcja użytkownika
Program APEK Użytkownik Instrukcja użytkownika http://www.apek.pl e-mail. Biuro@apek.pl tel. 022 6447970 Systemy monitorowania programem APEK Użytkownik. 1.1 Wiadomości wstępne: Podgląd danych i ustawianie.
Laboratorium - Monitorowanie i zarządzanie zasobami systemu Windows 7
5.0 5.3.3.5 Laboratorium - Monitorowanie i zarządzanie zasobami systemu Windows 7 Wprowadzenie Wydrukuj i uzupełnij to laboratorium. W tym laboratorium, będziesz korzystać z narzędzi administracyjnych
PRACA W ZINTEGROWANYM ŚRODOWISKU URUCHOMIENIOWYM - IDE Keil μvision 2
PRACA W ZINTEGROWANYM ŚRODOWISKU URUCHOMIENIOWYM - IDE Keil μvision 2 1. Środowisko IDE - KEIL µvision firmy KEIL jest popularnym zintegrowanym środowiskiem programistycznym IDE. Składa się na nie: menadżer
2. Code Composer Studio v4 zintegrowane środowisko projektowe... 41
3 Wstęp...11 1. Procesory serii TMS320F2802x/3x/6x Piccolo... 15 1.1. Organizacja układów procesorowych serii F2802x Piccolo...23 1.2. Organizacja układów procesorowych serii F2803x Piccolo...29 1.3. Organizacja
Jadro monolityczne vs. mikrojadro. Mikrojadro. Olga Kowalczuk. 9 grudnia 2008
Jadro monolityczne vs. mikrojadro 9 grudnia 2008 Jadro monolityczne vs. mikrojadro Jadro monolityczne vs. mikrojadro Jadro monolityczne vs. mikrojadro Jadro monolityczne Aplikacje użytownika wywołania
Programowanie aplikacji na iphone. Wstęp do platformy ios. Łukasz Zieliński
Programowanie aplikacji na iphone. Wstęp do platformy ios. Łukasz Zieliński Plan Prezentacji. Programowanie ios. Jak zacząć? Co warto wiedzieć o programowaniu na platformę ios? Kilka słów na temat Obiective-C.
Rejestr HKEY_LOCAL_MACHINE
Rejestr HKEY_LOCAL_MACHINE Poddrzewo HKEY_LOCAL_MACHINE zawiera dane konfiguracyjne lokalnego systemu. Informacje tutaj przechowywane są wykorzystywane przez aplikacje i sterowniki urządzeń, a także przez
3. Sieć PLAN. 3.1 Adresowanie płyt głównych regulatora pco
3. Sieć PLAN Wszystkie urządzenia podłączone do sieci plan są identyfikowane za pomocą swoich adresów. Ponieważ terminale użytkownika i płyty główne pco wykorzystują ten sam rodzaj adresów, nie mogą posiadać
Symulator tabletu z systemem Windows 8.
Symulator tabletu z systemem Windows 8. Witam w mojej kolejnej publikacji, tym razem dowiesz się: - Jak uruchomić symulator tabletu z w pełni funkcjonalnym systemem operacyjnym Windows 8; - Jak wykorzystać
Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera
Dariusz Wawrzyniak Plan wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działania systemu operacyjnego (2) Definicja systemu operacyjnego (1) Miejsce,
Biorąc udział w projekcie, możesz wybrać jedną z 8 bezpłatnych ścieżek egzaminacyjnych:
Egzaminy na plus Stres na minus! Zdawaj bezpłatne egzaminy Microsoft, Linux, C++ z nami i zadbaj o swoją karierę. Oferujemy Ci pierwsze certyfikaty zawodowe w Twojej przyszłej karierze, które idealnie
Warstwy systemu Windows 2000
Warstwy systemu Windows 2000 Tryb użytkownika (User Mode) Tryb jądra (Kernel Mode) Tryb użytkownika (User Mode) Zarządzanie pamięcią wirtualną Cechy charakterystyczne systemu Windows XP: system bardzo
Optymalizacja programów Open Source. Krzysztof Lichota lichota@mimuw.edu.pl
Optymalizacja programów Open Source Krzysztof Lichota lichota@mimuw.edu.pl Ogólne zasady optymalizacji 10 zasad optymalizacji: 1. Mierzenie 2. Mierzenie 3. Mierzenie 4. Mierzenie 5. Mierzenie 6. Mierzenie
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
Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera
Dariusz Wawrzyniak Plan wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działania systemu operacyjnego (2) Miejsce, rola i zadania systemu operacyjnego
Zespół Szkół Technicznych w Suwałkach. Pracownia Systemów Komputerowych. Ćwiczenie Nr 13 ARCHITEKTURA SYSTEMU WINDOWS. Opracował Sławomir Zieliński
Zespół Szkół Technicznych w Suwałkach Pracownia Systemów Komputerowych Ćwiczenie Nr 13 ARCHITEKTURA SYSTEMU WINDOWS Opracował Sławomir Zieliński Suwałki 2013 Cel ćwiczenia Zapoznanie z architekturą systemu
Kurs Zaawansowany S7. Spis treści. Dzień 1
Spis treści Dzień 1 I Konfiguracja sprzętowa i parametryzacja stacji SIMATIC S7 (wersja 1211) I-3 Dlaczego powinna zostać stworzona konfiguracja sprzętowa? I-4 Zadanie Konfiguracja sprzętowa I-5 Konfiguracja
Jądro systemu operacyjnego
Jądro systemu operacyjnego Jądro (ang. kernel) jest to podstawowa część systemu operacyjnego, która jest odpowiedzialna za wszystkie jego zadania. Zapewnia ono usługi systemowe takie jak: komunikacja między
IBM SPSS Statistics dla systemu Windows Instrukcje instalacji (licencja sieciowa)
IBM SPSS Statistics dla systemu Windows Instrukcje instalacji (licencja sieciowa) Przedstawione poniżej instrukcje dotyczą instalowania IBM SPSS Statistics wersji 21 przy użyciu licencja sieciowa. Ten
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
Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak
Wprowadzenie Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działania systemu operacyjnego
Spis treści. Dzień 1. I Konfiguracja sterownika (wersja 1410) II Edycja programu (wersja 1406) III Środowisko TIA Portal (wersja 1410)
Spis treści Dzień 1 I Konfiguracja sterownika (wersja 1410) I-3 Zadanie Tworzenie konfiguracji sprzętowej I-4 Co jest potrzebne by zacząć? I-5 TIA Portal ekran startowy I-6 Tworzenie nowego projektu I-7
Rejestratory Sił, Naprężeń.
JAS Projektowanie Systemów Komputerowych Rejestratory Sił, Naprężeń. 2012-01-04 2 Zawartość Typy rejestratorów.... 4 Tryby pracy.... 4 Obsługa programu.... 5 Menu główne programu.... 7 Pliki.... 7 Typ
Programowanie MorphX Ax
Administrowanie Czym jest system ERP? do systemu Dynamics Ax Obsługa systemu Dynamics Ax Wyszukiwanie informacji, filtrowanie, sortowanie rekordów IntelliMorph : ukrywanie i pokazywanie ukrytych kolumn
Warsztaty szkoleniowe. Technologia SafetyLon w systemach związanych z bezpieczeństwem funkcjonalnym Narzędzia SafetyLon Moduł 4.5.
Warsztaty szkoleniowe Technologia SafetyLon w systemach związanych z bezpieczeństwem funkcjonalnym Narzędzia SafetyLon Moduł 4.5 Plan prezentacji 1. 2. 3. Przegląd narzędzi programistycznych wykorzystywanych