Muszalski Sebastian. Synchronizacja, czyli co, jak i dlaczego.
|
|
- Konrad Pawłowski
- 8 lat temu
- Przeglądów:
Transkrypt
1 Muszalski Sebastian Synchronizacja, czyli co, jak i dlaczego. 1
2 W niniejszym referacie chciałbym przybliżyć problem synchronizacji i mam szczerą nadzieję, że mi się to uda. Zanim jednak przejdę do sedna, trzeba zastanowić się czym tak właściwie jest synchronizacja, ponieważ definicji tego określenia jest naprawdę wiele i wszystkie zawierają ziarno prawdy. Samo słowo synchronizacja pochodzi ze starogreckich słów σύν (syn) oznaczającego obok/razem, oraz słowa χρόνος (chronos) - czas. Innymi słowy jest to współdziałanie w tym samym czasie. W zależności od tego, o jakiej dziedzinie mówimy, synchronizacja przybiera nieco inny kształt. Na przykład w kinematografii dość istotną rolę odgrywa synchronizacja filmu oraz dźwięku, często również dołącza do tego synchronizacja napisów. W informatyce synchronizacja to współdziałanie procesów oraz dostęp do tych samych danych przez kilka programów. Zacznijmy od synchronizacji wątków. Synchronizacja wątków jest mechanizmem, który zapewnia, że krytyczne sekcje kodu, czyli fragmenty kody odwołujące się do współdzielonej z innymi procesami pamięci, są wykonywane tylko przez jeden wątek w danym czasie, pozostałe wątki próbujące uzyskać dostęp do tych danych w tym czasie są wstrzymywane. Jeśli w kodzie programu nie zastosujemy odpowiednich zabezpieczeń, może dojść do tzw. race condition, czyli "wyścig" wątków, który polega na występowaniu zdarzeń zależnych od czasu. Może on spowodować zmiany w danych globalnych, które stają się nieprzewidywalne, co z kolei prowadzi do błędnych wyników. Trochę enigmatycznie wygląda to tłumaczenie, dlatego prosty przykład może rozwiać wszelkie wątpliwości. Weźmy licznik wywołań globalnie dostępny i dwa równoległe procesy zwiększające go o 1 (Tabela 1). PROCES DZIAŁANIE LICZNIK ZP1 ZP2 Inicjalizacja licznika 0 P1 ZP1 := LICZNIK 0 0 P1 ZP1 := ZP P2 ZP2 := LICZNIK P1 LICZNIK := ZP P2 ZP2 := ZP P2 LICZNIK := ZP Tabela 1. Race condition Jak widać w przykładzie procesy P1 i P2 pobierają dane z tego samego źródła i modyfikują je. W założeniu licznik miał zliczyć wywołania, ale przez brak ograniczeń dostępu, nie spełnia swojej funkcji. Oczekiwanym wynikiem powinno być 2. Żeby poradzić sobie z tym problemem, można ustawić semafor, to znaczy w chwili uzyskania dostępu, powinna zostać zmieniona wartość kontrolująca dostęp do wartości, lub utworzony nowy obiekt (plik/zmienna) blokująca dostęp do danych. Rozwiązanie powyższego problemu może z kolei nasunąć pytanie co zrobić, jak wiele procesów chce uzyskać dostęp do tych samych danych. Tutaj najlepiej jest stworzyć kolejkę procesów w celu zachowania kolejności zgłoszeń i dopuszczania do danych globalnych. A co, jeśli który z procesów wykonać swoje obliczenia szybciej? W takim wypadku możemy nadać 2
3 każdemu procesowi wagę, która będzie określała, jak wysoko dany proces stoi w hierarchii, by następnie "nadzorca kolejki", czyli program generujący wspomnianą kolejkę, sortował ją względem wagi. Innymi problemami, z którymi musi sobie radzić synchronizacja są: deadlock, jest to zatrzymanie działania operacji, poprzez niedopełnienie określonego działania przez procesy. Wyjaśnię na przykładzie. Mamy procesy P1 i P2 oraz globalnie dostępne dwa miejsca w pamięci, powiedzmy A i B. Proces P1 ma pobrać informację z B, przetworzyć i zapisać w A, z kolei proces P2 ma pobrać dane z A i po przetworzeniu zapisać w B. Każdy z procesów blokuje tylko jedno miejsce w pamięci, a ponieważ żaden z nich nie może dokończyć działania, zakleszczają się. I to jest deadlock. Do likwidacji tego problemu można skonfigurować proces zarządzający dostępem, w taki sposób, by młodszy lub mniej ważny proces zabijał, a po wykonaniu już odblokowanego procesu, wskrzesił zabity proces; starvation, jest to niemożliwość wykonania operacji przez proces, ze względu na brak dostępu do danych lub do procesora. Najczęściej jest to spowodowane przez niewłaściwe zarządzanie kolejką dostępu i/lub błędami w hierarchii procesów. Tutaj nie ma prostej metody na naprawienie tego problemu, trzeba po prostu wrócić do koncepcji i sprawdzenie hierarchii; priority inversion, jest to zjawisko występujące, gdy proces wykonuje swoje obliczenia przed procesem o wyższym priorytecie wykonania. Załóżmy, że mamy dwa działające procesy N i W, odpowiednio o niskim i wysokim priorytecie. Proces N w trakcie obliczeń wykorzystuje zasób globalny M. W trakcie tych obliczeń, proces W również chce uzyskać dostęp do tego zasobu, już blokowanego przez N, przez co W jest zatrzymane. Dobrze napisany system powinien w tym momencie zatrzymać N, zwolnić zasoby M i dopuścić proces W do działania. Może się jednak zdarzyć, że w trakcie działania procesu N, został wywołany proces średniego priorytetu (S). W takiej sytuacji proces N nie może zostać zakończony lub przerwany, dopóki proces S nie zostanie zakończony. Dopiero po zakończeniu procesu S, proces N zostanie zatrzymany, a zasoby zwolnione, by proces W mógł się wykonać; busy waiting, czyli proces ciągle sprawdzający, czy może uzyskać dostęp do zasobów. Nie jest to co prawda szczególnie poważny problem w porównaniu z powyższymi, ale raczej w systemach operacyjnych programiści starają się go unikać, ze względu na marnowanie mocy obliczeniowej procesora. Zamiast tego czasem stosuje się swego rodzaju trigger, który w chwili zwolnienia zasobów uruchamia proces startujący proces o najwyższym priorytecie w kolejce. Przejdźmy zatem do synchronizacji danych. Synchronizacja danych jest to proces nawiązywania i podtrzymywania dwukierunkowego połączenia pomiędzy źródłem a miejscem docelowym plików, oraz ciągłej harmonizacji w czasie, czyli wzajemne dostosowanie różnych elementów w spójną całość. Można ją podzielić na kilka podtypów, 3
4 które następnie krótko opiszę, a są to: synchronizacja plików, klastrowy system plików, cache coherence, RAID, replikacja danych oraz journaling. Synchronizacja plików, jest to proces zapewniający, że pliki w różnych lokacjach są aktualne. W tym wypadku rozróżniamy synchronizacje jedno- i dwu-kierunkową. W pierwszym przypadku pliki ze źródła są kopiowane do miejsca docelowego. W drugim przypadku najbardziej aktualny plik jest kopiowany do obu lokalizacji. Synchronizacja plików jest zazwyczaj wykorzystywana do robienia kopi zapasowych. Klastrowy system plików jest to sposób zapisu plików, który utrzymuje dane lub indeksy w jednakowy sposób dla całego obrębu obliczeniowego klastra, którym jest sieć komputerowa współpracująca ze sobą. RAID, czyli Redundant Array of Independent Disks, jest to technologia wirtualizacji pamięci fizycznej, w której kilka dysków jest łączone w jeden większy, a dane są zapisywane w wielu miejscach na przestrzeni połączonych dysków, co zwiększa bezpieczeństwo przed utratą całości danych na skutek awarii jednego z dysków. Cache coherency, czyli przechowywanie w wielu miejscach pamięci podręcznej danych współdziałających procesorów. Cache jest to stosunkowo niewielka pamięć, ale z bardzo szybkim czasem dostępu, gdyż jest to pamięć procesora. Replikacja danych, jest to sposób przechowywania kopii danych na serwerach zsynchronizowanych ze sobą za pośrednictwem najczęściej internetu. Replikację danych można podzielić na trzy główne typy: replikacja migawkowa, w której rozprowadzane dane pochodzą z określonego momentu; replikacja transakcyjna, w której dane są rozprowadzane na podstawie logów transakcji; replikacja łącząca, w której dane są rozprowadzane do innego serwera jak i do klientów. Journaling (księgowanie), jest to technika wykorzystywana przez wiele nowoczesnych systemów plików. System plików oparty o journaling zachowuje ślady zmian, jeszcze nie zapisanych przez główny system plików, w strukturach danych nazywanych dziennikiem. Jest on pomocny w przypadku awarii zasilania, ponieważ pozwala na szybsze włączenie systemu oraz odzyskanie niezapisanych danych. Chciałbym jeszcze krótko omówić wyzwania, z którymi musi liczyć się programista przy tworzeniu aplikacji do synchronizacji danych. Pierwszym pytaniem jakie każdy programista powinien sobie zadać, to jakiego formatu będzie potrzebować. W założeniach dowolnego projektu dane wykorzystywane przez aplikację są proste, ale z rozwojem oprogramowania i funkcjonalności zaczynają pojawiać się coraz bardziej złożone formaty danych, ponieważ nie wszystko da się przedstawić w prosty sposób, co może kosztować wiele nieprzespanych nocy poświęconych na modyfikacje sposobu zsynchronizowania danych i/lub procesów. Dlatego tworząc nawet początkowy szablon dla formatu, warto zatroszczyć się o łatwość w operowaniu i łatwość w edytowaniu go. Kolejnym wyzwaniem jest praca w czasie rzeczywistym. W dzisiejszych czasach każdy chce widzieć najbardziej aktualne wiadomości, aktualny status zamówienia, przesyłki etc., zatem programista 4
5 powinien zatroszczyć się o zapewnienie szybkiego i prostego przekazywania danych, w tym zautomatyzowanie niektórych funkcji (np. automatyczne zamówienie materiału w firmie, gdy jest na wyczerpaniu). Kolejnym dość istotnym problemem jest bezpieczeństwo danych. W tym wypadku, oprócz ogólnie znanego problemu poufności danych, trzeba zwrócić uwagę na możliwe wycieki pamięci, które mogą zakłócić działanie synchronizacji, a nawet doprowadzić do zakleszczenia, które bardziej szczegółowo omówiłem powyżej. Jakość danych. W tym wypadku nie jestem pewien czy istnieje jedyna uniwersalna prawda dotycząca jakości, ponieważ każdy określa ją inaczej. Jednak wspólną ideą zachowania dobrej jakości danych jest nie udostępnianie jej. W taki razie po co tworzyć czy przetwarzać dane, skoro mają być tylko dla mnie? Otóż chodzi tutaj o chowanie źródła, a udostępnianie kopii znajdującej się w innej lokalizacji. W ten sposób zachowujemy dane "świeże i niezmienione", chyba że sami je zmienimy. Również łatwiej jest zarządzać danymi, jeśli dostęp jest ograniczony do nas samych. Ostatnim wyzwaniem, o których chcę wspomnieć to wydajność. Pisząc małe, drobne programy, nawet nie zauważamy, jak wiele czasu i pracy marnujemy. Jednak jeśli budujemy poważną aplikację czy system, każde niepotrzebne działanie może powodować odczuwalne opóźnienia w działaniu, spowodowane przez kiepską synchronizacje procesów lub nieadekwatne nadawanie priorytetu procesom. Istnieją cztery różne etapy synchronizacji wpływające na wydajność: pobranie/wydobycie danych z systemu, transfer danych, operacje na danych i wreszcie załadowanie danych do systemu docelowego. Wszystkie te części są sekcjami krytycznymi, dlatego trzeba starannie zaplanować wykonanie tych części, by nie zaszkodzić wydajności systemu. Mam nadzieję, że udało mi się wyjaśnić czym jest i na co należy zwrócić uwagę przy tworzeniu aplikacji opartych o synchronizację. Jak widać, pracy trzeba włożyć sporo, na wiele rzeczy uważać, ale warto, ponieważ dobrze synchronizowane aplikacje działają znacznie szybciej i wydajniej. 5
Replikacja bazy danych polega na kopiowaniu i przesyłaniu danych lub obiektów bazodanowych między serwerami oraz na zsynchronizowaniu tych danych w
J. Karwowska Replikacja bazy danych polega na kopiowaniu i przesyłaniu danych lub obiektów bazodanowych między serwerami oraz na zsynchronizowaniu tych danych w celu utrzymania ich spójności. Dane kopiowane
Bardziej szczegółowoProgramowanie współbieżne Wykład 7. Iwona Kochaoska
Programowanie współbieżne Wykład 7 Iwona Kochaoska Poprawnośd programów współbieżnych Właściwości związane z poprawnością programu współbieżnego: Właściwośd żywotności - program współbieżny jest żywotny,
Bardziej szczegółowo4. Procesy pojęcia podstawowe
4. Procesy pojęcia podstawowe 4.1 Czym jest proces? Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa
Bardziej szczegółowo4. Procesy pojęcia podstawowe
4. Procesy pojęcia podstawowe 4.1 Czym jest proces? Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa
Bardziej szczegółowo[1/15] Chmury w Internecie. Wady i zalety przechowywania plików w chmurze
Chmury w Internecie Nota Materiał powstał w ramach realizacji projektu e-kompetencje bez barier dofinansowanego z Programu Operacyjnego Polska Cyfrowa działanie 3.1 Działania szkoleniowe na rzecz rozwoju
Bardziej szczegółowoWorld Wide Web? rkijanka
World Wide Web? rkijanka World Wide Web? globalny, interaktywny, dynamiczny, wieloplatformowy, rozproszony, graficzny, hipertekstowy - system informacyjny, działający na bazie Internetu. 1.Sieć WWW jest
Bardziej szczegółowo3.1. Na dobry początek
Klasa I 3.1. Na dobry początek Regulamin pracowni i przepisy BHP podczas pracy przy komputerze Wykorzystanie komputera we współczesnym świecie Zna regulamin pracowni i przestrzega go. Potrafi poprawnie
Bardziej szczegółowoLekcja : Tablice + pętle
Lekcja : Tablice + pętle Wprowadzenie Oczywiście wiesz już jak dużo można osiągnąć za pomocą tablic oraz jak dużo można osiągnąć za pomocą pętli, jednak tak naprawdę prawdziwe możliwości daje połączenie
Bardziej szczegółowoKurier DPD by CTI. Instrukcja
Kurier DPD by CTI Instrukcja Spis treści 1. Opis programu... 3 2. Pierwsze uruchomienie... 4 3. Konfiguracja... 5 3.1. Konfiguracja ogólna... 5 3.1.1. Serwer MS SQL... 5 3.1.2. Ustawienia drukarek... 6
Bardziej szczegółowoInstrukcja użytkowania oprogramowania SZOB LITE
Instrukcja użytkowania oprogramowania SZOB LITE wersja 2.0/15 Spis treści: 1. Instalacja oprogramowania... 3 2. Podłączenie licznika do komputera lub sieci... 3 3. Uruchomienie oprogramowania... 3 4. Konfiguracja
Bardziej szczegółowoDziałanie komputera i sieci komputerowej.
Działanie komputera i sieci komputerowej. Gdy włączymy komputer wykonuje on kilka czynności, niezbędnych do rozpoczęcia właściwej pracy. Gdy włączamy komputer 1. Włączenie zasilania 2. Uruchamia
Bardziej szczegółowoStruktura 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ółowoSZOB LITE. wersja 2.1/16
Instrukcja użytkowania oprogramowania SZOB LITE wersja 2.1/16 Spis treści: 1. Instalacja oprogramowania... 3 2. Podłączenie licznika do komputera lub sieci... 3 3. Uruchomienie oprogramowania... 3 4. Konfiguracja
Bardziej szczegółowoCzęść I Tworzenie baz danych SQL Server na potrzeby przechowywania danych
Spis treści Wprowadzenie... ix Organizacja ksiąŝki... ix Od czego zacząć?... x Konwencje przyjęte w ksiąŝce... x Wymagania systemowe... xi Przykłady kodu... xii Konfiguracja SQL Server 2005 Express Edition...
Bardziej szczegółowoReplikacje. dr inż. Dziwiński Piotr Katedra Inżynierii Komputerowej. Kontakt:
dr inż. Dziwiński Piotr Katedra Inżynierii Komputerowej Kontakt: piotr.dziwinski@kik.pcz.pl Replikacje 2 1 Podstawowe pojęcia Strategie replikacji Agenci replikacji Typy replikacji Modele replikacji Narzędzia
Bardziej szczegółowoProblemy niezawodnego przetwarzania w systemach zorientowanych na usługi
Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi Jerzy Brzeziński, Anna Kobusińska, Dariusz Wawrzyniak Instytut Informatyki Politechnika Poznańska Plan prezentacji 1 Architektura
Bardziej szczegółowoCele RAID. RAID z ang. Redundant Array of Independent Disks, Nadmiarowa macierz niezależnych dysków.
Macierze RAID Cele RAID RAID z ang. Redundant Array of Independent Disks, Nadmiarowa macierz niezależnych dysków. - zwiększenie niezawodności (odporność na awarie), - zwiększenie wydajności transmisji
Bardziej szczegółowoO co chodzi z tym MATLAB'em?!
O co chodzi z tym MATLAB'em?! Część 1. SIMULINK W pliku data.mat jest zapisany przebieg. Gdzieś tam i kiedyś tam zarejestrowany. Widać go na fioletowo poniżej. Powstał on z obiektu, co ciekawe wiemy jak
Bardziej szczegółowoPROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec
PROE wykład 2 operacje na wskaźnikach dr inż. Jacek Naruniec Zmienne automatyczne i dynamiczne Zmienne automatyczne: dotyczą kontekstu, po jego opuszczeniu są usuwane, łatwiejsze w zarządzaniu od zmiennych
Bardziej szczegółowoPodczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej.
Polimorfizm jest filarem programowania obiektowego, nie tylko jeżeli chodzi o język C++. Daje on programiście dużą elastyczność podczas pisania programu. Polimorfizm jest ściśle związany z metodami wirtualnymi.
Bardziej szczegółowoWątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego
Wątki Wątek - definicja Ciąg instrukcji (podprogram) który może być wykonywane współbieżnie (równolegle) z innymi programami, Wątki działają w ramach tego samego procesu Współdzielą dane (mogą operować
Bardziej szczegółowoLaboratorium 5: Tablice. Wyszukiwanie binarne
Wojciech Myszka Laboratorium 5: Tablice. Wyszukiwanie binarne 2016-05-07 09:02:17 +0200 1. Tablice Do tej pory nie było potrzeby odwoływać się do zmiennych złożonych. Programy były bardzo proste i korzystały
Bardziej szczegółowoProjekt dotyczy stworzenia zintegrowanego, modularnego systemu informatycznego wspomagającego zarządzanie pracownikami i projektami w firmie
Projekt dotyczy stworzenia zintegrowanego, modularnego systemu informatycznego wspomagającego zarządzanie pracownikami i projektami w firmie informatycznej. Zadaniem systemu jest rejestracja i przechowywanie
Bardziej szczegółowoinstrukcja INSTALACJI www.piersa.pl APi_proxy
instrukcja INSTALACJI 1 1. Instalacja Proces instalacji jest prosty wgrywamy pliki na serwer nadajemy prawa chmod 777 lub 755 dla katalogu w którym znajduje się aplikacja przeważnie będzie to katalog public_html
Bardziej szczegółowoSystem kontroli wersji - wprowadzenie. Rzeszów,2 XII 2010
System kontroli wersji - wprowadzenie Rzeszów,2 XII 2010 System kontroli wersji System kontroli wersji (ang. version/revision control system) służy do śledzenia zmian głównie w kodzie źródłowym oraz pomocy
Bardziej szczegółowoINSTRUKCJA ZARZĄDZANIA SYSTEMEM INFORMATYCZNYM służącym do przetwarzania danych osobowych w Urzędzie Gminy Ostaszewo.
Załącznik nr 2 do zarządzenia nr 39/2015 Wójta Gminy Ostaszewo z dnia 27 maja 2015 r. INSTRUKCJA ZARZĄDZANIA SYSTEMEM INFORMATYCZNYM służącym do przetwarzania danych osobowych w Urzędzie Gminy Ostaszewo
Bardziej szczegółowoKopie bezpieczeństwa NAPRAWA BAZ DANYCH
Kopie bezpieczeństwa NAPRAWA BAZ DANYCH Sprawdzanie spójności bazy danych Jednym z podstawowych działań administratora jest zapewnienie bezpieczeństwa danych przez tworzenie ich kopii. Przed wykonaniem
Bardziej szczegółowoSYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE WINDOWS 1 SO i SK/WIN 007 Tryb rzeczywisty i chroniony procesora 2 SO i SK/WIN Wszystkie 32-bitowe procesory (386 i nowsze) mogą pracować w kilku trybach. Tryby pracy
Bardziej szczegółowoStworzenie klasy nie jest równoznaczne z wykorzystaniem wielowątkowości. Uzyskuje się ją dopiero poprzez inicjalizację wątku.
Laboratorium 7 Wstęp Jednym z podstawowych własności Javy jest wielowątkowość. Wiąże się to z możliwością współbieżnego wykonywania różnych operacji w ramach pojedynczej wirtualnej maszyny Javy (JVM).
Bardziej szczegółowoIBM DCE/DFS. Mikołaj Gierulski. 17 stycznia 2003
IBM DCE/DFS Mikołaj Gierulski 17 stycznia 2003 1 Spis treści 1 IBM DCE 3 2 DCE/Distributed File Service 3 2.1 Rozwiązanie podstawowych problemów rozproszonych systemów plików.... 3 2.1.1 Nazewnictwo................................
Bardziej szczegółowoSYSTEMY OPERACYJNE WYKLAD 6 - procesy
Wrocław 2007 SYSTEMY OPERACYJNE WYKLAD 6 - procesy Paweł Skrobanek C-3, pok. 323 e-mail: pawel.skrobanek@pwr.wroc.pl www.equus.wroc.pl/studia.html 1 Zasoby: PROCES wykonujący się program ; instancja programu
Bardziej szczegółowoProgramowanie współbieżne Wykład 10 Synchronizacja dostępu do współdzielonych zasobów. Iwona Kochańska
Programowanie współbieżne Wykład 10 Synchronizacja dostępu do współdzielonych zasobów Iwona Kochańska Mechanizm synchronizacji wątków/procesów Wykorzystanie semaforów zapobiega niedozwolonemu wykonaniu
Bardziej szczegółowoPrzeplot. Synchronizacja procesów. Cel i metody synchronizacji procesów. Wątki współbieżne
Synchronizacja procesów Przeplot Przeplot wątków współbieżnych Cel i metody synchronizacji procesów Problem sekcji krytycznej Semafory Blokady 3.1 3.3 Wątki współbieżne Cel i metody synchronizacji procesów
Bardziej szczegółowoMemeo Instant Backup Podręcznik Szybkiego Startu
Wprowadzenie Memeo Instant Backup pozwala w łatwy sposób chronić dane przed zagrożeniami cyfrowego świata. Aplikacja regularnie i automatycznie tworzy kopie zapasowe ważnych plików znajdujących się na
Bardziej szczegółowo7. Pętle for. Przykłady
. Pętle for Przykłady.1. Bez użycia pętli while ani rekurencji, napisz program, który wypisze na ekran kolejne liczby naturalne od 0 do pewnego danego n. 5 int n; 6 cin >> n; 8 for (int i = 0; i
Bardziej szczegółowoMechanizmy pracy równoległej. Jarosław Kuchta
Mechanizmy pracy równoległej Jarosław Kuchta Zagadnienia Algorytmy wzajemnego wykluczania algorytm Dekkera Mechanizmy niskopoziomowe przerwania mechanizmy ochrony pamięci instrukcje specjalne Mechanizmy
Bardziej szczegółowoProjekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Publikacja jest dystrybuowana bezpłatnie Program Operacyjny Kapitał Ludzki Priorytet 9 Działanie 9.1 Poddziałanie
Bardziej szczegółowoKurier GLS by CTI. Instrukcja
Kurier GLS by CTI Instrukcja Spis treści 1. Opis programu... 3 2. Pierwsze uruchomienie... 4 3. Konfiguracja... 5 3.1. Konfiguracja ogólna... 5 3.1.1. Serwer MS SQL... 5 3.1.2. Ustawienia drukarek... 6
Bardziej szczegółowoGit rozproszony system kontroli wersji
Git rozproszony system kontroli wersji Piotr Macuk Wstęp System kontroli wersji (ang. version control system, VCS) służy do śledzenia zmian projektu w czasie. Umożliwia współpracę wielu osób oraz ułatwia
Bardziej szczegółowoUniwersytet Mikołaja Kopernika w Toruniu. Profilowanie ruchu sieciowego w systemie GNU/Linux
Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej Michał Ferliński Nr albumu: 187386 Praca magisterska na kierunku Informatyka
Bardziej szczegółowoDHL CAS ORACLE Wymagania oraz instalacja
DHL CAS ORACLE Wymagania oraz instalacja Opis: Niniejszy dokument opisuje wymagania niezbędne do instalacji bazy danych DHL CAS ORACLE. Przedstawia również sam proces instalacji. Przeznaczony jest dla
Bardziej szczegółowoReferat pracy dyplomowej
Referat pracy dyplomowej Temat pracy: Wdrożenie intranetowej platformy zapewniającej organizację danych w dużej firmie na bazie oprogramowania Microsoft SharePoint Autor: Bartosz Lipiec Promotor: dr inż.
Bardziej szczegółowoSYSTEMY 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ółowoPamięć 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ółowoRozdział 5: Style tekstu
5. STYLE TEKSTU Posługując się edytorem MS Word trudno nie korzystać z możliwości jaką daje szybkie formatowanie z użyciem stylów. Stylem określa się zestaw parametrów formatowych, któremu nadano określoną
Bardziej szczegółowoSystemy wbudowane - wykład 9. Systemy czasu rzeczywistego Notes. Systemy czasu rzeczywistego Notes. Systemy czasu rzeczywistego Notes.
Systemy wbudowane - wykład 9 Przemek Błaśkiewicz 26 maja 2017 1 / 93 Systemy czasu rzeczywistego sterowanie silnikiem rakietowym; 2 / 93 Systemy czasu rzeczywistego sterowanie silnikiem rakietowym; system
Bardziej szczegółowoNazwa Wydziału Nazwa jednostki prowadzącej moduł Nazwa modułu kształcenia Kod modułu Język kształcenia Efekty kształcenia dla modułu kształcenia
Nazwa Wydziału Nazwa jednostki prowadzącej moduł Nazwa modułu kształcenia Kod modułu Język kształcenia Efekty kształcenia dla modułu kształcenia Wydział Matematyki i Informatyki Instytut Informatyki i
Bardziej szczegółowoKURIER BY CTI. Instrukcja do programu DATA 16.09.2014. Informatycznej Zygmunt Wilder w Gliwicach WERSJA 2014.1 mgr Katarzyna Wilder DLA DPD
KURIER BY CTI DLA DPD Instrukcja do programu DATA 16.09.2014 PRODUCENT Centrum Technologii Informatycznej Zygmunt Wilder w Gliwicach WERSJA 2014.1 AUTOR mgr Katarzyna Wilder 1. Opis Program Kurier DPD
Bardziej szczegółowoWskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.
Część XXII C++ w Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Ćwiczenie 1 1. Utwórz nowy projekt w Dev C++ i zapisz go na
Bardziej szczegółowoRobert Barański, AGH, KMIW State Machine v1.0. Maszyna stanów (State Machine)
Maszyna stanów (State Machine) Automaty stanów są jednymi z podstawowych konstrukcji, jakie programiści NI LabVIEW używają do szybkiego pisania aplikacji. Programiści używają NI LabVIEW w aplikacjach,
Bardziej szczegółowoznajdował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ółowoINSTRUKCJA ZARZĄDZANIA SYSTEMEM INFORMATYCZNYM SŁUŻĄCYM DO PRZETWARZANIA DANYCH OSOBOWYCH. Rozdział I Postanowienia wstępne.
INSTRUKCJA ZARZĄDZANIA SYSTEMEM INFORMATYCZNYM SŁUŻĄCYM DO PRZETWARZANIA DANYCH OSOBOWYCH W GMINNYM ZESPOLE OBSŁUGI PLACÓWEK OŚWIATOWYCH W ŚWIERKLANACH Rozdział I Postanowienia wstępne. Na podstawie 3
Bardziej szczegółowoWHITE PAPER. Planowanie, przygotowanie i testowanie działań na wypadek wystąpienia awarii
WHITE PAPER Planowanie, przygotowanie i testowanie działań na wypadek wystąpienia awarii 1 TABLE OF CONTENTS Wstęp...3 Symulator VERITAS Cluster Server...3 Doradca VERITAS Volume Replicator...5 Próbny
Bardziej szczegółowoBudowa systemów komputerowych
Budowa systemów komputerowych Krzysztof Patan Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski k.patan@issi.uz.zgora.pl Współczesny system komputerowy System komputerowy składa
Bardziej szczegółowoStandard określania klasy systemu informatycznego resortu finansów
Dane dokumentu Nazwa Projektu: Kontrakt Konsolidacja i Centralizacja Systemów Celnych i Podatkowych Studium Projektowe Konsolidacji i Centralizacji Systemów Celnych i Podatkowych (SPKiCSCP) Numer wersji
Bardziej szczegółowodr 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ółowoInstrukcja aktualizacji programu Integra 7
Instrukcja aktualizacji programu Integra 7 Aktualizacje programu dostępne są na stronach internetowych Integra Software www.integra.com.pl w Strefie Integra Support dla Klientów posiadających aktywny Abonament
Bardziej szczegółowoProgramowanie współbieżne Wykład 2. Iwona Kochańska
Programowanie współbieżne Wykład 2 Iwona Kochańska Miary skalowalności algorytmu równoległego Przyspieszenie Stały rozmiar danych N T(1) - czas obliczeń dla najlepszego algorytmu sekwencyjnego T(p) - czas
Bardziej szczegółowotimetrack Przewodnik Użytkownika timetrack Najważniejsze Funkcje
timetrack Przewodnik Użytkownika timetrack jest łatwą w obsłudze aplikacją, stworzoną do rejestracji czasu. Pozwala ona na zapisywanie czasu spędzonego z klientami oraz podczas pracy nad projektami i zadaniami
Bardziej szczegółowoSAS Institute TECHNICAL SUPPORT
SAS Institute TECHNICAL SUPPORT Optymalizacja serwera metadanych Spis treści 1. Jak działa serwer metadanych?...2 2. Szacowanie wielkości pamięci operacyjnej potrzebnej dla serwera metadanych...2 3. Workunit
Bardziej szczegółowoTechnika mikroprocesorowa. Systemy operacyjne czasu rzeczywistego
System operacyjny czasu rzeczywistego (RTOS Real Time Operating System) jest programem bazowym ułatwiającym tworzenie programu użytkowego systemu mikroprocesorowego. System operacyjny czasu rzeczywistego
Bardziej szczegółowoWYZWANIE modernizacji wyglądu witryny internetowej dostosować działanie strony do standardu Progresywnej Aplikacji opracowanego przez firmę Google
C A S E STUDY PROJEKT MSERWIS od 15 lat pomaga firmom w tworzeniu ich kompleksowej obecności w Internecie, na różnych rynkach. Zdobyte w tym czasie doświadczenie pozwala nam zaproponować Tobie najlepiej
Bardziej szczegółowoBudowa 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ółowoasix4 Podręcznik użytkownika Drajwer OPC Podręcznik użytkownika
Podręcznik użytkownika Drajwer OPC Podręcznik użytkownika Dok. Nr PLP4048 Wersja: 13-12-2005 Podręcznik użytkownika asix4 ASKOM i asix to zastrzeżone znaki firmy ASKOM Sp. z o. o., Gliwice. Inne występujące
Bardziej szczegółowoWykonać Ćwiczenie: Active Directory, konfiguracja Podstawowa
Wykonać Ćwiczenie: Active Directory, konfiguracja Podstawowa Instalacja roli kontrolera domeny, Aby zainstalować rolę kontrolera domeny, należy uruchomić Zarządzenie tym serwerem, po czym wybrać przycisk
Bardziej szczegółowoPrezentacja systemu RTLinux
Prezentacja systemu RTLinux Podstawowe założenia RTLinux jest system o twardych ograniczeniach czasowych (hard real-time). Inspiracją dla twórców RTLinux a była architektura systemu MERT. W zamierzeniach
Bardziej szczegółowoInstrukcja założenia rezerwacji obozów i dopełnienia formalności poprzez panel on-line
Instrukcja założenia rezerwacji obozów i dopełnienia formalności poprzez panel on-line Jak założyć konto? Na stronie logowania należy uruchomić procedurę rejestracji procedurą. i postępować zgodnie z Podany
Bardziej szczegółowoZamówienia algorytmiczne
Zamówienia algorytmiczne Strona 1 z 13 Spis treści 1. Działanie zamówień algorytmicznych... 3 2. Konfiguracja... 3 2.2 Włączenie zamówień algorytmicznych poprzez wybór typu zamówienia... 3 2.3 Włączenie
Bardziej szczegółowoINFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE
Studia podyplomowe dla nauczycieli INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE Przedmiot JĘZYKI PROGRAMOWANIA DEFINICJE I PODSTAWOWE POJĘCIA Autor mgr Sławomir Ciernicki 1/7 Aby
Bardziej szczegółowoXQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery
http://xqtav.sourceforge.net XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery dr hab. Jerzy Tyszkiewicz dr Andrzej Kierzek mgr Jacek Sroka Grzegorz Kaczor praca mgr pod
Bardziej szczegółowoLiczby losowe i pętla while w języku Python
Liczby losowe i pętla while w języku Python Mateusz Miotk 17 stycznia 2017 Instytut Informatyki UG 1 Generowanie liczb losowych Na ogół programy są spójne i prowadzą do przewidywanych wyników. Czasem jednak
Bardziej szczegółowoPodstawy 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ółowoInstrukcja użytkowania
Instrukcja użytkowania Aby skutecznie pracować z programem Agrinavia Map należy zrozumieć zasadę interfejsu aplikacji. Poniżej można odszukać zasady działania Agrinavia Map. Szczegółowe informacje na temat
Bardziej szczegółowoX-CONTROL -FUNKCJONALNOŚCI
X-CONTROL -FUNKCJONALNOŚCI X-CONTROL FUNKCJONALNOŚCI* *Funkcjonalności zostały omówione w kolejności logicznej. Kolejność na pulpicie; patrz widok powyżej, została zaplanowana dla wygody użytkownika. 1.
Bardziej szczegółowoWiadomości i umiejętności
Kryteria oceniania wiadomości i umiejętności uczniów z informatyki. Zakres wymagań na poszczególne oceny szkolne dla klas IV VI do programu nauczania Przygoda z komputerem DKW 4014 125/00 Opracował: mgr
Bardziej szczegółowoZaawansowane programowanie w C++ (PCP)
Wykład 10 - boost Thread. 8 czerwca 2007 Równoległość bardzo wolna reakcja człowieka wolne urządzenia wejścia - wyjścia (np. drukarki) bardzo szybkie procesory można przeprowadzać obliczenia podczas obsługi
Bardziej szczegółowoINSTRUKCJA ZARZĄDZANIA SYSTEMAMI INFORMATYCZNYMI W COLLEGIUM MAZOVIA INNOWACYJNEJ SZKOLE WYŻSZEJ
Załącznik nr 3 do Zarządzenia nr 1/2013 Rektora Collegium Mazovia Innowacyjnej Szkoły Wyższej z dnia 31 stycznia 2013 r. INSTRUKCJA ZARZĄDZANIA SYSTEMAMI INFORMATYCZNYMI W COLLEGIUM MAZOVIA INNOWACYJNEJ
Bardziej szczegółowoLogiczny model komputera i działanie procesora. Część 1.
Logiczny model komputera i działanie procesora. Część 1. Klasyczny komputer o architekturze podanej przez von Neumana składa się z trzech podstawowych bloków: procesora pamięci operacyjnej urządzeń wejścia/wyjścia.
Bardziej szczegółowoWYMAGANIA EDUKACYJNE. Informatyka Szkoła Podstawowa Klasa 4 NA ŚRÓDROCZNĄ I ROCZNĄ OCENĘ KLASYFIKACYJNĄ
WYMAGANIA EDUKACYJNE Informatyka Szkoła Podstawowa Klasa 4 NA ŚRÓDROCZNĄ I ROCZNĄ OCENĘ KLASYFIKACYJNĄ NA ŚRÓDROCZNĄ CELUJĄCA Uczeń otrzymuje ocenę celującą, jeżeli jego wiedza i umiejętności w pełni spełniają
Bardziej szczegółowo1 Wątki 1. 2 Tworzenie wątków 1. 3 Synchronizacja 3. 4 Dodatki 3. 5 Algorytmy sortowania 4
Spis treści 1 Wątki 1 2 Tworzenie wątków 1 3 Synchronizacja 3 4 Dodatki 3 5 Algorytmy sortowania 4 6 Klasa Runnable 4 Temat: Wątki Czym są wątki. Grafika. Proste animacje. Małe podsumowanie materiału.
Bardziej szczegółowoIII. Dane podstawowe definiowanie organizacji
Ćwiczenia z użytkowania systemu MFG/PRO 1 III. Dane podstawowe definiowanie organizacji 1.1.1 Kartoteka kodów statusów zapasów Kod statusu zapasów określa parametry statusu zapasów w zakresie: Dostępne
Bardziej szczegółowoKlasa jest nowym typem danych zdefiniowanym przez użytkownika. Najprostsza klasa jest po prostu strukturą, np
Klasy Klasa jest nowym typem danych zdefiniowanym przez użytkownika Wartości takiego typu nazywamy obiektami Najprostsza klasa jest po prostu strukturą, np struct Zespolona { Klasy jako struktury z operacjami
Bardziej szczegółowoRAID 1. str. 1. - w przypadku różnych szybkości cała macierz będzie pracowała z maksymalną prędkością najwolniejszego dysku
RAID 1 RAID (ang. Redundant Array of Independent Disks, Nadmiarowa macierz niezależnych dysków) - polega na współpracy dwóch lub więcej dysków twardych w taki sposób, aby zapewnić dodatkowe możliwości,
Bardziej szczegółowoBackup Premium Podręcznik Szybkiego Startu
O programie Memeo Backup Premium pozwala w łatwy sposób chronić dane przed zagrożeniami cyfrowego świata. Memeo Backup Premium regularnie i automatycznie tworzy kopie zapasowe ważnych plików, zapobiegając
Bardziej szczegółowoTransformacja współrzędnych geodezyjnych mapy w programie GEOPLAN
Transformacja współrzędnych geodezyjnych mapy w programie GEOPLAN Program GEOPLAN umożliwia zmianę układu współrzędnych geodezyjnych mapy. Można tego dokonać przy udziale oprogramowania przeliczającego
Bardziej szczegółowoDelphi Laboratorium 3
Delphi Laboratorium 3 1. Procedury i funkcje Funkcja jest to wydzielony blok kodu, który wykonuje określoną czynność i zwraca wynik. Procedura jest to wydzielony blok kodu, który wykonuje określoną czynność,
Bardziej szczegółowoPrzykładowe zadanie z unikania blokad.
Przykładowe zadanie z unikania blokad. Mamy system operacyjny, a w nim cztery procesy (,,,) i dwa zasoby (,), przy czym dysponujemy trzema egzemplarzami zasobu i trzema egzemplarzami zasobu. Oto zapotrzebowanie
Bardziej szczegółowoGalileo - encyklopedia internetowa Plan testów
Galileo - encyklopedia internetowa Plan testów Sławomir Pawlewicz Alan Pilawa Joanna Sobczyk Matek Sobierajski 5 czerwca 2006 1 Spis treści 1 Wprowadzenie 3 1.1 Cel..........................................
Bardziej szczegółowoWstęp, czyli jak, kto i dlaczego? Jak zorganizowany jest ten kurs? Dlaczego taka forma?... 7
SPIS TREŚCI Wstęp, czyli jak, kto i dlaczego?... 7 Jak zorganizowany jest ten kurs?... 7 Dlaczego taka forma?... 7 Jak zbudowane są poszczególne rozdziały?... 8 Nie mam jeszcze dostępu do Microsoft Project
Bardziej szczegółowoProgramowanie aplikacji na iphone. Wstęp do platformy ios. Łukasz Zieliński
Programowanie aplikacji na iphone. Wstęp do platformy ios. Łukasz Zieliński Plan Prezentacji. Programowanie ios. Jak zacząć? Co warto wiedzieć o programowaniu na platformę ios? Kilka słów na temat Obiective-C.
Bardziej szczegółowoCzym są właściwości. Poprawne projektowanie klas
Z akcesorów get i set korzysta każdy kto programuje w C#. Stanowią one duże udogodnienie w programowaniu obiektowym. Zapewniają wygodę, bezpieczeństwo i znacząco skracają kod. Akcesory są ściśle związane
Bardziej szczegółowoSymantec Backup Exec System Recovery 7.0 Server Edition. Odtwarzanie systemu Windows w ciągu najwyżej kilkudziesięciu minut nie godzin czy dni
GŁÓWNE ZALETY Odtwarzanie systemu Windows w ciągu najwyżej kilkudziesięciu minut nie godzin czy dni Firma Symantec wielokrotnie publicznie udowadniała, że dzięki oprogramowaniu Backup Exec System Recovery
Bardziej szczegółowoProcedura Alarmowa. Administrator Danych... Zapisy tego dokumentu wchodzą w życie z dniem...
Procedura Alarmowa Administrator Danych... Dnia... w podmiocie o nazwie... w celu pełnej kontroli oraz zapobieganiu możliwym zagrożeniom związanym z ochroną danych osobowych na podstawie art. 36.1. ustawy
Bardziej szczegółowoWZÓR UMOWY. Zawarta w Białymstoku, w dniu.. pomiędzy:
WZÓR UMOWY Zawarta w Białymstoku, w dniu.. pomiędzy: Województwem Podlaskim, z siedzibą w Białymstoku przy ul. Kardynała Stefana Wyszyńskiego 1, w imieniu którego działa, na podstawie upoważnienia udzielonego
Bardziej szczegółowoJak napisać program obliczający pola powierzchni różnych figur płaskich?
Część IX C++ Jak napisać program obliczający pola powierzchni różnych figur płaskich? Na początku, przed stworzeniem właściwego kodu programu zaprojektujemy naszą aplikację i stworzymy schemat blokowy
Bardziej szczegółowoPLAN REALIZACJI MATERIAŁU NAUCZANIA Z INFORMATYKI II. Uczeń umie: Świadomie stosować się do zasad regulaminów (P).
PLAN REALIZACJI MATERIAŁU NAUCZANIA Z INFORMATYKI II DZIAŁ I: KOMPUTER W ŻYCIU CZŁOWIEKA. 1. Lekcja organizacyjna. Zapoznanie uczniów z wymaganiami edukacyjnymi i PSP. 2. Przykłady zastosowań komputerów
Bardziej szczegółowoInstrukcja obsługi programu Dystrybutor GT
Instrukcja obsługi programu Dystrybutor GT 1. Instalacja i pierwsze uruchomienie Instalacja programu jest prosta. Należy uruchomić plik setup.exe i w zasadzie wszystkie pytania można pominąć przyjmując
Bardziej szczegółowoRok szkolny 2015/16 Sylwester Gieszczyk. Wymagania edukacyjne w technikum. ADMINISTROWANIE BAZAMI DANYCH kl. 4c
Wymagania edukacyjne w technikum ADMINISTROWANIE BAZAMI DANYCH kl. 4c Lp. 1 2 4 5 Temat Zasady dotyczące zarządzania projektem podczas prac związanych z tworzeniem bazy oraz cykl życiowy bazy Modele tworzenia
Bardziej szczegółowoFastReporter 2 OPROGRAMOWANIE DO KOŃCOWEGO PRZETWARZANIA DANYCH
OPROGRAMOWANIE DO KOŃCOWEGO PRZETWARZANIA DANYCH Narzędzie do skonsolidowanego zarządzania oraz końcowego przetwarzania danych, zaprojektowane po to, aby zwiększyć wydajność raportowania inspekcji zakończeń
Bardziej szczegółowoINSTRUKCJA ZARZĄDZANIA SYSTEMEM INFORMATYCZNYM SŁUŻĄCYM DO PRZETWARZANIA DANYCH OSOBOWYCH
S A M O R Z Ą D O W A S Z K O Ł A P O D S T A W O W A i m. p o r. J A N A P E N C O N K A w G O W I N I E GOWINO ul. Wejherowska 60 84-215 SOPIESZYNO Tel. 572-06-29 NIP 588-18-42-812 REGON 190403213 e-mail:
Bardziej szczegółowo