POZNAŃ SUPERCOMPUTING AND NETWORKING. Zwiększanie efektywności programów optymalizacja pamięci część 1

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

Download "POZNAŃ SUPERCOMPUTING AND NETWORKING. Zwiększanie efektywności programów optymalizacja pamięci część 1"

Transkrypt

1 Zwiększanie efektywności programów optymalizacja pamięci część 1

2 literatura podstawowa [Aho2002] Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman, Kompilatory. Reguły, metody i narzędzia, WNT 2002 (tłum. pierwszego wydania amerykańskiego, 1986). [Aho2001] A.V. Aho, R. Sethi, J.D. Ullman, Compilers: Principles, Techniques, and Tools, Pearson Education

3 literatura uzupełniająca [Bentley2008] Jon Bentley, Perełki oprogramowania, wyd. trzecie, WNT, 2008 (tłum. drugiego wydania amerykańskiego, Pearson Education 2000). [Bentley2007] Jon Bentley, Więcej perełek oprogramowania. Wyznania programisty, WNT 2007 (tłum. pierwszego wydania amerykańskiego, Pearson Education 1988). 3

4 literatura uzupełniająca [Kernigham2002] Brian W. Kernigham, Rob Pike, Lekcja programowania, WNT 2002, (tłum. pierwszego wydania amerykańskiego, Pearson Education 1999). [Oram2008] Andy Oram, Greg Wilson (red.), Piękny kod. Tajemnice mistrzów programowania, Helion 2008, (tłum. wydania amerykańskiego, O Reilly Media Inc. 2007). 4

5 literatura uzupełniająca [Barr2005] Adam Barr, Znajdź błąd. Sztuka analizowania kodu, Helion 2005 (tłum. wydania amerykańskiego, Pearson Education 2005). 5

6 literatura uzupełniająca [Cooper2004] Keith D. Cooper, Linda Torczon, Engineering a Compiler, Morgan Kaufmann Publishers, San Francisco, [Goedecker2001] Stefan Goedecker, Adolfy Hoisie, Performance Optimization of Numerically Intensive Codes, Society for Industrial and Applied Mathematics, Philadelphia

7 literatura uzupełniająca [Kaspersky2003], Kris Kaspersky, Code Optimization: Effective Memory Usage, A-LIST, LLC, [Muchnik1997] Steven S. Muchnick, Advanced Compiler Design and Implementation, Morgan Kaufmann Publishers, San Francisco,

8 literatura uzupełniająca [Allen2002] Randy Allen, Ken Kennedy, Optimizing Compilers for Modern Architectures, Morgan Kaufmann Publishers, San Francisco, [Falk2004] Heiko Falk, Peter Marwedel, Source Code Optimization Techniques for Data Flow Dominated Embedded Software, Kluwer Academic Publishers, Boston

9 literatura uzupełniająca [Wolfe1995] Michael Wolfe, High- Performance Compilers for Parallel Computing, Addison Wesley,

10 plan optymalizacja hierarchii pamięci [Muchnick1997] rozdz. 20 [Allen2002] rozdz. 9 optymalizacja dostępu do pamięci [Goedecker2001] rozdz. 6, [Kaspersky2003] rozdz. 3 10

11 plan optymalizacja operacji na pamięci [Kaspersky2003] rozdz. 2 alokacja rejestrów [Cooper2004] rozdz. 13 ograniczenie wykorzystywanej pamięci [Bentley2008] rozdz. 10 [Kernigham2002] rozdz. 7 11

12 optymalizacja hierarchii pamięci rozważamy tutaj techniki optymalizacji kodu, wykorzystujące hierarchię pamięci, w szczególności: pamięci notatnikowe danych i rozkazów przydział rejestrów do elementów tablic 12

13 optymalizacja hierarchii pamięci od lat systemy posiadały pamięć główną i rejestry pamięć jest duża i wolna, a rejestry są małe i szybkie z czasem, różnica między cyklem procesora a czasem dostępu do pamięci wzrastała (wzrost szybkości procesora 50% rocznie, pamięci 20% rocznie) 13

14 optymalizacja hierarchii pamięci aby zapobiec pogarszaniu się wydajności, wprowadzono pamięć notatnikową (cache) między pamięć główną a rejestry, redukując niedopasowanie szybkości pamięć notatnikowa powiela wybrane fragmenty pamięci głównej, zwykle na życzenie sprzętu albo oprogramowania 14

15 optymalizacja hierarchii pamięci odczyt, zapis albo pobranie instrukcji skierowane do adresu reprezentowanego w pamięci notatnikowej jest spełniany zazwyczaj przez pamięć notatnikową, a nie przez pamięć główną efektywność pamięci notatnikowej zależy od cech przestrzennej i czasowej lokalizacji w programie 15

16 optymalizacja hierarchii pamięci jeżeli program wykonuje pętlę, wtedy pierwsza iteracja umieszcza jej kod w pamięci notatnikowej, a kolejne iteracje wykonują go z pamięci notatnikowej, zamiast ładować go z pamięci głównej 16

17 optymalizacja hierarchii pamięci podobnie, jeżeli blok danych jest wykorzystywany powtarzalnie, najlepiej jak jest umieści się go w pamięci notatnikowej i tam właśnie jest dostępny wtedy dane są pobierane z pamięci głównej tylko raz 17

18 optymalizacja hierarchii pamięci z drugiej strony, jeżeli kod i dane interferują w pamięci notatnikowej, czyli zajmują tam te same miejsca, albo gdy dane interferują ze sobą, w ten sposób że ich porcje są odwzorowane na te same bloki w pamięci notatnikowej, to wtedy wydajność znacznie spada 18

19 optymalizacja hierarchii pamięci w najgorszym razie, pamięć notatnikowa nic nie przyspiesza, czyli odczyt, zapis i pobieranie instrukcji nie są szybsze niż w przypadku pamięci głównej system może mieć oddzielne pamięci notatnikowe instrukcji i danych, może też mieć wspólną pamięć notatnikową dla instrukcji i danych 19

20 optymalizacja hierarchii pamięci system ze stronicowaniem ma inny typ pamięci notatnikowej TLB (translationlookaside buffer), do przechowywania informacji o translacji adresów wirtualnych w fizyczne, i odwrotnie 20

21 wpływ pamięci notatnikowej na przykład optymalizację jak efektywność wykonania programu zmienia się z odstępami między indeksami, z jaką następuje dostęp do tablicy gdy odległości są większe niż 32, efektywność maleje 21

