Pamięć wspólna Opis własnego rozwiązania Marcin Kamiński, Michał Kotra Wydział EAIiE Katedra Automatyki Kraków, 2008.

Slides:



Advertisements
Podobne prezentacje
Tablice 1. Deklaracja tablicy
Advertisements

CLIMGEN (generator danych pogodowych w modelu CropSyst.
Wstęp do strumieni danych
Język C/C++ Funkcje.
Wzorce.
Systemy rozproszone W. Bartkiewicz
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
Zaawansowana obsługa sygnałów
Sygnały Cz. 3 EAIiE Katedra Automatyki Kraków,
Sygnały Proponowane rozwiązanie EAIiE Katedra Automatyki Kraków,
Laboratorium z Probabilistyki IV sem. Wydział Transportu
Podstawy informatyki Wirtotechnologia – Wskaźniki i referencje
Podstawy informatyki Powtórka Grupa: 1A Prowadzący: Grzegorz Smyk
C++ wykład 2 ( ) Klasy i obiekty.
Magistrala & mostki PN/PD
Autorzy: Łukasz Sztandarski Bartłomiej Granat
Muteksy Muteksy (mutex – MUTual EXclusion) są prostymi obiektami synchronizacyjnymi pełniącymi rolę semaforów binarnych dla wątków (chroniącymi sekcje.
11. PAKIET IPC Narzędzia z pakietu IPC (InterProcess Communication) służą do koordynacji procesów wykonywa- nych na jednym komputerze (nie są przeznaczone.
Semafory według normy POSIX
Wieloprocesowy system operacyjny dla komputerów ATARI XL/XE
ipcrm [ shm | msq | sem ] id
Wątki.
Pamięć wspólna Przegląd stosowanych rozwiązań Marcin Kamiński, Michał Kotra Wydział EAIiE Katedra Automatyki Kraków, 2008.
Pamięć wspólna Formalna specyfikacja
Sygnały Przegląd istniejących rozwiązań EAIiE Katedra Automatyki Kraków,
Pamięć wspólna Formalna specyfikacja Marcin Kamiński, Michał Kotra Wydział EAIiE Katedra Automatyki Kraków, 2008.
Podstawy programowania II
Podstawy programowania II Wykład 2: Biblioteka stdio.h Zachodniopomorska Szkoła Biznesu.
Podstawy informatyki 2013/2014
Podstawy programowania II
Instrukcja USOS Rejestracja na zajęcia obieralne wersja by Marek Opacki.
Systemy operacyjne.
Pliki Pojęcie i rodzaje plików Definicja typu plikowego Operacje wykonywane na plikach elementowych.
Autor: Justyna Radomska
Automatyka i Robotyka Systemy czasu rzeczywistego Wykład 4.
Podstawy programowania w języku C i C++
Mikroprocesory.
Systemy plików FAT, FAT32, NTFS
Kwerendy.
Instrukcja USOS Ankiety wersja by Marek Opacki.
Tworzenie przedmiotów, zajęć i protokołów
Systemy wejścia i wyjścia Michał Wrona. Co to jest system wejścia i wyjścia? Pobierania informacji ze źródeł danych, zdolnych przesyłać sekwencje bajtów,
Programowanie obiektowe Wykład 3 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/21 Dariusz Wardowski.
Pamięć komputerowa S t r u k t u r a p a m i ę c i.
Architektura PC.
Przekazywanie parametrów do funkcji oraz zmienne globalne i lokalne
Elementy zestawu komputerowego
ZWIĄZKI MIĘDZY KLASAMI KLASY ABSTRAKCYJNE OGRANICZENIA INTERFEJSY SZABLONY safa Michał Telus.
Prezentują: Marek Wałach UX Designer Marcin Ceran PHP Developer.
1 Strumienie Hierarchie klas strumieniowych, strumienie bajtowe - klasy InputStream i OutputStream i ich metody, klasa File, strumienie plikowe, strumienie.
Wykład 7 Synchronizacja procesów i wątków
W ą t e k (lekki proces) thread.
Systemy operacyjne (wiosna 2014)
Centralny Elektroniczny Katalog Administracji dr Marcin Kraska Konferencja „e-Usługi. Fikcja czy rzeczywistość?” Poznań, 30 września 2014 r.
BUDOWA I ZASADA DZIAŁANIA
Podstawy programowania II Wykład 3: Obsługa plików w stdio.h.
System Zarządzania Bazą Danych
Kurs języka C++ – wykład 4 ( )
Pamięć RAM Pamięć RAM.
REGUŁY ZABEZPIECZEŃ W APLIKACJI OeBS Przedmiot i zakres szkolenia Przedmiot i zakres szkolenia Przedmiot i zakres szkolenia Przedmiot i zakres szkolenia.
1 dynamiczny przydział pamięci malloc() free() realloc() calloc() memset() memcpy( ) mempcpy( ) memmove() (wskaźniki!! )
Architektury procesorów rdzeniowych mikrokontrolerów.
Procesy, wątki Program a proces Proces: Przestrzeń adresowa, kod, dane, stos (część pamięci do przechowania zmiennych lokalnych i niektórych adresów) Otwarte.
Seminarium Dyplomowe: Metodyka i Techniki Programowania Autor: Bartłomiej Fornal.
Podział sieci IP na podsieci w ramach CISCO
Temat: Porównanie technologii php,c# oraz javascript na przykładzie webaplikacji typu społecznościowy agregator treści Autor: Wojciech Ślawski.
Strumienie, Wczytywanie, Zapisywanie, Operacje na plikach
Zbiory rozłączne.
Programowanie Obiektowe – Wykład 2
Zapis prezentacji:

Pamięć wspólna Opis własnego rozwiązania Marcin Kamiński, Michał Kotra Wydział EAIiE Katedra Automatyki Kraków, 2008

Pamięć wspólna Kolejnym etapem projektu jest przedstawienie własnego rozwiązania problemu obsługi pamięci dzielonej, które będzie w przyszłości zaimplementowane w systemie czasu rzeczywistego uCRTOS na mikrokontrolerze ATmega 32 firmy ATMEL. W celu zarządzania pamięcią wspólną w systemie niezbędne będzie zaimplementowanie zestawu funkcji służących do jej obsługi. Należy pamiętać, iż jest to dopiero wstępny etap analizy i na etapie implementowania zaproponowanego rozwiązania mogą pojawić się nowe pomysły i problemy, dlatego przedstawiony zestaw funkcji może ulec zmianie w zależności od zaistniałych potrzeb i napotkanych niedogodności. Podczas tworzenia szkieletu proponowanego rozwiązania wykorzystano wiadomości zawarte w poprzednim rozdziale, aby w miarę możliwości proponowane rozwiązanie było zgodne z obowiązującymi standardami i wykorzystywało sprawdzone metody.

Pamięć wspólna int memCcr(int size, int type) funkcja odpowiedzialna za utworzenie obszaru pamięci wspólnej, działająca na podobnej zasadzie jak shmget() i shmat() w systemach Unix. Zaimplementowana funkcja powinna zwracać identyfikator utworzonego segmentu pamięci wspólnej. Jako parametry będzie podawany rozmiar pamięci, oraz ew. informacje o prawach dostępu do tworzonego segmentu pamięci. W związku z tym, że planowane jest wyposażenie mikrokontrolera w dodatkowe 64 kB pamięci RAM niezbędne będzie określenie czy korzystać z pamięci podstawowej czy rozszerzonej.

Pamięć wspólna int memCrd(int memid, int offset) funkcja odpowiedzialna za czytanie z pamięci wspólnej. Jako parametry podajemy identyfikator segmentu, oraz offset. W zależności od tego czy operacja się powiodła, funkcja zwraca 0 lub -1. Należy pamiętać, że każdy segment pamięci jest chroniony semaforem i możliwość wykonywania operacji na pamięci, zależy od aktualnego stanu semafora.

Pamięć wspólna void memCblk(int memid) funkcja blokuje wskazany segment pamięci, uniemożliwiając dostęp, aż do chwili gdy segment zostanie odblokowany za pomocą memCulk() void memCulk(int memid) funkcja odblokowuje wskazany segment pamięci, do którego dostęp został wcześniej zablokowany funkcją memCblk()

Pamięć wspólna void memCwr(int memid, int offset, void *source) funkcja realizująca zapis do pamięci. Jako parametry podawany jest identyfikator segmentu, offset, oraz wskaźnik na źródło danych przeznaczonych do zapisu. W zależności od wyniku operacji zapisu zwracane jest 0 w razie powodzenia, lub -1 gdy zapis nie powiedzie się.

Pamięć wspólna void memCfill(int memid, int offset, char *template) funkcja wypełniająca bajt pamięci wartością początkową template (pojedynczy bajt).

Pamięć wspólna int memCdel (int memid, int offset) funkcja odpowiedzialna za usunięcie obszaru pamięci wspólnej. Działa na podobnej zasadzie jak shmdt() i shmctl() w systemach Unix. Przed usunięciem pamięci należy sprawdzić, czy semafor powiązany z danym segmentem pozwala na jego usunięcie. W przypadku niemożliwości skasowania segmentu należy zaznaczyć, że segment ma być usunięty z pamięci, gdy przestanie być używany. Usunięcie segmentu powinno dopiero wtedy, gdy wszystkie zadania odłączą go od swoich przestrzeni adresowych. Po skasowaniu segmentu należy również zniszczyć powiązany z nim semafor mutex.

Pamięć wspólna void * memCst (int memid) funkcja mająca charakter statystyczny, pozwalająca uzyskać informację o stanie i obciążeniu pamięci danego segmentu pamięci. Wstępnie założono, że funkcja biedzie zwracać tablice, zawierającą informacje o ilości zajętej pamięci w segmencie, ilości zadań które korzystały z segmentu, oraz ilości zadań oczekujących. Te informacje mogą być zapisywane np. poprzez rozbudowanie struktury semafora

Pamięć wspólna void * memCallst(int type) funkcja sumująca statystyki dla wszystkich segmentów pamięci, podająca średnie wartości dla całego systemu. Możliwy jest wybór pamięci podstawowej, lub rozszerzonej.