Inżynieria Wytwarzania Systemów Wbudowanych. Analiza Wydajności Systemów. Inżynieria Wytwarzania Systemów Wbudowanych 1/75

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

Download "Inżynieria Wytwarzania Systemów Wbudowanych. Analiza Wydajności Systemów. Inżynieria Wytwarzania Systemów Wbudowanych 1/75"

Transkrypt

1 Inżynieria Wytwarzania Systemów Wbudowanych Analiza Wydajności Systemów Inżynieria Wytwarzania Systemów Wbudowanych 1/75

2 Wydajność systemu Wydajność to ekscytująca, zmienna i wymagająca dyscyplina. Brendan GREG Analiza wydajność systemu analiza całego systemu, łącznie ze wszystkimi komponentami sprzętowymi oraz pełnym stosem oprogramowania. Wszystko co znajduje się na ścieżce danych oprogramowanie i sprzęt, ma wpływ na wydajność. W systemach rozproszonych może oznaczać to wiele serwerów i aplikacji. Inżynieria Wytwarzania Systemów Wbudowanych 2/75

3 Wydajność systemu PERSPEKTYWY Działania związane z wydajnością systemu można postrzegać z różnych perspektyw: analiza obciążenia; analiza zasobów. Spoglądają one na stos oprogramowania z różnych kierunków. Perspektywa analizy zasobów jest często stosowana przez administratorów systemu odpowiedzialnych za jego zasoby. Programiści aplikacji, którzy są odpowiedzialni za wydajność podczas obciążenia, najczęściej koncentrują się na perspektywie analizy obciążenia. Każda perspektywa ma wady i zalety. W wielu sytuacjach konieczne jest spojrzenie z punktu widzenia obu perspektyw. Inżynieria Wytwarzania Systemów Wbudowanych 3/75

4 Wydajność systemu METOLOGIA Metodologie analizy wydajności: obserwacyjne; eksperymentalne. Modelowanie i planowanie pojemności. Inżynieria Wytwarzania Systemów Wbudowanych 4/75

5 Wydajność systemu PERSPEKTYWY Wydajność jest subiektywna. To co jeden z użytkowników uznaje za niewystarczającą wydajność, czyli problem, inny użytkownik może uznać za dobrą wydajność. Powoduje to iż analiza wydajności jest bardzo złożonym problemem i wymaga ustalenia obiektywnych punktów odniesienia. Inżynieria Wytwarzania Systemów Wbudowanych 5/75

6 Wydajność systemu METRYKI Inżynieria Wytwarzania Systemów Wbudowanych 6/75

7 Wydajność systemu METRYKI Najczęściej stosowane rodzaje metryk wydajności systemu obejmują: IOPS liczba operacji wejścia-wyjścia wykonywanych w ciągu sekundy. Przepustowość liczba operacji lub ich wielkość w ciągu sekundy. Poziom wykorzystania stopień zajętości zasobu obliczany na podstawie ilości czasu, który we wskazanym przedziale czasu był poświęcony na aktywne wykonywanie zadania; dla zasobów dostarczających pamięci masowych może to oznaczać zużytą pamięć np. wykorzystana ilość pamięci operacyjnej. Opóźnienie czas, w którym operacja czeka na przeprowadzenie; czasem pojęcie to może odnosić się do całkowitego czasu operacji, jest odpowiednikiem czasu udzielenia odpowiedzi. Inżynieria Wytwarzania Systemów Wbudowanych 7/75

8 Wydajność systemu Kompromisy Wydajność systemu świadomość istnienia pewnych kompromisów. Kompromis typu wybierz dwa z dobrze, szybko, tanio z użyciem terminologii z projektów informatycznych wybierz dwa z wydajny, na czas, niedrogi ; Dobrze Wydajność Szybko Tanio Na czas Niedrogo Inżynieria Wytwarzania Systemów Wbudowanych 8/75

9 Wydajność systemu Kompromis Skalowalność liniowa w pewnym zakresie. Osiągnięcie i przekroczenie tzw. punktu na kolanach powoduje, że rywalizacja o zasoby systemu negatywnie wpływa na wydajność systemu. W ogólności liczba wykonywanych zadań spada. Punkt nasycenia. Inżynieria Wytwarzania Systemów Wbudowanych 9/75

10 Wydajność systemu Aplikacje Najbardziej odpowiednie miejsce dostosowywania wydajności znajduje się w pobliżu wykonywanych zadań, czyli aplikacjach. Obejmują one bardzo szeroki wachlarz programów: bazy danych; serwery www; serwery aplikacji; programy przeznaczone do równoważenia obciążenia; serwery plików, itd. Oprogramowanie może być bardzo skomplikowane, dotyczy to szczególnie środowiska aplikacji rozproszonych, składających się z wielu komponentów. Inżynieria Wytwarzania Systemów Wbudowanych 10/75

11 Wydajność systemu Aplikacje Analiza wewnętrznych składników aplikacji to najczęściej zadanie dla programistów aplikacji, którzy mogą wykorzystywać do tego celu narzędzia introspekcji (opracowane często przez firmy trzecie). Osoby zajmujące się wydajnością systemów (administratorzy systemów, analitycy wydajności aplikacji) muszą konfigurować aplikację, w taki sposób, aby w jak najlepszy sposób wykorzystać zasoby systemu. Inżynieria Wytwarzania Systemów Wbudowanych 11/75

12 Wydajność systemu Aplikacje Podstawy Przed przystąpieniem do zagadnień wydajności należy poznać: rolę aplikacji; podstawową charakterystykę; ekosystem w przemyśle. Z powyższych zagadnień powstaje: kontekst, w którym poznamy działanie aplikacji. Aby określić jak wygląda w/w kontekst należy odpowiedzieć na następujące pytania: FUNKCJA: Jaka jest rola aplikacji? Jakiego typu jest to aplikacji (serwer WWW, serwer plików, itd.)? Inżynieria Wytwarzania Systemów Wbudowanych 12/75

13 Wydajność systemu Aplikacje Podstawy OPERACJE: Jakiego rodzaju operacje i żądania są wykonywane przez aplikacje? (dla serwera WWW będą to żądania HTTP, w bazach danych będą to zapytania i polecenia). TRYB PROCESORA: Na jakim poziomie została zaimplementowana aplikacja: jako oprogramowanie użytkownika czy jądra? KONFIGURACJA: W jaki sposób jest skonfigurowana aplikacja i dlaczego tak? (Czy uległy zmianie modyfikowalne parametry związane z wydajnością?). Inżynieria Wytwarzania Systemów Wbudowanych 13/75

14 Wydajność systemu Aplikacje Podstawy METRYKI: Czy aplikacja dostarcza jakichkolwiek metryk np. częstotliwość operacji? DZIENNIKI ZDARZEŃ: Czy aplikacja tworzy dzienniki zdarzeń? Tworzenie jakich dzienników zdarzeń włączono w aplikację? Jakie metryki związane z wydajnością (np. opóźnienie) są dostępne w dziennikach? WERSJA: Czy aplikacja jest w najnowszej wersji? Czy w informacjach o nowym wydaniu są wzmianki o poprawkach lub usprawnieniach dotyczących wydajności jej działania. BŁĘDY: Czy dla aplikacji istnieje baza danych pozwalająca na zgłaszanie błędów? Czy są tam informacje o błędach wydajności w używanej wersji? Inżynieria Wytwarzania Systemów Wbudowanych 14/75

15 Wydajność systemu Aplikacje Podstawy SPOŁECZNOŚĆ: Czy dla danej aplikacji istnieje społeczność, z którą można dzielić się odkrytymi problemami dotyczącymi wydajności? (Fora, blogi, czaty, spotkania i konferencje, prezentacje i materiały wideo.) KSIĄŻKI: Czy do danej aplikacji istnieje jakakolwiek literatura dotycząca np. wydajności? EKSPERCI: Czy istnieją eksperci dla danej aplikacji. Ogólna wiedza na temat aplikacji: przeznaczenie, sposób działania, oferowana wydajność. Inżynieria Wytwarzania Systemów Wbudowanych 15/75

16 Wydajność systemu Aplikacje Cele Wyraźnie zdefiniowane cele w zakresie wydajności pomogą wyznaczyć kierunek prowadzonej analizy wydajności oraz określą kroki, które trzeba będzie podjąć. Brak zdefiniowanych celów to błądzenie po omacku w nadziei na znalezienie rozwiązania problemu z wydajnością. Przykładowymi celami mogą być: Opóźnienie. Maksymalne skrócenie czasu udzielania odpowiedzi przez aplikację. Przepustowość. Uzyskanie jak największej częstotliwości wykonywania operacji bądź największego możliwego transferu. Wykorzystanie zasobów. Efektywność dla danego obciążenia aplikacji. Inżynieria Wytwarzania Systemów Wbudowanych 16/75

17 Wydajność systemu Aplikacje Cele Jeszcze lepszym podejściem jest zdefiniowanie celów, które będą mogły być zmierzone za pomocą metryk np.: Średnie opóźnienie w udzielaniu odpowiedzi przez aplikację wynosi 10 ms. 99% żądań jest obsługiwanych w czasie krótszym niż 200 ms. Eliminacja opóźnień związanych z elementami odstającymi: 0 żądań których obsługa trwa ponad 1000 ms. Maksymalna przepustowość wynosi żądań aplikacji kierowanych co 1s do serwera. Średni poziom wykorzystania dysku wynosi poniżej 40% dla żądań wykonywanych przez aplikację co 1s. Inżynieria Wytwarzania Systemów Wbudowanych 17/75

