Metody skrócenia czasu wykonywania fazy regeneracji krotek podczas realizacji złączeń w pamięci operacyjnej

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

Download "Metody skrócenia czasu wykonywania fazy regeneracji krotek podczas realizacji złączeń w pamięci operacyjnej"

Transkrypt

1 Rozdział 22 Metody skrócenia czasu wykonywania fazy regeneracji krotek podczas realizacji złączeń w pamięci operacyjnej Streszczenie. W rozdziale opisano możliwości przyspieszenia fazy regeneracji krotek podczas realizacji algorytmów złączeń na danych znajdujących się w całości w pamięci operacyjnej. Często stosowanym wówczas podejściem jest wydzielenie z łączonych relacji podrelacji zawierających atrybuty złączenia, wykonanie złączenia na tych podrelacjach, co prowadzi do zbudowania indeksu złączeniowego a następnie na jego podstawie wygenerowanie relacji wynikowej. Faza generacji relacji wynikowej zwana także fazą regeneracji krotek stanowi w takim przetwarzaniu element najbardziej czasochłonny. W niniejszym rozdziale przeanalizowano przyczyny tego zjawiska i różne metody skrócenia czasu wykonywania fazy regeneracji. 1 Wstęp Wzrost pojemności pamięci operacyjnych wraz z jednoczesnym spadkiem ich ceny spowodował pojawienie się w ciągu kilkunastu ostatnich lat wielu systemów baz danych, w których podstawowym nośnikiem danych jest pamięć operacyjna. Systemy takie będziemy nazywać systemami baz danych w pamięci operacyjnej lub w skrócie MM DBMS (Main Memory Database Management System). Obecnie istnieje wiele takich systemów, część z nich to nawet rozwiązania komercyjne. Do tej grupy można zaliczyć przykładowo takie systemy jak: DataBlitz znany wcześniej pod nazwą Dalí [1], [11], FastDB [15], Oracle TimesTen [14], Polyhedra [13], extremedb [12]. Z rozwiązań eksperymentalnych wspomnieć należy Monet [2], [10] i Tachyon [7]. Spośród operatorów algebry relacji złączenie jest zwykle operacją najbardziej czasochłonną. Od lat poszukuje się coraz szybszych algorytmów wykonujących tę operację. W systemach typu MM DBMS czynnikiem decydującym o czasie realizacji algorytmów złączeń nie jest liczba dostępów do dysku (dane są przechowywane w pamięci operacyjnej, więc nie ma potrzeby odwoływania się do dysku) ale czas przetwarzania tych danych w pamięci. Stąd konieczne stało się takie przebudowanie klasycznych algorytmów złączeń, by dostosować je do specyfiki przetwarzania tego typu systemów. Jednym z często stosowanych rozwiązań jest wykonywanie złączeń nie na całych relacjach ale na ich kopiach zawierających wyłącznie atrybuty uczestniczące w złączeniu. Postępowanie takie prowadzi Robert Tutajewicz Politechnika Śląska, Instytut Informatyki, ul. Akademicka 16, Gliwice, Polska

2 R. Tutajewicz do radykalnego skrócenia czasu wykonywania złączenia, ale powoduje także konieczność wprowadzenia dodatkowej fazy, w trakcie której na podstawie uzyskanego wcześniej wyniku złączenia tworzy się pełną relację wynikową. W takim przypadku ta właśnie faza, zwana fazą regeneracji krotek, staje się najbardziej czasochłonnym elementem złączenia. Zwykle jednak łączny czas trwania obydwu faz i tak jest znacznie krótszy niż w przypadku podejścia klasycznego. W niniejszym rozdziale przedstawiono metody przyspieszenia regeneracji krotek oraz efekty zastosowania każdej z metod. W końcowej części rozdziału porównano metody między sobą wskazując stosowanie której z nich daje najlepsze rezultaty. 2 Realizacja fazy regeneracji krotek Jeżeli złączenie wykonywane jest za pomocą algorytmów z sortowaniem lub haszowaniem, czas trwania regeneracji krotek może stanowić nawet 90% łącznego czasu obliczania wyniku złączenia. Poprawienie szybkości realizacji tej fazy może zatem spowodować także wyraźną poprawę łącznego czasu wykonania algorytmów złączeń. Aby to było możliwe konieczne jest najpierw określenie źródeł opóźnień. Następnie można spróbować tak zmodyfikować stosowane algorytmy, aby wyeliminować bądź co najmniej zmniejszyć udział opóźnień w łącznym czasie realizacji. Reprezentowanie relacji w pamięci W systemach typu MM DBMS zmieniono sposób reprezentowania danych tworzących relację. Zamiast klasycznego rozmieszczenia danych zgodnie z modelem NSM, stosuje się inne rozwiązania: pionową fragmentację kolumn (model DSM), podział w poprzek atrybutów (PAX) lub podział relacji na tzw. superbloki (MBSM). W dyskowych relacyjnych systemach baz danych powszechnie stosowanym sposobem rozmieszczenia danych jest umieszczenie całych rekordów reprezentujących krotki relacji w blokach na dysku (rys. 1). Model taki nazywany jest zwykle skrótem NSM (N-ary Storage Model). Jego podstawową zaletą jest to, że cały rekord może być pobrany z dysku za pomocą jednego odczytu. Z drugiej strony, w przypadku, gdy do realizacji zapytania potrzebne są wartości tylko kilku wybranych atrybutów, konieczne jest odczytanie zawartości wszystkich bloków tworzących tabelę. W bazach danych w pamięci operacyjnej pojawia się kolejna wada tego rozwiązania: niskie wykorzystanie pamięci podręcznej. Przy przetwarzaniu danych rozmieszczonych zgodnie z tym modelem, dużą część pamięci podręcznej zajmują wartości atrybutów nie wykorzystywane w zapytaniu. Naglówek bloku Atr1 Atr2 Rekord 1 Atr1 Atr2 Atr3 Atr1 Atr2 Rekord 2 Rekord 3 Atr3 Atr3 Rys. 1. Rozmieszczenie danych w pamięci zgodnie z modelem NSM 238

