1. Kolejki komunikatów POSIX

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

Download "1. Kolejki komunikatów POSIX"

Transkrypt

1 Jędrzej Ułasiewicz IIAiR Politechnika Wrocławska 1 1. Kolejki komunikatów POSIX 1.1 Podstawowe własności Kolejki FIFO maja następujące wady: Komunikaty pozbawione struktury Nie można testować stanu kolejki liczba komunikatów, procesy zablokowane Wad tych pozbawione są kolejki komunikatów POSIX Podstawowe cechy kolejek komunikatów: 1. Kolejki komunikatów są pośrednim obiektem komunikacyjnym widzianym jako plik specjalny. Komunikujące się procesy nie muszą znać swoich identyfikatorów. 2. Komunikaty odczytywane z kolejki zachowują strukturę są separowane. W kolejce mogą znajdować się komunikaty różnej długości. Własności tej nie mają kolejki FIFO. 3. Można zadać maksymalną długość kolejki komunikatów. Gdy zostanie ona przekroczona, proces piszący do kolejki komunikatów będzie zablokowany. 4. Kolejka widziana jest w systemie plików jako plik specjalny. Operacje zapisu / odczytu mogą być zabezpieczane prawami dostępu tak jak w przypadku plików regularnych. 5. Można testować status kolejki (np. liczbę komunikatów w kolejce). Nie jest to możliwe w przypadku kolejek FIFO. 6. Komunikatom można nadać priorytet. Komunikaty wyższym priorytecie będą umieszczane na początku kolejki. PN1 PO1 PNk Max n POn Procesy nadające Kolejka Q Procesy odbierajace Rys. 1-1 Procesy komunikują się za pomocą kolejki komunikatów

2 Jędrzej Ułasiewicz IIAiR Politechnika Wrocławska 2 Zastosowanie kolejki komunikatów jest wygodnym rozwiązaniem w następujących przypadkach: 1. Proces wysyłający komunikaty nie może być wstrzymany. 2. Proces wysyłający komunikaty nie potrzebuje szybkiej informacji zwrotnej o tym czy komunikat dotarł do adresata. 3. Zachodzi potrzeba przekazywania danych z procesu w którym one powstają (producent) do procesu w którym są one przetwarzane (konsument) 1.2 Podstawowe typy i plik nagłówkowy Kolejka komunikatów jest typu mqd_t. Typ ten jest zdefiniowany w pliku nagłówkowym <mqueue.h>. Modyfikowalne atrybuty kolejki komunikatów zdefiniowane są w strukturze mq_attr. struct mq_attr { long mq_maxmsg; // Maksymalna liczba komunikatów w kolejce long mq_msgsize; // Maksymalna wielkość poj. komunikatu long mq_curmsg; // Aktualna liczba komunikatów w kolejce long mq_flags; // Flagi long mq_sendwait; // Liczba procesów zablok. na operacji zapisu long mq_recvwait; // Liczba procesów zablok. na operacji odczytu } mq_open Otwarcie kolejki komunikatów mq_getattr Pobranie atrybutów kolejki mq_setattr Ustawienie atrybutów kolejki mq_receive Odbiór komunikatu z kolejki mq_send Zapis komunikatu do kolejki mq_timedreceive Odbiór z kolejki komunikatów (z ogr.czasowym) mq_timedsend Zapis komunikatu do kolejki (z ogr.czasowym) mq_notify Żądanie zawiadomnienia gdy kolejka niepusta mq_unlink Skasowanie kolejki mq_close Zamknięcie kolejki

3 Jędrzej Ułasiewicz IIAiR Politechnika Wrocławska Utworzenie i otwarcie kolejki komunikatów Kolejkę komunikatów tworzy się za pomocą funkcji: mqd_t mq_open(char *name,int oflag) mqd_t mq_open(char *name,int oflag,int mode,mq_attr *attr) name oflag mode attr Łańcuch identyfikujący kolejkę komunikatów, ma się zaczynać od /. Kolejki tworzone są w katalogu bieżącym Tryb tworzenia kolejki. Tryby te są analogiczne jak w zwykłej funkcji open. Prawa dostępu do kolejki (r - odczyt, w - zapis) dla właściciela pliku, grupy i innych, analogicznie jak w przypadku plików regularnych. Atrybut x - wykonanie jest ignorowany. Atrybuty kolejki Ważniejsze tryby tworzenia kolejki komunikatów: Tryb O_RDONLY O_WRONLY O_RDWR O_CREAT O_NONBLOCK Znaczenie Tylko odczyt z kolejki Tylko zapis do kolejki Odczyt i zapis Utwórz kolejkę o ile nie istnieje Domyślnie flaga jest wyzerowana co powoduje że operacje odczytu (mq_receive) i zapisu (mq_send) mogą być blokujące. Gdy flaga jest ustawiona operacje te nie są blokujące i kończą się błędem. Tab. 1-1 Podstawowe flagi używane przy tworzeniu kolejek komunikatów Atrybut Wartość domyślna mq_maxmsg 10 mq_msgsize 4096 mq_flags 0 Tab. 1-2 Domyślne atrybuty kolejki komunikatów:

4 Jędrzej Ułasiewicz IIAiR Politechnika Wrocławska 4 Gdy kolejka już istnieje parametry 3 i 4 funkcji mq_open są ignorowane. Funkcja mq_open zwraca: 1. W przypadku pomyślnego wykonania wynik jest nieujemny jest to identyfikator kolejki komunikatów 2. W przypadku błędu funkcja zwraca Synchronizacja Przebieg operacji zapisu i odczytu zależy od liczby n komunikatów w kolejce i od jej pojemności Max. Wysyłanie komunikatu: mq_send(...) Odbiór komunikatu: mq_receive (...) Liczba komunikatów n w kolejce Q n = Max Wysłanie komunikatu Blokada lub sygnalizacja błędu Odbiór komunikatu Bez blokady 0< n < Max Bez blokady Bez blokady n = 0 Bez blokady Blokada lub sygnalizacja błędu Rys. 1-2 Przebieg operacji na kolejce w zależności od liczby komunikatów n w jej buforze 1.5 Wysłanie komunikatu do kolejki Wysłanie komunikatu do kolejki komunikatów odbywa się za pomocą funkcji: int mq_send(mqd_t mq, char *msg, size_t len, unsigned int mprio)

5 Jędrzej Ułasiewicz IIAiR Politechnika Wrocławska 5 Znaczenie parametrów: mq identyfikator kolejki komunikatów, *msg adres bufora wysyłanego komunikatu, len długość wysyłanego komunikatu, mprio priorytet komunikatu (od 0 do MQ_PRIORITY_MAX). Wywołanie funkcji powoduje przekazanie komunikatu z bufora msg do kolejki mq. Można wyróżnić dwa zasadnicze przypadki: 1) W kolejce jest miejsce na komunikaty. Wtedy wykonanie funkcji nie spowoduje zablokowania procesu bieżącego. 2) W kolejce brak miejsca na komunikaty. Wtedy wykonanie funkcji spowoduje zablokowania procesu bieżącego. Proces ulegnie odblokowaniu gdy zwolni się miejsce w kolejce. Zachowanie się funkcji uzależnione jest od stanu flagi O_NONBLOCK. Flaga ta jest domyślnie wyzerowana. Funkcja zwraca: 0 Sukces -1 Błąd 1.6 Pobieranie komunikatu z kolejki Pobieranie komunikatu z kolejki komunikatów odbywa się za pomocą funkcji mq_receive. int mq_receive(mqd_t mq, char *msg, size_t len, unsigned int *mprio) Znaczenie parametrów: mq identyfikator kolejki komunikatów, *msg Adres bufora na odbierany komunikat, len maksymalna długość odbieranego komunikatu, mprio priorytet odebranego komunikatu. 1. Gdy w kolejce znajduje się przynajmniej jeden komunikat wywołanie funkcji mq_receive nie spowoduje zablokowania procesu bieżącego. 2. Gdy w kolejce brak komunikatów wywołanie funkcji mq_receive spowoduje zablokowania procesu bieżącego.