22 wpływ pamięci notatnikowej na optymalizację 4 wersje mnożenia macierzy w j. Fortran MM: klasyczne (potrójnie zagnieżdżona pętla do mnożenia A przez B) MMT: z transpozycją macierzy A w pamięci MMB: z podziałem pętli na bloki MMBT: z transpozycją macierzy A i podziałem pętli na bloki 22

23 mnożenie macierzy [Muchnick1997] 23

24 wpływ pamięci notatnikowej na optymalizację efektywność klasycznej wersji jest zależna od rozmiaru macierzy i jej organizacji, i różni się nawet o współczynnik 14 efektywność pozostałych wersji jest bliska maksymalnej i jest stabilna 24

25 optymalizacja pamięci notatnikowej instrukcji cel: zwiększenie ilości trafień 2 podejścia interproceduralne 1 podejście intraproceduralne 3 podejścia i takie i takie 25

26 optymalizacja pamięci notatnikowej instrukcji pobieranie instrukcji wsparte sprzętowo pobieranie sekwencyjne albo z wybranej ścieżki pobieranie instrukcji wsparte programowo pobieranie do pamięci notatnikowej instrukcji znajdujących się w bloku o podanym adresie: iprefetch address 26

27 optymalizacja pamięci notatnikowej instrukcji pobieranie instrukcji wsparte programowo stosowane dla bloków kodu pobieranych pierwszy raz, albo dla bloków stosowanych powtarzalnie programowe wsparcie jedynie wtedy, gdy nie ma sprzętowego 27

28 sortowanie procedur najprostszym i najefektywniejszym zastosowaniem optymalizacji pamięci notatnikowej instrukcji jest sortowanie statycznie powiązanych procedur, zgodnie z relacjami ich wywołania i częstotliwością stosowania 28

29 sortowanie procedur celem jest: umieszczenie procedur blisko wywołań w pamięci wirtualnej, aby ograniczyć ruch stron umieszczenie często stosowanych i powiązanych procedur razem, aby zmniejszyć prawdopodobieństwo kolizji z innymi procedurami w pamięci notatnikowej 29

30 sortowanie procedur jeżeli jest dostępny wynik profilowania (dynamicznej analizy zachowania się programu), należy go uwzględnić jeżeli nie, należy posłużyć się heurystyką, która umieszcza procedury, które się często wywołują blisko siebie (wywołania w pętli powinny być ważniejsze od wywołań spoza pętli) 30

31 sortowanie procedur aby implementować tę ideę, posłużymy się nieskierowanym statycznym grafem wywołań, gdzie każda krawędź jest etykietowana liczbą razy, z jaką dwie procedury na obu jej końcach wywołują tę drugą procedurę 31

32 sortowanie procedur następnie scalamy graf w etapy, na każdym etapie wybierając krawędź o najwyższej wadze i łącząc węzły w jeden, scalając odpowiednie krawędzie i dodając wagi scalanych krawędzi 32

33 sortowanie procedur węzły, które zostały scalone, są umieszczone po sobie w końcowym uporządkowaniu procedur, z wagami połączeń w oryginalnym grafie stosowanymi do wyznaczenia ich wzajemnego porządku 33

34 sortowanie procedur algorytm ICAN tego procesu to procedura Proc_Position( ) ICAN - Informal Compiler Algorithm Notation rodzaj notacji (pseudokodu) do opisu algorytmów ICAN wywodzi się z C, Pascala, Moduli-2 plus naturalna notacja 34

35 sortowanie procedur [Muchnick1997] 35

36 sortowanie procedur funkcja Coalesce_Nodes(T,A,weight,psweight,p1,p2) scala węzły p1 i p2 w jeden węzeł a procedura Flatten(T) trawersuje drzewo binarne reprezentowane przez sekwencję T z lewej do prawej, i tworzy sekwencję liści (Flatten(T)nie jest tu wprost pokazana) 36

37 sortowanie procedur [Muchnick1997] 37

38 graf przepływu w sortowaniu procedur [Muchnick1997] 38

39 graf przepływu wpierw scalamy P2 i P4 do postaci [P2,P4] następnie scalamy P3 i P6 do postaci [P3,P6], potem P5 i [P2,P4], aby otrzymać [P5,[P2,P4]] ostateczny wynik to: [[P1,[P3,P6],[P5,[P2,P4]]],[P7,P8]] 39

40 umieszczenie procedury na krawędzi bloku wymaga modyfikacji konsolidatora, aby umieszczał każdą procedurę na krawędzi bloku w pamięci notatnikowej instrukcji pozwoli to w kolejnych fazach kompilacji pozycjonować często wykonywane segmenty kodu, takie jak pętle, aby zajmowały jak najmniejszą liczbę bloków pamięci notatnikowej 40

41 umieszczenie procedury na krawędzi bloku oraz pozwoli umieścić je blisko albo na krawędzi bloku, ułatwiając zmniejszenie braku trafień w pamięci notatnikowej i ułatwi pobieranie całych grup instrukcji przez superskalarny CPU w celu ich jednoczesnego wykonania w jednym cyklu zegara 41

42 umieszczenie procedury na krawędzi bloku gdy większość bloków jest krótka (4 albo 8 instrukcji), ułatwia to utrzymywanie początków bloków daleko od końca bloków pamięci notatnikowej kompilator może zbierać statystyki, a wyniki profilowania mogą być wykorzystane do oceny, czy umieszczanie procedury na krawędzi jest korzystne 42

43 intraproceduralne pozycjonowanie kodu podejście od dołu do góry Pettisa i Hansena z 1990 roku cel: przesunięcie rzadko wykonywanego kodu poza główną część kodu, oraz: wyrównanie kodu (usunięcie gałęzi niewarunkowych i umieszczenie jak najwięcej gałęzi warunkowych na ścieżce opadającej) 43

44 intraproceduralne pozycjonowanie kodu co powoduje, że większy fragment instrukcji pobieranych do pamięci notatnikowej jest faktycznie wykonywany odmiennie niż w sortowaniu procedur, ten proces jest przeprowadzany podczas kompilacji każdej procedury 44

45 intraproceduralne pozycjonowanie kodu aby to zrobić, zakłada się, że na krawędziach grafu przepływu procedury podane są częstotliwości ich wykonania, uzyskane przez profilowanie albo szacowanie 45

46 intraproceduralne pozycjonowanie kodu algorytm wykonuje przeszukiwanie wstępujące grafu przepływu, budując łańcuchy bloków podstawowych, które być powinny umieszczone jako kod wyrównany, ponieważ krawędzie są wykonywane często 46

47 algorytm pozycjonowania bloków bazowych początkowo, każdy blok bazowy jest sam łańcuchem następnie, w kolejnych krokach, dwa łańcuchy, których odpowiednio ogon i głowa są połączone krawędzią o najwyższej częstotliwości wykonań, są scalone 47