3 Sposoby skrócenia czasu wykonywania fazy regeneracji krotek podczas realizacji złączeń w pamięci operacyjnej Alternatywą dla tego rozwiązania jest pionowa fragmentacja kolumn określana jako model DSM (Decomposition Storage Model [5]). Zgodnie z nim relację zawierającą n atrybutów należy podzielić na n podrelacji, z których każda odpowiada pojedynczemu atrybutowi. Każda podrelacja oprócz wartości odpowiadającego jej atrybutu musi przechowywać także identyfikatory rekordów (rys. 2). Model DSM został zaproponowany, by zminimalizować liczbę zbędnych dostępów do dysku w przypadku zapytań odwołujących się tylko do wybranych atrybutów. Jednakże, gdy zapytanie odwołuje się do wszystkich lub co najmniej większości atrybutów relacji, przetwarzanie takiego zapytania wiąże się ze znaczącym kosztem dodatkowym na połączenie wszystkich potrzebnych podrelacji w jedną całość. Nagłówek strony 1 Atr1 2 Atr1 3 Atr1 Podrelacja 1 Nagłówek strony 1 Atr2 2 Atr2 3 Atr2 Podrelacja 2 Nagłówek strony 1 Atr3 2 Atr3 3 Atr3 Podrelacja 3 Rys. 2. Rozmieszczenie danych w pamięci zgodnie z modelem DSM Realizacja złączeń na danych zorganizowanych zgodnie z modelem DSM składa się zwykle z 2 etapów. Pierwszym jest właściwe złączenie wykonywane na podrelacjach zawierających argumenty złączenia. W jego efekcie powstaje indeks złączeniowy, czyli dwuargumentowa relacja zawierająca identyfikatory par krotek, które powinny pojawić się w wyniku złączenia. Indeks ten staje się następnie podstawą do wygenerowania w fazie regeneracji krotek pełnej relacji wynikowej. 3 Metody skracania czasu realizacji złączeń Wszystkie eksperymenty przeprowadzono na bazie danych złożonej z 2 relacji: mniejszej R i większej S o schematach identycznych z tzw. schematem Wisconsin [6] przechowywanej zgodnie z modelem DSM. Każda z relacji liczyła 13 atrybutów będących 4-bajtowymi liczbami całkowitymi oraz 3 atrybuty napisowe o długości 52 znaków każdy. Pierwszy atrybut obydwu relacji pełnił rolę klucza i przyjmował unikalne wartości. Drugi atrybut relacji S przyjmował wartości identyczne z wartościami pierwszego atrybutu relacji R. Wartości te były rozmieszczone zgodnie z rozkładem równomiernym. Warunkiem złączenia była równość wartości pierwszego atrybutu relacji R i drugiego atrybutu relacji S. Rozmiary obydwu relacji były zawsze tak dobrane by większa z nich (S) liczyła 10-krotnie więcej rekordów niż mniejsza (R). Większość badań przeprowadzono na komputerze PC wyposażonym w procesor Intel Pentium 4 z jądrem Northwood taktowanym zegarem o częstotliwości 2,6 GHz wyposażonym w dwupoziomową pamięć podręczną o pojemności odpowiednio 8KB (pierwszy poziom) i 512 KB (drugi poziom) oraz główną pamięć operacyjną o pojemności 512 MB. 239

4 R. Tutajewicz 3.1 Wpływ rozmiaru relacji wynikowej Wykonanie fazy generacji relacji wynikowej polega na powtarzaniu dla każdej krotki wyniku czynności kopiowania atrybutów do tejże relacji. Dlatego też należy oczekiwać, że czas jej wykonywania będzie proporcjonalny do liczby krotek tworzących relację wynikową. Aby zweryfikować tę tezę zmierzono czasy trwania fazy regeneracji krotek dla relacji wynikowych zawierających różną liczbę krotek. Czasy te wyrażone w milionach taktów procesora zawarto w tabeli 1. Tabela 1. Czasy regeneracji krotek dla różnych rozmiarów relacji wynikowej Liczba krotek (w tys.) Czas 20,2 48,5 71,2 99, regeneracji Zmierzone czasy podzielono następnie przez liczbę krotek wyniku aby wyznaczyć średni czas regeneracji pojedynczej krotki. Jak się okazuje czas przetwarzania pojedynczej krotki rośnie wraz ze wzrostem liczby regenerowanych krotek, co ilustruje rys. 4, umieszczony pod koniec rozdziału. Aby zmniejszyć czas wykonywania regeneracji krotek należy poszukać przyczyn opisanego zjawiska. 3.2 Chybienia przy dostępie do pamięci podręcznej Częstą przyczyną spowolnienia obliczeń realizowanych na danych umieszczonych w pamięci operacyjnej są opóźnienia związane z dostępem do tych danych. Z tego też powodu zmierzono liczby chybień przy odszukiwaniu danych w pamięci podręcznej podczas wykonywania regeneracji krotek dla różnych rozmiarów danych. Liczby te następnie podzielono przez liczby krotek relacji wynikowej określając tym samym średnią liczbę chybień przypadającą na generację pojedynczej krotki. Uzyskane wyniki zaprezentowano na rys. 3. Średnia liczba chybień Rozmiar relacji wynikowej w tys. krotek Rys. 3. Średnia liczba chybień przy dostępie do pamięci podręcznej przypadająca na pojedynczą krotkę wynikową Porównanie obydwu rysunków pozwala stwierdzić, że to właśnie liczba chybień przy dostępie do pamięci powoduje opóźnienia podczas realizacji fazy regeneracji krotek. Należy 240