6 Jędrzej Ułasiewicz IIAiR Politechnika Wrocławska 6 Proces ulegnie odblokowaniu gdy w kolejce pojawi się jakiś komunikat. Proces 1 Proces 2 Stan kolejki mq_receive(...) Pusta Blokada kolejka komunikatów mq_send(...) przeslanie komunikatu Pusta Rys. 1-3 Proces 2 blokuje się przy próbie odbioru komunikatu z kolejki. W przypadku gdy więcej niż jeden proces czeka na komunikat odblokowany będzie proces który najdłużej czekał. Zachowanie się funkcji uzależnione jest także od stanu flagi O_NONBLOCK. Funkcja mq_receive zwraca: >0 Rozmiar odebranego komunikatu gdy wynik jest większy od 0. 1 Gdy wystąpił błąd.

7 Jędrzej Ułasiewicz IIAiR Politechnika Wrocławska 7 Przykład: Procesy P1 i P2 komunikują się przy pomocy kolejki komunikatów problem producenta konsumenta. // Proces P1 wysylajacy komunikaty do kolejki MQ1 #include <stdio.h> #include <mqueue.h> #define SIZE 80 typedef struct { int type; // Typ komunikatu char text[size]; // Tekst komunikatu } msg_tp; main(int argc, char *argv[]) { int i; int res; mqd_t mq; msg_tp msg; struct mq_attr attr; // Ustalenie atrybutów kolejki attr.mq_msgsize = sizeof(msg); attr.mq_maxmsg = 8; attr.mq_flags = 0; // Utworzenie kolejki komunikatow mq=mq_open( /MQ1,O_RDWR O_CREAT, 0666,&attr); if(mq < 0) { // Błąd perror( Kolejka MQ1 ); exit(-1); } for(i=0; i < 10 ;i++) { msg.type = 1; sprintf(msg.text,"proces 1 komunikat %d",i); // Wysłanie komunikatu res = mq_send(mq,&msg,sizeof(msg),10); sleep(1); } mq_close(mq); } Przykład 1-1 Kod procesu wysyłającego komunikaty do kolejki MQ1 - producent

8 Jędrzej Ułasiewicz IIAiR Politechnika Wrocławska 8 // Proces P2 odbierający komunikaty z kolejki MQ1 #include <stdio.h> #include <mqueue.h> #define SIZE 80 typedef struct { int type; // Typ komunikatu char text[size]; // Tekst komunikatu } msg_tp; main(int argc, char *argv[]) { int i, res, prio; mqd_t mq; msg_tp msg; struct mq_attr attr; // Ustalenie atrybutów kolejki attr.mq_msgsize = sizeof(msg); attr.mq_maxmsg = 8; attr.mq_flags = 0; // Utworzenie kolejki komunikatow mq=mq_open( /MQ1,O_RDWR O_CREAT, 0666,&attr); if(mq < 0) { // Błąd perror( Kolejka MQ1 ); exit(-1); } for(i=0; i < 10 ;i++) { // Odbiór komunikatu res = mq_receive(mq,&msg,sizeof(msg),&prio); printf( Typ: %d text: %s\n,msg.typ,msg.text); } mq_close(mq); } Przykład 1-2 Kod procesu odbierającego komunikaty z kolejki MQ1 - konsument

9 Jędrzej Ułasiewicz IIAiR Politechnika Wrocławska Testowanie statusu kolejki komunikatów Testowanie statusu kolejki komunikatów odbywa się poprzez wykonanie funkcji: int mq_getattr(mqd_t mq, struct mq_attr *attr) Znaczenie parametrów: mq Iidentyfikator kolejki komunikatów, *attr Adres bufora ze strukturą zawierającą atrybuty kolejki komunikatów Użyteczne elementy struktury atrybutów: mq_curmsg Aktualna liczba komunikatów w kolejce mq_sendwait Liczba procesów zablokowanych na operacji zapisu mq_recvwait Liczba procesów zablokowanych na operacji odczytu

10 Jędrzej Ułasiewicz IIAiR Politechnika Wrocławska Odbieranie komunikatu z kolejki wersja z ograniczeniem czasowym Pobieranie komunikatu z kolejki komunikatów, ale z ograniczeniem czasowym, odbywa się za pomocą funkcji mq_timedreceive. int mq_timedreceive(mqd_t mq, char *msg, size_t len, unsigned int *mprio, struct timespec *abs_timeout) Znaczenie parametrów: mq Identyfikator kolejki komunikatów, *msg Adres bufora na odbierany komunikat, len Maksymalna długość odbieranego komunikatu, mprio Priorytet odebranego komunikatu. abs_timeout Czas absolutny do którego komunikat musi zostać odebrany struct timespec { time_t tv_sec; /* seconds */ long tv_nsec; /* nanoseconds */ }; Gdy w kolejce nie pojawi się komunikat a upłynie czas abs_timeout to funkcja zakończy się z błędem Kod błędu ETIMEDOUT