18 Wydajność systemu Aplikacje Cele Wybranie odpowiednich celów pozwalają podjąć czynności, których zadaniem jest wyeliminowanie wszystkich czynników, które uniemożliwiają osiągnięcie wyznaczonych celów. Inżynieria Wytwarzania Systemów Wbudowanych 18/75

19 Wydajność systemu Aplikacje Optymalizacja najczęstszego sposobu użycia aplikacji Wewnętrzne komponenty są najczęściej bardzo skomplikowane i zawierają wiele różnych, możliwych ścieżek kodu oraz typów zachowania. Jest to szczególnie widoczne w czasie analizy kodu źródłowego (aplikacja dziesiątki tysięcy wierszy kodu, jądro systemu operacyjnego setki tysięcy). Losowe wybieranie obszaru optymalizacji może być przyczyną ogromnych nakładów pracy, których skutkiem będzie niewielki wzrost wydajności działania aplikacji. Najefektywniejszym sposobem poprawiania wydajności działania aplikacji jest wyszukanie najczęściej stosowanej ścieżki kodu dla danego obciążenia produkcyjnego i przystąpienie do jej usprawnienia. Ścieżki te możemy określić dzięki analizie i profilowaniu aplikacji (np. śledzenie stosu) Inżynieria Wytwarzania Systemów Wbudowanych 19/75

20 Wydajność systemu Aplikacje Monitorowanie Podobnie jak w przypadku systemów operacyjnych, tak i w przypadku aplikacji największy przyrost wydajności możemy uzyskać poprzez wyeliminowanie niepotrzebnie wykonywanej pracy. Ten fakt jest często przeoczany podczas wyboru aplikacji na podstawie jej wydajności. Która aplikacja będzie lepszym wyborem w perspektywie czasu? Jeżeli testy wydajności wykazały że aplikacja A jest o 10% wydajniejsza niż aplikacja B, która jednak oferuje bogaty zestaw narzędzi monitorowania. Inżynieria Wytwarzania Systemów Wbudowanych 20/75

21 Wydajność systemu Aplikacje Notacja duże O Wykorzystywana jest do analizy poziomu skomplikowania algorytmów oraz modelowania sposobu ich działania, gdy nastąpi przyrost zbioru danych wejściowych. Najczęściej stosowane algorytmy i notacje duże O : O(1) test boolowski. O(log n) przeszukiwanie binarne posortowanej tablicy. O(n) przeszukiwanie liniowe listy połączonej. O(n log n) szybkie sortowanie (przypadek średni). O(n^2) sortowanie bąbelkowe (przypadek średni). O(2^n) Dzielenie liczb na czynniki pierwsze. O(n!) problem komiwojażera. Omawiana notacja pozwala oszacować poprawę szybkości działania różnych algorytmów i ustalić obszary kodu prowadzące do największych przyrostów wydajności działania. Inżynieria Wytwarzania Systemów Wbudowanych 21/75

22 Wydajność systemu Aplikacje Techniki sprawdzania wydajności aplikacji Ustalenie wielkości operacji I/O: Koszty operacji I/O inicjalizacja buforów, wykonanie wywołania systemowego, przełączenie kontekstu, alokacja metadanych jądra, sprawdzenie ograniczeń i uprawnień procesu, mapowanie adresów na urządzenia, wykonanie kodu jądra i sterownika w celu przeprowadzenia operacji I/O i na koniec zwolnienie metadanych oraz buforów. Koszty są stałe dla małych i dużych operacji I/O. Z perspektywy wydajności im więcej danych jest przekazywanych w trakcie każdej operacji tym lepiej. Wzrost wielkości operacji I/O to strategia najczęściej wykorzystywana do poprawy przepustowości (nie zawsze jednak się sprawdza!!!). Inżynieria Wytwarzania Systemów Wbudowanych 22/75

23 Wydajność systemu Aplikacje Pamięć podręczna Aplikacje podobnie jak system operacyjny wykorzystują różnego rodzaju pamięci podręczne. Wyniki najczęściej wykonywanych operacji mogą być buforowane lokalnie w celu późniejszego użycia. Przykładem może być bufor bazy danych, który przechowuje wyniki najczęściej wykonywanych zapytań. Aspekt zachowania spójności koherencja pamięci podręcznej operacja kosztowna do wykonania, koszt nie powinien przekraczać korzyści wynikających z użycia pamięci podręcznej. Pamięć podręczna poprawa wydajności operacji odczytu. Bufory poprawa wydajności operacji zapisu. Inżynieria Wytwarzania Systemów Wbudowanych 23/75

24 Wydajność systemu Aplikacje Buforowanie Stosowane jest w celu poprawy wydajności operacji zapisu dane do zapisu umieszczane są w buforze. Powoduje to zwiększenie wielkości operacji I/O, a więc jej efektywność. Może się wiązać ze wzrostem opóźnienia. Bufor cykliczny rodzaj stałego bufora wykorzystywany do nieustannych transferów między komponentami działa jak bufor asynchroniczny. Implementowany jest za pomocą wskaźników początkowego i końcowego; przesuwanych o każdy komponent, gdy dane są dodawane lub usuwane. Inżynieria Wytwarzania Systemów Wbudowanych 24/75

25 Wydajność systemu Aplikacje Technika odpytywania Odpytywanie to technika, w której system czeka na wystąpienie zdarzenia nieustannie sprawdzając stan zdarzenia w pętli i stosuje pauzy między kolejnymi sprawdzeniami. Problemy dotyczące wydajności: Kosztowne obciążenie procesora wynikające z regularnie pojawiających się operacji sprawdzeń. Duże opóźnienie między wystąpieniem zdarzenia i kolejnymi operacjami sprawdzenia. Alternatywa nasłuchiwanie zdarzeń aplikacja powiadamiana jest natychmiast o zdarzeniu. Inżynieria Wytwarzania Systemów Wbudowanych 25/75

26 Wydajność systemu Aplikacje WSPÓŁBIEŻNOŚĆ i RÓWNOLEGŁÓŚĆ W ramach aplikacji realizowane funkcje mogą być współbieżne. Stało się to możliwe dzięki użyciu wielu procesów (wieloprocesowość) lub wątków (wielowątkowość), z których każdy wykonuje swoje zadanie. Współbieżność oparta na zdarzeniach, aplikacja realizuje różne funkcje i przełącza się między nimi, gdy występują odpowiednie zdarzenia. Tego typu podejście używane jest w środowisku uruchomieniowym Node.js. Jest to tzw. współbieżność w ramach jednego wątku lub procesu. Wąskie gardło wydajności to możliwość wykorzystania tylko jednego procesora. Aby aplikacja mogła wykorzystać właściwości systemu wieloprocesorowego musi mieć możliwość wykorzystania wielu procesorów nosi to nazwę równoległości. W aplikacji można uzyskać równoległość za pomocą wieloprocesowości lub wielowątkowości. Inżynieria Wytwarzania Systemów Wbudowanych 26/75

27 Wydajność systemu Aplikacje WSPÓŁBIEŻNOŚĆ i RÓWNOLEGŁÓŚĆ Która technika równoległości ma przewagę wieloprocesowość, czy wielowątkowość? Inżynieria Wytwarzania Systemów Wbudowanych 27/75

28 Wydajność systemu Aplikacje Nieblokujące operacje I/O Wątek wykonujący operacje I/O jest blokowany i przechodzi w stan uśpienia. Konieczność powołania wielu wątków w celu wykonania wielu operacji I/O. Koszty dynamicznego tworzenia i usuwania wątków. Zużywanie zasobów procesora na częste przełączanie kontekstu i generowanie opóźnień. Model nieblokujących operacji I/O zakłada asynchroniczne wykonywanie tych operacji bez blokowania bieżącego wątku, który dzięki temu może być wykorzystany do innych zadań. Inżynieria Wytwarzania Systemów Wbudowanych 28/75

29 Wydajność systemu Aplikacje Powiązanie z procesorem Koligacja procesora wątki aplikacji działają na tym samym procesorze, powoduje to poprawę lokalizacji pamięci dla aplikacji, zmniejsza liczbę cykli potrzebną do wykonania operacji I/O dla pamięci. Inżynieria Wytwarzania Systemów Wbudowanych 29/75

30 Wydajność systemu Aplikacje Języki programowania Języki kompilowane C, C++, ASM; Języki interpretowane wykonywane za pomocą maszyny wirtualnej Java HotSpot Virtual Machine z kompilatorem JIT (Just-In-Time) dla dynamicznej poprawy wydajności. Interpretery i maszyny wirtualne języków posiadają specyficzne narzędzia do monitorowania wydajności. Inżynieria Wytwarzania Systemów Wbudowanych 30/75