5 Sposoby skrócenia czasu wykonywania fazy regeneracji krotek podczas realizacji złączeń w pamięci operacyjnej zatem tak zmodyfikować stosowany algorytm aby zmniejszyć tę liczbę. Chybienia powstają wtedy, gdy podczas przetwarzania potrzebne dane nie znajdują się w pamięci podręcznej i muszą być sprowadzone z głównej pamięci operacyjnej. Ponieważ czas dostępu do pamięci operacyjnej jest co najmniej kilkakrotnie dłuższy od czasu dostępu do pamięci podręcznej, duża liczba chybień może znacząco wydłużyć realizację algorytmów. 3.3 Pobieranie wyprzedzające Współczesne procesory dostarczają narzędzi, w postaci mechanizmu tzw. pobierania wyprzedzającego, pozwalających zmniejszyć liczbę chybień. Pobieranie wyprzedzające można podzielić na sprzętowe i programowe. Sprzętowe pobieranie wyprzedzające polega na śledzeniu przez wydzielony moduł procesora wszystkich odwołań do pamięci, dzięki czemu możliwe jest znalezienie regularności w tych odwołaniach. Po odnalezieniu takich regularności procesor rozpoczyna pobieranie z wyprzedzeniem danych z głównej pamięci operacyjnej do pamięci podręcznej, tak że w momencie, gdy są one potrzebne w procesie obliczeniowym są już dostępne w pamięci podręcznej. Zaletą mechanizmu sprzętowego jest to, że nie wymaga on modyfikacji kodu programu. Metoda ta dobrze sprawdza się w przypadku dostępu o regularnym charakterze, nie ma natomiast zastosowania, gdy dane są pobierane losowo. Alternatywną metodą jest programowe pobieranie wyprzedzające. Mechanizm ten jest dostępny dzięki wprowadzeniu specjalnych rozkazów zlecających procesorowi pobieranie danych z pamięci w chwili gdy nie są one jeszcze potrzebne do realizacji procesu obliczeniowego. Rozwiązanie to pozwala ukryć opóźnienia związane z dostępem do danych w sytuacji nieregularnych wzorców dostępu (np. dane pobierane w sposób pseudolosowy), gdzie nie sprawdza się mechanizm sprzętowy. Podstawową wadą stosowania tej metody jest konieczność modyfikacji kodu poprzez jawne umieszczenie w nim rozkazów pobierania wyprzedzającego. Metoda ta nie sprawdza się także w przypadku programów intensywnie korzystających z pamięci (jak np. kopiowanie bloków pamięci z jednego miejsca na drugie). 3.4 Wykorzystanie pobierania wyprzedzającego Mechanizm programowego pobierania wyprzedzającego został z powodzeniem zastosowany w odniesieniu do różnych rodzajów algorytmów, w tym między innymi do algorytmów przetwarzania tablic [9], struktur opartych o wskaźniki [8], w tym do B-drzew [4] oraz do realizacji złączeń z haszowaniem [3]. W przypadku zagadnienia regeneracji relacji wynikowej mamy do czynienia z dość poważnym problemem przy implementacji pobierania wyprzedzającego, jakim jest zjawisko tzw. wyścigu wskaźników (ang. pointer-chasing). Ze względu na rozmieszczenie danych w sposób przypadkowy nie możliwe jest najprostsze podejście polegające na próbie ukrycia opóźnień związanych z dostępem do danych w ramach przetwarzania pojedynczej krotki. Nawet rozdzielenie fazy pobierania danych od fazy obliczeń na nich nie wystarcza do ukrycia opóźnień, zbyt krótki jest czas obliczeń w stosunku do czasu potrzebnego na pobranie potrzebnych danych. Stąd też nie można wprost zastosować rozwiązań wypracowanych dla algorytmów numerycznych, gdzie to najczęściej stosuje się pobieranie wyprzedzające. Można za to wykorzystać fakt braku praktycznie żadnych zależności między danymi potrzebnymi do przetwarzania sąsiednich krotek. Dzięki temu możliwe jest ukrycie opóźnień związanych z pobieraniem następnych krotek poprzez równoległe wykonywanie obliczeń 241

6 R. Tutajewicz na krotkach je poprzedzających. Warto przy tym zauważyć, że dystans między krotką aktualnie przetwarzaną a tą której pobieranie danych dopiero co zainicjowano, powinien być znacznie większy niż 1, gdyż czas przetwarzania pojedynczej krotki nie równoważy czasu pobierania potrzebnych do tego przetwarzania danych. Aby w pełni ukryć opóźnienia spowodowane chybieniami przy dostępie do pamięci w fazie regeneracji krotek możliwe jest wykorzystanie jednej z dwóch technik zaproponowanych dla złączenia z haszowaniem [3]. Pierwszą z tych technik jest pobieranie wyprzedzające z grupowaniem (ang. group prefetching). W tym przypadku indeks złączeniowy jest dzielony na grupy o stałej liczbie krotek. Krotki te zajmują w pamięci ciągły obszar, co przy sekwencyjnym ich przetwarzaniu pozwala wykorzystać mechanizm sprzętowego pobierania wyprzedzającego. Dla każdej krotki w grupie jej wartości są odczytywane do wewnętrznego bufora i uruchamiane są rozkazy pobierania wyprzedzającego odpowiednich krotek relacji źródłowych. Po zakończeniu tej fazy, dla każdej krotki w grupie obliczana jest krotka wynikowa. W podobny sposób przetwarzane są krotki należące do kolejnych grup. Drugą możliwą do zastosowania techniką jest potokowe pobieranie wyprzedzające (ang. software-pipelined prefetching). Także i w tym przypadku wykorzystuje się dodatkowy bufor na przechowanie fragmentu indeksu złączeniowego. Inny jest jednak schemat przetwarzania. Najpierw cały bufor ładowany jest krotkami pochodzącymi z początku indeksu złączeniowego i dla każdej takiej krotki rozpoczyna się pobieranie odpowiadających jej krotek relacji źródłowych. Po wypełnieniu bufora rozpoczyna się główna pętla przetwarzania. W pętli tej począwszy od pierwszej krotki z bufora naprzemiennie realizowane są obliczanie krotki relacji wynikowej i ładowanie w zwolnione miejsce w buforze kolejnej krotki indeksu złączeniowego oraz inicjowanie pobierania odpowiadających jej krotek relacji źródłowych. Krotki z bufora przetwarzane są cyklicznie aż do momentu pobrania ostatniej krotki z indeksu złączeniowego. W tym momencie wystarczy dla każdej krotki z bufora utworzyć odpowiadające im krotki wynikowe i na tym można zakończyć regenerację krotek. 3.5 Sortowanie indeksu złączeniowego Innym sposobem zmniejszenia liczby chybień w fazie regeneracji jest takie uporządkowanie danych, aby ich przetwarzanie odbywało się, na ile to tylko możliwe, w sposób sekwencyjny i tym samym wykorzystywało mechanizm sprzętowego pobierania wyprzedzającego. W pełni sekwencyjnego charakteru dostępu do danych nie można jednak osiągnąć, gdyż wymagałoby to posortowania całych krotek, co prowadzi do bardzo wyraźnego wzrostu czasu sortowania a co zatem idzie i wzrostu czasu realizacji całego złączenia. Można jednak dopasować kolejność przetwarzania przynajmniej do uporządkowania danych w jednej z relacji wejściowych. W tym celu należy posortować indeks złączeniowy zgodnie z kolejnością pojawiania się krotek jednej z relacji. Przyjęto, że tą relacją będzie relacja S (testy przeprowadzone dla uporządkowania indeksu złączeniowego według relacji R dawały nieco gorsze wyniki). 4 Wyniki eksperymentów W ramach badań zaimplementowano wszystkie opisane powyżej metody i porównano czasy trwania fazy regeneracji krotek przy zastosowaniu każdej z nich. Wyniki eksperymentów przestawiono w postaci wykresu (rys. 4). Podobnie jak poprzednio przedstawiono zależność średniego przetwarzania pojedynczej krotki w funkcji rozmiaru danych. 242