11 Jędrzej Ułasiewicz IIAiR Politechnika Wrocławska Wysyłanie komunikatu z kolejki wersja z ograniczeniem czasowym Gdy kolejka komunikatów jest pełna to wysyłanie komunikatów funkcją mq_send spowoduje zablokowanie procesu bieżącego do czasu gdy nie zwolni się miejsce w kolejce. Wysyłanie komunikatu do kolejki komunikatów, ale z ograniczeniem czasowym, odbywa się za pomocą funkcji mq_timedsend. int mq_timedsend(mqd_t mq, char *msg, size_t len, unsigned int mprio, struct timespec *abs_timeout) Znaczenie parametrów: mq Identyfikator kolejki komunikatów, msg Adres bufora na wysyłany komunikat, len Maksymalna długość wysyłany komunikatu, mprio Priorytet wysyłanego komunikatu. abs_timeout Czas absolutny do którego komunikat musi zostać wysłany struct timespec { time_t tv_sec; /* seconds */ long tv_nsec; /* nanoseconds */ }; Gdy w kolejce nie pojawi się dość miejsca na pomieszczenie komunikatu a upłynie czas abs_timeout to funkcja zakończy się z błędem. Kod błędu ETIMEDOUT

12 Jędrzej Ułasiewicz IIAiR Politechnika Wrocławska Zawiadamianie procesu o pojawieniu się komunikatu w kolejce 1. Można spowodować aby pojawienie się komunikatu w pustej kolejce (a wiec zmiana stanu kolejki z pusta na niepusta ) powodowało zawiadomienie procesu bieżącego. 2. Zawiadomienie może mieć postać sygnału lub powodować uruchomienie wątku int mq_notify(mqd_t mq, struct sigevent *notif) Znaczenie parametrów: mq Identyfikator kolejki komunikatów, *notif Adres struktury typu sigevent specyfikującego sposób zawiadomienia. union sigval { /* Dane przekazywane z zawiadomieniem */ int sival_int; /* Wartośc int */ void *sival_ptr; /* Wskaźnik */ }; struct sigevent { int sigev_notify; /* Metoda zawiadomienia */ int sigev_signo; /* Sygnał zawiadomienia */ union sigval sigev_value; /* Dane przekazywane z zawiadomieniem */ void (*sigev_notify_function) (union sigval); /* Funkcja do tworzenia wątka (SIGEV_THREAD) */ void *sigev_notify_attributes; /* Atrybuty tworzonego wątku (SIGEV_THREAD) */ pid_t sigev_notify_thread_id; /* Identyfikator wątku (SIGEV_THREAD_ID) */ }; Tab. 1-3 Deklaracja typu sigevent Pole sigev_signo interpretowane jest jako numer sygnału który będzie wysłany gdy w kolejce pojawi się komunikat. W procesie należy zdefiniować sposób obsługi tego sygnału.

13 Jędrzej Ułasiewicz IIAiR Politechnika Wrocławska 13 SIGEV_NONE SIGEV_SIGNAL SIGEV_THREAD brak akcji wysłanie sygnału uruchomienie wątku Tab. 1-4 Specyfikacja akcji przy zmianie statusu kolejki z pusty na niepusty 1.11 Zamknięcie i skasowanie kolejki komunikatów Gdy proces przestanie korzystać z kolejki komunikatów powinien ją zamknąć. Do tego celu służy funkcja: int mq_close(mqd_t mq) Kolejkę kasuje się za pomocą polecenia: int mq_unlink(char *name) 1.12 Interfejs /proc W katalogu /proc znajdują się pliki za pomocą których można testować parametry kolejek komunikatów /proc/sys/fs/mqueue/msg_max maksymalna długość kolejki domyślnie 10 /proc/sys/fs/mqueue/msgsize_max maksymalna długość komunikatu domyślnie 8192 /proc/sys/fs/mqueue/queues_max maksymalna liczba kolejek domyślnie Montowanie kolejek komunikatów w systemie plików # mkdir /dev/mqueue # mount -t mqueue none /dev/mqueue

14 Jędrzej Ułasiewicz IIAiR Politechnika Wrocławska Przykłady zastosowań Sterowanie robotem procesy obslugi sensorów procesy obslugi efektorów S1 P1 PE1 E1 S2 Sn P2 Pn kolejka dane wejściowe proces decyzyjny kolejki dane wyjściowe PE2 PEk E2 Ek sensory efektory Rys. 1-4 Zastosowanie kolejek komunikatów w robotyce

15 Jędrzej Ułasiewicz IIAiR Politechnika Wrocławska 15 System akwizycji danych T1 PO1 T2 Urządzenie pomiarowe PA PD PO2 Proces akwizycji danych Kolejka komunikatów Q Dystrybutor komunikatów TN PON Procesy odbierające dane Rys. 1-5 Akwizycja i dystrybucja danych odbywa się poprzez dwa procesy PA i PD połączone kolejką komunikatów Q. T1 PO1 T2 Urządzenie pomiarowe PA PD PO2 Proces akwizycji danych Kolejka komunikatów Q Dystrybutor komunikatów TN PON Procesy odbierające dane Rys. 1-6 Akwizycja i dystrybucja danych odbywa się poprzez dwa procesy PA i PD połączone kolejką komunikatów Q.

16 Jędrzej Ułasiewicz IIAiR Politechnika Wrocławska Sprzętowe kolejki komunikatów Sprzętowe kolejki komunikatów stosowane są do komunikacji między procesorowej w systemach wieloprocesorowych. Przykładem jest procesor AM3359 zainstalowany w komputerze BeagleBone Black. Występuje tam 8 mailboxów sprzętowych. Służą między innymi do komunikacji z 2 procesorami PRU (ang. Programmable Real Time Unit) Każdy mailbox może przechowywać do 4 komunikatów 32 bitowych. Może też generować przerwanie. Rys. 1-7 Mailbox,y do komunikacji w procesorze AM3359

17 Jędrzej Ułasiewicz IIAiR Politechnika Wrocławska 17 Rys. 1-8 Schemat sprzętowego mailbox,a

Kolejki komunikatów POSIX

