Multiprocessor Shared-Memory Information Exchange. Damian Klata, Adam Bułak

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

Zarządzanie transakcjami

procesów Współbieżność i synchronizacja procesów Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

PAMIĘCI. Część 1. Przygotował: Ryszard Kijanka

Algorytmy dla maszyny PRAM

Urządzenia wejścia-wyjścia

Architektura komputerów. Układy wejścia-wyjścia komputera

Algorytm. a programowanie -

System plików warstwa logiczna

Architektura komputera. Dane i rozkazy przechowywane są w tej samej pamięci umożliwiającej zapis i odczyt

Programowanie współbieżne Wykład 7. Iwona Kochaoska

Mechanizmy pracy równoległej. Jarosław Kuchta

Spis treści. 1 Moduł Modbus TCP 4

Klient-Serwer Komunikacja przy pomocy gniazd

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

Architektura systemu komputerowego

1 Moduł Modbus ASCII/RTU 3

Rozdział ten zawiera informacje na temat zarządzania Modułem Modbus TCP oraz jego konfiguracji.

Tytuł: Instrukcja obsługi Modułu Komunikacji internetowej MKi-sm TK / 3001 / 016 / 002. Wersja wykonania : wersja oprogramowania v.1.

Archiwum Prac Dyplomowych

Weryfikacja protokołu zgodności cachu COMA

Wprowadzenie do programowania współbieżnego

Wstęp do programowania 2

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

Podstawy Projektowania Przyrządów Wirtualnych. Wykład 9. Wprowadzenie do standardu magistrali VMEbus. mgr inż. Paweł Kogut

Architektura systemu komputerowego. Działanie systemu komputerowego. Przerwania. Obsługa przerwań (Interrupt Handling)

Industrial Ethernet Dokumentacja techniczna połączenia Sterowniki S7-400(300) firmy Siemens - System PRO-2000 firmy MikroB

Procesy i wątki. Krzysztof Banaś Obliczenia równoległe 1

Działanie systemu operacyjnego

Wstęp do Techniki Cyfrowej... Teoria automatów i układy sekwencyjne

Konfiguracja sterowników Horner APG do pracy w trybie Modbus RTU Master

Rozproszona pamiêæ dzielona - 1

Przetwarzanie rozproszone

Wstęp do Techniki Cyfrowej... Synchroniczne układy sekwencyjne

Programowanie Mikrokontrolerów

SYSTEMY OPERACYJNE WYKLAD 6 - procesy

Paweł Skrobanek. C-3, pok

asix4 Podręcznik użytkownika CAN_AC_PCI - drajwer protokołu CANBUS dla karty CAN_ACx_PCI Podręcznik użytkownika

Analiza i Przetwarzanie Obrazów. Szyfrowanie Obrazów. Autor : Mateusz Nawrot

Działanie komputera i sieci komputerowej.

Systemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1

Spis treści. 1 Moduł RFID (APA) 3

Działanie systemu operacyjnego

Komunikacja sterownika PLC Fatek jako master w protokole ModBus RTU

Logiczny model komputera i działanie procesora. Część 1.

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych

1 Wskaźniki. 1.1 Główne zastosowania wskaźników

Bisymulacja. Niezawodność systemów współbieżnych i obiektowych. Grzegorz Maj Grzegorz Maj Bisymulacja

1 Moduł Modbus ASCII/RTU

Programowanie równoległe i rozproszone. Monitory i zmienne warunku. Krzysztof Banaś Programowanie równoległe i rozproszone 1

Archiwum Prac Dyplomowych

Przetwarzanie potokowe pipelining

dr inż. Jarosław Forenc

System plików warstwa fizyczna

Dr inż. hab. Siergiej Fialko, IF-PK,

System plików warstwa fizyczna

System plików warstwa fizyczna

Magistrala systemowa (System Bus)

Stronicowanie w systemie pamięci wirtualnej

Informator techniczny

Temat: Pamięci. Programowalne struktury logiczne.

Rozwiązanie Zadania egzaminacyjnego egzamin praktyczny z kwalifikacji e13 styczeń 2015

Instrukcja obsługi programu PLOMP PLUS FM

Sieci komputerowe i bazy danych