31 Wydajność systemu Aplikacje Optymalizacja kodu wynikowego Kompilator gcc poziomy optymalizacji od 0 do 3. Możemy sprawdzić jakie optymalizacje stosowane są na danym poziomie. $ gcc Q O3 help=optimizers Pełna lista zawiera 180 opcji, część z nich włączona jest nawet na poziomie 0 optymalizacji. Niektóre opcje mogą uniemożliwiać debugowanie oraz analizę stosu. Zmiana poziomu optymalizacji nie zawsze jest rozwiązaniem problemu. Inżynieria Wytwarzania Systemów Wbudowanych 31/75

32 Wydajność systemu Aplikacje Języki interpretowane Wykonują program poprzez jego zamianę na odpowiednie akcje w trakcie uruchomienia. Jest to przyczyną dodatkowych obciążeń podczas wykonywania programu. Nie wymaga się od tej klasy języków dużej wydajności, nacisk kładzie się na łatwość programowania i debugowania. Skrypty powłoki przykład języka interpretowanego. Bez odpowiednich narzędzi monitorowania analiza wydajności języków interpretowanych może być bardzo trudna. Inżynieria Wytwarzania Systemów Wbudowanych 32/75

33 Wydajność systemu Aplikacje Metodologia i analiza Metodologie podczas analizy aplikacji i dostosowywania jej wydajności działania: Analiza stanu wątku oparta na monitorowaniu. Profilowanie procesora oparta na monitorowaniu. Analiza wywołań systemowych oparta na monitorowaniu. Profilowanie operacji we-wy oparta na monitorowaniu. Charakterystyka obciążenia oparta na monitorowaniu, planowanie pojemności. Metoda USE oparta na monitorowaniu. Analiza drążąca oparta na monitorowaniu. Analiza blokad oparta na monitorowaniu. Statyczne dostosowywanie wydajności oparta na monitorowaniu, dostrajanie. Inżynieria Wytwarzania Systemów Wbudowanych 33/75

34 Wydajność systemu Aplikacje Analiza stanu wątku Analiza ta ma na celu ustalenie, gdzie wątki aplikacji przebywają większość czasu. Absolutne minimum to zastosowanie dwóch stanów wątku: W procesorze wykonywanie wątku. Poza procesorem wątek czeka na swoją kolej dostępu do procesora, zakończenie operacji I/O, zwolnienie blokady, stronicowanie, wykonanie innego zadania itd. Jeśli wątek spędza znacznie więcej czasu: w procesorze profilowanie procesora powinno pomóc w znalezieniu przyczyny. poza procesorem można wykorzystać różne metodologie, jednak potrzebny jest dobry punkt wyjścia. W przeciwnym razie zadanie będzie wymagało dużych nakładów pracy. Inżynieria Wytwarzania Systemów Wbudowanych 34/75

35 Wydajność systemu Aplikacje Analiza stanu wątku W celu otrzymania lepszego punktu wyjścia stosuje się znacznie rozbudowaną listę zawierającą sześć stanów wątku: Wykonywanie w procesorze. Działanie oczekuje na dostęp do procesora. Anonimowe stronicowanie działa ale jest zablokowany w oczekiwaniu na zakończenie anonimowego stronicowania. Uśpienie czeka na zakończenie operacji I/O, zwolnienie blokady itd. Blokada czeka na nałożenie blokady synchronizacji. Bezczynność oczekuje na zadanie do wykonania. Powyższy zestaw jest minimalny i jednocześnie użyteczny. Poprawę wydajności uzyskamy po zmniejszeniu czasu w pierwszych pięciu stanach. Inżynieria Wytwarzania Systemów Wbudowanych 35/75

36 Wydajność systemu Aplikacje Analiza stanu wątku Po ustaleniu w którym z wymienionych pięciu stanów wątek spędza najwięcej czasu można przystąpić do dalszej analizy. Wykonywanie wykorzystując profilowanie sprawdzamy tryb działania wątku (user lub kernel), a także powód zużycia procesora (które ścieżki kodu są odpowiedzialne za zużycie procesora oraz przez jaki czas). Działanie przebywanie w tym stanie oznacza iż aplikacja potrzebuje więcej zasobów procesora. Anonimowe stronicowanie powodem może być brak pamięci dla aplikacji powoduje to powstawanie opóźnień. Należy przeanalizować zużycie pamięci w całym systemie i ograniczenia pamięci dla aplikacji. Inżynieria Wytwarzania Systemów Wbudowanych 36/75

37 Wydajność systemu Aplikacje Analiza stanu wątku Uśpienie analiza zasobów, w których aplikacja jest zablokowana. Blokada należy zdefiniować blokadę, nakładający ją wątek oraz powód długiego trwania blokady. Sposób oczekiwania aplikacji na zadania powoduje iż stany uśpienia i blokady to w rzeczywistości czas bezczynności. Inżynieria Wytwarzania Systemów Wbudowanych 37/75