Kolejki komunikatów POSIX Jędrzej Ułasiewicz IIAiR Politechnika Wrocławska 1 Kolejki komunikatów POSIX 1 Wstęp Kolejka komunikatów Q posiada następujące własności: - Posiada określoną pojemność N komunikatów (długość bufora komunikatów).

Bardziej szczegółowo

1. Kolejki komunikatów POSIX

1. Kolejki komunikatów POSIX Jędrzej Ułasiewicz IIAiR Politechnika Wrocławska 1 1. Kolejki komunikatów POSIX 1.1 Podstawowe własności Kolejki FIFO maja następujące wady: Komunikaty pozbawione struktury Nie można testować stanu kolejki

Bardziej szczegółowo

13. Kolejki komunikatów POSIX

13. Kolejki komunikatów POSIX J. Ułasiewicz Programowanie aplikacji współbieżnych 1 13. POSIX 13.1 Wstęp (mailboxy, bufory) są bardzo popularnym mechanizmem komunikacji międzyprocesowej. Występują w prawie każdym systemie operacyjnym.

Bardziej szczegółowo

1 Timery i zdarzenia

1 Timery i zdarzenia J. Ułasiewicz Komputerowe systemy sterowania 1 1 Timery i zdarzenia 1.1 Funkcje i programowanie timerów Jedną z najczęściej spotykanych funkcji systemu czasu rzeczywistego jest generowanie zdarzeń które

Bardziej szczegółowo

1. Timery i zdarzenia

1. Timery i zdarzenia Sygnały 1 1. Timery i zdarzenia 1.1 Funkcje i programowanie timerów Jedną z najczęściej spotykanych funkcji systemu jest generowanie zdarzeń które w ustalonym czasie uruchomić mają określone akcje systemu.

Bardziej szczegółowo

1. Timery i zdarzenia

1. Timery i zdarzenia J. Ułasiewicz Komputerowe systemy sterowania 1 1. Timery i zdarzenia 1.1 Funkcje i programowanie timerów Jedną z najczęściej spotykanych funkcji systemu czasu rzeczywistego jest generowanie zdarzeń które

Bardziej szczegółowo

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

5. Model komunikujących się procesów, komunikaty Jędrzej Ułasiewicz str. 1 5. Model komunikujących się procesów, komunikaty Obecnie stosuje się następujące modele przetwarzania: Model procesów i komunikatów Model procesów komunikujących się poprzez pamięć

Bardziej szczegółowo

SYSTEMY CZASU RZECZYWISTEGO - VxWorks

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

Bardziej szczegółowo

IPC: Kolejki komunikatów

IPC: Kolejki komunikatów IPC: Kolejki komunikatów Systemy Operacyjne 2 laboratorium Mateusz Hołenko 7 listopada 2011 Plan zajęć 1 Mechanizmy IPC kolejki komunikatów pamięć współdzielona semafory 2 Kolejki komunikatów kolejka komunikat

Bardziej szczegółowo

Mechanizmy z grupy IPC

Mechanizmy z grupy IPC Mechanizmy z grupy IPC Podobnie jak łącza, IPC (Inter Process Communication) jest grupą mechanizmów komunikacji i synchronizacji procesów działających w ramach tego samego systemu operacyjnego. W skład

Bardziej szczegółowo

Laboratorium Systemów Operacyjnych. Ćwiczenie 4. Operacje na plikach

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

Bardziej szczegółowo

Tryby komunikacji między procesami w standardzie Message Passing Interface. Piotr Stasiak Krzysztof Materla

Tryby komunikacji między procesami w standardzie Message Passing Interface. Piotr Stasiak Krzysztof Materla Tryby komunikacji między procesami w standardzie Message Passing Interface Piotr Stasiak 171011 Krzysztof Materla 171065 Wstęp MPI to standard przesyłania wiadomości (komunikatów) pomiędzy procesami programów

Bardziej szczegółowo

4. Komunikacja pomiędzy procesami przez łącza nienazwane i nazwane

4. Komunikacja pomiędzy procesami przez łącza nienazwane i nazwane Jędrzej Ułasiewicz Łącza nienazwane, nazwane, funkcja select 1 4. Komunikacja pomiędzy procesami przez łącza nienazwane i nazwane Łącza nienazwane (ang. Unnamed Pipes) i nazwane (ang. Named Pipes) - jedna

Bardziej szczegółowo

POSIX: IEEE Std 1003.1 2001 (Issue 6, 2004 edition)

POSIX: IEEE Std 1003.1 2001 (Issue 6, 2004 edition) POSIX: IEEE Std 1003.1 2001 (Issue 6, 2004 edition) Podstawowe rekomendacje przejęte z UNIXa wielodostęp wielozadaniowość system plików terminal gniazda Rekomendacje dla obszaru czasu rzeczywistego strategie

Bardziej szczegółowo

4.2 Sposób korzystania z l acza

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

Bardziej szczegółowo

Jedrzej Ułasiewicz Komputerowe systemy sterowania 1

Jedrzej Ułasiewicz Komputerowe systemy sterowania 1 Jedrzej Ułasiewicz Komputerowe systemy sterowania 1 1 Przerwania 1.1 Obsługa zdarzeń, odpytywanie i przerwania Obsługa zdarzeń jest jedną z kluczowych funkcji w prawie każdym systemie czasu rzeczywistego.

Bardziej szczegółowo

Pliki. Funkcje tworzące pliki i operujące na nich opisane są w części 2 pomocy systemowej. Tworzenie i otwieranie plików:

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:

Bardziej szczegółowo

Kolejki FIFO (łącza nazwane)

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

Bardziej szczegółowo

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

Mechanizmy 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ółowo

Laboratorium z systemów operacyjnych. System plików - funkcje systemowe. Anna Wojak

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

Bardziej szczegółowo

7. Szeregowanie procesów w systemie QNX6 Neutrino

7. Szeregowanie procesów w systemie QNX6 Neutrino J. Ułasiewicz Programowanie aplikacji współbieżnych 1 7. Szeregowanie procesów w systemie QNX6 Neutrino 7.1 PRIORYTETY Każdy z procesów wykonywanych w systemie RTS ma przyporządkowany priorytet. W systemie

Bardziej szczegółowo

J. Ułasiewicz Programowanie aplikacji współbieżnych 1

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

Bardziej szczegółowo

ZAJECIA Z SYSTEMÓW OPERACYJNYCH 2 (Programowanie): funkcje POSIX