48 algorytm pozycjonowania bloków bazowych jeżeli najwyższa częstotliwość występuje na krawędzi, która nie łączy ogona łańcucha z głową innego łańcucha, łańcuchy nie mogą być scalone na koniec, dokonuje się umieszczenia bloku bazowego poprzez wybór łańcucha wejściowego i przetwarzanie innych łańcuchów zgodnie z wagą połączeń 48

49 algorytm pozycjonowania Block_Position(B,E,r,freq) B zbiór węzłów (bloków bazowych) E zbiór krawędzi r węzeł wejściowy freq odwzorowanie krawędzi na częstość wykonania 49

50 algorytm pozycjonowania[muchnick1997] 50

51 algorytm pozycjonowania 51

52 przykład pozycjonowania bloków bazowych rozważmy przykład [Muchnick1997] 52

53 przykład pozycjonowania bloków bazowych krawędź o największej częstości wykonania jest od B1 do B2, stąd [B1,B2] następna krawędź o największej częstości wykonania jest od B2 do B4, stąd sekwencja jest rozszerzona do [B1,B2,B4] podobnie dodaje się entry oraz B8 w kolejnych dwóch krokach, stąd mamy: [entry,b1,b2,b4,b8] 53

54 przykład pozycjonowania bloków bazowych 54

55 przykład pozycjonowania bloków bazowych następna krawędź o największej częstości wykonania jest od B9 do exit, stąd [B9,exit] w kolejnych krokach [B9,exit] jest rozszerzona do [B6,B9,exit] dwie nowe sekwencje są utworzone [B3,B7] i [B5] 55

56 przykład pozycjonowania bloków bazowych 56

57 przykład pozycjonowania bloków bazowych następnie obliczamy funkcję edges(), podającą liczbę krawędzi do innych sekwencji: edges([entry,b1,b2,b4,b8])=2 edges([b3,b7])=1 edges([b5])=1 edges([b6,b9,exit])=0 57

58 przykład pozycjonowania bloków bazowych następnie porządkujemy sekwencje tak, że ta z entry jest pierwsza, potem są sekwencje zgodnie z porządkiem określonym funkcją edges() na koniec, poprawiamy kod dodając i usuwając gałęzie, aby graf przepływu był równoważny co do efektu z grafem oryginalnym 58

59 wynik intraproceduralnego pozycjonowania kodu [Muchnick1997] 59

60 podział procedury zwiększa efektywność algorytmów sortowania procedur i intraproceduralnego pozycjonowania kodu każda procedura jest dzielona na składnik pierwotny i wtórny pierwotny: zawiera często wykonywane bloki bazowe wtórny: rzadko wykonywane bloki bazowe 60

61 podział procedury to powoduje, że składniki pierwotne są umieszczane blisko siebie w jednej sekcji, podobnie jak wtórne podział procedury wymaga dopasowania granic między składnikami obszary oznaczone p i s oznaczają kod pierwotny i kod wtórny 61

62 podział procedury [Muchnick1997] 62

63 kombinacja procedur intra- i interproceduralnych zmiana kolejności instrukcji w pamięci i rezygnacja z umieszczania pewnych instrukcji w pamięci notatnikowej, doktorat Scotta McFarlinga, Stanford Univ analiza, czy warto wstawiać procedurę (w miejsce jej wywołania) McFarling procedure inlining 63

64 zastąpienie elementów macierzy skalarami jeżeli zastąpimy dostępy do C(i,j) przez zmienną ct, a ct jest przydzielona do rejestru, zmniejszamy liczbę dostępów do pamięci do 2(N 3 N 2) czyli blisko 2 razy skalar zamiast C(i,j) (czasowo) 64

65 mnożenie macierzy [Muchnick1997] 65

66 przykład: rekurencja HIR użycie dwóch zmiennych tymczasowych, t0 i t1 zmniejsza dostępy do pamięci o 40% HIR: High-Level Intermediate Representation 66

67 przykład: rekurencja HIR [Muchnick1997] 67

68 zastąpienie przez skalar zastępowanie zmiennych z indeksami przez skalary, co pozwala przydzielać je do rejestrów, nazywa się zastępowaniem przez skalar (scalar replacement) albo potokowym przetwarzaniem rejestrów (register pipelining) 68

69 zastąpienie przez skalar pokażmy tę metodę w przypadku zagnieżdżeń pętli, nie zawierającej warunków aby ją zastosować, potrzebujemy stałej liczby iteracji pętli pomiędzy odwołaniami do zmiennych indeksowanych 69

70 zastąpienie przez skalar możemy też ułatwić zastąpienie przez skalar poprzez zamianę pętli i fuzję pętli 70

71 zamiana pętli [Muchnick1997] 71

72 fuzja pętli [Muchnick1997] 72

73 zastąpienie przez skalar pętli z if stosujemy trzy tymczasowe zmienne: t2 zamiast a[i-2] t1 zamiast a[i-1] t0 zamiast a[i] 73

74 pętle z if [Muchnick1997] 74

75 kombinacje zastąpień skalarami wpierw zastąpienie skalarami wartości x[i] potem rozwinięcie pętli wewnętrznej (przez współczynnik 3, arbitralny) następnie zastąpienie skalarami wartości y[j] 75

76 zastąpienie skalarami x[i] [Muchnick1997] 76

77 rozwinięcie pętli wewnętrznej [Muchnick1997] 77

78 zastąpienie skalarami y[j] [Muchnick1997] 78

79 optymalizacja pamięci notatnikowej danych zajmiemy się teraz optymalizacją wykorzystania pamięci notatnikowej do kodu numerycznego (inaczej naukowego) przez kod numeryczny rozumiemy program, zwykle w Fortranie, który operuje na dużych tablicach danych, zazwyczaj na wartościach zmiennoprzecinkowych 79

80 optymalizacja pamięci notatnikowej danych wiele z tych programów stosuje wzorce wykorzystania danych o regularnej strukturze, które dają możliwość ponownego wykorzystania danych zanim zostaną usunięte z pamięci notatnikowej 80

81 optymalizacja pamięci notatnikowej danych dysponujemy globalnym układem danych, który zakłada, że mamy dostępny cały program do analizy i transformacji, stąd informacja zebrana przez wszystkie części programu może być wykorzystana przez kompilator do ułożenia wszystkich tablic tak, aby zminimalizować konflikty w pamięci notatnikowej danych 81

82 optymalizacja pamięci notatnikowej danych idea optymalizacji pamięci notatnikowej danych odnosi się do pojedynczych procedur, które eliminują opóźnienie wynikające z pobierania danych z pamięci do pamięci notatnikowej i zapamiętania w niej wyników z rejestrów 82

