eć dzielona standardu POSIX
|
|
- Radosław Rudnicki
- 6 lat temu
- Przeglądów:
Transkrypt
1 c Wies law P laczek 25 6 Pami eć dzielona standardu POSIX 6.1 Wprowadzenie Pami eć dzielona inaczej wspólna (ang. shared memory) jestzasobemumożliwiaj acym najszybszy sposób komunikacji mi edzy procesami z regu ly wymagaj acy jednak dodatkowego mechanizmu synchronizacji. Podobnie jak w przypadku semaforów w nowszych wersjach systemów uniksowych (np. w Linuksie od wersji j adra 2.4 z bibliotek a glibc od wersji 2.2) dost epna jest pami eć dzielona standardu POSIX. Ma ona prostszy i wygodniejszy interfejs niż pami eć dzielona standardu UNIX System V opisana w dodatku B. Schemat korzystania z pami eci dzielonej standardu POSIX jest nast epuj acy. Najpierw jeden z procesów tworzy obiekt pami eci dzielonej ustawiaj ac do niego prawa dost epu a nast epnie ustawia jego rozmiar. Kolejny proces może uzyskać dost ep do tego obiektu poprzez jego otwarcie o ile ma do tego odpowiednie uprawnienia. Aby procesy mog ly odczytywać/zapisywać coś w pami eci dzielonej musz aodwzorowaćjejobszarwswoje przestrzenie adresowe. Dost ep do pami eci dzielonej najcz eściej kontroluje si eprzypomocy semaforów. Kiedy proces przestaje korzystać z obiektu pami eci dzielonej to powinien usun ać do niego odwzorowanie ze swojej przestrzeni adresowej a nast epnie go zamkn ać. Po zakończeniu używania obiektu przez wszystkie korzystaj ace z niego procesy powinien on zostać usuni ety (zwykle za to odpowiedzialny jest proces który dany obiekt utworzy l). WsystemieLinuxobiektypami eci dzielonej tworzone s awwirtualnymsystemieplikówi zwykle montowane pod /dev/shm.! Uwaga: Aby można by lo używać pami eci dzielonej w programach w j ezyku C należy je linkować z opcj a: -lrt (w celu do l aczenia biblioteki librt). 6.2 Tworzenie/otwieranie i usuwanie obiektu pami eci dzielonej Do tworzenia i otwierania nowego lub otwierania istniej acego obiektu pami eci dzielonej standardu POSIX s luży funkcja shm open przedstawiona w poniższej tabeli. Operacja Pliki w l aczane <sys/mman.h> <sys/stat.h> <fcntl.h> Prototyp int shm open(const char *name int flags mode t mode); wartość Deskryptor obiektu 1 Tak funkcji shm open jest analogiczna do operacji funkcji open dla plików tzn. pomyślnie wykonana tworzy/otwiera obiekt pami eci dzielonej i zwraca jego deskryptor przyużyciu którego można wykonywać dalsze operacje na tym obiekcie. Parametry: name nazwa obiektu pami eci dzielonej zaczynaj aca sie od znaku ukośnika! podobnie jak dla semaforów nazwanych flags opcje mode prawa dost epu do obiektu (podobie jak dla pliku)
2 c Wies law P laczek 26 Opcje flags: O RDONLY otwórz obiekt do czytania O RDWR otwórz obiekt do czytania i pisania O CREAT jeśli obiekt nie istnieje to stwórz go O EXCL przy równocześnie ustawionej fladze O CREAT przekaż b l ad jeśli obiekt już istnieje O TRUNC jeśli obiekt istnieje zmniejsz jego d lugość do zera bajtów (obetnij go). Jedn azpierwszychdwóchpowyższychopcjimożna l aczyć z dowoln aztrzechpozosta lych przy pomocy sumy bitowej np. O RDWR O CREAT O EXCL. Nowo utworzony obiekt pami eci dzielonej ma d lugość zero. Aby ustawić niezerowy rozmiar należy dla obiektu otwartego do czytania i pisania użyć funkcji ftruncate przedstawionej w poniższej tabeli. Funkcja ta ustawia d lugość obiektu pami eci dzielonej o Pliki w l aczane <unistd.h> <sys/types.h> Prototyp int ftruncate(int fd off t length); deskryptorze fd na wartość przekazan a przez parametr length. Kiedy obiekt pami eci dzielonej otwarty funkcj a shm open nie jest już potrzebny w procesie to można go zamkn ać przy pomocy funkcji close przedstawionejwponiższej tabeli. Dzia la ona analogicznie jak dla plików. Pliki w l aczane <unistd.h> Prototyp int close(int fd); Obiekt pami eci dzielonej można usun ać przy użyciu funkcji shm unlink przekazuj ac jego nazw eprzezparametrname. Obiektypami eci dzielonej standardu POSIX s aobiektami trwa lymi j adra (ang. kernel persistence) wi ec jeśli taki obiekt nie zostanie usuni ety funkcj a shm unlink tob edzie istnia l aż do ponownego uruchomienia systemu. Pliki w l aczane <sys/mman.h> Prototyp int shm unlink(const char *name);
3 c Wies law P laczek Odwzorowywanie pami eci dzielonej w przestrzeń adresow a procesu Aby proces móg l używać obiektu pami eci dzielonej który otworzy l funkcj a shm open musi odwzorować (ang. map) gowswoj awirtualn aprzestrzeńadresow a. Do tego s luży funkcja mmap przestawionawponiższejtabeli. Funkcjatatworzyodwzorowanie(ang. Pliki w l aczane Prototyp <sys/mman.h> void *mmap(void *addr size t length int prot int flags int fd off t offset); wartość adres odwzoro- MAP FAILED Tak wanego obszaru (tzn. (void *) -1) mapping) obiektupami eci dzielonej (lub pliku) o deskryptorze fd wwirtualn aprzestrzeń adresow awywo luj acego procesu. Jeżeli addr ma wartość NULL toj adro systemu wybiera adres pocz atkowy takiego odwzorowania (wyrównany do granicy strony) w przeciwnym wypadku przekazywany adres stanowi sugesti edlaj adra gdzie wykonać odwzorowanie np. Linux wybiera najbliższ agranic estrony. Parametrlength oznacza d lugość odwzorowanego obszaru w bajtach (> 0) liczon aodmiejsca(marginesu)obiektupami eci dzielonej (lub pliku) przekazywanego przez parametr o set (zwykle 0) prot opisuje ż adan aochron e pami eci a flags określa opcje odwzorowania. Możliwe wartości parametru ochrony prot: PROT EXEC prawo wykonywania PROT READ prawo czytania PROT WRITE prawo pisania PROT NONE brak dost epu. Trzy pierwsze z powyższych praw można l aczyć sum abitow a np. dla prawa czytania i pisania: PROT READ PROT WRITE. Możliwych opcji odwzorowania przekazywanych przez parametr flags jest wiele jednak z punktu widzenia pami eci dzielonej najważniejsz a(iwystarczaj ac adlanaszychcelów) jest MAP SHARED którasprawiażeuaktualnieniaobszarutakiejpami eci s awidocznedla wszystkich procesów które odwzorowa ly go w swoje przestrzenie adresowe. Zakończone sukcesem wywo lanie funkcji mmap zwraca adres pocz atku odwzorowanego obszaru pami eci dzielonej. Ponieważ zwracany adres jest postaci uniwersalnego wskaźnika (void *) wi ec przypisuj ac go do wskaźnika określonego typu zawsze należy wykonać odpowiednie rzutowanie typu np. int *p = (int *) mmap(...);. Wtakodwzorowanym obszarze pami eci dzielonej można wykonywać operacje w taki sam sposób jak w zwyk lej pami eci procesu tzn. pobierać z niego dane za pomoc azmiennychodwo luj acych si edo tego obszaru i wstawiać do niego dane przy użyciu zwyk lego operatora przypisania (=). Proces może usun ać odwzorowanie obszaru pami eci dzielonej ze swojej wirtualnej przestrzeni adresowej przez wywo lanie funkcji munmap przedstawionejwponiższejtabeli. Kasuje ona odwzorowanie obszaru o adresie addr id lugościlength którewcześniejzosta lo
4 c Wies law P laczek 28 Pliki w l aczane <sys/mman.h> Prototyp int munmap(void *addr size t length); utworzone odpowiednim wywo laniem funkcji mmap. Odwzorowanie takie jest usuwane automatycznie kiedy proces kończy swoje dzia lanie natomiast zamkni ecie deskryptora obiektu pami eci dzielonej nie powoduje usuni ecia odwzorowania jego obszaru. Generalnie kiedy proces kończy używać jakiegoś obszaru pami eci dzielonej to najpierw powinien usun ać jego odwzorowanie przy pomocy funkcji munmap anast epnie zamkn ać deskryptor obiektu funkcj a close. Oprócz opisanych powyżej podstawowych funkcji dotycz acych pami eci dzielonej standardu POSIX istniej atrzypomocniczefunkcje:fstat zwracaj aca struktur ezinformacj a na temat obiektu pami eci dzielonej fchown dozmianyw laścicielatakiegoobiektui fchmod dozmianyprawdost epu do niego. Wi ecej szczegó low na temat tych oraz pozosta lych funkcji można znaleźć w podr eczniku systemowym man shm overview.
5 c Wies law P laczek 29 ĆWICZENIE 7: Producent Konsument: Pami ećdzielonaisemafory Przy pomocy pami eci dzielonej oraz semaforów standardu POSIX zaimplementować problem producenta konsumenta z ćwiczenia 4 przedstawiony poniższym pseudokodem. Zamiast potoku użyć N-elementowego bufora cyklicznego (tzn. po dojściu do końca bufora wracamy na jego pocz atek) umieszczonego w pami eci dzielonej gdzie elementem bufora jest pewna ustalona porcja bajtów. Dost ep do wspólnego bufora synchronizować przy pomocy semaforów nazwanych standardu POSIX. Bufor jednostek towaru można zdefiniować jako tablic edwuwymiarow aiumieścićgo wewn atrz struktury wraz z iteratorami dla producenta i konsumenta np. #define NELE 20 // Rozmiar elementu bufora (jednostki towaru) w bajtach #define NBUF 5 // Liczba elementow bufora // Segment pamieci dzielonej typedef struct { char bufor[nbuf][nele]; // Wspolny bufor danych int wstaw wyjmij; // Pozycje wstawiania i wyjmowania z bufora } SegmentPD; Odwzorowuj ac obszar pami eci dzielonej w wirtualn aprzestrzeńadresow aprocesunależy wykonać odpowiednie rzutowanie typu np. SegmentPD *wpd = (SegmentPD *) mmap(nullsizeof(segmentpd) PROT READMAP SHAREDdes0); Nast epnie przy użyciu tak zdefiniowanego wskaźnika można wykonywać operacje na tym segmencie np. wpd->wyjmij = (wpd->wyjmij + 1) % NBUF; Podobnie jak dla semaforów stworzyć w lasn abibliotek efunkcjidoobs lugipami eci dzielonej.! Z w lasnych bibliotek funkcji do obs lugi semaforów i pami eci dzielonej stworzyć bibliotek e statyczn a oraz bibliotek e dzielon a (ang. shared library); umieścić je w podkatalogu./lib (patrz przyk lad w StartSO).! Podać w pseudokodzie uogólnienie rozwi azania tego problemu na przypadek wielu producentów i wielu konsumentów.
6 c Wies law P laczek 30! Przyk lad pseudokodu dla ćwiczenia 7: // Pseudokod dla problemu Producenta i Konsumenta z buforem cyklicznym. // Wspolny bufor do przesylania danych znajduje sie w pamieci dzielonej. // Dostep do bufora jest synchronizowany semaforami. #define N? // Rozmiar bufora typdef struct {... } Towar; // Definicja typu dla jednostek towaru Towar bufor[n]; // Bufor mogacy pomiescic N jednostek towaru int wstaw = 0 wyjmij = 0; // Pozycje wstawiania oraz wyjmowania towaru // z bufora (mozna umiescic w pamieci dzielonej) semaphore PROD = N; semaphore KONS = 0; // Semafor do wstrzymywania Producenta // Semafor do wstrzymywania Konsumenta // Proces Producent // Towar towarprod; while (1) { // Produkcja towaru P(PROD); bufor[wstaw] = towarprod; wstaw = (wstaw + 1) % N; V(KONS); } // Opusc semafor Producenta // Umiesc towar w buforze // Przesun pozycje wstawiania o 1 dalej // Podniesc semafor Konsumenta // Proces Konsument // Towar towarkons; while (1) { P(KONS); towarkons = bufor[wyjmij]; wyjmij = (wyjmij + 1) % N; V(PROD); // Konsumpcja towaru } // Opusc semafor Konsumenta // Umiesc towar w buforze // Przesun pozycje wstawiania o 1 dalej // Podniesc semafor Producenta
aodczytywać zniegoza pomoc afunkcjiread, (niebuforowane funkcje wejścia/wyjścia). e sukcesem, to zwróci liczb, erzeczywiściezapisanychbajtów.
c Wies law P laczek 15 4 Potoki 4.1 Wprowadzenie Potok (ang. pipe) możnauznaćzaplikspecjalnegotypuktórys lużydoprzechowywania ograniczonej ilości danych i do którego dost ep może si eodbywaćjedyniewtrybie
ezykach wysokiego poziomu (Dijkstra, 1965). semaphore semaphore S; Operacje na semaforze:
c Wies law P laczek 18 5 Semafory 5.1 Poj ecia ogólne Semafor pierwszymechanizmsynchronizacyjnywj ezykach wysokiego poziomu (Dijkstra 1965). semaphore semaphore S; Operacje na semaforze: abstrakcyjny typ
Systemy Operacyjne Ćwiczenia
Systemy Operacyjne Ćwiczenia Wies law P laczek Wydzia l Fizyki, Astronomii i Informatyki Stosowanej, Uniwersytet Jagielloński ul. Reymonta 4, 30-059 Kraków 4 lutego 2009 Streszczenie Praca ta zawiera materia
przerwany proces móg l zareagować na określone zdarzenie. Można je traktować jako software owe wersje przerwań sprz etowych.
c Wies law P laczek 9 3 Sygna ly 3.1 Opis sygna lów Najprostsz ametod akomunikacjimi edzyprocesowej w systenie UNIX s sygna ly. Umożliwiaj aoneasynchroniczne przerwanie dzia lania procesu przez inny proces
przypadków wywo lanie systemowe (funkcja systemowa) lub funkcja biblioteczna zwraca wartość 1(czasamiNULL) iprzypisujezmiennej zewn etrznej,
c Wies law P laczek 3 1 Obs luga b l edów Wwi ekszości przypadków wywo lanie systemowe (funkcja systemowa) lub funkcja biblioteczna kończ ac si e b l edem zwraca 1(czasamiNULL) iprzypisujezmiennej zewn
J. Ułasiewicz Programowanie aplikacji współbieżnych 1
J. Ułasiewicz Programowanie aplikacji współbieżnych 1 9. Komunikacja przez pamięć dzieloną Metoda komunikacji przez wspólną pamięć może być użyta gdy procesy wykonywane są na maszynie jednoprocesorowej
Laboratorium z systemów operacyjnych. System plików - funkcje systemowe. Anna Wojak
Laboratorium z systemów operacyjnych System plików - funkcje systemowe Anna Wojak 1 Zagadnienia do samodzielnego przygotowania: podstawowe polecenia linux, podstawy programowania w jezyku C, deskryptor
Obsługa plików. Systemy Operacyjne 2 laboratorium. Mateusz Hołenko. 25 września 2011
Obsługa plików Systemy Operacyjne 2 laboratorium Mateusz Hołenko 25 września 2011 Plan zajęć 1 Pliki w systemie Linux i-węzły deskryptory plików 2 Operacje na plikach otwieranie i zamykanie zapis i odczyt
Paradygmaty programowania. Paradygmaty programowania
Paradygmaty programowania Paradygmaty programowania Dr inż. Andrzej Grosser Cz estochowa, 2013 2 Spis treści 1. Zadanie 2 5 1.1. Wprowadzenie.................................. 5 1.2. Wskazówki do zadania..............................
Laboratorium Systemów Operacyjnych. Ćwiczenie 4. Operacje na plikach
Laboratorium Systemów Operacyjnych Ćwiczenie 4. Operacje na plikach Wykonanie operacji wymaga wskazania pliku, na którym operacja ma zostać wykonana. Plik w systemie LINUX identyfikowany jest przez nazwę,
Rys. 9-1 Procesy P1 i P2 komunikuję się poprzez wspólny obszar. pamięci.
J. Ułasiewicz Programowanie aplikacji współbieżnych 1 9. Komunikacja przez pamięć dzieloną Metoda komunikacji przez wspólną pamięć może być użyta gdy procesy wykonywane są na maszynie jednoprocesorowej
Pliki. Funkcje tworzące pliki i operujące na nich opisane są w części 2 pomocy systemowej. Tworzenie i otwieranie plików:
Pliki W celu wykonania jakiejkolwiek operacji na istniejącym pliku, plik ten musi zostać otwarty, natomiast jeśli plik jeszcze nie istnieje, to musi zostać utworzony. Plik może zostać otwarty w trybie:
Równoleg le sortowanie przez scalanie
Równoleg le sortowanie przez scalanie Bartosz Zieliński 1 Zadanie Napisanie programu sortuj acego przez scalanie tablicȩ wygenerowanych losowo liczb typu double w którym każda z procedur scalania odbywa
4.2 Sposób korzystania z l acza
4.2 Sposób korzystania z l acza 31 Opis programu: Program procesu potomnego (linie 16 19) jest taki sam, jak w przyk ladzie na listingu 3. W procesie macierzystym nastepuje z kolei przekierowanie standardowego
Instrukcja do laboratorium Systemów Operacyjnych (semestr drugi)
Instrukcja do laboratorium Systemów Operacyjnych (semestr drugi) wiczenie trzecie Temat: Potoki i ł cza nazwane w Linuksie. Opracowanie: mgr in ż. Arkadiusz Chrobot Wprowadzenie 1. Komunikacja z wykorzystaniem
Instrukcja do laboratorium Systemów Operacyjnych. (semestr drugi)
Instrukcja do laboratorium Systemów Operacyjnych (semestr drugi) Ćwiczenie trzecie (jedne zajęcia) Temat: Potoki i łącza nazwane w Linuksie. Opracowanie: dr in ż. Arkadiusz Chrobot Wprowadzenie 1. Komunikacja
Ghost in the machine
Operacje na pami eci i odrobina I/O Zak lad Chemii Teoretycznej UJ 8 stycznia 2007 Funkcje operujace Wstep do operacji I/O na plikach 1 Operacje na pami eci 2 Funkcje operujace 3 Wst Funkcje operujace
Rozdzia l 3. Laboratorium 3. danych zawierajac
Rozdzia l 3 Laboratorium 3 3.1. Tablice Tablica jest struktura danych zawierajac a zmienne tego samego typu. CLR środowiska.net Framework wspiera tworzenie tablic jedno oraz wielo wymiarowych. 3.1.1. Tablice
Warstwy oprogramowania wejścia/wyjścia
Warstwy oprogramowania wejścia/wyjścia 1 Programy użytkownika Rosnący poziom abstrakcji Oprogramowanie systemowe niezależne od urządzenia Sterowniki urządzeń Procedury obsługi przerwań Sprzęt Funkcje sterownika
J. Ułasiewicz Programowanie aplikacji współbieżnych 1
J. Ułasiewicz Programowanie aplikacji współbieżnych 1 9. Komunikacja przez pamięć dzieloną Pamięć wirtualna Procesy nie adresują bezpośrednio pamięci fizycznej. Zamiast tego system operacyjny przydziela
Systemy Operacyjne - Operacje na plikach
Systemy Operacyjne - Operacje na plikach Andrzej Stroiński Institute of Computer Science Poznań University of Technology 1 październik, 2012 Wprowadzenie do ANSI-C Pomoc systemowa man gcc man 2 write man
Functionalization. Funkcje w C. Marcin Makowski. 30 listopada Zak lad Chemii Teoretycznej UJ
w C Zak lad Chemii Teoretycznej UJ 30 listopada 2006 1 2 3 Inicjalizacja zmiennych Zmienne jednowymiarowe można inicjować przy ich definicji. #include i n t x = 1 ; l o n g day = 1000L * 60L
Kolejki FIFO (łącza nazwane)
Kolejki FIFO (łącza nazwane) Systemy Operacyjne 2 laboratorium Mateusz Hołenko 6 listopada 2011 Plan zajęć 1 Łącza w systemie Linux kolejki FIFO vs. potoki specyfika łączy nazwanych schemat komunikacji
Temat zajęć: Obsługa systemu plików.
Temat zajęć: Obsługa systemu plików. Czas realizacji zajęć: 90 min. Zakres materiału, jaki zostanie zrealizowany podczas zajęć: I. Operacje na plikach zwykłych. Tworzenie i otwieranie plików, deskryptory
Uruchamianie SNNS. Po uruchomieniu. xgui & lub snns & pojawia si e okno. programu. Symulator sztucznych sieci neuronowych SNNS 1
Uruchamianie SNNS Ca ly pakiet SNNS sk lada si e z programu interfejsu graficznego xgui, oraz z szeregu programów sk ladowych: analyze isnns netlearn snnsbat batchman linknets netperf td_bignet convert2snns
Functionalization. Jeszcze o funkcjach i strukturze projektu. Marcin Makowski. 3 grudnia Zak lad Chemii Teoretycznej UJ
Jeszcze o funkcjach i strukturze projektu Zak lad Chemii Teoretycznej UJ 3 grudnia 2008 1 2 3 4 5 typedef Plan typedef specyfikator typu nazwa S luży do stworzenia nowej nazwy dla jakiegoś typu. Nazwa
z powielaniem wielu struktur danych oraz komunikacja
c Wies law P laczek 28 8 Watki 8.1 Wprowadzenie Wiele rozwiazywanych problemów można podzielić na zadania czastkowe, które daja sie wykonać niemal niezależnie. Każde z takich zadań można by powierzyć oddzielnemu
Obliczenia rozproszone z wykorzystaniem MPI
Obliczenia rozproszone z wykorzystaniem Zarys wst u do podstaw :) Zak lad Metod Obliczeniowych Chemii UJ 8 sierpnia 2005 1 e konkretniej Jak szybko, i czemu tak wolno? 2 e szczegó lów 3 Dyspozytor Macierz
Paradygmaty programowania. Paradygmaty programowania
Paradygmaty programowania Paradygmaty programowania Dr inż. Andrzej Grosser Cz estochowa, 2013 2 Spis treści 1. Zadanie 1 5 1.1. Wprowadzenie.................................. 5 1.2. Wskazówki do zadania..............................
Organizacja systemu plików
Organizacja systemu plików organizacja logiczna pliku: rekordy o sta lej lub zmiennej d lugości np. w systemie Unix typowo pliki zorganizowane sa jako sekwencje bajtów, zatem sa to rekordy o sta lej d
Komunikacja za pomocą potoków. Tomasz Borzyszkowski
Komunikacja za pomocą potoków Tomasz Borzyszkowski Wstęp Sygnały, omówione wcześniej, są użyteczne w sytuacjach błędnych lub innych wyjątkowych stanach programu, jednak nie nadają się do przekazywania
Programowanie wspóªbie»ne
1 Programowanie wspóªbie»ne wiczenia 2 semafory cz. 1 Zadanie 1: Producent i konsument z buforem cyklicznym type porcja; void produkuj(porcja &p); void konsumuj(porcja p); porcja bufor[n]; / bufor cykliczny
J. Ułasiewicz Programowanie aplikacji współbieżnych 1
J. Ułasiewicz Programowanie aplikacji współbieżnych 1 9. Komunikacja przez pamięć dzieloną Pamięć wirtualna Procesy nie adresują bezpośrednio pamięci fizycznej. Zamiast tego system operacyjny przydziela
Paradygmaty programowania
Paradygmaty programowania Programowanie generyczne w C++ Dr inż. Andrzej Grosser Cz estochowa, 2016 2 Spis treści 1. Zadanie 3 5 1.1. Wprowadzenie.................................. 5 1.2. Obiekty funkcyjne................................
Futex (Fast Userspace Mutex) Łukasz Białek
Futex (Fast Userspace Mutex) Łukasz Białek Futex informacje podstawowe Stworzony w 2002 roku przez Hubertusa Franke, Matthew Kirkwooda, Ingo Molnára i Rustiego Russella. Jest mechanizmem w Linuxie, który
Obsługa plików Procesy
Obsługa plików Procesy Systemy Operacyjne 2 laboratorium Mateusz Hołenko 15 października 2011 Plan zajęć 1 Obsługa plików 1 Pliki w systemie Linux i-węzły deskryptory plików 2 Operacje na plikach 3 Operacje
Przedmowa... 7. Wstęp...9. 1. Wprowadzenie podstawowe pojęcia... 15
Spis treści Przedmowa... 7 Wstęp...9 1. Wprowadzenie podstawowe pojęcia... 15 Programowanie systemowe 15 API i ABI 18 Standardy 20 Pojęcia dotyczące programowania w Linuksie 23 Początek programowania systemowego
PROE wykład 7 kontenery tablicowe, listy. dr inż. Jacek Naruniec
PROE wykład 7 kontenery tablicowe, listy dr inż. Jacek Naruniec Prosty kontener oparty na tablicach Funkcja dodawanie pojedynczego słonia do kontenera: 1 2 3 4 5 6 7 11 12 13 14 15 16 17 21 22 23 24 25
Łącza nienazwane(potoki) Łącza nienazwane mogą być używane tylko pomiędzy procesami ze sobą powiązanymi.
Przykład: $ ls more Łącza nienazwane(potoki) Łącza nienazwane mogą być używane tylko pomiędzy procesami ze sobą powiązanymi. Tworzenie łącza #include int pipe(int filedes[2]); Przykład: int
Programowanie i struktury danych
Programowanie i struktury danych Wykªad 3 1 / 37 tekstowe binarne Wyró»niamy dwa rodzaje plików: pliki binarne pliki tekstowe 2 / 37 binarne tekstowe binarne Plik binarny to ci g bajtów zapami tanych w
Język C++ wykład VIII
Programowanie uzupełnienie notatek: dr Jerzy Białkowski 1 2 3 4 Obiektowość języka C++ ˆ Klasa (rozszerzenie struktury), obiekt instancją klasy, konstruktory i destruktory ˆ Enkapsulacja - kapsułkowanie,
Paradygmaty programowania
Paradygmaty programowania Programowanie generyczne w C++ Dr inż. Andrzej Grosser Cz estochowa, 2014 2 Spis treści 1. Zadanie 4 5 1.1. Wprowadzenie.................................. 5 1.2. Wskazówki do
3. Identyfikacja. SKŁADNIA #include <sys/socket.h> int getpeername(int socket, struct sockaddr *addr, int *addrlen);
3.1. Określanie adresu połączonego hosta 3. #include int getpeername(int socket, struct sockaddr *addr, int *addrlen); Funkcja getpeername dostarcza adresu drugiej strony połączenia. Parametry:
Pomoc dla użytkowników systemu asix 6 i 7. Drajwer Bufor. Dok. Nr PLP6021 Wersja:
Pomoc dla użytkowników systemu asix 6 i 7 www.asix.com.pl Drajwer Bufor Dok. Nr PLP6021 Wersja: 2012-03-16 ASKOM i asix to zastrzeżone znaki firmy ASKOM Sp. z o. o., Gliwice. Inne występujące w tekście
SYSTEMY 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
Metody zawarte w klasie File: boolean createnewfile() tworzy nowy, pusty plik, ale tylko jeśli on wcześniej nie istniał. boolean delete() usuwa dany
Metody zawarte w klasie File: boolean createnewfile() tworzy nowy, pusty plik, ale tylko jeśli on wcześniej nie istniał. boolean delete() usuwa dany plik. boolean exists() sprawdza czy plik o zadanej nazwie
Semafor ustaw_semafor(key_t nazwa, int start); Semafor usun_semafor(semafor sem); void signal(semafor sem); void wait(semafor sem);
Semafory przypomnienie semafory służą ochronie dostępu procesów do sekcji krytycznej; na semaforach dostępne są dwie operacje: podniesienie semafora signal, opuszczenie semafora wait opuszczony semafor
System plików warstwa logiczna
Dariusz Wawrzyniak Pojęcie u Plik jest abstrakcyjnym obrazem informacji gromadzonej i udostępnianej przez system komputerowy. Plik jest podstawową jednostką logiczną magazynowania informacji w systemie
Organizacja systemu plików
Organizacja systemu plików organizacja logiczna pliku: rekordy o sta lej lub zmiennej d lugości np. w systemie Unix typowo pliki zorganizowane sa jako sekwencje bajtów, zatem sa to rekordy o sta lej d
SYSTEMY CZASU RZECZYWISTEGO - VxWorks
WZAJEMNE WYKLUCZANIE Wiele metod. Np. wyłączanie przerwań: funkcja() //... Int blokada = intlock(); // Obszar krytyczny, któremu nie możemy przerwać intunlock(blokada); wyłączanie wywłaszczania: funkcja()
Szablony klas, zastosowanie szablonów w programach
Szablony klas, zastosowanie szablonów w programach 1. Szablony klas i funkcji 2. Szablon klasy obsługującej uniwersalną tablicę wskaźników 3. Zastosowanie metody zwracającej przez return referencję do
Iteracyjny serwer TCP i aplikacja UDP
Iteracyjny serwer TCP i aplikacja UDP Iteracyjny serwer TCP Funkcje wywoływane przez serwer TCP socket() - bind() - listen() - accept() - read() / write() - close() socket() Creates an endpoint for communication
sposób wykonywania operacji zapisu i odczytu dane odczytywane z l acza usuwane (nie można ich odczytać ponownie),
27 4 L acza L acza w systemie UNIX sa plikami specjalnymi, s luż acymi do komunikacji pomiedzy procesami. L acza maja kilka cech typowych dla plików zwyk lych, czyli posiadaja swój i-weze l, posiadaja
Jak wiemy, wszystkich danych nie zmieścimy w pamięci. A nawet jeśli zmieścimy, to pozostaną tam tylko do najbliższego wyłączenia zasilania.
Jak wiemy, wszystkich danych nie zmieścimy w pamięci. A nawet jeśli zmieścimy, to pozostaną tam tylko do najbliższego wyłączenia zasilania. Dlatego trzeba je zapisywać do pliku, a potem umieć je z tego
Struktury. Przykład W8_1
Struktury Struktury pozwalają na grupowanie zmiennych różnych typów pod wspólną nazwą. To istotnie ułatwia organizacje danych, które okazują się w jednym miejscu kodu programu. To jest bardzo ważne dla
pozycja klucza - offset klucza w rekordzie flaga pliku tymczasowego czas utworzenia bież acy rozmiar - liczba bajtów w pliku
Organizacja systemu plików organizacja logiczna pliku: rekordy o sta lej lub zmiennej d lugości np. w systemie Unix typowo pliki zorganizowane sa jako sekwencje bajtów, zatem sa to rekordy o sta lej d
Systemy Operacyjne 2: Wątki pthreads. dr inż. Arkadiusz Chrobot
Systemy Operacyjne 2: Wątki pthreads dr inż. Arkadiusz Chrobot 18 kwietnia 2013 1. Wprowadzenie Wątki podobnie jak procesy umożliwiają współbieżną realizację czynności w wykonywanym programie. Domyślnie
Pamięć współdzielona
Pamięć współdzielona Systemy Operacyjne 2 Piotr Zierhoffer 17 listopada 2011 Mechanizmy IPC IPC Inter Process Communication kolejki komunikatów, pamięć współdzielona semafory polecenia bash: ipcs, ipcrm
Programowanie w językach
Programowanie w językach wysokiego poziomu Obsługa plików za pomocą strumieni Elektronika i Telekomunikacja, semestr III rok akademicki 2013/2014 dr inż. Paweł Myszkowski Plan zajęć a) otwieranie i zamykanie
us lugi katalogowe? Czym różni si e serwer katalogowy od serwera bazy danych:
Co to sa us lugi katalogowe? Czym różni si e serwer katalogowy od serwera bazy danych: Dane w serwerze katalogowym sa przegladane dużo cz eściej, niż sa modyfikowane, inaczej niż w zwyk lej bazie danych.
Ćwiczenie 4. Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1.
Laboratorium Podstaw Informatyki Strona 1 Laboratorium Podstaw Informatyki Kierunek Elektrotechnika Ćwiczenie 4 Obsługa plików Kraków 2010 Laboratorium Podstaw Informatyki Strona 2 Obsługa plików Zanim
Lekcja 10. Uprawnienia. Dołączanie plików przy pomocy funkcji include() Sprawdzanie, czy plik istnieje przy pmocy funkcji file_exists()
Paweł Gmys PHP strona 1 Lekcja 10 Uprawnienia Aby skrypt PHP mógł odwołać się do pliku, musi mieć odpowiednie uprawnienia. Szczegóły są zależne od serwera. Najczęściej chyba skrypt ma uprawnienia takie,
PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych:
PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: MySQL moduł mysql albo jego nowsza wersja mysqli (moduł mysqli ma dwa interfejsy: proceduralny i obiektowy) PostgreSQL Oracle MS
Statystyka w analizie i planowaniu eksperymentu
29 marca 2011 Przestrzeń statystyczna - podstawowe zadania statystyki Zdarzeniom losowym określonym na pewnej przestrzeni zdarzeń elementarnych Ω można zazwyczaj na wiele różnych sposobów przypisać jakieś
Powyższe wyrażenie alokuje 200 lub 400 w zależności od rozmiaru int w danym systemie. Wskaźnik wskazuje na adres pierwszego bajtu pamięci.
1. Tablice dynamiczne Początkowa zadeklarowana wielkość tablicy czasami może okazać niewystarczająca, lub nadmierna. Dynamiczna alokacja pamięci wykorzystywana jest w celu otrzymania bądź zwolnienia pamięci
Procesy. Systemy Operacyjne 2 laboratorium. Mateusz Hołenko. 9 października 2011
Procesy Systemy Operacyjne 2 laboratorium Mateusz Hołenko 9 października 2011 Plan zajęć 1 Procesy w systemie Linux proces procesy macierzyste i potomne procesy zombie i sieroty 2 Funkcje systemowe pobieranie
Organizacja systemu plików
Organizacja systemu plików organizacja logiczna pliku: rekordy o sta lej lub zmiennej d lugości np. w systemie Unix typowo pliki zorganizowane sa jako sekwencje bajtów, zatem sa to rekordy o sta lej d
Suma i przeciȩcie podprzestrzeń, suma prosta, przestrzeń ilorazowa Javier de Lucas
Suma i przeciȩcie podprzestrzeń suma prosta przestrzeń ilorazowa Javier de Lucas Ćwiczenie 1 W zależności od wartości parametru p podaj wymiar przestrzeni W = v 1 v v 3 gdzie p 0 v 1 = 1 + p 3 v = 5 3
Pochodne cz ¾astkowe i ich zastosowanie.
Pochodne cz ¾astkowe i ich zastosowanie. Adam Kiersztyn Lublin 2013 Adam Kiersztyn () Pochodne cz ¾astkowe i ich zastosowanie. maj 2013 1 / 18 Zanim przejdziemy do omawiania pochodnych funkcji wielu zmiennych
Statystyka w analizie i planowaniu eksperymentu
22 marca 2011 Przestrzeń statystyczna - podstawowe zadania statystyki Zdarzeniom losowym określonym na pewnej przestrzeni zdarzeń elementarnych Ω można zazwyczaj na wiele różnych sposobów przypisać jakieś
Plik jest poj eciem, z którym spotyka si e niemal każdy użytkownik systemu komputerowego, nawet
6 2 Pliki 2 Pliki Plik jest pojeciem, z którym spotyka sie niemal każdy użytkownik systemu komputerowego, nawet użytkownik końcowy, zajmujacy sie obs lug a komputera w elementarnym zakresie. Popularność
Linux Kernel III. Character devices
Linux Kernel III Character devices Urządzenia systemu Linux (I) Character device Block device Network device Do urządzenia piszemy jak do pliku, Dozwolone działania: open, close, read, write, Np. /dev/tty1.
Statystyka w analizie i planowaniu eksperymentu
31 marca 2014 Przestrzeń statystyczna - podstawowe zadania statystyki Zdarzeniom losowym określonym na pewnej przestrzeni zdarzeń elementarnych Ω można zazwyczaj na wiele różnych sposobów przypisać jakieś
Klasyczne problemy synchronizacji
Klasyczne problemy synchronizacji Systemy Operacyjne 2 laboratorium Mateusz Hołenko 19 grudnia 2011 Plan zajęć 1 Synchronizacja 2 Problem producenta / konsumenta 3 Problem pięciu filozofów 4 Problem czytelników
systemu operacyjnego UNIX Funkcje jadra Spis treści Dariusz Wawrzyniak 20 października Wst ep 5
Funkcje jadra systemu operacyjnego UNIX Dariusz Wawrzyniak Dariusz.Wawrzyniak@cs.put.poznan.pl 20 października 2008 Spis treści 1 Wst ep 5 2 Pliki 6 2.1 Operacje na plikach zwyk lych.............................
Instytut Teleinformatyki
Instytut Teleinformatyki Wydział Inżynierii Elektrycznej i Komputerowej Politechnika Krakowska programowanie usług sieciowych Dziedzina Unix laboratorium: 06 Kraków, 2014 06. Programowanie Usług Sieciowych
ang. file) Pojęcie pliku (ang( Typy plików Atrybuty pliku Fragmentacja wewnętrzna w systemie plików Struktura pliku
System plików 1. Pojęcie pliku 2. Typy i struktury plików 3. etody dostępu do plików 4. Katalogi 5. Budowa systemu plików Pojęcie pliku (ang( ang. file)! Plik jest abstrakcyjnym obrazem informacji gromadzonej
Typy wyliczeniowe Konwersje napis <-> liczba Struktury, unie Scanf / printf Wskaźniki
Typy wyliczeniowe Konwersje napis liczba Struktury, unie Scanf / printf Wskaźniki Typy wyliczeniowe Służą do łatwiejszej kontroli nad stałymi Ustawianie parametrów o ściśle określonym zbiorze wartości
Ćwiczenie nr 520: Metody interpolacyjne planowania ruchu manipulatorów
Zak lad Podstaw Cybernetyki i Robotyki PWr, Laboratorium Robotyki, C-3, 010 Ćwiczenie nr 520: Metody interpolacyjne planowania ruchu manipulatorów 1 Wst ep Celem ćwiczenia jest zapoznanie studentów z metodami
INFORMATOR TECHNICZNY WONDERWARE
Informator techniczny nr 95 04-06-2007 INFORMATOR TECHNICZNY WONDERWARE Synchronizacja czasu systemowego na zdalnych komputerach względem czasu systemowego na komputerze z serwerem Wonderware Historian
Programowanie równoległe i rozproszone. Monitory i zmienne warunku. Krzysztof Banaś Programowanie równoległe i rozproszone 1
Programowanie równoległe i rozproszone Monitory i zmienne warunku Krzysztof Banaś Programowanie równoległe i rozproszone 1 Problemy współbieżności Problem producentów i konsumentów: jedna grupa procesów
Sieci Komputerowe 2 / Ćwiczenia 2
Tematyka Sieci Komputerowe 2 / Ćwiczenia 2 Opracował: Konrad Kawecki na podstawie materiałów: http://www.isi.edu/nsnam/ns/tutorial/index.html Na ćwiczeniach zapoznamy się z symulatorem
PROE 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
Część 4 życie programu
1. Struktura programu c++ Ogólna struktura programu w C++ składa się z kilku części: część 1 część 2 część 3 część 4 #include int main(int argc, char *argv[]) /* instrukcje funkcji main */ Część
Tablice i funkcje. Marcin Makowski. 26 listopada Zak lad Chemii Teoretycznej UJ
Zak lad Chemii Teoretycznej UJ 26 listopada 2007 wielowymiarowe 1 2 wielowymiarowe 3 Typ tablicowy Plan wielowymiarowe Tablica Zajmujacy spójny obszar w pamieci zestaw zmiennych (obiektów) tego samego
Funkcje. Piotr Zierhoffer. 7 października Institute of Computer Science Poznań University of Technology
Funkcje Piotr Zierhoffer Institute of Computer Science Poznań University of Technology 7 października 2012 Funkcje Funkcja podprogram. Nazwany blok kodu realizujacy jakieś zadanie. sin(x), arccos(x), min(a,
Instytut Teleinformatyki
Instytut Teleinformatyki Wydział Inżynierii Elektrycznej i Komputerowej Politechnika Krakowska programowanie usług sieciowych IPC Systemu V laboratorium: 08 Kraków, 2014 08. Programowanie Usług Sieciowych
Podstawy informatyki. Elektrotechnika I rok. Język C++ Operacje na danych - wskaźniki Instrukcja do ćwiczenia
Podstawy informatyki Elektrotechnika I rok Język C++ Operacje na danych - wskaźniki Instrukcja do ćwiczenia Katedra Energoelektroniki i Automatyki Systemów Przetwarzania Energii AGH Kraków 2017 Tematyka
SYSTEM DIAGNOSTYCZNY OPARTY NA LOGICE DOMNIEMAŃ. Ewa Madalińska. na podstawie prac:
SYSTEM DIAGNOSTYCZNY OPARTY NA LOGICE DOMNIEMAŃ Ewa Madalińska na podstawie prac: [1] Lukaszewicz,W. (1988) Considerations on Default Logic: An Alternative Approach. Computational Intelligence, 44[1],
Zajęcia nr 5 Algorytmy i wskaźniki. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej
Zajęcia nr 5 Algorytmy i wskaźniki dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej Plan Zapis i odczyt z plików tekstowych O tablicach ciąg dalszy Referencje
Operatory zmiany sposobu przypisania standardowych strumieni >,<,>> Jeżeli pierwsze polecenie powiodło się to wykona drugie
Linux Polecenia Opracował: Andrzej Nowak Operatory zmiany sposobu przypisania standardowych strumieni >,> Przykłady: 2> plik przypisuje standardowe wyjście błędów do pliku, 1>&2 przypisanie standardowe
problemu producenta i konsumenta z ograniczonym buforem cyklicznym. Wszystkie funkcje dotyczace
37 5 Mechanizmy IPC Mechanizmy IPC (ang. Interprocess Communication) obejmuja pamieć wspó ldzielona, semafory i kolejki komunikatów. Semafory sa raczej mechanizmem synchronizacji, niż komunikacji procesów.
Operacje wejścia/wyjścia (odsłona druga) - pliki
Operacje wejścia/wyjścia (odsłona druga) - pliki Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2008 Bogdan Kreczmer Niniejszy dokument zawiera materiały
pami eć operacyjna przechowuje dane do przetworzenia, tymczasowe dane pomocnicze,
16 3 Procesy 3 Procesy Pojecie procesu jest kluczowe dla zrozumienia funkcjonowania wielozadaniowych systemów operacyjnych. Trudność w zrozumieniu tego pojecia i tym samym zg lebienie mechanizmu obs lugi
Algorytmy i złożoności. Wykład 3. Listy jednokierunkowe
Algorytmy i złożoności Wykład 3. Listy jednokierunkowe Wstęp. Lista jednokierunkowa jest strukturą pozwalającą na pamiętanie danych w postaci uporzadkowanej, a także na bardzo szybkie wstawianie i usuwanie
Model pamięci w systemie Linux
Model pamięci w systemie Linux Patryk Konopka Paweł Piecyk Wydział Fizyki i Informatyki Stosowanej 2013.05.08 Plan prezentacji 1. Tryb rzeczywisty i segmentowy model pamięci 2. Tryb chroniony i płaski
ANALIZA II 15 marca 2014 Semestr letni. Ćwiczenie 1. Czy dan a funkcjȩ da siȩ dookreślić w punkcie (0, 0) tak, żeby otrzymana funkcja by la ci ag la?
Ci ag lość i norma Ćwiczenie. Czy dan a funkcjȩ da siȩ dookreślić w punkcie (0, 0) tak, żeby otrzymana funkcja by la ci ag la? f (x, y) = x2 y 2 x 2 + y 2, f 2(x, y) = x2 y x 2 + y 2 f 3 (x, y) = x2 y
Komunikacja mi edzyprocesowa (IPC)
Komunikacja miedzyprocesowa (IPC) Procesy tworzone w ramach systemu operacyjnego moga sie komunikować. Jeżeli duża aplikacja jest budowana z wielu wspó lpracuj acych procesów, to ta komunikacja może być
Działanie systemu operacyjnego
Działanie systemu operacyjnego Budowa systemu komputerowego I NIC Jednostka centralna Sterownik dysku Sterownik drukarki Sterownik sieci Szyna systemowa (magistrala danych) Sterownik pamięci operacyjnej
Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1
Podstawy programowania, Poniedziałek 30.05.2016, 8-10 Projekt, część 1 1. Zadanie Projekt polega na stworzeniu logicznej gry komputerowej działającej w trybie tekstowym o nazwie Minefield. 2. Cele Celem