ZAJECIA Z SYSTEMÓW OPERACYJNYCH 2 (Programowanie): funkcje POSIX ZAJECIA Z SYSTEMÓW OPERACYJNYCH 2 (Programowanie): funkcje POSIX Author: Arkadiusz D. Danilecki Version: 1.1 Date: 14.12.2013 Wstęp Niniejsze opracowanie zawiera jedynie podstawowe informacje o funkcjach

Bardziej szczegółowo

10. Synchronizacja użycia zasobów, Semafory Problem producenta i konsumenta

10. Synchronizacja użycia zasobów, Semafory Problem producenta i konsumenta J. Ułasiewicz Programowanie aplikacji współbieżnych 1 10. użycia zasobów, Semafory 10.1 Problem producenta i konsumenta Zagadnienie kontroli użycia jednostek zasobu W systemie istnieje pula N jednostek

Bardziej szczegółowo

Instrukcja do laboratorium Systemów Operacyjnych (semestr drugi)

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

Bardziej szczegółowo

Opis protokołu RPC. Grzegorz Maj nr indeksu:

Opis protokołu RPC. Grzegorz Maj nr indeksu: Opis protokołu RPC Grzegorz Maj nr indeksu: 236095 1 Streszczenie Niniejszy dokument opisuje specyfikację protokołu RQP (Remote Queues Protocol). W jego skład wchodzą: opis celów protokołu; opis założeń

Bardziej szczegółowo

1. Utwórz blok pamięci współdzielonej korzystając z poniższego kodu:

1. Utwórz blok pamięci współdzielonej korzystając z poniższego kodu: 6 Pamięć współdzielona 6.1 Dostęp do pamięci współdzielonej 1. Utwórz blok pamięci współdzielonej korzystając z poniższego kodu: #include #include #include #include

Bardziej szczegółowo

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

Bardziej szczegółowo

Komunikacja za pomocą potoków. Tomasz Borzyszkowski

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

Bardziej szczegółowo

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02 METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się

Bardziej szczegółowo

IG1: INSTALACJA KOMUNIKATORA GADU-GADU

IG1: INSTALACJA KOMUNIKATORA GADU-GADU IG1: INSTALACJA KOMUNIKATORA GADU-GADU 1. UŜytkownik pragnie zainstalować komunikator Gadu-Gadu. 2. UŜytkownik pobiera plik instalacyjny z Internetu i uruchamia go. 3. Instalator instaluje nowe oprogramowanie

Bardziej szczegółowo

Typy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1

Typy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1 Typy złożone Struktury, pola bitowe i unie. Programowanie Proceduralne 1 Typy podstawowe Typy całkowite: char short int long Typy zmiennopozycyjne float double Modyfikatory : unsigned, signed Typ wskaźnikowy

Bardziej szczegółowo

Sygnały. 7. Sygnały (2005/2006)

Sygnały. 7. Sygnały (2005/2006) Sygnały Sygnał jest to informacja dla procesu, że wystąpiło jakieś zdarzenie. Sygnały mogą być wysyłane: z procesu do innego procesu (grupy procesów) z procesu do siebie samego z jądra do procesu Sygnały

Bardziej szczegółowo

Katedra Elektrotechniki Teoretycznej i Informatyki. wykład 12 - sem.iii. M. Czyżak

Katedra Elektrotechniki Teoretycznej i Informatyki. wykład 12 - sem.iii. M. Czyżak Katedra Elektrotechniki Teoretycznej i Informatyki wykład 12 - sem.iii M. Czyżak Język C - preprocesor Preprocesor C i C++ (cpp) jest programem, który przetwarza tekst programu przed przekazaniem go kompilatorowi.

Bardziej szczegółowo

Instrukcja do laboratorium Systemów Operacyjnych. (semestr drugi)

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

Bardziej szczegółowo

Aplikacja Sieciowa wątki po stronie klienta

Aplikacja Sieciowa wątki po stronie klienta Aplikacja Sieciowa wątki po stronie klienta Na ostatnich zajęciach zajmowaliśmy się komunikacją pomiędzy klientem a serwerem. Wynikiem naszej pracy był program klienta, który za pomocą serwera mógł się

Bardziej szczegółowo

Semafor nie jest mechanizmem strukturalnym. Aplikacje pisane z użyciem semaforów są podatne na błędy. Np. brak operacji sem_post blokuje aplikację.

Semafor nie jest mechanizmem strukturalnym. Aplikacje pisane z użyciem semaforów są podatne na błędy. Np. brak operacji sem_post blokuje aplikację. J. Ułasiewicz Programowanie aplikacji współbieżnych 1 11 11.1 abstrakcyjne Semafor nie jest mechanizmem strukturalnym. Aplikacje pisane z użyciem semaforów są podatne na błędy. Np. brak operacji sem_post

Bardziej szczegółowo

3. Identyfikacja. SKŁADNIA #include <sys/socket.h> int getpeername(int socket, struct sockaddr *addr, int *addrlen);

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:

Bardziej szczegółowo

Semafor nie jest mechanizmem strukturalnym. Aplikacje pisane z użyciem semaforów są podatne na błędy. Np. brak operacji sem_post blokuje aplikację.

Semafor nie jest mechanizmem strukturalnym. Aplikacje pisane z użyciem semaforów są podatne na błędy. Np. brak operacji sem_post blokuje aplikację. J. Ułasiewicz Programowanie aplikacji współbieżnych 1 11 Semafor nie jest mechanizmem strukturalnym. Aplikacje pisane z użyciem semaforów są podatne na błędy. Np. brak operacji sem_post blokuje aplikację.

Bardziej szczegółowo

Jędrzej Ułasiewicz Programownie aplikacji współbieżnych str. 1. Wątki

Jędrzej Ułasiewicz Programownie aplikacji współbieżnych str. 1. Wątki Jędrzej Ułasiewicz Programownie aplikacji współbieżnych str. 1 1 Informacje wstępne...2 2 Rodzaje wątków...7 poziomu jądra...7 poziomu użytkownika...8 Rozwiązania mieszane...8 3 Biblioteka pthreads...12

Bardziej szczegółowo

Łącza nienazwane(potoki) Łącza nienazwane mogą być używane tylko pomiędzy procesami ze sobą powiązanymi.

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

Bardziej szczegółowo

10. Synchronizacja użycia zasobów, Semafory