83 optymalizacja pamięci notatnikowej danych ten typ optymalizacji osiągnął najlepsze wyniki dla kodu numerycznego, któremu większość czasu zajmuje wykonywanie zagnieżdżonych pętli operujących na macierzach wartości numerycznych 83

84 optymalizacja pamięci notatnikowej danych optymalizacje wpierw wyjaśniają wzorce ponownego używania danych w pętlach, a następnie transformują je do postaci wykazującej lokalność odniesienia to znaczy stosują te same lokalizacje danych, albo bloki pamięci notatnikowej są tak blisko w czasie, że wykonują się bez konieczności usuwania danych z pamięci notatnikowej 84

85 optymalizacja pamięci notatnikowej danych główną techniką do określenia wzorców ponownego używania danych w pętlach jest analiza zależności, opisywana oddzielnie oraz transformacja zagnieżdżeń pętli, jako podejście do zbliżenia wykorzystania danych w czasie (transformacje te nie powinny zmieniać wyników obliczeń!) 85

86 transformacje zmieniające wynik obliczeń (0.0, 0.0, 1.0, n) 86

87 transformacje zmieniające wynik obliczeń pętle HIR sumują te same sekwencje wartości zmiennoprzecinkowych, ale dają odmienne wyniki: 0.0, 0.0, 1.0 i n HIR oznacza High-Level Intermediate Representation (sposób lub język reprezentacji) 87

88 optymalizacja pamięci notatnikowej danych istotna jest również technika wyprzedzającego pobierania danych, ukrywającego opóźnienie pobierania danych stosuje się też współdziałanie optymalizacji skalarnych i optymalizacji pamięci, optymalizację pamięci notatnikowej danych dla wskaźników, dynamiczne przydzielanie obiektów danych 88

89 optymalizacja pamięci notatnikowej danych przeprowadza się również integrację optymalizacji pamięci notatnikowej instrukcji (I-cache) i pamięci notatnikowej danych (D-cache) 89

90 wnioski w prezentacji skupiono się na optymalizacji hierarchii pamięci, w szczególności optymalizacji wykorzystania pamięci notatnikowej instrukcji i pamięci notatnikowej danych 90

91 wnioski pozostałe kwestie dotyczące optymalizacji dostępu do pamięci, operacji na pamięci, alokacji rejestrów i ograniczenia wykorzystywanej pamięci, są przedmiotem kolejnych spotkań 91

POZNA SUPERCOMPUTING AND NETWORKING. Zwikszanie efektywnoci programów optymalizacja pamici cz2

POZNA SUPERCOMPUTING AND NETWORKING. Zwikszanie efektywnoci programów optymalizacja pamici cz2 Zwikszanie efektywnoci programów optymalizacja pamici cz2 literatura podstawowa [Aho2002] Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman, Kompilatory. Reguły, metody i narzdzia, WNT 2002 (tłum. pierwszego

Bardziej szczegółowo

Optymalizacja oprogramowania - wprowadzenie

Optymalizacja oprogramowania - wprowadzenie Optymalizacja oprogramowania - wprowadzenie Poznaskie Centrum Superkomputerowo Sieciowe Projekt jest współfinansowany ze rodków Europejskiego Funduszu Rozwoju Regionalnego w ramach Programu Operacyjnego

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

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

System pamięci. Pamięć wirtualna

System pamięci. Pamięć wirtualna System pamięci Pamięć wirtualna Pamięć wirtualna Model pamięci cache+ram nie jest jeszcze realistyczny W rzeczywistych systemach działa wiele programów jednocześnie Każdy może używać tej samej przestrzeni

Bardziej szczegółowo

Tworzenie programów równoległych. Krzysztof Banaś Obliczenia równoległe 1

Tworzenie programów równoległych. Krzysztof Banaś Obliczenia równoległe 1 Tworzenie programów równoległych Krzysztof Banaś Obliczenia równoległe 1 Tworzenie programów równoległych W procesie tworzenia programów równoległych istnieją dwa kroki o zasadniczym znaczeniu: wykrycie

Bardziej szczegółowo

Podstawy programowania.

Podstawy programowania. Kod przedmiotu: PPR Podstawy programowania. Rodzaj przedmiotu: kierunkowy; obowiązkowy Wydział: Informatyki Kierunek: Informatyka Specjalność (specjalizacja): - Poziom studiów: pierwszego stopnia Profil

Bardziej szczegółowo

Podstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno

Podstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno Instrukcja laboratoryjna 5 Podstawy programowania 2 Temat: Drzewa binarne Przygotował: mgr inż. Tomasz Michno 1 Wstęp teoretyczny Drzewa są jedną z częściej wykorzystywanych struktur danych. Reprezentują

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

Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy)

Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy) Rok akademicki 2012/2013, Wykład nr 2 2/25 Plan wykładu nr 2 Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia niestacjonarne I stopnia Rok akademicki 2012/2013

Bardziej szczegółowo

Modelowanie procesów współbieżnych

Modelowanie procesów współbieżnych Modelowanie procesów współbieżnych dr inż. Maciej Piotrowicz Katedra Mikroelektroniki i Technik Informatycznych PŁ piotrowi@dmcs.p.lodz.pl http://fiona.dmcs.pl/~piotrowi -> Modelowanie... Literatura M.

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

SYSTEMY OPERACYJNE WYKLAD 4 - zarządzanie pamięcią

SYSTEMY OPERACYJNE WYKLAD 4 - zarządzanie pamięcią Wrocław 2007 SYSTEMY OPERACYJNE WYKLAD 4 - zarządzanie pamięcią Paweł Skrobanek C-3, pok. 323 e-mail: pawel.skrobanek@pwr.wroc.pl www.equus.wroc.pl/studia.html 1 PLAN: 2. Pamięć rzeczywista 3. Pamięć wirtualna

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 Wydajność obliczeń Dla wielu programów wydajność obliczeń można traktować jako wydajność pobierania z pamięci

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

Przetwarzanie potokowe pipelining

Przetwarzanie potokowe pipelining Przetwarzanie potokowe pipelining (część A) Przypomnienie - implementacja jednocyklowa 4 Add Add PC Address memory ister # isters Address ister # ister # memory Wstęp W implementacjach prezentowanych tydzień

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

Optymalizacja skalarna. Piotr Bała. bala@mat.uni.torun.pl. Wykład wygłoszony w ICM w czercu 2000