7 Sposoby skrócenia czasu wykonywania fazy regeneracji krotek podczas realizacji złączeń w pamięci operacyjnej Średni czas generacji krotki Liczba generowanych krotek (w tysiącach) Klasyczne Sortowanie Grupowanie Rys. 4. Zależność średniego czasu regeneracji pojedynczej krotki od liczby krotek dla rozważanych metod przyspieszenia tej fazy Na wykresie pominięto wyniki dla potokowego pobierania wyprzedzającego, gdyż w całym prezentowanym przedziale uzyskane czasy były gorsze od czasów uzyskanych dla rozwiązania klasycznego. Z wykresu widać, że najlepsze wyniki uzyskuje się dla metody wykorzystującej wstępne sortowanie indeksu złączeniowego. Metody wykorzystujące mechanizm programowego pobierania wyprzedzającego nie dały spodziewanego przyspieszenia. Fakt ten można wytłumaczyć tym, że rozważana operacja regeneracji krotek należy do grupy zadań intensywnie wykorzystujących pamięć, dla której jak już wspomniano wcześniej metody używające programowego pobierania wyprzedzającego nie sprawdzają się. Metoda sortowania indeksu złączeniowego szczególnie dobrze sprawdza się w sytuacji złączenia pary relacji, w której jedna (S) pełni rolę tablicy faktów zaś druga (R) słownika, gdy do relacji wynikowej wchodzą wszystkie krotki z tablicy faktów. W przypadku niskiej selektywności złączenia metoda ta daje słabe wyniki. Spowodowane jest to tym, że do wyniku wchodzą wtedy tylko niektóre wybrane krotki, co oznacza konieczność pomijania wielu krotek z relacji S, pobranych już do pamięci podręcznej. Wtedy jednak liczba krotek w relacji wynikowej zwykle jest niewielka i czas regeneracji nie odgrywa tak istotnej roli w łącznym czasie trwania złączenia. Literatura 1. Baulier J., Bohannon P., Gogate S., Gupta C., Haldar S., Joshi S., Khivesera A., Korth H., Mcilroy P., Miller J., Narayan P.P.S., Nemeth M., Rastogi R., Seshadri S., Silberschatz A., Sudarshan S., Wilder M., Wei C.: DataBlitz Storage Manager: Main Memory Database Performance for Critical Applications. Proc. of the ACM SIGMOD Int'l Conf. on Management of Data, Philadelphia, Boncz P.A.: Monet. A next generation DBMS Kernel For Query Intensive Applications. PhD thesis, Amsterdam, Chen S., Ailamaki A., Gibbons P.B., Mowry T.C.: Improving Hash Join Performance through Prefetching, Proc of the 20 th Int l Conf. On Data Engineering, Boston, Chen S., Gibbons P.B., Mowry T.C.: Improving Index Performance through Prefteching, Proc. of the SIGMOD Conference, Santa Barbara, Copeland A., Khoshafian S.: A Decomposition Storage Model, Proc. of the SIGMOD Conference, Austin,

8 R. Tutajewicz 6. DeWitt D.J.: The Wisconsin Benchmark: Past, Present and Future, for Database and Transaction Systems (2nd Edition). Morgan Kaufmann, Kim S.W, Park S.H., Choi W.: Development of an Index Manager for a Main Memory DBMS Tachyon, Luk C.K., Mowry T.C.: Compiler Based Prefetching for Recursive Data Structures, Proc. of the 7th ASPLOS Conf., Cambridge, Mowry T.C., Lam M.S., Gupta A., Design and Evaluation of a Compiler Algorithm for Prefetching, Proc. of the 5th ASPLOS, Boston, Żukowski M., Boncz P., Nes N., Heman S.: MonetDB/X100 A DBMS in The CPU Cache. Bulletin of the IEEE Computer Society Technical Committee on Data Engineering, DataBlitz Home Page, 12. extremedb Home Page, 13. Polyhedra Home Page, 14. Oracle TimesTen In-Memory Database, 15. FastDB Home Page, 244

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

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

Zrównoleglenie i przetwarzanie potokowe

Zrównoleglenie i przetwarzanie potokowe Zrównoleglenie i przetwarzanie potokowe Zrównoleglenie wysoka wydajność pozostaje osiągnięta w efekcie jednoczesnego wykonania różnych części zagadnienia. Przetwarzanie potokowe proces jest rozdzielony

Bardziej szczegółowo

Wykład XII. optymalizacja w relacyjnych bazach danych

Wykład XII. optymalizacja w relacyjnych bazach danych Optymalizacja wyznaczenie spośród dopuszczalnych rozwiązań danego problemu, rozwiązania najlepszego ze względu na przyjęte kryterium jakości ( np. koszt, zysk, niezawodność ) optymalizacja w relacyjnych

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

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

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

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

Baza danych. Baza danych to:

Baza danych. Baza danych to: Baza danych Baza danych to: zbiór danych o określonej strukturze, zapisany na zewnętrznym nośniku (najczęściej dysku twardym komputera), mogący zaspokoić potrzeby wielu użytkowników korzystających z niego

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

Budowa komputera Komputer computer computare

Budowa komputera Komputer computer computare 11. Budowa komputera Komputer (z ang. computer od łac. computare obliczać) urządzenie elektroniczne służące do przetwarzania wszelkich informacji, które da się zapisać w formie ciągu cyfr albo sygnału

Bardziej szczegółowo

Zaawansowane Systemy Baz Danych

Zaawansowane Systemy Baz Danych Zaawansowane Systemy Baz Danych dr inż. Olga Siedlecka olga.siedlecka@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska 4 maja 2009 r. Plan seminarium Wprowadzenie Stosowane

Bardziej szczegółowo

Teoretyczne podstawy informatyki

Teoretyczne podstawy informatyki Teoretyczne podstawy informatyki Wykład 8b: Algebra relacyjna http://hibiscus.if.uj.edu.pl/~erichter/dydaktyka2009/tpi-2009 Prof. dr hab. Elżbieta Richter-Wąs 1 Algebra relacyjna Algebra relacyjna (ang.

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

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

Optymalizacja zapytań. Proces przetwarzania i obliczania wyniku zapytania (wyrażenia algebry relacji) w SZBD

Optymalizacja zapytań. Proces przetwarzania i obliczania wyniku zapytania (wyrażenia algebry relacji) w SZBD Optymalizacja zapytań Proces przetwarzania i obliczania wyniku zapytania (wyrażenia algebry relacji) w SZBD Elementy optymalizacji Analiza zapytania i przekształcenie go do lepszej postaci. Oszacowanie

Bardziej szczegółowo

Budowa i zasada działania komputera. dr Artur Bartoszewski