10. Synchronizacja użycia zasobów, Semafory J. Ułasiewicz Programowanie aplikacji współbieżnych 1 10. użycia zasobów, Semafory 10.1 Problem producenta i konsumenta Zagadnienie kontroli użycia jednostek zasobu W systemie istnieje pula N jednostek

Bardziej szczegółowo

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

PRZERWANIA. 1. Obsługa zdarzeń, odpytywanie i przerwania Obsługa zdarzeń jest jedną z kluczowych funkcji w prawie każdym systemie czasu rzeczywistego. PRZERWANIA 1. Obsługa zdarzeń, odpytywanie i Obsługa zdarzeń jest jedną z kluczowych funkcji w prawie każdym systemie czasu rzeczywistego. Istnieją dwie metody pozyskania informacji o zdarzeniach: 1. Cykliczne

Bardziej szczegółowo

Podział programu na moduły

Podział programu na moduły Materiały Podział programu na moduły Informatyka Szczegółowe informacje dotyczące wymagań odnośnie podziału na moduły: http://www.cs.put.poznan.pl/wcomplak/bfiles/c_w_5.pdf Podział programu na moduły pozwala

Bardziej szczegółowo

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p. Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni Wykład 6 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Wskaźnik do pliku Dostęp do pliku: zapis, odczyt,

Bardziej szczegółowo

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

Struktura 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ółowo

1.1 Przykład znajdowanie liczb pierwszych leżących w zadanym zakresie, tryb bezpołączeniowy

1.1 Przykład znajdowanie liczb pierwszych leżących w zadanym zakresie, tryb bezpołączeniowy 1.1 Przykład znajdowanie liczb pierwszych leżących w zadanym zakresie, tryb bezpołączeniowy Należy znaleźć liczby pierwsze w zakresie od 2 do N na P komputerach. Zarządca pocz[i], kon[i] wykonawca 1 wykonawca

Bardziej szczegółowo

Programowanie proceduralne INP001210WL rok akademicki 2015/16 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

Programowanie proceduralne INP001210WL rok akademicki 2015/16 semestr letni. Wykład 6. Karol Tarnowski A-1 p. Programowanie proceduralne INP001210WL rok akademicki 2015/16 semestr letni Wykład 6 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411b Plan wykładu Operacje wejścia-wyjścia Dostęp do plików Struktury

Bardziej szczegółowo

Rys. 9-1 Procesy P1 i P2 komunikuję się poprzez wspólny obszar. pamięci.

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

Bardziej szczegółowo

Systemy Operacyjne 1 Laboratorium 3 Potoki i łącza nazwane w Linuksie (jeden tydzień) dr inż. Arkadiusz Chrobot

Systemy Operacyjne 1 Laboratorium 3 Potoki i łącza nazwane w Linuksie (jeden tydzień) dr inż. Arkadiusz Chrobot Systemy Operacyjne 1 Laboratorium 3 Potoki i łącza nazwane w Linuksie (jeden tydzień) dr inż. Arkadiusz Chrobot 15 października 2016 Wstęp W tej instrukcji zawarte są informacje na temat jednych z podstawowych

Bardziej szczegółowo

RPC. Zdalne wywoływanie procedur (ang. Remote Procedure Calls )

RPC. Zdalne wywoływanie procedur (ang. Remote Procedure Calls ) III RPC Zdalne wywoływanie procedur (ang. Remote Procedure Calls ) 1. Koncepcja Aplikacja wywołanie procedury parametry wyniki wykonanie procedury wynik komputer klienta komputer serwera Zaletą takiego

Bardziej szczegółowo

QNX Neutrino (v 6.3)

QNX Neutrino (v 6.3) QNX Neutrino (v 6.3) System operacyjny czasu rzeczywistego Wielozadaniowy, architektura z mikrojądrem API zgodne ze standardem POSIX Rozproszony, przezroczysta praca w sieci Mechanizmy wykrywania/tolerowania

Bardziej szczegółowo

Argumenty wywołania programu, operacje na plikach

Argumenty wywołania programu, operacje na plikach Temat zajęć: Argumenty wywołania programu, operacje na plikach Autor: mgr inż. Sławomir Samolej Zagadnienie 1. (Zmienne statyczne) W języku C można decydować o sposobie przechowywania zmiennych. Decydują

Bardziej szczegółowo

Temat zajęć: Obsługa łączy komunikacyjnych

Temat zajęć: Obsługa łączy komunikacyjnych Temat zajęć: Obsługa łączy komunikacyjnych Czas realizacji zajęć: 180 min. Zakres materiału, jaki zostanie zrealizowany podczas zajęć: I. Łącza komunikacyjne Potoki nienazwane, potoki nazwane, przykłady

Bardziej szczegółowo

Struktury czyli rekordy w C/C++

Struktury czyli rekordy w C/C++ Struktury czyli rekordy w C/C++ Wprowadzenie do programowania w języku C struktury. pola bitowe, unie Struktury (rekordy) są złożonymi zmiennymi, składającymi się z elementów różnych typów zwanych polami,

Bardziej szczegółowo

Programowanie Proceduralne

Programowanie Proceduralne Programowanie Proceduralne Struktury Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 10 Co dziś będzie: Definiowanie struktury Deklarowanie zmiennych bȩda cych strukturami

Bardziej szczegółowo

Procesy. Systemy Operacyjne 2 laboratorium. Mateusz Hołenko. 9 października 2011

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

Bardziej szczegółowo

Struktury. Przykład W8_1

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

Bardziej szczegółowo

1. Ustanawianie ograniczeń na użycie zasobów

1. Ustanawianie ograniczeń na użycie zasobów 1. Ustanawianie ograniczeń na użycie zasobów W każdym systemie komputerowym zasoby potrzebne do tworzenia i wykonywania procesów są ograniczone. W przypadku gdy w systemie działa wiele procesów ważną rzeczą

Bardziej szczegółowo

1. Procesy i współbieżność

1. Procesy i współbieżność 1. Procesy i współbieżność Opracował: Sławomir Samolej Politechnika Rzeszowska, Katedra Informatyki i Automatyki, Rzeszów, 2013. 1.1. Wprowadzenie Proces to przestrzeń adresowa i pojedynczy wątek sterujący,

Bardziej szczegółowo

Ćwiczenie 1. Kolejki IBM Message Queue (MQ)