Optymalizacja skalarna. Piotr Bała. bala@mat.uni.torun.pl. Wykład wygłoszony w ICM w czercu 2000 Optymalizacja skalarna - czerwiec 2000 1 Optymalizacja skalarna Piotr Bała bala@mat.uni.torun.pl Wykład wygłoszony w ICM w czercu 2000 Optymalizacja skalarna - czerwiec 2000 2 Optymalizacja skalarna Czas

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

Wstęp do informatyki. Maszyna RAM. Schemat logiczny komputera. Maszyna RAM. RAM: szczegóły. Realizacja algorytmu przez komputer

Wstęp do informatyki. Maszyna RAM. Schemat logiczny komputera. Maszyna RAM. RAM: szczegóły. Realizacja algorytmu przez komputer Realizacja algorytmu przez komputer Wstęp do informatyki Wykład UniwersytetWrocławski 0 Tydzień temu: opis algorytmu w języku zrozumiałym dla człowieka: schemat blokowy, pseudokod. Dziś: schemat logiczny

Bardziej szczegółowo

Tworzenie programów równoległych. Krzysztof Banaś Obliczenia równoległe 1

Tworzenie programów równoległych. Krzysztof Banaś Obliczenia równoległe 1 Tworzenie programów równoległych Krzysztof Banaś Obliczenia równoległe 1 Tworzenie programów równoległych W procesie tworzenia programów równoległych istnieją dwa kroki o zasadniczym znaczeniu: wykrycie

Bardziej szczegółowo

architektura komputerów w. 8 Zarządzanie pamięcią

architektura komputerów w. 8 Zarządzanie pamięcią architektura komputerów w. 8 Zarządzanie pamięcią Zarządzanie pamięcią Jednostka centralna dysponuje zwykle duża mocą obliczeniową. Sprawne wykorzystanie możliwości jednostki przetwarzającej wymaga obecności

Bardziej szczegółowo

Wydajność obliczeń a architektura procesorów. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

Wydajność obliczeń a architektura procesorów. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1 Wydajność obliczeń a architektura procesorów Krzysztof Banaś Obliczenia Wysokiej Wydajności 1 Wydajność komputerów Modele wydajności-> szacowanie czasu wykonania zadania Wydajność szybkość realizacji wyznaczonych

Bardziej szczegółowo

Paradygmaty programowania

Paradygmaty programowania Paradygmaty programowania Jacek Michałowski, Piotr Latanowicz 15 kwietnia 2014 Jacek Michałowski, Piotr Latanowicz () Paradygmaty programowania 15 kwietnia 2014 1 / 12 Zadanie 1 Zadanie 1 Rachunek predykatów

Bardziej szczegółowo

Schematy zarzadzania pamięcia

Schematy zarzadzania pamięcia Schematy zarzadzania pamięcia Segmentacja podział obszaru pamięci procesu na logiczne jednostki segmenty o dowolnej długości. Postać adresu logicznego: [nr segmentu, przesunięcie]. Zwykle przechowywana

Bardziej szczegółowo

Sprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów

Sprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów Sprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów przeznaczonych do wykonania w komputerze (ang. software).

Bardziej szczegółowo

wagi cyfry 7 5 8 2 pozycje 3 2 1 0

wagi cyfry 7 5 8 2 pozycje 3 2 1 0 Wartość liczby pozycyjnej System dziesiętny W rozdziale opiszemy pozycyjne systemy liczbowe. Wiedza ta znakomicie ułatwi nam zrozumienie sposobu przechowywania liczb w pamięci komputerów. Na pierwszy ogień

Bardziej szczegółowo

Programowanie komputerów

Programowanie komputerów Programowanie komputerów Wykład 1-2. Podstawowe pojęcia Plan wykładu Omówienie programu wykładów, laboratoriów oraz egzaminu Etapy rozwiązywania problemów dr Helena Dudycz Katedra Technologii Informacyjnych

Bardziej szczegółowo

Spis treści. I. Skuteczne. Od autora... Obliczenia inżynierskie i naukowe... Ostrzeżenia...XVII

Spis treści. I. Skuteczne. Od autora... Obliczenia inżynierskie i naukowe... Ostrzeżenia...XVII Spis treści Od autora..................................................... Obliczenia inżynierskie i naukowe.................................. X XII Ostrzeżenia...................................................XVII

Bardziej szczegółowo

PageRank i HITS. Mikołajczyk Grzegorz

PageRank i HITS. Mikołajczyk Grzegorz PageRank i HITS Mikołajczyk Grzegorz PageRank Metoda nadawania indeksowanym stronom internetowym określonej wartości liczbowej, oznaczającej jej jakość. Algorytm PageRank jest wykorzystywany przez popularną

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

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach? Część XVIII C++ Funkcje Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach? Umiemy już podzielić nasz

Bardziej szczegółowo

3 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.06 Rok akad. 2011/2012 2 / 22

3 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.06 Rok akad. 2011/2012 2 / 22 ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH struktury procesorów ASK SP.06 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 1 Maszyny wirtualne 2 3 Literatura c Dr inż. Ignacy

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

Obliczenia Wysokiej Wydajności

Obliczenia Wysokiej Wydajności Obliczenia wysokiej wydajności 1 Wydajność obliczeń Wydajność jest (obok poprawności, niezawodności, bezpieczeństwa, ergonomiczności i łatwości stosowania i pielęgnacji) jedną z najważniejszych charakterystyk

Bardziej szczegółowo

ALGORYTMY I STRUKTURY DANYCH

ALGORYTMY I STRUKTURY DANYCH ALGORYTMY I STRUKTURY DANYCH Temat : Drzewa zrównoważone, sortowanie drzewiaste Wykładowca: dr inż. Zbigniew TARAPATA e-mail: Zbigniew.Tarapata@isi.wat.edu.pl http://www.tarapata.strefa.pl/p_algorytmy_i_struktury_danych/