ang. file) Pojęcie pliku (ang( Typy plików Atrybuty pliku Fragmentacja wewnętrzna w systemie plików Struktura pliku

Cel. Poznanie zasady działania i budowy liczników zliczających ustaloną liczbę impulsów. Poznanie kodów BCD, 8421 i Rys. 9.1.

UKŁADY MIKROPROGRAMOWALNE

Działanie systemu operacyjnego

Podstawy teoretyczne baz danych. Recovery Transakcyjne odtwarzanie bazy danych po awarii

0 + 0 = 0, = 1, = 1, = 0.

Rozdział ten zawiera informacje o sposobie konfiguracji i działania Modułu OPC.

Laboratorium ASCOM COLT-2

Ograniczenia efektywności systemu pamięci

UTK Można stwierdzić, że wszystkie działania i operacje zachodzące w systemie są sterowane bądź inicjowane przez mikroprocesor.

Programowanie współbieżne Wykład 10 Synchronizacja dostępu do współdzielonych zasobów. Iwona Kochańska

Przykład: Σ = {0, 1} Σ - zbiór wszystkich skończonych ciagów binarnych. L 1 = {0, 00, 000,...,1, 11, 111,... } L 2 = {01, 1010, 001, 11}

Zbiory, relacje i funkcje

Architektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy

Logika Stosowana. Wykład 1 - Logika zdaniowa. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2016/2017

Układ sterowania, magistrale i organizacja pamięci. Dariusz Chaberski

Zaliczenie Termin zaliczenia: Sala IE 415 Termin poprawkowy: > (informacja na stronie:

Bit 11 pierwszego słowa komunikacji acyklicznej ustawny jest na wartość 0 i nie podlega modyfikacji.

Rejestratory Sił, Naprężeń.

Pliki. Operacje na plikach w Pascalu

Architektura komputerów

Wykład 8: klasy cz. 4

Równoległość i współbieżność

Równoległość i współbieżność

Analiza problemu niewidoczności przedmiotu w Ekstazjuszu.

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

Adam Korzeniewski p Katedra Systemów Multimedialnych

PRZERWANIA. 1. Obsługa zdarzeń, odpytywanie i przerwania Obsługa zdarzeń jest jedną z kluczowych funkcji w prawie każdym systemie czasu rzeczywistego.

Wstęp do informatyki. System komputerowy. Magistrala systemowa. Architektura komputera. Cezary Bolek

Stan globalny. Krzysztof Banaś Systemy rozproszone 1

Architektura komputerów

Uzupełnij pola tabeli zgodnie z przykładem poniżej,

Zajęcia nr. 3 notatki

Systemy operacyjne. Zajęcia 11. Monitory

Przetwarzanie wielowątkowe przetwarzanie współbieżne. Krzysztof Banaś Obliczenia równoległe 1

Działanie systemu operacyjnego

Transkrypt:

Multiprocessor Shared-Memory Information Exchange Damian Klata, Adam Bułak

Wstęp Zajmiemy się analizą protokołu opartego na komunikacji przez pamięć dzieloną opracowany przez firmę Westinghouse. Protokół jest wykorzystywany w systemie komputerowym nadzorującym pracę reaktora atomowego Sizewell B w Wielkiej Brytanii.

Opis protokołu Dwa rodzaje procesorów: slave i master Każda komórka pamięci wykorzystywana do komunikacji tylko w jednym kierunku Komunikacja przez pamięć dzieloną udostępnianą przez wspólną szynę Czytanie i pisanie odbywa się asynchronicznie

A teraz obrazek

Wymagania Uniknięcie odczytywania danych, które nie zostały do końca uaktualnione (ang. data tearing). Przerwy w komunikacji muszą być możliwie jak najmniejsze i o ustalonej długości (właśnie dlatego komunikacja oparta na semaforze nie wchodzi w grę).

Jak to działa? Pamięć podzielona jest na jednostki składające się z: trzech buforów każdy składa się z pola opisującego jego stan i z pola danych semafora licznika czytelników

Możliwe stany buforów Każdy bufor przyjmuje jeden z czterech stanów: newest bufor zawiera najnowsze dane master bufor przeznaczony do czytania slave bufor przeznaczony do pisania idle bufor bezczynny Początkowo jeden bufor jest w stanie slave, a dwa pozostałe w stanie idle.

Operacja slave 1. Weź semafor. 2. Jeżeli jest bufor w stanie newest, zmień jego stan na idle. 3. Jeżeli jest bufor w stanie slave, zmień na newest, wpp błąd. 4. Jeżeli jest bufor w stanie idle, zmień jego stan na slave, wpp błąd. 5. Oddaj semafor.

Operacja master acquire 1. Weź semafor. 2. Jeżeli jest bufor w stanie newest i nie ma bufora w stanie master, zmień stan bufora newest na master. 3. Jeżeli jest bufor w stanie master, zwiększ liczbę czytelników. 4. Oddaj semafor.

Operacja master release 1. Weź semafor. 2. Jeżeli nie ma czytelników, to jeśli jest bufor w stanie newest, zmień stan bufora master na idle, wpp zmień stan bufora master na newest. 3. Oddaj semafor.

Model naturalny Model umożliwia sprawdzenie poprawnej koordynacji buforów. Nie pozwala sprawdzić stanu danych przechowywanych w pamięci ani operacji czytania/pisania pomiędzy akcjami protokołu. Model dostarcza przez agentów usługi procesorom. Jeśli procesor slave chce wykonać pewną akcję synchronizuje się z agentem na odpowiednim porcie. Interfejs agenta składa się z akcji: write (port na którym komunikuje się procesor slave, gdy chce pisać) ma k (master aquire) mr k (master release)

Model obrazu pamięci Bufor przechowuje stan pamięci i pozwala na jego zapis i odczyt: Buforom nadajemy adresy przez przemianowanie portów związanych z pisaniem i czytaniem: Łączymy trzy bufory równolegle. Stany idle, master, slave i newest oznaczamy odpowiednio i, m, s, n:

Licznik i semafor Licznik definiujemy następująco: Semafor zaś tak:

Obraz pamięci Obraz pamięci otrzymujemy w wyniku równoległego złożenia buforów, licznika i semafora: A tak to wygląda agent MemImage z zewnątrz:

Agent Slave

Agent Master

Model abstrakcyjny Badamy tylko obserwowalne zachowania systemu Model prostszy Sekwencyjny Sparametryzowany obrazem pamięci Definiujemy jako agenta M(B, r). Parametr B jest zbiorem trzech par (a, l), gdzie: a to stan bufora (ze zbioru {i, s, m, n}) l to identyfikator bufora (ze zbioru {1, 2, 3}) R to zbiór czytelników (podzbiór zbioru {1, 2} identyfikatorów procesorów master Opis agenta M podajemy w formie dopuszczalnych tranzycji.

Akcje procesora slave

Akcje procesora master Master acquire: Master release:

Agent Msmie Agent Msmie to agent z buforami zainicjowanymi na s, i, i: Abstrakcyjny model może teraz zostać opisany jako agent gdzie agent Ri realizuje i-tą regułę, np. agent R3 byłby zdefiniowany tak: gdzie zbiór S zawiera wszystkie krotki (l, l, B ) taka że B = {(s, l), (i, l )} u B nie zawiera ani jednego bufora o statusie n.

Analiza poprawności protokołu Przedstawione modele są w słabej bisymulacji (CWB). Jest między nimi jednak istotna różnica. W modelu naturalnym może się zdarzyć nieskończony ciąg sprawdzeń obrazu pamięci. Do sprawdzania poprawności działania buforów użyjemy modelu Msmie. Można bowiem w nim sprawdzić, czy np. model się blokuje lub czy istnieją jakieś ciągi akcji, które nigdy nie zostaną wykonane (a chcielibyśmy, żeby wykonane zostały).

Weryfikacja wymagań Pierwsze wymaganie o spójności danych nie może zostać zweryfikowane w naszym modelu. Z opisu nieformalnego widać jednak, że własność zachodzi: procesor master może czytać tylko z bufora m, do którego nie może pisać slave. Drugie wymaganie o krótkich i o ustalonej długości opóźnieniach można wyrazić następującą formułą: która mówi, że akcja slave może zostać zawsze wykonana. Msmie spełnia tę formułę. Bufor powinien też być zawsze dostępny do odczytu dla procesora master (przynajmniej od chwili przejścia pod semaforem):

Weryfikacja wymagań, cd. Chcielibyśmy sprawdzić, czy wartość którą zapisał procesor slave zostanie w końcu odczytana przez jakiś procesor master. Musimy poprawić model. Zmieniamy regułę 6: stara reguła nowa reguła:

Wyprowadzenie formuły Rozważmy agenta o typie {a, b, c} a zawsze zajdzie: Dla słabych operatorów: Zabraniamy tylko nieskończonych ciągów b w których nie występuje a Generalizujemy a musi wystąpić jeśli b 1 i b 2 będą się ciągle pojawiać:

Wyprowadzenie formuły, cd. Teraz możemy sformułować regułę mówiącą, że ma k zajdzie jeśli obie akcje ma k będą występować: W cwb definiujemy: Ta własność dla Msmie nie zachodzi - przynajmniej nie powinna:)

Obrazek pokazujący, że ValuesRead nie zachodzi

Poprawiony protokół Pomysł polega na wprowadzeniu czwartego bufora i dodatkowego stanu oldmaster - o. Kiedy procesor k wykonuje akcję ma k mamy 3 przypadki: Jeśli nie ma bufora m wtedy zmieniamy status bufora n na m i k czyta z tego bufora Jeśli jest bufor b 1 o statusie m, i bufor b 2 o statusie n i nie ma bufora o statusie o wtedy b 1 zmieniamy na o i b 2 na m i k czyta z tego ostatniego Jeśli jest bufor b o statusie m i albo jest bufor o statusie o albo nie ma bufora o statusie n, wtedy k jest dodawany do czytelników b

Slave

Master acquire

Master release

Poprawiony protokół