Ćwiczenie 1. Kolejki IBM Message Queue (MQ) Ćwiczenie 1. Kolejki IBM Message Queue (MQ) 1. Przygotowanie Przed rozpoczęciem pracy, należy uruchomić "Kreator przygotowania WebSphere MQ" oraz przejść przez wszystkie kroki kreatora, na końcu zaznaczając

Bardziej szczegółowo

Semafory, pamięć dzielona i kolejki komunikatów

Semafory, pamięć dzielona i kolejki komunikatów Semafory, pamięć dzielona i kolejki komunikatów dr inż. Sławomir Samolej Katedra Informatyki i Automatyki Politechnika Rzeszowska Program przedmiotu oparto w części na materiałach opublikowanych na: http://wazniak.mimuw.edu.pl/

Bardziej szczegółowo

Pliki w C/C++ Przykłady na podstawie materiałów dr T. Jeleniewskiego

Pliki w C/C++ Przykłady na podstawie materiałów dr T. Jeleniewskiego Pliki w C/C++ Przykłady na podstawie materiałów dr T. Jeleniewskiego 1 /24 Pisanie pojedynczych znaków z klawiatury do pliku #include void main(void) { FILE *fptr; // wkaznik do pliku, tzw. uchwyt

Bardziej szczegółowo

external Data Representation

external Data Representation Remote Procedure Call external Data Representation Opis standardu RFC 1014 Kanoniczna reprezentacja danych oparta na formacie IEEE Deklaratywny język opisu struktur danych (zbliżony do języka C) Koncepcja

Bardziej szczegółowo

Funkcje zawarte w bibliotece < io.h >

Funkcje zawarte w bibliotece < io.h > PLIKOWE OPERACJE WEJŚCIA - WYJŚCIA Język C/C++ nie ma wbudowanych żadnych instrukcji umożliwiających wykonywanie operacji wejścia-wyjścia! Służą do tego funkcje biblioteczne. Funkcje zawarte w bibliotece

Bardziej szczegółowo

Program dla praktyki lekarskiej

Program dla praktyki lekarskiej Program dla praktyki lekarskiej ErLab Instrukcja konfiguracji i obsługi Spis Treści 1. Wstęp... 2 2. Konfiguracja... 3 2.1. Serwer... 3 2.2. Laboratorium... 3 2.3. Punkt pobrań... 4 3. Wysyłanie skierowania...

Bardziej szczegółowo

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

Bardziej szczegółowo

Pliki. Informacje ogólne. Obsługa plików w języku C

Pliki. Informacje ogólne. Obsługa plików w języku C Pliki Informacje ogólne Plik jest pewnym zbiorem danych, zapisanym w systemie plików na nośniku danych (np. dysku twardym, pendrive, płycie DVD itp.). Może posiadać określone atrybuty, a odwołanie do niego

Bardziej szczegółowo

Instrukcja integratora - obsługa dużych plików w epuap2

Instrukcja integratora - obsługa dużych plików w epuap2 Instrukcja integratora - obsługa dużych plików w epuap2 Wersja: 1.1 Strona 1 z 18 Spis treści SPIS TREŚCI... 2 WPROWADZENIE ORAZ INFORMACJE OGÓLNE... 3 1.1 WSTĘP... 3 1.2 WARUNKI KONIECZNE DO SPEŁNIENIA

Bardziej szczegółowo

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych B.1. Dostęp do urządzeń komunikacyjnych Sterowniki urządzeń zewnętrznych widziane są przez procesor jako zestawy rejestrów

Bardziej szczegółowo

Na chwilę obecną biblioteka ElzabObsluga.dll współpracuje tylko ze sprawdzarkami RSowymi.

Na chwilę obecną biblioteka ElzabObsluga.dll współpracuje tylko ze sprawdzarkami RSowymi. Instrucja wdrożenia biblioteki ElzabObsluga.dll Wymagane wersje: ihurt 6.3 ElzabObsluga.dll 6.1.0.0 KhAutomat 6.3.0.0 Schemat blokowy: Na chwilę obecną biblioteka ElzabObsluga.dll współpracuje tylko ze

Bardziej szczegółowo

Tworzenie aplikacji rozproszonej w Sun RPC

Tworzenie aplikacji rozproszonej w Sun RPC Tworzenie aplikacji rozproszonej w Sun RPC Budowa aplikacji realizowana jest w następujących krokach: Tworzenie interfejsu serwera w języku opisu interfejsu RPCGEN Tworzenie: namiastki serwera namiastki

Bardziej szczegółowo

Informacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char

Informacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char Programowanie C++ Informacje wstępne #include - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char = -128 do 127, unsigned char = od

Bardziej szczegółowo

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. 1. Rodzaje pamięci używanej w programach Pamięć komputera, dostępna dla programu,

Bardziej szczegółowo

Tablice, funkcje - wprowadzenie