Budowa i zasada działania komputera. dr Artur Bartoszewski Budowa i zasada działania komputera 1 dr Artur Bartoszewski Jednostka arytmetyczno-logiczna 2 Pojęcie systemu mikroprocesorowego Układ cyfrowy: Układy cyfrowe służą do przetwarzania informacji. Do układu

Bardziej szczegółowo

Alicja Marszałek Różne rodzaje baz danych

Alicja Marszałek Różne rodzaje baz danych Alicja Marszałek Różne rodzaje baz danych Rodzaje baz danych Bazy danych można podzielić wg struktur organizacji danych, których używają. Można podzielić je na: Bazy proste Bazy złożone Bazy proste Bazy

Bardziej szczegółowo

SQL SERVER 2012 i nie tylko:

SQL SERVER 2012 i nie tylko: SQL SERVER 2012 i nie tylko: Wstęp do planów zapytań Cezary Ołtuszyk coltuszyk.wordpress.com Kilka słów o mnie Starszy Administrator Baz Danych w firmie BEST S.A. (Bazy danych > 1TB) Konsultant z zakresu

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

AKADEMIA GÓRNICZO-HUTNICZA im. Stanisława Staszica w Krakowie. Wydział Geologii, Geofizyki i Ochrony Środowiska. Bazy danych 2

AKADEMIA GÓRNICZO-HUTNICZA im. Stanisława Staszica w Krakowie. Wydział Geologii, Geofizyki i Ochrony Środowiska. Bazy danych 2 AKADEMIA GÓRNICZO-HUTNICZA im. Stanisława Staszica w Krakowie Wydział Geologii, Geofizyki i Ochrony Środowiska Wydajnośd w bazach danych Grzegorz Surdyka Informatyka Stosowana Kraków, 9 Spis treści. Wstęp...

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

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

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

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

Procesory. Schemat budowy procesora

Procesory. Schemat budowy procesora Procesory Procesor jednostka centralna (CPU Central Processing Unit) to sekwencyjne urządzenie cyfrowe którego zadaniem jest wykonywanie rozkazów i sterowanie pracą wszystkich pozostałych bloków systemu

Bardziej szczegółowo

Rys. 1. Podłączenie cache do procesora.

Rys. 1. Podłączenie cache do procesora. Cel stosowania pamięci cache w procesorach Aby określić cel stosowania pamięci podręcznej cache, należy w skrócie omówić zasadę działania mikroprocesora. Jest on układem cyfrowym taktowanym przez sygnał

Bardziej szczegółowo

Sortowanie Shella Shell Sort

Sortowanie Shella Shell Sort Sortowanie Shella Shell Sort W latach 50-tych ubiegłego wieku informatyk Donald Shell zauważył, iż algorytm sortowania przez wstawianie pracuje bardzo efektywnie w przypadku gdy zbiór jest w dużym stopniu

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

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

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

Wykład 7 Implementacja języka SQL w systemach baz danych Oracle sortowanie, funkcje agregujące i podzapytania.

Wykład 7 Implementacja języka SQL w systemach baz danych Oracle sortowanie, funkcje agregujące i podzapytania. Wykład 7 Implementacja języka SQL w systemach baz danych Oracle sortowanie, funkcje agregujące i podzapytania. Przykładowa RBD o schematach relacji (tzw. płaska postać RBD): N(PRACOWNICY) = {ID_P, IMIĘ,

Bardziej szczegółowo

Podstawy Informatyki DMA - Układ bezpośredniego dostępu do pamięci

Podstawy Informatyki DMA - Układ bezpośredniego dostępu do pamięci Układ Podstawy Informatyki - Układ bezpośredniego dostępu do pamięci alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu Układ 1 Układ Wymiana informacji Idea Zasady pracy maszyny W Architektura

Bardziej szczegółowo

Baza danych. Modele danych

Baza danych. Modele danych Rola baz danych Systemy informatyczne stosowane w obsłudze działalności gospodarczej pełnią funkcję polegającą na gromadzeniu i przetwarzaniu danych. Typowe operacje wykonywane na danych w systemach ewidencyjno-sprawozdawczych

Bardziej szczegółowo

Systemy GIS Tworzenie zapytań w bazach danych

Systemy GIS Tworzenie zapytań w bazach danych Systemy GIS Tworzenie zapytań w bazach danych Wykład nr 6 Analizy danych w systemach GIS Jak pytać bazę danych, żeby otrzymać sensowną odpowiedź......czyli podstawy języka SQL INSERT, SELECT, DROP, UPDATE

Bardziej szczegółowo

Algorytm. a programowanie -

Algorytm. a programowanie - Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik

Bardziej szczegółowo

Podstawy OpenCL część 2

Podstawy OpenCL część 2 Podstawy OpenCL część 2 1. Napisz program dokonujący mnożenia dwóch macierzy w wersji sekwencyjnej oraz OpenCL. Porównaj czasy działania obu wersji dla różnych wielkości macierzy, np. 16 16, 128 128, 1024

Bardziej szczegółowo

Wprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy

Wprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy 1 Wprowadzenie do informatyki i użytkowania komputerów Kodowanie informacji System komputerowy Kodowanie informacji 2 Co to jest? bit, bajt, kod ASCII. Jak działa system komputerowy? Co to jest? pamięć

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

Oracle11g: Wprowadzenie do SQL

Oracle11g: Wprowadzenie do SQL Oracle11g: Wprowadzenie do SQL OPIS: Kurs ten oferuje uczestnikom wprowadzenie do technologii bazy Oracle11g, koncepcji bazy relacyjnej i efektywnego języka programowania o nazwie SQL. Kurs dostarczy twórcom

Bardziej szczegółowo

Przetwarzanie i analiza danych w języku Python / Marek Gągolewski, Maciej Bartoszuk, Anna Cena. Warszawa, Spis treści

Przetwarzanie i analiza danych w języku Python / Marek Gągolewski, Maciej Bartoszuk, Anna Cena. Warszawa, Spis treści Przetwarzanie i analiza danych w języku Python / Marek Gągolewski, Maciej Bartoszuk, Anna Cena. Warszawa, 2016 Spis treści Przedmowa XI I Podstawy języka Python 1. Wprowadzenie 3 1.1. Język i środowisko

Bardziej szczegółowo

ARCHITEKTURA PROCESORA,

ARCHITEKTURA PROCESORA, ARCHITEKTURA PROCESORA, poza blokami funkcjonalnymi, to przede wszystkim: a. formaty rozkazów, b. lista rozkazów, c. rejestry dostępne programowo, d. sposoby adresowania pamięci, e. sposoby współpracy

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) 16.01.2003 Algorytmy i Struktury Danych PIŁA ALGORYTMY ZACHŁANNE czas [ms] Porównanie Algorytmów Rozwiązyjących problem TSP 100 000 000 000,000 10 000 000