38 Wydajność systemu Aplikacje POMIAR STANU WĄTKÓW przykłady Linux: czas wykorzystany na wykonywanie podaje polecenie top w kolumnie %CPU danych wyjściowych; czas działania podawany jest przez funkcję schedstats jądra i udostępniony przez pliki /proc/*/schedstats. Polecenie perf sched również może dostarczyć informacji na temat czasu poświęconego na działanie i oczekiwanie; czas poświęcony na anonimowe stronicowanie można mierzyć za pomocą funkcji zliczania opóźnień (pod warunkiem, że została włączone). czas zablokowania w wątku, uśpienia można w przybliżeniu oszacować stosując polecenie pidstat d, sprawdzając czy w wątku wykonywana jest operacja we/wy. bardzo długie stany uśpienia (rzędu sekund) można próbować ustalić wykorzystując funkcję pstack. Operacja ta pobiera pojedynczą migawkę wątku i informuje o użyciu stosu. Uwaga! pstack może blokować analizowaną aplikację. Inżynieria Wytwarzania Systemów Wbudowanych 38/75

39 Wydajność systemu Aplikacje PROFILOWANIE PROCESORA Celem profilowania procesora jest odpowiedź na pytanie: dlaczego aplikacja zużywa zasoby procesora? bardzo dobre wyniki daje technika próbkowania w procesorze stosu na poziomie użytkownika i łączenie wyników. Ślad stosu wskazuje zastosowaną ścieżkę kodu, co może pokazywać powody, dla których aplikacja zużywa zasoby procesor; próbkowanie aktualnie wykonywanej funkcji ogranicza ilość danych wyjściowych oraz ułatwia odczyt i poznanie profilu; analiza kodu wywołującego aktualnie wykonywaną funkcję; Inżynieria Wytwarzania Systemów Wbudowanych 39/75

40 Wydajność systemu Aplikacje PROFILOWANIE PROCESORA Profilowanie procesora w przypadku języków interpretowanych i maszyn wirtualnych może okazać się trudne: brak łatwego sposobu mapowania wykonywanego oprogramowania na oryginalny program; konkretne rozwiązania zależą od środowiska języka, które zawiera odpowiednie narzędzia bądź może używać narzędzi opracowanych przez firmy trzecie; Przykład próbkowania kodu Java za pomocą jstack() narzędzia Dtrace: Dtrace n profile-97 /pid==1742/ {@[jstack(100)] count(): } Po wykonaniu wyświetlane są najczęściej występujące stosy, które były próbkowane 10-krotnie (stosy pokazują wewnętrzne komponenty wirtualnej maszyny, poszczególne funkcje wyświetlane będą jako sygnatury C++); Inżynieria Wytwarzania Systemów Wbudowanych 40/75

41 Wydajność systemu Aplikacje ANALIZA WYWOŁAŃ SYSTEMOWYCH Metodologia analizy stanu wątku opisanie dwóch podstawowych stanów wątku w procesorze i poza procesorem. Użyteczne i praktyczne będzie przeanalizowanie w/w stanów na podstawie wywołań systemowych: wykonywania w procesorze (tryb użytkownika); wywołania systemowego czas wywołania systemowego (oczekiwanie lub działanie w trybie jądra) obejmuje operacje I/O, blokady i inne rodzaje wywołań systemowych. Można dokonywać analizy wywołań systemowych na wiele sposobów. Celem może być określenie gdzie wywołanie systemowe przebywa najdłużej, typu wywołania systemowego i powodu jego wywołania. Inżynieria Wytwarzania Systemów Wbudowanych 41/75

42 Wydajność systemu Aplikacje ANALIZA WYWOŁAŃ SYSTEMOWYCH Tradycyjna metoda monitorowania wywołania systemowego wymaga ustawienia punktu kontrolnego dla wywołania systemowego i jego zakończenia. Jest to technika inwazyjna, w przypadku aplikacji wykonujących znaczną ilość wywołań systemowych może powodować ogromny spadek wydajności. Tego rodzaju monitorowanie akceptowalne jest tylko w krótkim przedziale czasu, w celu ustalenia typu wywołań systemowych. Linux: $ strace ttt T p 1884 $ strace c p 1884 Doskonałe rozwiązanie w przypadku, gdy jego znaczne obciążenie nie stanowi problemu. Inżynieria Wytwarzania Systemów Wbudowanych 42/75

43 Wydajność systemu Aplikacje MONITOROWANIE BUFOROWANE Dane instrumentów monitorowania mogą być buforowane w jądrze, w trakcie pracy aplikacji. Inżynieria Wytwarzania Systemów Wbudowanych 43/75

44 Wydajność systemu Aplikacje PROFILOWANIE OPERACJI WEJŚCIA-WYJŚCIA Profilowanie operacji I/O pełni podobną rolę jak profilowanie procesora, poza tym pomaga także w ustaleniu dlaczego i w jaki sposób wykonywane są wywołania systemowe związane z operacjami I/O. Do tego celu wykorzystuje się narzędzia DTrace i analizuje stosy na poziomie użytkownika dla wywołań systemowych. Stosy zawierają informacje o tym, dlaczego wykonywane są dane wywołania. Warto przeanalizować dodatkowe atrybuty metodologii: Kto? identyfikator procesu, nazwa użytkownika; Co? komponent wykonujący dane wywołanie systemowe (np. system plików), wielkość operacji I/O, wartość IOPS, przepustowość i inne atrybuty. Jak? - zmiana wartości IOPS na przestrzeni czasu. Inżynieria Wytwarzania Systemów Wbudowanych 44/75

45 Wydajność systemu Aplikacje METODA USE Metoda USE pozwala na sprawdzenie poziomu wykorzystania, nasycenia i błędów we wszystkich zasobach sprzętowych. Metoda pozwala wskazać zasób będący wąskim gardłem. Można użyć metody USE także względem zasobów w postaci oprogramowania. Zależy to jednak od rodzaju aplikacji. Jeżeli dysponujemy diagramem funkcjonalnym prezentującym wewnętrzne komponenty aplikacji, możemy przeanalizować poziomu wykorzystania, nasycenia i błędów dla każdego zasobu oprogramowania i odpowiedz na pytanie: Co ma sens? Inżynieria Wytwarzania Systemów Wbudowanych 45/75

46 Wydajność systemu Aplikacje METODA USE Dla aplikacji używającej puli wątków roboczych do przetwarzania żądań oraz kolejki przeznaczonej dla operacji oczekujących na swoją kolej możemy zdefiniować metryki jako: Poziom wykorzystania średnia liczba wątków zajętych przetwarzaniem żądań w pewnym przedziale czasu, podana jako procent wszystkich wątków. Poziom nasycenia średnia długość kolejki żądań w pewnym przedziale czasu. Wartość ta określa, ile żądań czeka na przetwarzanie przez wątek roboczy. Błędy żądania odrzucone lub zakończone niepowodzeniem z jakiegokolwiek powodu. Inżynieria Wytwarzania Systemów Wbudowanych 46/75

47 Wydajność systemu Aplikacje ANALIZA BLOKAD Blokady mogą stanowić wąskie gardło dla aplikacji wielowątkowych. Negatywnie wpływać na współbieżność i skalowalność. Analizę można przeprowadzić pod kątem: Sprawdzenia, czy występuje zjawisko rywalizacji pozwala stwierdzić czy problem już występuje. Długi czas blokady może nie być problemem w danej chwili, może nim zostać w sytuacji wzrostu jednoczesnego obciążenia. Warto ustalić nazwę blokady i ścieżkę kodu, która prowadzi do jej nałożenia; Sprawdzenia czy blokady są nakładane na długi czas. Przykładowe narzędzia do analizy blokad w systemie Solaris: plockstat analiza na poziomie użytkownika; lockstat analiza na poziomie jądra. Inżynieria Wytwarzania Systemów Wbudowanych 47/75

48 Wydajność systemu Aplikacje STATYCZNE DOSTOSOWANIE WYDAJNOŚCI Koncentruje się na problemach występujących w skonfigurowanym środowisku. W przypadku aplikacji należy przeanalizować różne aspekty konfiguracji statycznej m.in.: Jaka jest wersja uruchomionej aplikacji? Jakie są znane problemu z wydajnością w danej aplikacji? W jaki sposób aplikacja została skonfigurowana? Dlaczego aplikacja została skonfigurowana w sposób inny niż domyślny? Czy aplikacja zastała skompilowana? Jakiej wersji kompilatora użyto? Czy w systemie zastosowano jakiekolwiek mechanizmy kontroli zasobów dla procesora, pamięci, systemu plików, dysku lub sieci? Inżynieria Wytwarzania Systemów Wbudowanych 48/75

49 Wydajność systemu PROCESOR TERMINOLOGIA Procesor fizyczny układ umieszczony w gnieździe płyty głównej zawierający jeden procesor lub więcej procesorów zaimplementowanych w postaci rdzeni wątków sprzętowych. Rdzeń niezależny egzemplarz procesora w procesorze wielordzeniowym. Rdzenie to jeden ze sposobów skalowania procesorów, CMP ang. Chip-Level Multiprocessing. Wątek sprzętowy architektura procesora obsługująca działanie wielu wątków w pojedynczym rdzeniu (Hyper-Threading Technology firmy Intel), każdy wątek jest niezależnym egzemplarzem procesora. Instrukcja procesora pojedyncza operacja procesora pochodząca ze zbioru instrukcji. Procesor logiczny procesor wirtualny, egzemplarz procesora w systemie operacyjnym (jednostka, którą może uwzględniać algorytm szeregowania). Może być implementowany przez procesor jako wątek sprzętowy (wątek wirtualny), rdzeń lub procesor z pojedynczym rdzeniem. Inżynieria Wytwarzania Systemów Wbudowanych 49/75

50 Wydajność systemu PROCESOR TERMINOLOGIA Algorytm szeregowania moduł w jądrze odpowiedzialny za przypisywanie procesorom uruchamianych w nich wątków. Kolejka działania kolejka działających wątków oczekujących na uzyskanie dostępu do procesora. Inżynieria Wytwarzania Systemów Wbudowanych 50/75

51 Wydajność systemu PROCESOR ARCHITEKTURA PROCESORA Każdy wątek sprzętowy widziany jest jako procesor logiczny. W systemie dostępne mogą być dodatkowe informacje o topologii np. które procesory są w ramach tego samego rdzenia. Inżynieria Wytwarzania Systemów Wbudowanych 51/75

52 Wydajność systemu PROCESOR PAMIĘCI PODRĘCZNE W PROCESORZE Inżynieria Wytwarzania Systemów Wbudowanych 52/75

53 Wydajność systemu PROCESOR KOLEJKA DZIAŁANIA W PROCESORZE PROCESOR Wątki G G... G G P Kolejka działania Opóźnienie kolejki działania czas spędzony w kolejce działania podczas oczekiwania na dostęp do procesora. Opóźnienie algorytmu szeregowania bardziej odpowiedni dla wszystkich rodzajów rozdzielania zadań, także tych, które nie są oparte na kolejce. Inżynieria Wytwarzania Systemów Wbudowanych 53/75

54 Wydajność systemu PROCESOR KOLEJKA DZIAŁANIA W PROCESORZE W systemach wieloprocesorowych jądro zwykle zapewnia kolejkę działania każdemu procesorowi i próbuje umieszczać wątki w tej samej kolejce działania. Oznacz to iż wątki będą prawdopodobnie działały w procesorze, w którego pamięci podręcznej są buforowane ich dane (pamięć z rozgrzanym buforem). Podejście polegające na preferowaniu konkretnego procesora nosi nazwę powiązania z procesorem. W systemach typu NUMA poprawie może ulec również lokalizacja pamięci, prowadzi to do ogólnego zwiększenia wydajności. Inżynieria Wytwarzania Systemów Wbudowanych 54/75

55 Wydajność systemu PROCESOR KONCEPCJE DOTYCZĄCE WYDAJNOŚCI PROCESORA Komponenty procesora: częstotliwość taktowania zegara procesora; sposób wykonywania instrukcji. Podstawy niezbędne podczas analizy wydajności. Poznanie i zrozumienie metryki: CPI Cycles Per Instruction liczba cykli na instrukcję. Inżynieria Wytwarzania Systemów Wbudowanych 55/75

56 Wydajność systemu PROCESOR CZĘSTOTLIWOŚĆ TAKTOWANIA ZEGARA Instrukcje mogą zabierać jeden lub więcej cykli zegara cykli procesora. Częstotliwość taktowania jest bardzo często uznawana za podstawową cechę procesora. Jest to nieco mylące podejście. Przy pełnym wykorzystaniu procesora (wąskie gardło), większa częstotliwość taktowania wcale nie musi przełożyć się na zwiększenie wydajności. DLACZEGO? Inżynieria Wytwarzania Systemów Wbudowanych 56/75

57 Wydajność systemu PROCESOR CZĘSTOTLIWOŚĆ TAKTOWANIA ZEGARA Jeżeli większość przypadków będą to cykle bezczynności w oczekiwaniu na dostęp do pamięci, szybsze wykonywanie wspomnianych cykli nie zwiększy liczby wykonywanych instrukcji procesora, czyli przepustowości. Inżynieria Wytwarzania Systemów Wbudowanych 57/75

58 Wydajność systemu PROCESOR INSTRUKCJE Instrukcje wykonywane są w kilku krokach przez komponenty procesora nazywane jednostkami funkcjonalnymi. Kroki przy przetwarzaniu instrukcji: Pobranie instrukcji. Dekodowanie instrukcji. Wykonanie instrukcji. Uzyskanie dostępu do pamięci (opcjonalnie). Ponowny zapis rejestru (opcjonalnie). Wiele instrukcji operuje tylko na rejestrach. Dostęp do pamięci to zazwyczaj najwolniejszy krok (może zabierać dziesiątki cykli). Instrukcja jest wstrzymywana (cyklami bezczynności). Inżynieria Wytwarzania Systemów Wbudowanych 58/75

59 Wydajność systemu PROCESOR INSTRUKCJE Potok instrukcji architektura pozwalająca na wykonywanie wielu instrukcji jednocześnie. Architektura superskalarna architektura wykorzystująca wiele jednostek funkcjonalnych, co powoduje zwiększenie ilości wykonywanych instrukcji. Współczesne procesory mają możliwość wykonywania 3 lub 4 instrukcji w jednym cyklu. Inżynieria Wytwarzania Systemów Wbudowanych 59/75

60 Wydajność systemu PROCESOR METRYKI CPI, IPC Wartość CPI ang. Cycles Per Instruction pozwala ustalić, jak procesor używa cykli zegara; ułatwia poznanie natury poziomu wykorzystania procesora. Podana metryka może być wyrażona wartością IPC ang. Instructions Per Cycle instrukcje na cykl, odwrotność CPI. Wysoka wartość CPI oznacza iż procesor bardzo często znajduje się w stanie oczekiwania (dostęp do pamięci). Niska wartość CPI świadczy o dużej przepustowości. Wymienione metryki wskazują miejsca, których dostrojenie przyniesie największe korzyści. CPI pokazuje efektywność przetwarzania instrukcji. Inżynieria Wytwarzania Systemów Wbudowanych 60/75

61 Wydajność systemu PROCESOR POZIOM WYKORZYSTANIA Czas, w którym egzemplarz procesora zajęty jest wykonywaniem zadań w analizowanym przedziale czasu PW podaje się w %. Można również mierzyć czas w którym procesor nie obsługuje bezczynnego wątku jądra, ale zamiast tego wątki aplikacji działających na poziomie klienta, inne wątki jądra lub też przetwarza przerwanie. Czy wysoki poziom wykorzystania procesora jest problemem? Inżynieria Wytwarzania Systemów Wbudowanych 61/75

62 Wydajność systemu PROCESOR POZIOM WYKORZYSTANIA Można traktować poziom wykorzystania procesora jako wskaźnik ROI ang. Return of Investment. W przeciwieństwie do innego rodzaju zasobów (dysków) wydajność działania procesora nie ulega dużemu spadkowi przy wysokim poziomie wykorzystania. Dzieje się tak, dzięki stosowaniu przez jądro priorytetów, wywłaszczania i dzielenia czasu. CZAS UŻYTKOWNIKA i JĄDRA Inżynieria Wytwarzania Systemów Wbudowanych 62/75

63 Wydajność systemu PROCESOR POZIOM NASYCENIE 100 % poziom wykorzystania procesora odpowiada jego nasyceniu. Pojawia się opóźnienie algorytmu szeregowania. Przy przetwarzaniu w chmurze poziom nasycenia może wskazywać na wykorzystanie przydzielonych aplikacji limitów, co nie musi oznaczać 100 % poziomu wykorzystania. WYWŁASZCZANIE ODWRÓCENIE PRIORYTETÓW Inżynieria Wytwarzania Systemów Wbudowanych 63/75

64 Wydajność systemu PROCESOR WIELOPROCESOWOŚĆ, WIELOWĄTKOWOŚĆ Współczesne procesory to tak naprawdę kilka procesorów w różnej postaci. Oddzielne wątki, które będą działać jednocześnie pozwalają wykorzystać wiele procesorów. Skalowalność stopień, do którego aplikacja może być efektywnie skalowalna wraz ze wzrostem liczby procesorów. Techniki skalowania aplikacji między procesorami to wieloprocesowość i wielowątkowość. Inżynieria Wytwarzania Systemów Wbudowanych 64/75

65 Wydajność systemu PROCESOR WIELOPROCESOWOŚĆ, WIELOWĄTKOWOŚĆ Proces Proces Proces Proces Proces Wątek Wątek Wątek Wątek Wątek Wątek Wątek Wątek Procesor Procesor Procesor Procesor Procesor Procesor Procesor Procesor WIELOPROCESOWOŚĆ WIELOWĄTKOWOŚĆ Inżynieria Wytwarzania Systemów Wbudowanych 65/75

66 Wydajność systemu PROCESOR WIELOPROCESOWOŚĆ, WIELOWĄTKOWOŚĆ Atrybut Wieloprocesowość Wielowątkowość Prace programistyczne Obciążenie związane z pamięcią Obciążenie związane z procesorem Rozwiązanie łatwe, użycie funkcji fork() Duże, oddzielna przestrzeń adresowa poszczególnych procesów powoduje zużycie pamięci Koszt związany wywołaniem fork() i exit(), który obejmuje pracę jednostki zarządzającej przestrzenią adresową MMU Korzystamy z API wątków Małe, wymagany jest jedynie dodatkowy stos oraz przestrzeń dla rejestru. Małe, wywołania API Inżynieria Wytwarzania Systemów Wbudowanych 66/75

67 Wydajność systemu PROCESOR WIELOPROCESOWOŚĆ, WIELOWĄTKOWOŚĆ Atrybut Wieloprocesowość Wielowątkowość Komunikacja Poziom użycia pamięci IPC, obciążenie procesora wynikające z przełączania kontekstu podczas kopiowania danych między przestrzeniami adresowymi, jeżeli nie są używane obszary pamięci współdzielonej. Procesy mogą zwracać systemowi całą zajmowaną pamięć. Najszybsza, bezpośredni dostęp do pamięci współdzielonej. Synchronizacja podstawowa zapewnia spójność. Mechanizmy alokacji, mogą prowadzić do rywalizacji o dostęp do procesora między wieloma wątkami, fragmentacji przed ponownym wykorzystaniem. Inżynieria Wytwarzania Systemów Wbudowanych 67/75

68 Wydajność systemu PROCESOR WIELOPROCESOWOŚĆ, WIELOWĄTKOWOŚĆ Liczba procesów lub wątków powinna obejmować żądaną liczbę procesorów. Koszt synchronizacji wątków i mniejsza lokacja pamięci może przekraczać korzyści programu w wielu procesorach. DŁUGOŚĆ SŁOWA Długość słowa wielkość przestrzeni adresowej szerokość ścieżki danych Czy większy rozmiar słowa = większa wydajność? Inżynieria Wytwarzania Systemów Wbudowanych 68/75

69 Wydajność systemu PROCESOR DŁUGOŚĆ SŁOWA Większy rozmiar = większa wydajność? Wzrost obciążenia pamięci (nieużywane bity); Wzrost wskaźników może powodować większe koszty operacji I/O w pamięci. Inżynieria Wytwarzania Systemów Wbudowanych 69/75

70 Wydajność systemu PROCESOR ARCHITEKTURA Inżynieria Wytwarzania Systemów Wbudowanych 70/75

71 Wydajność systemu PROCESOR PAMIĘCI PODRĘCZNE PROCESORA Inżynieria Wytwarzania Systemów Wbudowanych 71/75

72 Wydajność systemu PROCESOR WYDAJNOŚĆ PROCESORA METODOLOGIE Metoda narzędzi oparta na obserwacji; Metoda USE oparta na obserwacji; Charakterystyka obciążenia oparta na obserwacji, planowanie pojemności; Profilowanie oparta na obserwacji; Analiza cykli oparta na obserwacji; Monitorowanie wydajności oparta na obserwacji, planowanie pojemności; Statyczne dostrajanie wydajności oparta na obserwacji, planowanie pojemności; Dostrojenie priorytetu dostrojenie; Kontrola zasobów dostrojenie; Powiązanie z procesorem dostrojenie; Mikrotesty wydajności oparta na eksperymentach; Skalowanie planowanie pojemności, dostrojenie; Inżynieria Wytwarzania Systemów Wbudowanych 72/75

73 Wydajność systemu PROCESOR Metoda narzędzi uptime pozwala na sprawdzenie średniego obciążenia; vmstat pozwala sprawdzić ilość dostępnych zasobów <10% problem; mpstat pozwala znaleźć problemy związane ze skalowalnością wątków; top/prstat pozwalają określić jakie procesy i użytkownicy zużywają najwięcej zasobów procesora; pidstat/prstat pozwalają wyświetlić zużycie procesora jako czas użytkownika i systemu; perf/cpustat pozwalają na pomiar wartości CPI; Inżynieria Wytwarzania Systemów Wbudowanych 73/75

74 Wydajność systemu PROCESOR Metoda USE Poziom wykorzystania: czas, w którym procesor był zajęty; Nasycenie: stopień, do którego działające wątki oczekiwały w kolejce na uzyskanie dostępu do procesora; Błędy: błędy procesora, również te możliwe do usunięcia; Błędy łatwo znaleźć i zinterpretować. Jak chronić się przed błędami niemożliwymi do skorygowania? Inżynieria Wytwarzania Systemów Wbudowanych 74/75

75 Wydajność systemu PROCESOR Metoda USE Ochrona przed błędami niemożliwymi do skorygowania (wyłączanie procesora). Poziom wykorzystania sprawdzamy dla wszystkich procesorów eliminacja problemów dotyczących skalowalności. Przetwarzanie w chmurze poziom wykorzystania procesora może być mierzony w kategorii nałożonego ograniczenia. Inżynieria Wytwarzania Systemów Wbudowanych 75/75

Embedded Systems Architecture System Performance. Embedded Systems Architecture 1

Embedded Systems Architecture System Performance. Embedded Systems Architecture 1 Embedded Systems Architecture System Performance Embedded Systems Architecture 1 Wydajność systemu Wydajność to ekscytująca, zmienna i wymagająca dyscyplina. Brendan GREG Wydajność systemu analiza całego

Bardziej szczegółowo

Embedded Embedded Systems Arc hitecture System Performance

Embedded Embedded Systems Arc hitecture System Performance Embedded Systems Architecture System Performance 1/63 WYDAJNOŚĆ SYSTEMU Wydajność to ekscytująca, zmienna i wymagająca dyscyplina. Brendan GREG Wydajność systemu analiza całego systemu łącznie ze wszystkimi

Bardziej szczegółowo

Wydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle. Krzysztof Banaś, Obliczenia wysokiej wydajności.

Wydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle. Krzysztof Banaś, Obliczenia wysokiej wydajności. Wydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle Krzysztof Banaś, Obliczenia wysokiej wydajności. 1 Organizacja pamięci Organizacja pamięci współczesnych systemów komputerowych

Bardziej szczegółowo

Programowanie współbieżne Wykład 2. Iwona Kochańska

Programowanie współbieżne Wykład 2. Iwona Kochańska Programowanie współbieżne Wykład 2 Iwona Kochańska Miary skalowalności algorytmu równoległego Przyspieszenie Stały rozmiar danych N T(1) - czas obliczeń dla najlepszego algorytmu sekwencyjnego T(p) - czas

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

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

Systemy operacyjne III

Systemy operacyjne III Systemy operacyjne III WYKŁAD 2 Jan Kazimirski 1 Procesy w systemie operacyjnym 2 Proces Współczesne SO w większości są systemami wielozadaniowymi. W tym samym czasie SO obsługuje pewną liczbę zadań procesów

Bardziej szczegółowo

Wydajny Linux. Jakub Woźniak KN Sieci Komputerowych i Systemów Rozproszonych Tenesys

Wydajny Linux. Jakub Woźniak KN Sieci Komputerowych i Systemów Rozproszonych Tenesys Wydajny Linux Jakub Woźniak KN Sieci Komputerowych i Systemów Rozproszonych Tenesys Po co analizować wydajność? redukcja kosztów, poznanie limitów systemu operacyjnego, eliminacja wąskich gardeł. Jak system

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

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

Działanie systemu operacyjnego

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

Bardziej szczegółowo

Systemy operacyjne. Paweł Pełczyński

Systemy operacyjne. Paweł Pełczyński Systemy operacyjne Paweł Pełczyński ppelczynski@swspiz.pl 1 Program przedmiotu Wprowadzenie Struktura systemów operacyjnych Procesy i Wątki Komunikacja międzyprocesowa Szeregowanie procesów Zarządzanie

Bardziej szczegółowo

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia stacjonarne I stopnia Rok akademicki 2010/2011 Wykład nr 7 (24.01.2011) dr inż. Jarosław Forenc Rok akademicki

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

Analizator wydajności AMD CodeAnalyst

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

Bardziej szczegółowo

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.1

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.1 Mariusz Rudnicki mariusz.rudnicki@eti.pg.gda.pl PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.1 Przedmiot PSCR Przedmiot PSCR Wykład do połowy semestru Laboratorium od połowy semestru Projekt Zaliczenie

Bardziej szczegółowo

Budowa systemów komputerowych

Budowa systemów komputerowych Budowa systemów komputerowych Krzysztof Patan Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski k.patan@issi.uz.zgora.pl Współczesny system komputerowy System komputerowy składa

Bardziej szczegółowo

5. Model komunikujących się procesów, komunikaty

5. Model komunikujących się procesów, komunikaty Jędrzej Ułasiewicz str. 1 5. Model komunikujących się procesów, komunikaty Obecnie stosuje się następujące modele przetwarzania: Model procesów i komunikatów Model procesów komunikujących się poprzez pamięć

Bardziej szczegółowo

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami Rok akademicki 2015/2016, Wykład nr 6 2/21 Plan wykładu nr 6 Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia niestacjonarne I stopnia Rok akademicki 2015/2016

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

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

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,

Bardziej szczegółowo

Struktura systemu operacyjnego. Opracował: mgr Marek Kwiatkowski

Struktura systemu operacyjnego. Opracował: mgr Marek Kwiatkowski Struktura systemu operacyjnego Schemat budowy systemu operacyjnego model warstwowy Schemat budowy systemu operacyjnego części składowe Większość systemów operacyjnych opiera się o koncepcję jądra, która

Bardziej szczegółowo

RDZEŃ x86 x86 rodzina architektur (modeli programowych) procesorów firmy Intel, należących do kategorii CISC, stosowana w komputerach PC,

RDZEŃ x86 x86 rodzina architektur (modeli programowych) procesorów firmy Intel, należących do kategorii CISC, stosowana w komputerach PC, RDZEŃ x86 x86 rodzina architektur (modeli programowych) procesorów firmy Intel, należących do kategorii CISC, stosowana w komputerach PC, zapoczątkowana przez i wstecznie zgodna z 16-bitowym procesorem

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

Zagadnienia egzaminacyjne INFORMATYKA. Stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Zagadnienia egzaminacyjne INFORMATYKA. Stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ (INT) Inżynieria internetowa 1. Tryby komunikacji między procesami w standardzie Message Passing Interface 2. HTML DOM i XHTML cel i charakterystyka 3. Asynchroniczna komunikacja serwerem HTTP w technologii

Bardziej szczegółowo

Zarządzanie pamięcią operacyjną

Zarządzanie pamięcią operacyjną Dariusz Wawrzyniak Plan wykładu Pamięć jako zasób systemu komputerowego hierarchia pamięci przestrzeń owa Wsparcie dla zarządzania pamięcią na poziomie architektury komputera Podział i przydział pamięci

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

Działanie systemu operacyjnego

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

Bardziej szczegółowo

System komputerowy. System komputerowy

System komputerowy. System komputerowy System komputerowy System komputerowy System komputerowy układ współdziałających ze sobą (według pewnych zasad) dwóch składowych: sprzętu komputerowego (hardware) oraz oprogramowania (software) po to,

Bardziej szczegółowo

Strojenie systemu Linux pod k¹tem serwera bazy danych Oracle 9i

Strojenie systemu Linux pod k¹tem serwera bazy danych Oracle 9i VI Seminarium PLOUG Warszawa Styczeñ 2003 Strojenie systemu Linux pod k¹tem serwera bazy danych Oracle 9i Marcin Przepiórowski Strojenie systemu Linux pod kątem serwera bazy danych Oracle 9i 7 1. Wstęp

Bardziej szczegółowo

projektowanie systemu

projektowanie systemu projektowanie systemu cel użytkownika: system operacyjny powinien być wygodny, łatwy w użyciu, prosty do nauczenia, niezawodny, bezpieczny i szybki cel producenta: system operacyjny powinien być łatwy

Bardziej szczegółowo

SYSTEMY OPERACYJNE WYKLAD 6 - wątki

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

Bardziej szczegółowo

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie

Bardziej szczegółowo

Rozwiązanie Compuware dynatrace

Rozwiązanie Compuware dynatrace Rozwiązanie Compuware dynatrace COMPUWARE DYNATRACE... 3 2 COMPUWARE DYNATRACE Narzędzie Compuware dynatrace oparte jest o unikatową technologię agentową, która pozwala na dogłębną analizę stanu aplikacji

Bardziej szczegółowo

Budowa Mikrokomputera

Budowa Mikrokomputera Budowa Mikrokomputera Wykład z Podstaw Informatyki dla I roku BO Piotr Mika Podstawowe elementy komputera Procesor Pamięć Magistrala (2/16) Płyta główna (ang. mainboard, motherboard) płyta drukowana komputera,

Bardziej szczegółowo

Zarządzanie wieloserwerowym środowiskiem SAS z wykorzystaniem SAS Grid Managera. Katarzyna Wyszomierska

Zarządzanie wieloserwerowym środowiskiem SAS z wykorzystaniem SAS Grid Managera. Katarzyna Wyszomierska Zarządzanie wieloserwerowym środowiskiem SAS z wykorzystaniem SAS Grid Managera Katarzyna Wyszomierska Wyzwania administratora Nowe oprogra mowanie Sprzęt Użytkownicy Dane Wyzwania administratora Potrzebne

Bardziej szczegółowo

Obliczenia równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

Obliczenia równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz Obliczenia równoległe i rozproszone Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz 15 czerwca 2001 Spis treści Przedmowa............................................

Bardziej szczegółowo

Jądro systemu operacyjnego

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

Bardziej szczegółowo

Sieciowe Systemy Operacyjne

Sieciowe Systemy Operacyjne 1 Sieciowe Systemy Operacyjne 1. Etapy rozwoju systemów komputerowych System scentralizowany System sieciowy System rozproszony 1.1 System scentralizowany Zastosowane duże komputery (mainframes ) Użytkownicy

Bardziej szczegółowo

Uniwersytet Mikołaja Kopernika w Toruniu. Profilowanie ruchu sieciowego w systemie GNU/Linux

Uniwersytet Mikołaja Kopernika w Toruniu. Profilowanie ruchu sieciowego w systemie GNU/Linux Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej Michał Ferliński Nr albumu: 187386 Praca magisterska na kierunku Informatyka

Bardziej szczegółowo

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

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,

Bardziej szczegółowo

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

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

Bardziej szczegółowo

Programowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

Programowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz Programowanie równoległe i rozproszone Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz 23 października 2009 Spis treści Przedmowa...................................................

Bardziej szczegółowo

weblsp Wybór przeglądarki i jej ustawienia Instrukcja ADH-Soft sp. z o.o., ul. 17 Stycznia 74, Warszawa

weblsp Wybór przeglądarki i jej ustawienia Instrukcja ADH-Soft sp. z o.o., ul. 17 Stycznia 74, Warszawa weblsp Wybór przeglądarki i jej ustawienia Instrukcja ADH-Soft sp. z o.o., ul. 17 Stycznia 74, 02-146 Warszawa www.adh.com.pl Spis treści 1. Wydajność aplikacji po stronie klienta... 3 2. Wybór przeglądarki

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

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

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

Bardziej szczegółowo

Projektowanie i implementacja wysokowydajnych aplikacji w języku

Projektowanie i implementacja wysokowydajnych aplikacji w języku Program szkolenia: Projektowanie i implementacja wysokowydajnych aplikacji w języku PHP Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Projektowanie i implementacja wysokowydajnych

Bardziej szczegółowo

Urządzenia wejścia-wyjścia

Urządzenia wejścia-wyjścia Urządzenia wejścia-wyjścia Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Klasyfikacja urządzeń wejścia-wyjścia Struktura mechanizmu wejścia-wyjścia (sprzętu i oprogramowania) Interakcja

Bardziej szczegółowo

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery http://xqtav.sourceforge.net XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery dr hab. Jerzy Tyszkiewicz dr Andrzej Kierzek mgr Jacek Sroka Grzegorz Kaczor praca mgr pod

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

Replikacje. dr inż. Dziwiński Piotr Katedra Inżynierii Komputerowej. Kontakt:

Replikacje. dr inż. Dziwiński Piotr Katedra Inżynierii Komputerowej. Kontakt: dr inż. Dziwiński Piotr Katedra Inżynierii Komputerowej Kontakt: piotr.dziwinski@kik.pcz.pl Replikacje 2 1 Podstawowe pojęcia Strategie replikacji Agenci replikacji Typy replikacji Modele replikacji Narzędzia

Bardziej szczegółowo

Systemy operacyjne III

Systemy operacyjne III Systemy operacyjne III WYKŁAD Jan Kazimirski Pamięć wirtualna Stronicowanie Pamięć podzielona na niewielki bloki Bloki procesu to strony a bloki fizyczne to ramki System operacyjny przechowuje dla każdego

Bardziej szczegółowo

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O Budowa komputera Magistrala Procesor Pamięć Układy I/O 1 Procesor to CPU (Central Processing Unit) centralny układ elektroniczny realizujący przetwarzanie informacji Zmiana stanu tranzystorów wewnątrz

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

Podstawy informatyki. System operacyjny. dr inż. Adam Klimowicz

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.

Bardziej szczegółowo

Dlaczego testowanie jest ważne?

Dlaczego testowanie jest ważne? Testowanie Dlaczego testowanie jest ważne? Oprogramowanie które nie działa poprawnie może doprowadzić do: straty czasu, pieniędzy utraty reputacji uszkodzeń ciała a nawet śmierci Definicja błędu Oprogramowanie

Bardziej szczegółowo

Metody optymalizacji soft-procesorów NIOS

Metody optymalizacji soft-procesorów NIOS POLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych Instytut Telekomunikacji Zakład Podstaw Telekomunikacji Kamil Krawczyk Metody optymalizacji soft-procesorów NIOS Warszawa, 27.01.2011

Bardziej szczegółowo

Maciej Oleksy Zenon Matuszyk

Maciej Oleksy Zenon Matuszyk Maciej Oleksy Zenon Matuszyk Jest to proces związany z wytwarzaniem oprogramowania. Jest on jednym z procesów kontroli jakości oprogramowania. Weryfikacja oprogramowania - testowanie zgodności systemu

Bardziej szczegółowo

Zarządzanie procesorem

Zarządzanie procesorem Zarządzanie procesorem 1. Koncepcja procesu 2. Blok kontrolny procesu 3. Planowanie (szeregowanie) procesów! rodzaje planistów! kryteria planowania 4. Algorytmy planowania! FCFS! SJF! RR! planowanie priorytetowe!

Bardziej szczegółowo

System Zarządzania Dystrybucją

System Zarządzania Dystrybucją PRI - Projekt System Zarządzania Dystrybucją Leszek Krupiński 13 czerwca 2003 Spis treści 1 Opis dziedziny problemowej 2 2 Cel 3 3 Zakres 4 4 Kontekst 5 5 Opis wymagań 6 5.1 Wymagania funkcjonalne......................

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

Q E M U. http://www.qemu.com/

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

Bardziej szczegółowo

Administracja i programowanie pod Microsoft SQL Server 2000

Administracja i programowanie pod Microsoft SQL Server 2000 Administracja i programowanie pod Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 9 Optymalizacja zapytań Pobieranie planu wykonania Indeksy i wydajność - 1 - Zadania optymalizatora

Bardziej szczegółowo

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O Budowa komputera Magistrala Procesor Pamięć Układy I/O 1 Procesor to CPU (Central Processing Unit) centralny układ elektroniczny realizujący przetwarzanie informacji Zmiana stanu tranzystorów wewnątrz

Bardziej szczegółowo

Działanie komputera i sieci komputerowej.

Działanie komputera i sieci komputerowej. Działanie komputera i sieci komputerowej. Gdy włączymy komputer wykonuje on kilka czynności, niezbędnych do rozpoczęcia właściwej pracy. Gdy włączamy komputer 1. Włączenie zasilania 2. Uruchamia

Bardziej szczegółowo

Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Zadania systemu operacyjnego. Abstrakcyjne składniki systemu. System komputerowy

Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Zadania systemu operacyjnego. Abstrakcyjne składniki systemu. System komputerowy Systemy operacyjne Systemy operacyjne Dr inż. Ignacy Pardyka Literatura Siberschatz A. i inn. Podstawy systemów operacyjnych, WNT, Warszawa Skorupski A. Podstawy budowy i działania komputerów, WKiŁ, Warszawa

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

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1 Wydajność systemów a organizacja pamięci Krzysztof Banaś, Obliczenia wysokiej wydajności. 1 Motywacja - memory wall Krzysztof Banaś, Obliczenia wysokiej wydajności. 2 Organizacja pamięci Organizacja pamięci:

Bardziej szczegółowo

Zagadnienia egzaminacyjne INFORMATYKA. stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Zagadnienia egzaminacyjne INFORMATYKA. stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ (INT) Inżynieria internetowa 1.Tryby komunikacji między procesami w standardzie Message Passing Interface. 2. HTML DOM i XHTML cel i charakterystyka. 3. Asynchroniczna komunikacja serwerem HTTP w technologii

Bardziej szczegółowo

Opis efektów kształcenia dla modułu zajęć

Opis efektów kształcenia dla modułu zajęć Nazwa modułu: Projektowanie i użytkowanie systemów operacyjnych Rok akademicki: 2013/2014 Kod: EAR-2-324-n Punkty ECTS: 5 Wydział: Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej Kierunek:

Bardziej szczegółowo

Popularne dostępne rozwiązania. Najpopularniejsze środowiska programistyczne:

Popularne dostępne rozwiązania. Najpopularniejsze środowiska programistyczne: Popularne dostępne rozwiązania Najpopularniejsze środowiska programistyczne: Popularne dostępne rozwiązania Najpopularniejsze środowiska programistyczne: oraz systemy CMS (Content Menager System): Dlaczego

Bardziej szczegółowo

Pamięć wirtualna. Przygotował: Ryszard Kijaka. Wykład 4

Pamięć wirtualna. Przygotował: Ryszard Kijaka. Wykład 4 Pamięć wirtualna Przygotował: Ryszard Kijaka Wykład 4 Wstęp główny podział to: PM- do pamięci masowych należą wszelkiego rodzaju pamięci na nośnikach magnetycznych, takie jak dyski twarde i elastyczne,

Bardziej szczegółowo

Architektura i mechanizmy systemu

Architektura i mechanizmy systemu Architektura i mechanizmy systemu Warsztaty Usługa powszechnej archiwizacji Michał Jankowski, PCSS Maciej Brzeźniak, PCSS Plan prezentacji Podstawowe wymagania użytkowników - cel => Funkcjonalnośd i cechy

Bardziej szczegółowo

Mosty przełączniki. zasady pracy pętle mostowe STP. Domeny kolizyjne, a rozgłoszeniowe

Mosty przełączniki. zasady pracy pętle mostowe STP. Domeny kolizyjne, a rozgłoszeniowe Mosty przełączniki zasady pracy pętle mostowe STP Domeny kolizyjne, a rozgłoszeniowe 1 Uczenie się mostu most uczy się na podstawie adresu SRC gdzie są stacje buduje na tej podstawie tablicę adresów MAC

Bardziej szczegółowo

WHITE PAPER. Planowanie, przygotowanie i testowanie działań na wypadek wystąpienia awarii

WHITE PAPER. Planowanie, przygotowanie i testowanie działań na wypadek wystąpienia awarii WHITE PAPER Planowanie, przygotowanie i testowanie działań na wypadek wystąpienia awarii 1 TABLE OF CONTENTS Wstęp...3 Symulator VERITAS Cluster Server...3 Doradca VERITAS Volume Replicator...5 Próbny

Bardziej szczegółowo

Procesy i wątki. Blok kontrolny procesu. Proces. Proces - elementy. Stan procesu

Procesy i wątki. Blok kontrolny procesu. Proces. Proces - elementy. Stan procesu Proces Procesy i wątki Proces jest wykonywanym programem. Wykonanie procesu musi przebiegać w sposób sekwencyjny ( w dowolnej chwili na zamówienie naszego procesu może być wykonany co najwyżej jeden rozkaz

Bardziej szczegółowo

Zarządzanie pamięcią operacyjną zagadnienia podstawowe

Zarządzanie pamięcią operacyjną zagadnienia podstawowe Zarządzanie pamięcią operacyjną zagadnienia podstawowe Pamięć jako zasób systemu komputerowego Pamięć jest zasobem służący do przechowywania danych. Z punktu widzenia systemu pamięć jest zasobem o strukturze

Bardziej szczegółowo

Purview Widoczność i kontrola w L7, analityka aplikacji bez degradacji wydajności sieci do 100 mln sesji

Purview Widoczność i kontrola w L7, analityka aplikacji bez degradacji wydajności sieci do 100 mln sesji Purview Widoczność i kontrola w L7, analityka aplikacji bez degradacji wydajności sieci do 100 mln sesji Extreme Networks Dawid Królica dkrolica@extremenetwroks.com Dlaczego potrzebujemy informacji o aplikacjach

Bardziej szczegółowo

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński ppelczynski@swspiz.pl

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,

Bardziej szczegółowo

Sprzęt komputerowy 2. Autor prezentacji: 1 prof. dr hab. Maria Hilczer

Sprzęt komputerowy 2. Autor prezentacji: 1 prof. dr hab. Maria Hilczer Sprzęt komputerowy 2 Autor prezentacji: 1 prof. dr hab. Maria Hilczer Budowa komputera Magistrala Procesor Pamięć Układy I/O 2 Procesor to CPU (Central Processing Unit) centralny układ elektroniczny realizujący

Bardziej szczegółowo

System plików warstwa fizyczna

System plików warstwa fizyczna System plików warstwa fizyczna Dariusz Wawrzyniak Przydział miejsca na dysku Przydział ciągły (ang. contiguous allocation) cały plik zajmuje ciąg kolejnych bloków Przydział listowy (łańcuchowy, ang. linked

Bardziej szczegółowo

System plików warstwa fizyczna

System plików warstwa fizyczna System plików warstwa fizyczna Dariusz Wawrzyniak Plan wykładu Przydział miejsca na dysku Zarządzanie wolną przestrzenią Implementacja katalogu Przechowywanie podręczne Integralność systemu plików Semantyka

Bardziej szczegółowo

System plików warstwa fizyczna

System plików warstwa fizyczna System plików warstwa fizyczna Dariusz Wawrzyniak Przydział miejsca na dysku Zarządzanie wolną przestrzenią Implementacja katalogu Przechowywanie podręczne Integralność systemu plików Semantyka spójności

Bardziej szczegółowo

Autorytatywne serwery DNS w technologii Anycast + IPv6 DNS NOVA. Dlaczego DNS jest tak ważny?

Autorytatywne serwery DNS w technologii Anycast + IPv6 DNS NOVA. Dlaczego DNS jest tak ważny? Autorytatywne serwery DNS w technologii Anycast + IPv6 DNS NOVA Dlaczego DNS jest tak ważny? DNS - System Nazw Domenowych to globalnie rozmieszczona usługa Internetowa. Zapewnia tłumaczenie nazw domen

Bardziej szczegółowo

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE WINDOWS 1 SO i SK/WIN 006 Wydajność systemu 2 SO i SK/WIN Najprostszym sposobem na poprawienie wydajności systemu, jeżeli dysponujemy zbyt małą ilością pamięci RAM

Bardziej szczegółowo

Currenda EPO Instrukcja Konfiguracji. Wersja dokumentu: 1.3

Currenda EPO Instrukcja Konfiguracji. Wersja dokumentu: 1.3 Currenda EPO Instrukcja Konfiguracji Wersja dokumentu: 1.3 Currenda EPO Instrukcja Konfiguracji - wersja dokumentu 1.3-19.08.2014 Spis treści 1 Wstęp... 4 1.1 Cel dokumentu... 4 1.2 Powiązane dokumenty...

Bardziej szczegółowo

Zarządzanie pamięcią w systemie operacyjnym

Zarządzanie pamięcią w systemie operacyjnym Zarządzanie pamięcią w systemie operacyjnym Cele: przydział zasobów pamięciowych wykonywanym programom, zapewnienie bezpieczeństwa wykonywanych procesów (ochrona pamięci), efektywne wykorzystanie dostępnej

Bardziej szczegółowo

PyPy's Approach to Virtual Machine Construction

PyPy's Approach to Virtual Machine Construction PyPy's Approach to Virtual Machine Construction Armin Rigo, Samuele Pedroni Prezentacja: Michał Bendowski Czym jest PyPy? Implementacja Pythona w Pythonie - wydajniejsza niż oryginalna implementacja w

Bardziej szczegółowo

Projektowanie algorytmów równoległych. Zbigniew Koza Wrocław 2012

Projektowanie algorytmów równoległych. Zbigniew Koza Wrocław 2012 Projektowanie algorytmów równoległych Zbigniew Koza Wrocław 2012 Spis reści Zadniowo-kanałowy (task-channel) model algorytmów równoległych Projektowanie algorytmów równoległych metodą PACM Task-channel

Bardziej szczegółowo

Zarządzanie pamięcią operacyjną

Zarządzanie pamięcią operacyjną SOE Systemy Operacyjne Wykład 7 Zarządzanie pamięcią operacyjną dr inż. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW Hierarchia pamięci czas dostępu Rejestry Pamięć podręczna koszt

Bardziej szczegółowo

Optymalizacja programów Open Source. Profilery wysokiego poziomu część 2. Krzysztof Lichota

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

Bardziej szczegółowo

Szkolenie: Testowanie wydajności (Performance Testing)

Szkolenie: Testowanie wydajności (Performance Testing) Szkolenie: Testowanie wydajności (Performance Testing) Testy niefunkcjonalne aplikacji to nieodłączna część pracy dobrego testera. Do tego typu testów zaliczamy między innymi taką właściwość systemu jak

Bardziej szczegółowo

System kontroli wersji - wprowadzenie. Rzeszów,2 XII 2010

System kontroli wersji - wprowadzenie. Rzeszów,2 XII 2010 System kontroli wersji - wprowadzenie Rzeszów,2 XII 2010 System kontroli wersji System kontroli wersji (ang. version/revision control system) służy do śledzenia zmian głównie w kodzie źródłowym oraz pomocy

Bardziej szczegółowo

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne Jarosław Kuchta Internetowe Usługi Informacyjne Komponenty IIS HTTP.SYS serwer HTTP zarządzanie połączeniami TCP/IP buforowanie odpowiedzi obsługa QoS (Quality of Service) obsługa plików dziennika IIS

Bardziej szczegółowo

1 Instalowanie i uaktualnianie serwera SQL Server 2005... 1

1 Instalowanie i uaktualnianie serwera SQL Server 2005... 1 Spis treści Przedmowa... ix Podziękowania... x Wstęp... xiii Historia serii Inside Microsoft SQL Server... xiii 1 Instalowanie i uaktualnianie serwera SQL Server 2005... 1 Wymagania SQL Server 2005...

Bardziej szczegółowo

U M L. System operacyjny Linux zagnieżdżony w zewnętrznym systemie operacyjnym (Linux)

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

Bardziej szczegółowo

OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) Algorytmy i Struktury Danych PIŁA

OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) Algorytmy i Struktury Danych PIŁA OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) 20.11.2002 Algorytmy i Struktury Danych PIŁA ZŁOŻONE STRUKTURY DANYCH C za s tw or ze nia s tr uk tur y (m s ) TWORZENIE ZŁOŻONYCH STRUKTUR DANYCH: 00 0

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

Zarządzanie procesami i wątkami

Zarządzanie procesami i wątkami SOE - Systemy Operacyjne Wykład 4 Zarządzanie procesami i wątkami dr inŝ. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW Pojęcie procesu (1) Program zbiór instrukcji dla procesora

Bardziej szczegółowo