Tablice, funkcje - wprowadzenie Tablice, funkcje - wprowadzenie Przemysław Gawroński D-10, p. 234 Wykład 5 25 marca 2019 (Wykład 5) Tablice, funkcje - wprowadzenie 25 marca 2019 1 / 12 Outline 1 Tablice jednowymiarowe 2 Funkcje (Wykład

Bardziej szczegółowo

Zdalne wywołanie procedur. Krzysztof Banaś Systemy rozproszone 1

Zdalne wywołanie procedur. Krzysztof Banaś Systemy rozproszone 1 Zdalne wywołanie procedur Krzysztof Banaś Systemy rozproszone 1 RPC Komunikacja za pomocą gniazd jest wydajna, gdyż korzystamy z funkcji systemowych niewygodna, gdyż musimy wyrażać ją za pomocą jawnego

Bardziej szczegółowo

9. Problem wzajemnego wykluczania i sekcji krytycznej

9. Problem wzajemnego wykluczania i sekcji krytycznej J. Ułasiewicz Programowanie aplikacji współbieżnych 1 9. Problem wzajemnego wykluczania i sekcji krytycznej 9.1 Przeplot i współużywalność zasobów Wyróżniamy dwa rodzaje zasobów: 1. Zasoby współużywalne

Bardziej szczegółowo

Pamięć współdzielona

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

Bardziej szczegółowo

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

Bardziej szczegółowo

Temat zajęć: Mechanizmy IPC: kolejki komunikatów.

Temat zajęć: Mechanizmy IPC: kolejki komunikatów. Temat zajęć: Mechanizmy IPC: kolejki komunikatów. Czas realizacji zajęć: 90 min. Zakres materiału, jaki zostanie zrealizowany podczas zajęć: Tworzenie kolejek komunikatów, wysyłanie i odbieranie komunikatów,

Bardziej szczegółowo

w odróżnieniu od procesów współdzielą przestrzeń adresową mogą komunikować się za pomocą zmiennych globalnych

w odróżnieniu od procesów współdzielą przestrzeń adresową mogą komunikować się za pomocą zmiennych globalnych mechanizmy posix Wątki w odróżnieniu od procesów współdzielą przestrzeń adresową należą do tego samego użytkownika są tańsze od procesów: wystarczy pamiętać tylko wartości rejestrów, nie trzeba czyścić

Bardziej szczegółowo

4. Procesy pojęcia podstawowe

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

7. Szeregowanie procesów w systemie QNX6 Neutrino

7. Szeregowanie procesów w systemie QNX6 Neutrino J. Ułasiewicz Programowanie aplikacji współbieżnych 1 7. Szeregowanie procesów w systemie QNX6 Neutrino 7.1 Priorytety Każdy z procesów wykonywanych w systemie RTS ma przyporządkowany priorytet. W systemie

Bardziej szczegółowo

J. Ułasiewicz Programowanie aplikacji współbieżnych 1

J. Ułasiewicz Programowanie aplikacji współbieżnych 1 J. Ułasiewicz Programowanie aplikacji współbieżnych 1 7. procesów W środowisku systemu pracuje zwykle więcej procesów gotowych do wykonania niż dostępnych jest procesorów. Stąd istnieje potrzeba decydowania

Bardziej szczegółowo

Programowanie współbieżne

Programowanie współbieżne Programowanie współbieżne Spis treści 1 Podstawowe definicje i pojęcia współbieżności 5 1.1 Podstawowe definicje współbieżności.................. 5 1.1.1 Czym jest proces?......................... 5 1.1.2

Bardziej szczegółowo

J. Ułasiewicz Łącza nienazwane, nazwane, select 1

J. Ułasiewicz Łącza nienazwane, nazwane, select 1 J. Ułasiewicz Łącza nienazwane, nazwane, select 1 4. Komunikacja pomiędzy procesami przez łącza nienazwane i nazwane Łącza nienazwane (ang. Unnamed Pipes) i nazwane (ang. Unnamed Pipes) - jedna z historycznie

Bardziej szczegółowo

Funkcje zawarte w bibliotece < io.h >

Funkcje zawarte w bibliotece < io.h > PLIKOWE OPERACJE WEJŚCIA - WYJŚCIA Język C/C++ nie ma wbudowanych żadnych instrukcji umożliwiających wykonywanie operacji wejścia-wyjścia! Służą do tego funkcje biblioteczne. Funkcje zawarte w bibliotece

Bardziej szczegółowo

1. Tworzenie nowego projektu.

1. Tworzenie nowego projektu. Załącznik do Instrukcji 1. Tworzenie nowego projektu. Wybieramy opcję z menu głównego New->QNX C Project. Wprowadzamy nazwę przechodzimy do następnego kroku NEXT. Wybieramy platformę docelową oraz warianty

Bardziej szczegółowo

Obsługa plików Procesy

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

Bardziej szczegółowo

Prezentacja systemu RTLinux

Prezentacja 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ółowo

Instytut Teleinformatyki

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

Bardziej szczegółowo

Łącza nienazwane(potoki)

Łącza nienazwane(potoki) 8. Łącza nienazwane(potoki) Łącze (potok, ang. pipe) jest to urządzenie komunikacyjne pozwalające na przesyłanie informacji w jedną stronę. Jeden proces wysyła dane do łącza za pomocą funkcji write, zaś

Bardziej szczegółowo

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

asix4 Podręcznik użytkownika CAN_AC_PCI - drajwer protokołu CANBUS dla karty CAN_ACx_PCI Podręcznik użytkownika Podręcznik użytkownika CAN_AC_PCI - drajwer protokołu CANBUS dla karty CAN_ACx_PCI Podręcznik użytkownika Dok. Nr PLP4013 Wersja: 04-10-2005 Podręcznik użytkownika ASKOM i asix to zastrzeżone znaki firmy

Bardziej szczegółowo

Temat zajęć: Obsługa systemu plików.

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

Bardziej szczegółowo

Wykład 3: Implementacja programów wbudowanych

Wykład 3: Implementacja programów wbudowanych Systemy wbudowane Wykład 3: Implementacja programów wbudowanych Problemy implementacji oprogramowania wbudowanego Szeregowanie zadań System operacyjny Obsługa przerwań 10/16/2010 S.Deniziak:Systemy wbudowane

Bardziej szczegółowo

Programowanie Równoległe Wykład 5. MPI - Message Passing Interface. Maciej Matyka Instytut Fizyki Teoretycznej

Programowanie Równoległe Wykład 5. MPI - Message Passing Interface. Maciej Matyka Instytut Fizyki Teoretycznej Programowanie Równoległe Wykład 5 MPI - Message Passing Interface Maciej Matyka Instytut Fizyki Teoretycznej Dorobiliśmy się strony WWW www.ift.uni.wroc.pl/~koma/pr/index.html MPI, wykład 2. Plan: - komunikacja

Bardziej szczegółowo

Programowanie Współbieżne. Komunikacja między procesowa IPC

Programowanie Współbieżne. Komunikacja między procesowa IPC Programowanie Współbieżne Komunikacja między procesowa IPC IPC W systemie V są 3 rodzaje komunikacji między procesowej. kolejki komunikatów semafory pamięć wspólna IPC plik nagłówkowy funkcja systemowa

Bardziej szczegółowo

Gniazda BSD. komunikacja bezpołączeniowa

Gniazda BSD. komunikacja bezpołączeniowa Gniazda BSD komunikacja bezpołączeniowa Użycie gniazd w transmisji bezpołączeniowej socket() socket() bind() bind() STOP! recv() żądanie send() send() odpowiedź recv() STOP! recvfrom() #include

Bardziej szczegółowo

PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO

PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO LABORATORIUM Temat: QNX Neutrino Interrupts Mariusz Rudnicki 2016 Wstęp W QNX Neutrino wszystkie przerwania sprzętowe przechwytywane są przez jądro systemu. Obsługę

Bardziej szczegółowo

4. Procesy pojęcia podstawowe

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