Bardziej szczegółowo

Definicja pliku kratowego

Definicja pliku kratowego Pliki kratowe Definicja pliku kratowego Plik kratowy (ang grid file) jest strukturą wspierająca realizację zapytań wielowymiarowych Uporządkowanie rekordów, zawierających dane wielowymiarowe w pliku kratowym,

Bardziej szczegółowo

Projektowanie systemów za pomocą języków wysokiego poziomu ESL

Projektowanie systemów za pomocą języków wysokiego poziomu ESL Akademia Górniczo Hutnicza im. Stanisława Staszica w Krakowie Wydział IET Katedra Elektroniki Projektowanie systemów za pomocą języków wysokiego poziomu ESL Ćwiczenie 2 Implementacja funkcji Hash z użyciem

Bardziej szczegółowo

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1 dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1 Cel wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działanie systemu operacyjnego

Bardziej szczegółowo

Algorytmy i struktury danych

Algorytmy i struktury danych Algorytmy i struktury danych Proste algorytmy sortowania Witold Marańda maranda@dmcs.p.lodz.pl 1 Pojęcie sortowania Sortowaniem nazywa się proces ustawiania zbioru obiektów w określonym porządku Sortowanie

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

Bazy danych - wykład wstępny

Bazy danych - wykład wstępny Bazy danych - wykład wstępny Wykład: baza danych, modele, hierarchiczny, sieciowy, relacyjny, obiektowy, schemat logiczny, tabela, kwerenda, SQL, rekord, krotka, pole, atrybut, klucz podstawowy, relacja,

Bardziej szczegółowo

LEKCJA TEMAT: Zasada działania komputera.

LEKCJA TEMAT: Zasada działania komputera. LEKCJA TEMAT: Zasada działania komputera. 1. Ogólna budowa komputera Rys. Ogólna budowa komputera. 2. Komputer składa się z czterech głównych składników: procesor (jednostka centralna, CPU) steruje działaniem

Bardziej szczegółowo

Laboratorium nr 5. Temat: Funkcje agregujące, klauzule GROUP BY, HAVING

Laboratorium nr 5. Temat: Funkcje agregujące, klauzule GROUP BY, HAVING Laboratorium nr 5 Temat: Funkcje agregujące, klauzule GROUP BY, HAVING Celem ćwiczenia jest zaprezentowanie zagadnień dotyczących stosowania w zapytaniach języka SQL predefiniowanych funkcji agregujących.

Bardziej szczegółowo

Architektura Systemów Komputerowych

Architektura Systemów Komputerowych Architektura Systemów Komputerowych Wykład 9: Pamięć podręczna procesora jako warstwa hierarchii pamięci Dr inż. Marek Mika Państwowa Wyższa Szkoła Zawodowa im. Jana Amosa Komeńskiego W Lesznie Plan Zasada

Bardziej szczegółowo

Podstawy Informatyki. Metody dostępu do danych

Podstawy Informatyki. Metody dostępu do danych Podstawy Informatyki c.d. alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Bazy danych Struktury danych Średni czas odszukania rekordu Drzewa binarne w pamięci dyskowej 2 Sformułowanie

Bardziej szczegółowo

Bazy danych. Plan wykładu. Przetwarzanie zapytań. Etapy przetwarzania zapytania. Translacja zapytań języka SQL do postaci wyrażeń algebry relacji

Bazy danych. Plan wykładu. Przetwarzanie zapytań. Etapy przetwarzania zapytania. Translacja zapytań języka SQL do postaci wyrażeń algebry relacji Plan wykładu Bazy danych Wykład 12: Optymalizacja zapytań. Język DDL, DML (cd) Etapy przetwarzania zapytania Implementacja wyrażeń algebry relacji Reguły heurystyczne optymalizacji zapytań Kosztowa optymalizacja

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

Architektura Systemów Komputerowych 2

Architektura Systemów Komputerowych 2 Architektura Systemów Komputerowych 2 Pytania egzaminacyjne z części pisemnej mgr inż. Leszek Ciopiński Wykład I 1. Historia i ewolucja architektur komputerowych 1.1. Czy komputer Z3 jest zgodny z maszyną

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

Temat 7. Najlżejsze i najcięższe algorytmy sortowania

Temat 7. Najlżejsze i najcięższe algorytmy sortowania Temat 7 Najlżejsze i najcięższe algorytmy sortowania Streszczenie Komputery są często używane porządkowania różnych danych, na przykład nazwisk (w porządku alfabetycznym), terminów spotkań lub e-maili

Bardziej szczegółowo

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego. 77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego. Przy modelowaniu bazy danych możemy wyróżnić następujące typy połączeń relacyjnych: jeden do wielu, jeden do jednego, wiele

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

ANALIZA EFEKTYWNOŚCI MNOŻENIA MACIERZY W SYSTEMACH Z PAMIĘCIĄ WSPÓŁDZIELONĄ