Bardziej szczegółowo

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE Nazwa przedmiotu: Algorytmy i programowanie Algorithms and Programming Kierunek: Zarządzanie i Inżynieria Produkcji Rodzaj przedmiotu: kierunkowy Poziom studiów: studia I stopnia forma studiów: studia

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy. PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy. 1. Instrukcję case t of... w przedstawionym fragmencie programu moŝna zastąpić: var t : integer; write( Podaj

Bardziej szczegółowo

Języki programowania zasady ich tworzenia

Języki programowania zasady ich tworzenia Strona 1 z 18 Języki programowania zasady ich tworzenia Definicja 5 Językami formalnymi nazywamy każdy system, w którym stosując dobrze określone reguły należące do ustalonego zbioru, możemy uzyskać wszystkie

Bardziej szczegółowo

Architektura Systemów Komputerowych

Architektura Systemów Komputerowych Architektura Systemów Komputerowych Wykład 7: Potokowe jednostki wykonawcze Dr inż. Marek Mika Państwowa Wyższa Szkoła Zawodowa im. Jana Amosa Komeńskiego W Lesznie Plan Budowa potoku Problemy synchronizacji

Bardziej szczegółowo

Zarządzanie zasobami pamięci

Zarządzanie zasobami pamięci Zarządzanie zasobami pamięci System operacyjny wykonuje programy umieszczone w pamięci operacyjnej. W pamięci operacyjnej przechowywany jest obecnie wykonywany program (proces) oraz niezbędne dane. Jeżeli

Bardziej szczegółowo

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE WINDOWS 1 SO i SK/WIN 005 Plik wymiany Pamięć wirtualna 2 SO i SK/WIN Plik wymiany - rodzaj pamięci wirtualnej komputerów. Plik ten służy do tymczasowego przechowywania

Bardziej szczegółowo

Optymalizacja kodu. Ze wszystkich metod optymalizacji kodu programowego zwrócimy uwagę na: Usunięcie (po możliwości) skoków danych.

Optymalizacja kodu. Ze wszystkich metod optymalizacji kodu programowego zwrócimy uwagę na: Usunięcie (po możliwości) skoków danych. Optymalizacja kodu Ze wszystkich metod optymalizacji kodu programowego zwrócimy uwagę na: Usunięcie (po możliwości) skoków danych Rozwijanie pętli Opcje kompilatora 1 Usunięcie skoków danych: for(i=1;

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

Architektura komputerów

Architektura komputerów Architektura komputerów Wykład 7 Jan Kazimirski 1 Pamięć podręczna 2 Pamięć komputera - charakterystyka Położenie Procesor rejestry, pamięć podręczna Pamięć wewnętrzna pamięć podręczna, główna Pamięć zewnętrzna

Bardziej szczegółowo

Testowanie i walidacja oprogramowania

Testowanie i walidacja oprogramowania Testowanie i walidacja oprogramowania Inżynieria oprogramowania, sem.5 cz. 5 Rok akademicki 2010/2011 Dr inż. Wojciech Koziński Przykład Obliczmy sumę: 0+1+2+...+i, i є [0,100] read(i); if((i < 0)(i >

Bardziej szczegółowo

2012-01-16 PLAN WYKŁADU BAZY DANYCH INDEKSY - DEFINICJE. Indeksy jednopoziomowe Indeksy wielopoziomowe Indeksy z użyciem B-drzew i B + -drzew

2012-01-16 PLAN WYKŁADU BAZY DANYCH INDEKSY - DEFINICJE. Indeksy jednopoziomowe Indeksy wielopoziomowe Indeksy z użyciem B-drzew i B + -drzew 0-0-6 PLAN WYKŁADU Indeksy jednopoziomowe Indeksy wielopoziomowe Indeksy z użyciem B-drzew i B + -drzew BAZY DANYCH Wykład 9 dr inż. Agnieszka Bołtuć INDEKSY - DEFINICJE Indeksy to pomocnicze struktury

Bardziej szczegółowo

Programowanie w VB Proste algorytmy sortowania

Programowanie w VB Proste algorytmy sortowania Programowanie w VB Proste algorytmy sortowania Sortowanie bąbelkowe Algorytm sortowania bąbelkowego polega na porównywaniu par elementów leżących obok siebie i, jeśli jest to potrzebne, zmienianiu ich

Bardziej szczegółowo

Wykład 7. Zarządzanie pamięcią

Wykład 7. Zarządzanie pamięcią Wykład 7 Zarządzanie pamięcią -1- Świat idealny a świat rzeczywisty W idealnym świecie pamięć powinna Mieć bardzo dużą pojemność Mieć bardzo krótki czas dostępu Być nieulotna (zawartość nie jest tracona

Bardziej szczegółowo

Plan wykładu. Kompilatory. Literatura. Translatory. Literatura Translatory. Paweł J. Matuszyk

Plan wykładu. Kompilatory. Literatura. Translatory. Literatura Translatory. Paweł J. Matuszyk Plan wykładu (1) Paweł J. Matuszyk AGH Kraków 1 2 tor leksykalny tor syntaktyczny Generator pośredniego Generator wynikowego Hopcroft J. E., Ullman J. D., Wprowadzenie do teorii automatów, języków i obliczeń,

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

Definicje. Algorytm to:

Definicje. Algorytm to: Algorytmy Definicje Algorytm to: skończony ciąg operacji na obiektach, ze ściśle ustalonym porządkiem wykonania, dający możliwość realizacji zadania określonej klasy pewien ciąg czynności, który prowadzi

Bardziej szczegółowo

Modelowanie i Programowanie Obiektowe

Modelowanie i Programowanie Obiektowe Modelowanie i Programowanie Obiektowe Wykład I: Wstęp 20 październik 2012 Programowanie obiektowe Metodyka wytwarzania oprogramowania Metodyka Metodyka ustandaryzowane dla wybranego obszaru podejście do

Bardziej szczegółowo

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre) Uwagi dotyczące notacji kodu! Wyrazy drukiem prostym -- słowami języka VBA. Wyrazy drukiem pochyłym -- inne fragmenty kodu. Wyrazy w [nawiasach kwadratowych] opcjonalne fragmenty kodu (mogą być, ale nie

Bardziej szczegółowo

Porównanie wydajności CUDA i OpenCL na przykładzie równoległego algorytmu wyznaczania wartości funkcji celu dla problemu gniazdowego

Porównanie wydajności CUDA i OpenCL na przykładzie równoległego algorytmu wyznaczania wartości funkcji celu dla problemu gniazdowego Porównanie wydajności CUDA i OpenCL na przykładzie równoległego algorytmu wyznaczania wartości funkcji celu dla problemu gniazdowego Mariusz Uchroński 3 grudnia 2010 Plan prezentacji 1. Wprowadzenie 2.

Bardziej szczegółowo

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. 1. Rodzaje pamięci używanej w programach Pamięć komputera, dostępna dla programu,

Bardziej szczegółowo

Bazy danych wykład dwunasty. dwunasty Wykonywanie i optymalizacja zapytań SQL 1 / 36

Bazy danych wykład dwunasty. dwunasty Wykonywanie i optymalizacja zapytań SQL 1 / 36 Bazy danych wykład dwunasty Wykonywanie i optymalizacja zapytań SQL Konrad Zdanowski Uniwersytet Kardynała Stefana Wyszyńskiego, Warszawa dwunasty Wykonywanie i optymalizacja zapytań SQL 1 / 36 Model kosztów

Bardziej szczegółowo

prowadzący dr ADRIAN HORZYK /~horzyk e-mail: horzyk@agh tel.: 012-617 Konsultacje paw. D-13/325

prowadzący dr ADRIAN HORZYK /~horzyk e-mail: horzyk@agh tel.: 012-617 Konsultacje paw. D-13/325 PODSTAWY INFORMATYKI WYKŁAD 8. prowadzący dr ADRIAN HORZYK http://home home.agh.edu.pl/~ /~horzyk e-mail: horzyk@agh agh.edu.pl tel.: 012-617 617-4319 Konsultacje paw. D-13/325 DRZEWA Drzewa to rodzaj

Bardziej szczegółowo

CUDA Median Filter filtr medianowy wykorzystujący bibliotekę CUDA sprawozdanie z projektu

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

Bardziej szczegółowo

Architektura Systemów Komputerowych

Architektura Systemów Komputerowych Architektura Systemów Komputerowych Wykład 10: Redukcja opóźnień w procesorach superpotokowych i superskalarnych Dr inż. Marek Mika Państwowa Wyższa Szkoła Zawodowa im. Jana Amosa Komeńskiego W Lesznie

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

Programowanie procesorów graficznych GPGPU

Programowanie procesorów graficznych GPGPU Programowanie procesorów graficznych GPGPU 1 GPGPU Historia: lata 80 te popularyzacja systemów i programów z graficznym interfejsem specjalistyczne układy do przetwarzania grafiki 2D lata 90 te standaryzacja

Bardziej szczegółowo

Podstawowe struktury danych

Podstawowe struktury danych Podstawowe struktury danych 1) Listy Lista to skończony ciąg elementów: q=[x 1, x 2,..., x n ]. Skrajne elementy x 1 i x n nazywamy końcami listy, a wielkość q = n długością (rozmiarem) listy. Szczególnym

Bardziej szczegółowo

Zakres tematyczny dotyczący podstaw programowania Microsoft Office Excel za pomocą VBA

Zakres tematyczny dotyczący podstaw programowania Microsoft Office Excel za pomocą VBA Zakres tematyczny dotyczący podstaw programowania Microsoft Office Excel za pomocą VBA 1 Rozdział 1 Praca z makropoleceniami Opis: W tym rozdziale kursanci przechodzą przez wprowadzenie do programowania

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

Literatura. adów w cyfrowych. Projektowanie układ. Technika cyfrowa. Technika cyfrowa. Bramki logiczne i przerzutniki.

Literatura. adów w cyfrowych. Projektowanie układ. Technika cyfrowa. Technika cyfrowa. Bramki logiczne i przerzutniki. Literatura 1. D. Gajski, Principles of Digital Design, Prentice- Hall, 1997 2. C. Zieliński, Podstawy projektowania układów cyfrowych, PWN, Warszawa 2003 3. G. de Micheli, Synteza i optymalizacja układów

Bardziej szczegółowo

UML cz. III. UML cz. III 1/36

UML cz. III. UML cz. III 1/36 UML cz. III UML cz. III 1/36 UML cz. III 2/36 Diagram współpracy Diagramy współpracy: prezentują obiekty współdziałające ze sobą opisują rolę obiektów w scenariuszu mogą prezentować wzorce projektowe UML

Bardziej szczegółowo

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia ZP/ITS/11/2012 Załącznik nr 1a do SIWZ ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia Przedmiotem zamówienia jest: Przygotowanie zajęć dydaktycznych w postaci kursów e-learningowych przeznaczonych

Bardziej szczegółowo

Wybrane wymagania dla informatyki w gimnazjum i liceum z podstawy programowej

Wybrane wymagania dla informatyki w gimnazjum i liceum z podstawy programowej Wybrane wymagania dla informatyki w gimnazjum i liceum z podstawy programowej Spis treści Autor: Marcin Orchel Algorytmika...2 Algorytmika w gimnazjum...2 Algorytmika w liceum...2 Język programowania w

Bardziej szczegółowo

Systemy operacyjne. wykład dr Marcin Czarnota laboratorium mgr Radosław Maj

Systemy operacyjne. wykład dr Marcin Czarnota laboratorium mgr Radosław Maj Systemy operacyjne wykład dr Marcin Czarnota laboratorium mgr Radosław Maj Plan wykładów 1. Wprowadzenie, 2. Procesy, wątki i zasoby, 3. Planowanie przydziału procesora, 4. Zarządzanie pamięcią operacyjną,

Bardziej szczegółowo

4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.01 Rok akad. 2011/2012 2 / 24

4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.01 Rok akad. 2011/2012 2 / 24 Wymagania proceduralnych języków wysokiego poziomu ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH modele programowe procesorów ASK MP.01 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad.

Bardziej szczegółowo

a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a[10] 3-2 5 8 12-4 -26 12 45-76

a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a[10] 3-2 5 8 12-4 -26 12 45-76 . p. 1 Algorytmem nazywa się poddający się interpretacji skończony zbiór instrukcji wykonania zadania mającego określony stan końcowy dla każdego zestawu danych wejściowych W algorytmach mogą występować

Bardziej szczegółowo

Operacje logiczne i struktury sterujące.

Operacje logiczne i struktury sterujące. Operacje logiczne i struktury sterujące. (wspomaganie obliczeń inżynierskich) Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z elementami programowania wysokopoziomowego, a szczególności operacjami

Bardziej szczegółowo

. Podstawy Programowania 1. Wstęp. Arkadiusz Chrobot. 15 października 2015

. Podstawy Programowania 1. Wstęp. Arkadiusz Chrobot. 15 października 2015 Podstawy Programowania 1 Wstęp Arkadiusz Chrobot Zakład Informatyki 15 października 2015 1 / 41 Plan 1 Informacje organizacyjne 2 Bibliografia 3 Wprowadzenie 4 Algorytm 5 System komputerowy 6 Języki programowania

Bardziej szczegółowo

Bazy danych. Plan wykładu. Model logiczny i fizyczny. Operacje na pliku. Dyski. Mechanizmy składowania

Bazy danych. Plan wykładu. Model logiczny i fizyczny. Operacje na pliku. Dyski. Mechanizmy składowania Plan wykładu Bazy danych Wykład 10: Fizyczna organizacja danych w bazie danych Model logiczny i model fizyczny Mechanizmy składowania plików Moduł zarządzania miejscem na dysku i moduł zarządzania buforami

Bardziej szczegółowo

Wykład 8. Pamięć wirtualna. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

Wykład 8. Pamięć wirtualna. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB Wykład 8 Pamięć wirtualna Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB Wprowadzenie Podstawowa idea: System operacyjny pozwala na wykorzystanie pamięci o pojemności większej,

Bardziej szczegółowo

Sposoby zwiększania efektywności systemu Windows

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

Bardziej szczegółowo

Algorytmy sortujące 1

Algorytmy sortujące 1 Algorytmy sortujące 1 Sortowanie Jeden z najczęściej występujących, rozwiązywanych i stosowanych problemów. Ułożyć elementy listy (przyjmujemy: tablicy) w rosnącym porządku Sortowanie może być oparte na

Bardziej szczegółowo

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów Adresowanie obiektów Bit - stan pojedynczego sygnału - wejście lub wyjście dyskretne, bit pamięci Bajt - 8 bitów - wartość od -128 do +127 Słowo - 16 bitów - wartość od -32768 do 32767 -wejście lub wyjście

Bardziej szczegółowo

Witold Komorowski: RISC. Witold Komorowski, dr inż.

Witold Komorowski: RISC. Witold Komorowski, dr inż. Witold Komorowski, dr inż. Koncepcja RISC i przetwarzanie potokowe RISC koncepcja architektury i organizacji komputera Aspekty opisu komputera Architektura Jak się zachowuje? Organizacja Jak działa? Realizacja

Bardziej szczegółowo

1.7. Eksploracja danych: pogłębianie, przeszukiwanie i wyławianie

1.7. Eksploracja danych: pogłębianie, przeszukiwanie i wyławianie Wykaz tabel Wykaz rysunków Przedmowa 1. Wprowadzenie 1.1. Wprowadzenie do eksploracji danych 1.2. Natura zbiorów danych 1.3. Rodzaje struktur: modele i wzorce 1.4. Zadania eksploracji danych 1.5. Komponenty

Bardziej szczegółowo

Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski

Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski : idea Indeksowanie: Drzewo decyzyjne, przeszukiwania binarnego: F = {5, 7, 10, 12, 13, 15, 17, 30, 34, 35, 37, 40, 45, 50, 60} 30 12 40 7 15 35 50 Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski

Bardziej szczegółowo

Systemy wirtualnej rzeczywistości. Komponenty i serwisy

Systemy wirtualnej rzeczywistości. Komponenty i serwisy Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Systemy wirtualnej rzeczywistości Laboratorium Komponenty i serwisy Wstęp: W trzeciej części przedstawione zostaną podstawowe techniki

Bardziej szczegółowo

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga!

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga! Programowanie I O czym będziemy mówili Podstawy programowania w językach proceduralnym ANSI C obiektowym Java Uwaga! podobieństwa w podstawowej strukturze składniowej (zmienne, operatory, instrukcje sterujące...)

Bardziej szczegółowo

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

Opis efektów kształcenia dla modułu zajęć Nazwa modułu: Formalne podstawy informatyki Rok akademicki: 2013/2014 Kod: EIB-1-220-s Punkty ECTS: 2 Wydział: Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej Kierunek: Inżynieria Biomedyczna

Bardziej szczegółowo

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main. Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo

Bardziej szczegółowo

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

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania

Bardziej szczegółowo

Algorytmy i schematy blokowe

Algorytmy i schematy blokowe Algorytmy i schematy blokowe Algorytm dokładny przepis podający sposób rozwiązania określonego zadania w skończonej liczbie kroków; zbiór poleceń odnoszących się do pewnych obiektów, ze wskazaniem porządku,

Bardziej szczegółowo

Algorytm. Krótka historia algorytmów

Algorytm. Krótka historia algorytmów Algorytm znaczenie cybernetyczne Jest to dokładny przepis wykonania w określonym porządku skończonej liczby operacji, pozwalający na rozwiązanie zbliżonych do siebie klas problemów. znaczenie matematyczne

Bardziej szczegółowo

Algebra liniowa z geometrią

Algebra liniowa z geometrią Algebra liniowa z geometrią Maciej Czarnecki 15 stycznia 2013 Spis treści 1 Geometria płaszczyzny 2 1.1 Wektory i skalary........................... 2 1.2 Macierze, wyznaczniki, układy równań liniowych.........

Bardziej szczegółowo

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych 1 Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych 1. Podstawowe operacje logiczne dla cyfr binarnych Jeśli cyfry 0 i 1 potraktujemy tak, jak wartości logiczne fałsz i prawda, to działanie

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

Metody Metody, parametry, zwracanie wartości

Metody Metody, parametry, zwracanie wartości Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Metody Metody, parametry, zwracanie wartości Metody - co to jest i po co? Metoda to wydzielona część klasy, mająca

Bardziej szczegółowo

KARTA KURSU. Języki skryptowe

KARTA KURSU. Języki skryptowe KARTA KURSU Nazwa Nazwa w j. ang. Języki skryptowe Script languages Kod Punktacja ECTS* 3 Koordynator mgr Alfred Budziak Zespół dydaktyczny: dr Olaf Bar mgr Alfred Budziak Opis kursu (cele kształcenia)

Bardziej szczegółowo

Diagramy czynności Na podstawie UML 2.0 Tutorial

Diagramy czynności Na podstawie UML 2.0 Tutorial Diagramy czynności Na podstawie UML 2.0 Tutorial http://sparxsystems.com.au/resources/uml2_tutorial/ Zofia Kruczkiewicz 1 Diagramy czynności 1. Diagramy czyności UML http://sparxsystems.com.au/resources/uml2_tutorial/

Bardziej szczegółowo

Obliczenia na stosie. Wykład 9. Obliczenia na stosie. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 266 / 303

Obliczenia na stosie. Wykład 9. Obliczenia na stosie. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 266 / 303 Wykład 9 J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 266 / 303 stos i operacje na stosie odwrotna notacja polska języki oparte na ONP przykłady programów J. Cichoń, P. Kobylański Wstęp

Bardziej szczegółowo

Algorytmy i struktury danych

Algorytmy i struktury danych POLITECHNIKA KRAKOWSKA - WIEiK KATEDRA AUTOMATYKI i TECHNIK INFORMACYJNYCH Algorytmy i struktury danych www.pk.edu.pl/~zk/aisd_hp.html Wykładowca: dr inż. Zbigniew Kokosiński zk@pk.edu.pl Wykład 5: Algorytmy

Bardziej szczegółowo

Integracja systemów transakcyjnych

Integracja systemów transakcyjnych Integracja systemów transakcyjnych Robert Wrembel Politechnika Poznańska Instytut Informatyki Robert.Wrembel@cs.put.poznan.pl www.cs.put.poznan.pl/rwrembel Alokacja danych Alokacja danych umieszczanie

Bardziej szczegółowo