ANALIZA EFEKTYWNOŚCI MNOŻENIA MACIERZY W SYSTEMACH Z PAMIĘCIĄ WSPÓŁDZIELONĄ ANALIZA EFEKTYWNOŚCI MNOŻENIA MACIERZY W SYSTEMACH Z PAMIĘCIĄ WSPÓŁDZIELONĄ 1 Mnożenie macierzy dostęp do pamięci podręcznej [język C, kolejność - j,i,k][1] A,B,C są tablicami nxn for (int j = 0 ; j

Bardziej szczegółowo

Tworzenie pliku Zapisywanie pliku Czytanie pliku Zmiana pozycji w pliku Usuwanie pliku Skracanie pliku

Tworzenie pliku Zapisywanie pliku Czytanie pliku Zmiana pozycji w pliku Usuwanie pliku Skracanie pliku System plików Definicje: Plik jest logiczną jednostką magazynowania informacji w pamięci nieulotnej Plik jest nazwanym zbiorem powiązanych ze sobą informacji, zapisanym w pamięci pomocniczej Plik jest

Bardziej szczegółowo

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Algorytmy i struktury danych Laboratorium Nr 4

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Algorytmy i struktury danych Laboratorium Nr 4 Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Algorytmy i struktury danych Laboratorium Nr 4 Algorytmy sortowania zewnętrznego 1 Wstęp Bardzo często przy rozwiązywaniu praktycznych

Bardziej szczegółowo

Polcode Code Contest PHP-10.09

Polcode Code Contest PHP-10.09 Polcode Code Contest PHP-10.09 Przedmiotem konkursu jest napisanie w języku PHP programu, którego wykonanie spowoduje rozwiązanie zadanego problemu i wyświetlenie rezultatu. Zadanie konkursowe Celem zadania

Bardziej szczegółowo

Bibliografia: pl.wikipedia.org www.intel.com. Historia i rodzaje procesorów w firmy Intel

Bibliografia: pl.wikipedia.org www.intel.com. Historia i rodzaje procesorów w firmy Intel Bibliografia: pl.wikipedia.org www.intel.com Historia i rodzaje procesorów w firmy Intel Specyfikacja Lista mikroprocesorów produkowanych przez firmę Intel 4-bitowe 4004 4040 8-bitowe x86 IA-64 8008 8080

Bardziej szczegółowo

LEKCJA TEMAT: Współczesne procesory.

LEKCJA TEMAT: Współczesne procesory. LEKCJA TEMAT: Współczesne procesory. 1. Wymagania dla ucznia: zna pojęcia: procesor, CPU, ALU, potrafi podać typowe rozkazy; potrafi omówić uproszczony i rozszerzony schemat mikroprocesora; potraf omówić

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Tydzień 12 Wspomaganie systemu operacyjnego: pamięć wirtualna Partycjonowanie Pamięć jest dzielona, aby mogło korzystać z niej wiele procesów. Dla jednego procesu przydzielana jest

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Tydzień 14 Procesory równoległe Klasyfikacja systemów wieloprocesorowych Luźno powiązane systemy wieloprocesorowe Każdy procesor ma własną pamięć główną i kanały wejścia-wyjścia.

Bardziej szczegółowo

Wojna morska algorytmy przeszukiwania

Wojna morska algorytmy przeszukiwania Temat 6 Wojna morska algorytmy przeszukiwania Streszczenie Wyszukiwanie informacji w wielkich zbiorach danych wymagają często użycia komputerów. Wymaga to ciągłego doskonalenia szybkich i efektywnych metod

Bardziej szczegółowo

Struktury Danych i Złożoność Obliczeniowa

Struktury Danych i Złożoność Obliczeniowa Struktury Danych i Złożoność Obliczeniowa Zajęcia 2 Algorytmy wyszukiwania, sortowania i selekcji Sortowanie bąbelkowe Jedna z prostszych metod sortowania, sortowanie w miejscu? Sortowanie bąbelkowe Pierwsze

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Wykład 5 Jan Kazimirski 1 Podstawowe elementy komputera. Procesor (CPU) c.d. 2 Architektura CPU Jednostka arytmetyczno-logiczna (ALU) Rejestry Układ sterujący przebiegiem programu

Bardziej szczegółowo

Język SQL. instrukcja laboratoryjna. Politechnika Śląska Instytut Informatyki. laboratorium Bazy Danych

Język SQL. instrukcja laboratoryjna. Politechnika Śląska Instytut Informatyki. laboratorium Bazy Danych Politechnika Śląska Instytut Informatyki instrukcja laboratoryjna laboratorium Bazy Danych przygotowali: mgr inż. Paweł Kasprowski (Kasprowski@zti.iinf.polsl.gliwice.pl) mgr inż. Bożena Małysiak (bozena@ivp.iinf.polsl.gliwice.pl)

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

SQL (ang. Structured Query Language)

SQL (ang. Structured Query Language) SQL (ang. Structured Query Language) SELECT pobranie danych z bazy, INSERT umieszczenie danych w bazie, UPDATE zmiana danych, DELETE usunięcie danych z bazy. Rozkaz INSERT Rozkaz insert dodaje nowe wiersze

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

EFEKTYWNOŚĆ MNOŻENIA MACIERZY W SYSTEMACH Z PAMIĘCIĄ WSPÓŁDZIELONĄ

EFEKTYWNOŚĆ MNOŻENIA MACIERZY W SYSTEMACH Z PAMIĘCIĄ WSPÓŁDZIELONĄ EFEKTYWNOŚĆ MNOŻENIA MACIERZY W SYSTEMACH Z PAMIĘCIĄ WSPÓŁDZIELONĄ 1 Mnożenie macierzy dostęp do pamięci podręcznej [język C, kolejność - j,i,k][1] A[i][*] lokalność przestrzenna danych rózne A,B,C są

Bardziej szczegółowo

Wpływ ustawień parametru wieloblokowego sekwencyjnego czytania danych na czas wykonywania zapytania SQL w bazie danych Oracle 11g

Wpływ ustawień parametru wieloblokowego sekwencyjnego czytania danych na czas wykonywania zapytania SQL w bazie danych Oracle 11g Radosław Boroński Politechnika Koszalińska, Wydział Elektroniki i Informatyki E-mail: radoslaw.boronski@tu.koszalin.pl Wpływ ustawień parametru wieloblokowego sekwencyjnego czytania danych na czas wykonywania

Bardziej szczegółowo

Zasada działania pamięci RAM Pamięć operacyjna (robocza) komputera - zwana pamięcią RAM (ang. Random Access Memory - pamięć o swobodnym dostępie)

Zasada działania pamięci RAM Pamięć operacyjna (robocza) komputera - zwana pamięcią RAM (ang. Random Access Memory - pamięć o swobodnym dostępie) Zasada działania pamięci RAM Pamięć operacyjna (robocza) komputera - zwana pamięcią RAM (ang. Random Access Memory - pamięć o swobodnym dostępie) służy do przechowywania danych aktualnie przetwarzanych

Bardziej szczegółowo

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE Nazwa przedmiotu: Kierunek: Informatyka Rodzaj przedmiotu: obowiązkowy w ramach treści kierunkowych, moduł kierunkowy ogólny Rodzaj zajęć: wykład, laboratorium BAZY DANYCH Databases Forma studiów: Stacjonarne

Bardziej szczegółowo

INFORMATYKA W ZARZĄDZANIU Arkusz kalkulacyjny MS EXCEL. Ćwiczenie 5 MS EXCEL. Zmiana rodzajów odwołania podczas kolejnych naciśnięć klawisza F4

INFORMATYKA W ZARZĄDZANIU Arkusz kalkulacyjny MS EXCEL. Ćwiczenie 5 MS EXCEL. Zmiana rodzajów odwołania podczas kolejnych naciśnięć klawisza F4 Ćwiczenie 5 MS EXCEL 1. ODWOŁANIA WZGLĘDNE I BEZWZGLĘDNE Zmiana rodzajów odwołania podczas kolejnych naciśnięć klawisza F4 Odwołanie względne С6 Odwołanie złożone Bezwzględne odwołanie do kolumny i względne

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Tydzień 11 Wejście - wyjście Urządzenia zewnętrzne Wyjściowe monitor drukarka Wejściowe klawiatura, mysz dyski, skanery Komunikacyjne karta sieciowa, modem Urządzenie zewnętrzne

Bardziej szczegółowo

Wstęp wprowadzający do laboratorium 2. mgr inż. Rafał Grycuk

Wstęp wprowadzający do laboratorium 2. mgr inż. Rafał Grycuk Wstęp wprowadzający do laboratorium 2 mgr inż. Rafał Grycuk Plan prezentacji 1. Czym jest T-SQL i czym się różni od standardu SQL 2. Typy zapytań 3. Zapytanie typu SELECT 4. Słowo o indeksach T-SQL (1)

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

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

QUERY język zapytań do tworzenia raportów w AS/400

QUERY język zapytań do tworzenia raportów w AS/400 QUERY język zapytań do tworzenia raportów w AS/400 Dariusz Bober Katedra Informatyki Politechniki Lubelskiej Streszczenie: W artykule przedstawiony został język QUERY, standardowe narzędzie pracy administratora

Bardziej szczegółowo

Programowanie Niskopoziomowe

Programowanie Niskopoziomowe Programowanie Niskopoziomowe Wykład 3: Architektura procesorów x86 Dr inż. Marek Mika Państwowa Wyższa Szkoła Zawodowa im. Jana Amosa Komeńskiego W Lesznie Plan Pojęcia ogólne Budowa mikrokomputera Cykl

Bardziej szczegółowo

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

Modelowanie hierarchicznych struktur w relacyjnych bazach danych Modelowanie hierarchicznych struktur w relacyjnych bazach danych Wiktor Warmus (wiktorwarmus@gmail.com) Kamil Witecki (kamil@witecki.net.pl) 5 maja 2010 Motywacje Teoria relacyjnych baz danych Do czego

Bardziej szczegółowo

METODY INŻYNIERII WIEDZY

METODY INŻYNIERII WIEDZY METODY INŻYNIERII WIEDZY WALIDACJA KRZYŻOWA dla ZAAWANSOWANEGO KLASYFIKATORA KNN ĆWICZENIA Adrian Horzyk Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej

Bardziej szczegółowo

Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38

Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38 Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem zajęcia 1 dr Jakub Boratyński pok. A38 Program zajęć Bazy danych jako podstawowy element systemów informatycznych wykorzystywanych

Bardziej szczegółowo

TABLICA (ang. array) pojedyncza zmienna z wieloma komórkami, w których można zapamiętać wiele wartości tego samego typu danych.

TABLICA (ang. array) pojedyncza zmienna z wieloma komórkami, w których można zapamiętać wiele wartości tego samego typu danych. Złożone typy danych - TABLICE TABLICA (ang. array) pojedyncza zmienna z wieloma komórkami, w których można zapamiętać wiele wartości tego samego typu danych. * Może przechowywać dowolny typ danych, typ

Bardziej szczegółowo

Plan wykładu. Klucz wyszukiwania. Pojęcie indeksu BAZY DANYCH. Pojęcie indeksu - rodzaje indeksów Metody implementacji indeksów.

Plan wykładu. Klucz wyszukiwania. Pojęcie indeksu BAZY DANYCH. Pojęcie indeksu - rodzaje indeksów Metody implementacji indeksów. Plan wykładu 2 BAZY DANYCH Wykład 4: Indeksy. Pojęcie indeksu - rodzaje indeksów Metody implementacji indeksów struktury statyczne struktury dynamiczne Małgorzata Krętowska Wydział Informatyki PB Pojęcie

Bardziej szczegółowo

Instytut Mechaniki i Inżynierii Obliczeniowej fb.com/groups/bazydanychmt/

Instytut Mechaniki i Inżynierii Obliczeniowej  fb.com/groups/bazydanychmt/ Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl fb.com/groups/bazydanychmt/ Wydział Mechaniczny technologiczny Politechnika Śląska Laboratorium 4 (Asocjacje,

Bardziej szczegółowo

Hurtownie danych. Przetwarzanie zapytań. http://zajecia.jakubw.pl/hur ZAPYTANIA NA ZAPLECZU

Hurtownie danych. Przetwarzanie zapytań. http://zajecia.jakubw.pl/hur ZAPYTANIA NA ZAPLECZU Hurtownie danych Przetwarzanie zapytań. Jakub Wróblewski jakubw@pjwstk.edu.pl http://zajecia.jakubw.pl/hur ZAPYTANIA NA ZAPLECZU Magazyny danych operacyjnych, źródła Centralna hurtownia danych Hurtownie

Bardziej szczegółowo

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9 Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9 Tabele 9 Klucze 10 Relacje 11 Podstawowe zasady projektowania tabel 16 Rozdział 2. Praca z tabelami 25 Typy danych 25 Tworzenie tabel 29 Atrybuty kolumn

Bardziej szczegółowo

Pomiar czasu przetwarzania rozproszonych zapytań w ewoluujących silnikach serwerów baz danych SQL Microsoft Server

Pomiar czasu przetwarzania rozproszonych zapytań w ewoluujących silnikach serwerów baz danych SQL Microsoft Server Alicja KILIŃSKA WIŚNIEWSKA Politechnika Koszalińska Wydział Informatyki i Elektroniki E-mail: alicja@hardrex.pl Pomiar czasu przetwarzania rozproszonych zapytań w ewoluujących silnikach serwerów baz danych

Bardziej szczegółowo

Zadania badawcze prowadzone przez Zakład Technik Programowania:

Zadania badawcze prowadzone przez Zakład Technik Programowania: Zadania badawcze prowadzone przez Zakład Technik Programowania: - Opracowanie metod zrównoleglania programów sekwencyjnych o rozszerzonym zakresie stosowalności. - Opracowanie algorytmów obliczenia tranzytywnego

Bardziej szczegółowo

Wykorzystanie architektury Intel MIC w obliczeniach typu stencil

Wykorzystanie architektury Intel MIC w obliczeniach typu stencil Wykorzystanie architektury Intel MIC w obliczeniach typu stencil Kamil Halbiniak Wydział Inżynierii Mechanicznej i Informatyki Kierunek informatyka, Rok IV Instytut Informatyki Teoretycznej i Stosowanej

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

Komputer IBM PC niezależnie od modelu składa się z: Jednostki centralnej czyli właściwego komputera Monitora Klawiatury

Komputer IBM PC niezależnie od modelu składa się z: Jednostki centralnej czyli właściwego komputera Monitora Klawiatury 1976 r. Apple PC Personal Computer 1981 r. pierwszy IBM PC Komputer jest wart tyle, ile wart jest człowiek, który go wykorzystuje... Hardware sprzęt Software oprogramowanie Komputer IBM PC niezależnie

Bardziej szczegółowo