Komunikacja za pomocą potoków. Tomasz Borzyszkowski
|
|
- Aniela Sowińska
- 8 lat temu
- Przeglądów:
Transkrypt
1 Komunikacja za pomocą potoków Tomasz Borzyszkowski
2 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 dużej ilości informacji z jednego procesu do drugiego. Jednym z możliwych sposobów rozwiązania tego problemu dla procesów jest korzystanie ze wspólnych plików. Jednak może to okazać się nieefektywne oraz może prowadzić do problemów dostępu do wspólnych zasobów. Systemy Unixowe dostarczają konstrukcji nazywanej potokiem (ang. pipe). Potok jest używany najczęściej jako jednokierunkowy kanał komunikacyjny, łączący ze sobą powiązane procesy, stanowiąc zarazem uogólnienie pojęcia pliku w systemie Unix. Na jednym końcu potoku proces wysyła dane, zapisując je do potoku za pomocą systemowej funkcji write, natomiast na drugim końcu (inny) proces może je odczytywać używając funkcji read. Z mechanizmu potoków korzystaliśmy już w sposób niejawny, składając polecenia powłoki postaci: $ who grep kazio 2
3 Pogramowanie z potokami Wewnątrz programu potok jest tworzony za pomocą funkcji systemowej o nazwie pipe. W przypadku pomyślnego zakończenia zwraca dwa deskryptory plików, jeden do zapisu do potoku i drugi do odczytu z potoku. Nagłówek funkcji znajduje się w pliku <unistd.h> i ma następującą postać: int pipe(int filedes[2]); filedes to tablica dwóch liczb całkowitych, pierwsza filedes[0] to deskryptor odczytu z potoku, druga filedes[1] deskryptor zapisu do potoku. Funkcja może zwrócić -1, gdy nie można otworzyć nowych deskryptorów plików. Zobacz: potok1.c Komunikację przedstawioną w przykładzie można przedstawić za pomocą następującego schematu: read() p[0] write() p[1] 3
4 Pogramowanie z potokami cd W poprzednim przykładzie komunikaty zostały odczytane w takiej kolejności, w jakiej zostały zapisane. Potok traktuje dane jak kolejkę FIFO (= pierwszy na wejściu, pierwszy na wyjściu, ang. First In, First Out). Przedstawiony przykład prezentował komunikację potoku samego ze sobą. Prawdziwa wartość potoku staje się widoczna dopiero, gdy jest on użyty do komunikacji między różnymi procesami. Zobacz: potok2.c Schemat komunikacji przedstawionej w przykładzie: read() p[0] p[0] read() write() proces potomny p[1] p[1] write() proces rodzicielski 4
5 Pogramowanie z potokami cd II Procesy z poprzedniego przykładu mają otwarte deskryptory pliku, pozwalające odczytywać z i zapisywać do potoku. Każdy z procesów może zapisywać do deskryptora p[1] i odczytywać z deskryptora pliku p[0]. Pojawia się tu problem: jeżeli oba procesy zaczną pisać do i czytać z potoku, może powstać zamieszanie. Dlatego, jeżeli proces tylko pisze, to powinien zamknąć kanał odczytu i na odwrót. Zobacz: potok3.c Schemat komunikacji przedstawionej w przykładzie: read() p[0] read() write() proces potomny p[1] write() proces rodzicielski 5
6 Wielkość potoku Zobacz: rozmiar.c Potoki mają ograniczoną pojemność, tj. w potoku może znajdować się tylko pewna ilość bajtów. Minimalna ilość jest określona w standardzie POSIX jako 512 bajtów. W rzeczywistości (zwykle) systemy pozwalają na znacznie większe wartości. Znajomość maksymalnej wielkości potoku jest istotna, ponieważ wpływa na operacje zapisu i odczytu. Jeżeli zapisujemy do potoku, w którym jest dostateczna ilość miejsca, dane są wysyłane do potoku, a wywołanie funkcji write zwraca niezwłocznie. Jeżeli jednak wykonujemy zapis do potoku, który przepełnia potok, wykonanie procesu zostaje zawieszone, dopóty inny proces nie zrobi miejsca, odczytując dane z potoku. Jeżeli proces próbuje za pomocą pojedynczego write zapisać więcej danych, niż potok może otrzymać, to jądro zapisze do potoku tyle danych ile będzie mogło, następnie zawiesi wykonanie procesu, aż dostępne stanie się miejsce dla reszty danych. Zwykle zapis do potoku wykonuje się niepodzielnie. W pow. przypadku wiele procesów może pomieszać swoje niepodzielne dane w potoku. 6
7 Zamykanie potoków Co się dzieje, gdy deskryptor pliku, który reprezentuje jeden koniec potoku zostanie zamknięty? Możliwe są dwa przypadki: Zamknięcie deskryptora pliku do zapisu. Jeżeli istnieją inne procesy, które mają potok otwarty do zapisu, nic się nie dzieje. Jeżeli jednak nie ma więcej procesów z otwartym tym potokiem do zapisu, a potok jest pusty, każdy proces próbujący odczytać dane z potoku wraca bez danych. Procesy, które w uśpieniu czekały na odczyt, zostaną obudzone, a ich funkcje read zwrócą zero, tj. skutek dla procesów czytających przypomina osiągnięcie końca zwykłego pliku. Zamknięcie deskryptora pliku do odczytu. Jeśli istnieją inne procesy, mające potok otwarty do odczytu, to nic się nie zdarzy. Jeśli nie istnieją, to do wszystkich procesów czekających na zapis do potoku będzie przez jądro wysłany sygnał SIGPIPE. Jeśli sygnał nie zostanie przechwycony, proces zakończy się. Jeśli sygnał zostanie przechwycony, po jego obsłudze, write zwróci -1, a zmienna errno będzie zawierać EPIPE. Do procesów piszących do potoku później też wysyłany jest ten sygnał. 7
8 Nieblokujące odczyty i zapisy Poprzednie przykłady pokazały, że przy używaniu potoków zarówno odczyt, jak i zapis, mogą być zablokowane. Czasami nie jest to pożądane. Np. można chcieć, żeby program wykonał procedurę obsługi błędu lub przeglądał kilka potoków, aż otrzyma dane z jednego z nich. Jednym ze sposobów realizacji pow. zadań, jest następujące wywołanie funkcji fcntl: fcntl(filedes, F_SETFL, O_NONBLOCK); Jeżeli filedes jest dekryptorem potoku do zapisu, to następne wywołania funkcji write nie będą blokowane, nawet jeśli potok jest pełny. W zamian zwracają -1 i ustawiają errno na EAGAIN. Jeżeli filedes jest dekryptorem pustego potoku do odczytu, to następne wywołania funkcji read nie będą blokowane, zwrócą wartości jak w przypadku write. Zobacz: nonblock.c 8
9 Obsługa wielu potoków Zobacz: select.c Przedstawiony mechanizm nieblokujących odczytów i zapisów jest dobry dla małych aplikacji. Operowanie jednocześnie na wielu potokach znacznie upraszcza użycie funkcji select. Niech proces rodzicielski działa jako proces serwera z dowolną liczbą komunikujących się z nim procesów klienta (potomnych). Serwer musi poradzić sobie z sytuacją, w której informacja nadchodzi więcej niż jednym potokiem. Jeżeli nic nie nadchodzi, to proces serwera powinien się zablokować i czekać aż coś nadejdzie, ale bez ciągłego odpytywania. Gdy informacja nadchodzi więcej niż jednym potokiem, serwer musi wiedzieć, którymi potokami, by odczytać dane w prawidłowej kolejności. Zachowanie podobne do przedstawionego powyżej zapewnia funkcja select. Może być ona używana nie tylko do potoków ale także do zwykłych plików, terminali, plików FIFO i gniazd. Nie będziemy szczegółowo opisywać poszczególnych parametrów funkcji select. W zamian zaprezentujemy przykład jej zastosowania do potoków. 9
10 Funkcja exec i potoki Pomiędzy dwoma programami na poziomie powłoki może być ustawiony potok, np.: $ ls wc Jak realizuje się takie potoki? Po pierwsze, powłoka wykorzystuje fakt, że otwarte deskryptory plików przechodzą otwarte przez wywołania funkcji exec. Oznacza to, że dwa deskryptory plików dla potoków otwarte przed kombinacją fork/exec pozostaną otwarte, kiedy proces potomny rozpocznie wykonywanie nowego programu. Po drugie, przed wywołaniem exec, powłoka łączy standardowe wyjście ls z końcem potoku przeznaczonym do zapisu i standardowe wejście wc z końcem do odczytu. Może to być zrobione za pomocą funkcji fcntl lub dup2. W następującym przykładzie wykorzystaliśmy ten mechanizm w funkcji join łączącej dwa programy za pomocą potoku. Zobacz: join.c 10
11 Potoki nazwane = pliki FIFO Potoki są eleganckim i silnym mechanizmem komunikacji między procesami, jednak posiadają pewne wady: Potok może być używany do łączenia procesów, mających wspólnych przodków. Staje się to uciążliwe, gdy chcemy napisać prawdziwy proces serwera, na stałe działający w systemie. Potoki nie mogą być trwałe. Muszą być tworzone za każdym razem, gdy są potrzebne, i usuwane, gdy kończy się korzystający z nich proces. Problemy te rozwiązuje mechanizm komunikacji nazwany plikiem FIFO lub nazwanym potokiem. FIFO działa jak potok ale w odróżnieniu od potoków jest trwały i posiada nazwę i uprawnienia jak plik. Jednocześnie przy zapisie i odczycie wykazuje własności potoku. Plik FIFO tworzymy poleceniem mkfifo(). W starszych wersjach Unixa służyło do tego polecenie mknod(). Szczegóły implementacji zawarte w przykładowych programach: Zobacz: sendfifo.c rcvfifo.c 11
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ółowoInstrukcja 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ółowoInstrukcja 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Łą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Łą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ółowoPliki. 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ółowoLaboratorium 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ółowoSystemy 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ółowoSYSTEMY OPERACYJNE I laboratorium 3 (Informatyka stacjonarne 2 rok, semestr zimowy)
Procesy i shell. Polecenia ps, sleep, exit, jobs, bg, fg, top, kill, bash, tcsh, which, type, whereis, touch. Metaznak & i >>. Dowiązania miękkie i twarde. Proces jest programem, który jest wykonywany
Bardziej szczegółowoKlient-Serwer Komunikacja przy pomocy gniazd
II Klient-Serwer Komunikacja przy pomocy gniazd Gniazda pozwalają na efektywną wymianę danych pomiędzy procesami w systemie rozproszonym. Proces klienta Proces serwera gniazdko gniazdko protokół transportu
Bardziej szczegółowo4.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ółowoSystem plików. Warstwowy model systemu plików
System plików System plików struktura danych organizująca i porządkująca zasoby pamięci masowych w SO. Struktura ta ma charakter hierarchiczny: urządzenia fizyczne strefy (partycje) woluminy (w UNIXie:
Bardziej szczegółowoZwielokrotnianie wejścia wyjścia
Zwielokrotnianie wejścia wyjścia Bartłomiej Świercz Katedra Mikroelektroniki i Technik Informatycznych Łódź, 21 marca 2006 Wstęp Zwielokrotnianie wejścia wyjścia informowanie przez jądro procesu użytkownika
Bardziej szczegółowoaodczytywać 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
Bardziej szczegółowoMechanizmy pracy równoległej. Jarosław Kuchta
Mechanizmy pracy równoległej Jarosław Kuchta Zagadnienia Algorytmy wzajemnego wykluczania algorytm Dekkera Mechanizmy niskopoziomowe przerwania mechanizmy ochrony pamięci instrukcje specjalne Mechanizmy
Bardziej szczegółowoJak 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
Bardziej szczegółowo4. 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ółowoOperatory 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
Bardziej szczegółowoInstrukcja do laboratorium Systemów Operacyjnych. (semestr drugi)
Instrukcja do laboratorium Systemów Operacyjnych (semestr drugi) Ćwiczenie drugie (jedne zajęcia) Temat: Procesy i sygnały w Linuksie. Opracowanie: mgr in ż. Arkadiusz Chrobot Wprowadzenie 1. Budowa procesu
Bardziej szczegółowoPowłoka I. Popularne implementacje. W stylu sh (powłoki zdefiniowanej w POSIX) W stylu csh. bash (najpopularniejsza) zsh ksh mksh.
Powłoka I Popularne implementacje W stylu sh (powłoki zdefiniowanej w POSIX) bash (najpopularniejsza) zsh ksh mksh W stylu csh csh tcsh 12 października 2018 1 / 16 Powłoka II Zachęta Komunikuje się z użytkownikiem
Bardziej szczegółowoDodatek 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ółowoLaboratorium 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ółowoObsługa sygnałów. Tomasz Borzyszkowski
Obsługa sygnałów Tomasz Borzyszkowski Wprowadzenie Zaawansowane systemy operacyjne często realizując duże zadania, wykorzystują do ich realizacji wiele współdziałających ze sobą programów/procesów. Do
Bardziej szczegółowoPoniższe funkcje opisane są w 2 i 3 części pomocy systemowej.
Procesy Proces (zwany też zadaniem) jest jednostką aktywną, kontrolowaną przez system operacyjny i związaną z wykonywanym programem. Proces ma przydzielone zasoby typu pamięć (segment kodu, segment danych,
Bardziej szczegółowoJ. 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ółowoPliki. Operacje na plikach w Pascalu
Pliki. Operacje na plikach w Pascalu ścieżka zapisu, pliki elementowe, tekstowe, operacja plikowa, etapy, assign, zmienna plikowa, skojarzenie, tryby otwarcia, reset, rewrite, append, read, write, buforowanie
Bardziej szczegółowo1 second UPS. Poziom trudności: łatwy. Wersja dokumentacji: 1.3. Aktualizacja: 06.02.2015. Beckhoff Automation Sp. z o. o.
Poziom trudności: łatwy Wersja dokumentacji: 1.3 Aktualizacja: 06.02.2015 Beckhoff Automation Sp. z o. o. Spis treści 1. Wprowadzenie... 2 2. Domyślne wywołanie bloku FB_S_UPS... 3 3. Domyślne wywołanie
Bardziej szczegółowoFutex (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
Bardziej szczegółowoKomunikacja między sterownikami przez protokół ADS
Komunikacja między sterownikami przez protokół ADS Poziom trudności: łatwy Wersja dokumentacji: 1.0 Aktualizacja: 20.03.2015 Beckhoff Automation Sp. z o. o. Spis treści 1. Komunikacja ADS... 3 2. Konfiguracja
Bardziej szczegółowoTemat 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ółowoSieci komputerowe. Wykład 7: Transport: protokół TCP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski
Sieci komputerowe Wykład 7: Transport: protokół TCP Marcin Bieńkowski Instytut Informatyki Uniwersytet Wrocławski Sieci komputerowe (II UWr) Wykład 7 1 / 23 W poprzednim odcinku Niezawodny transport Algorytmy
Bardziej szczegółowoKopiowanie, przenoszenie plików i folderów
Kopiowanie, przenoszenie plików i folderów Pliki i foldery znajdujące się na dysku można kopiować lub przenosić zarówno w ramach jednego dysku jak i między różnymi nośnikami (np. pendrive, karta pamięci,
Bardziej szczegółowoAkademia Techniczno-Humanistyczna w Bielsku-Białej
Akademia Techniczno-Humanistyczna w Bielsku-Białej Wydział Budowy Maszyn i Informatyki Laboratorium z sieci komputerowych Ćwiczenie numer: 9 Temat ćwiczenia: Aplikacje klient-serwer. 1. Wstęp teoretyczny.
Bardziej szczegółowoPodstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja
Bardziej szczegółowoWykład PASCAL - Pliki tekstowe
Podstawy programowania Wykład PASCAL - Pliki tekstowe 1 dr Artur Bartoszewski - Podstawy prograowania, sem. 1- WYKŁAD Rodzaje plików Dane przechowywane w pliku mogą mieć reprezentację binarną (taką samą,
Bardziej szczegółowoOd uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Linux.
Kod szkolenia: Tytuł szkolenia: PS/LINUX Programowanie systemowe w Linux Dni: 5 Opis: Adresaci szkolenia Szkolenie adresowane jest do programistów tworzących aplikacje w systemie Linux, którzy chcą poznać
Bardziej szczegółowo5. 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ółowoProcesy. 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ółowoSYSTEMY 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ółowoUWAGA!!! Przed przystąpieniem do zamknięcia roku proszę zrobić kopie bezpieczeństwa
UWAGA!!! Przed przystąpieniem do zamknięcia roku proszę zrobić kopie bezpieczeństwa Następnie należy sprawdzić czy w KOLFK w Słownik i-> Dokumenty-> znajduje się dokument BO- Bilans Otwarcia (w grupie
Bardziej szczegółowoĆwiczenie: JavaScript Cookies (3x45 minut)
Ćwiczenie: JavaScript Cookies (3x45 minut) Cookies niewielkie porcje danych tekstowych, które mogą być przesyłane między serwerem a przeglądarką. Przeglądarka przechowuje te dane przez określony czas.
Bardziej szczegółowoSYSTEMY OPERACYJNE WYKLAD 6 - procesy
Wrocław 2007 SYSTEMY OPERACYJNE WYKLAD 6 - procesy Paweł Skrobanek C-3, pok. 323 e-mail: pawel.skrobanek@pwr.wroc.pl www.equus.wroc.pl/studia.html 1 Zasoby: PROCES wykonujący się program ; instancja programu
Bardziej szczegółowoLogiczny model komputera i działanie procesora. Część 1.
Logiczny model komputera i działanie procesora. Część 1. Klasyczny komputer o architekturze podanej przez von Neumana składa się z trzech podstawowych bloków: procesora pamięci operacyjnej urządzeń wejścia/wyjścia.
Bardziej szczegółowoSystemy operacyjne na platformach mobilnych 2 Podstawy obsługi powłoki Bash
Systemy operacyjne na platformach mobilnych 2 Podstawy obsługi powłoki Bash Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna
Bardziej szczegółowoTCP - receive buffer (queue), send buffer (queue)
BSD sockets c.d. TCP - receive buffer (queue), send buffer (queue) Z każdym gniazdem sieciowym są skojarzone: Bufor do odbierania danych (ang. receive buffer) Przychodzące dane są umieszczane w buforze
Bardziej szczegółowoINFRA. System Connector. Opis wdrożenia systemu
INFRA System Connector Opis wdrożenia systemu Spis treści Wymagania z perspektywy Powiatowego Urzędu Pracy... 3 Wymagania dotyczące komunikacji między komponentami systemu... 3 Moduł Connector Serwis (Serwer)...
Bardziej szczegółowoTemat zajęć: Tworzenie i obsługa wątków.
Temat zajęć: Tworzenie i obsługa wątków. Czas realizacji zajęć: 180 min. Zakres materiału, jaki zostanie zrealizowany podczas zajęć: Tworzenie wątków, przekazywanie parametrów do funkcji wątków i pobieranie
Bardziej szczegółowoKontrola dostępu przy użyciu sterownika Sterbox.
Kontrola dostępu przy użyciu sterownika Sterbox. Wejście do firmy, drzwi zewnętrzne, klatka schodowa lub korytarz, następne drzwi do pomieszczeń. Otwieranie drzwi przez upoważnione osoby posiadanymi kluczami
Bardziej szczegółowoStan globalny. Krzysztof Banaś Systemy rozproszone 1
Stan globalny Krzysztof Banaś Systemy rozproszone 1 Stan globalny Z problemem globalnego czasu jest związany także problem globalnego stanu: interesuje nas stan systemu rozproszonego w konkretnej pojedynczej
Bardziej szczegółowoTemat 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ółowoPo uruchomieniu programu nasza litera zostanie wyświetlona na ekranie
Część X C++ Typ znakowy służy do reprezentacji pojedynczych znaków ASCII, czyli liter, cyfr, znaków przestankowych i innych specjalnych znaków widocznych na naszej klawiaturze (oraz wielu innych, których
Bardziej szczegółowoTRX API opis funkcji interfejsu
TRX Krzysztof Kryński Cyfrowe rejestratory rozmów seria KSRC TRX API opis funkcji interfejsu Kwiecień 2013 Copyright TRX TRX ul. Garibaldiego 4 04-078 Warszawa Tel. 22 871 33 33 Fax 22 871 57 30 www.trx.com.pl
Bardziej szczegółowoCZĘŚĆ A PIERWSZE KROKI Z KOMPUTEREM
CZĘŚĆ A PIERWSZE KROKI Z KOMPUTEREM 1.1. PODSTAWOWE INFORMACJE PC to skrót od nazwy Komputer Osobisty (z ang. personal computer). Elementy komputera można podzielić na dwie ogólne kategorie: sprzęt - fizyczne
Bardziej szczegółowo1 Przygotował: mgr inż. Maciej Lasota
Laboratorium nr 1 1/7 Język C Instrukcja laboratoryjna Temat: Programowanie w powłoce bash (shell scripting) 1 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie do programowania w powłoce Skrypt powłoki
Bardziej szczegółowoSystem 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
Bardziej szczegółowoWstęp. Skąd pobrać program do obsługi FTP? Logowanie
Wstęp FTP - (ang. File Transfer Protocol - protokół transmisji danych) jest to protokół typu klient-serwer, który umożliwia przesyłanie plików na serwer, oraz z serwera poprzez program klienta FTP. Dzięki
Bardziej szczegółowoModel procesu w systemie Linux. Tomasz Borzyszkowski
Model procesu w systemie Linux Tomasz Borzyszkowski Definicja procesu klasyka Definicja [M.Bach WNT95] Proces jest wykonaniem programu i składa się ze zbiorowości bajtów, które CPU interpretuje jako instrukcje
Bardziej szczegółowoKontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do
Sesje i ciasteczka Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do śledzenia użytkownika podczas jednej sesji
Bardziej szczegółowosposó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
Bardziej szczegółowoProjektowanie oprogramowania systemów KOMUNIKACJA MIĘDZYPROCESOWA
Projektowanie oprogramowania systemów KOMUNIKACJA MIĘDZYPROCESOWA plan Informacje ogólne Mechanizmy IPC Pliki i blokady Sygnały Gniazda i potoki Nazwane potoki Pamięć współdzielona i pliki mapowane w pamięci
Bardziej szczegółowoProgramowanie Współbieżne. W Linuxie/Unixie
Programowanie Współbieżne W Linuxie/Unixie Komunikacja p r o c e s u ż y t k o w n i k a 1 p r o c e s u ż y t k o w n i k a 2 J ą d r o s y s t e m u Komunikacja p r o c e s u ż y t k o w n i k a 1 p
Bardziej szczegółowoKurs systemu Unix wykład wstępny. Kurs systemu Unix 1
Kurs systemu Unix wykład wstępny Kurs systemu Unix 1 Cele wykladu Zdobycie podstawowej wiedzy o systemie i jego narzędziach. Poznanie unixowych języków skryptowych (bash, awk,...). Nauka programowania
Bardziej szczegółowoTemat zajęć: Obsługa procesów w systemie.
Temat zajęć: Obsługa procesów w systemie. Czas realizacji zajęć: 90 min. Zakres materiału, jaki zostanie zrealizowany podczas zajęć: Procesy macierzyste i potomne, tworzenie procesów potomnych, uruchamianie
Bardziej szczegółowo76.Struktura oprogramowania rozproszonego.
76.Struktura oprogramowania rozproszonego. NajwaŜniejsze aspekty obiektowego programowania rozproszonego to: Współdziałanie (interoperability) modułów programowych na róŝnych maszynach. Wielokrotne wykorzystanie
Bardziej szczegółowoSystem operacyjny MACH
Emulacja w systemie MCH System operacyjny MCH 4. SD Systemu V HP/UX MS-DOS VMS inne Mikrojądro Zbigniew Suski Zbigniew Suski Podstawowe cele projektu MCH! Dostarczenie podstawy do budowy innych systemów
Bardziej szczegółowoProgramowanie 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ółowoPrzychodnia 0. Stwórz projekt aplikacja konsolowa lub WPF (przemyśl wybór, bo zmiana może być czasochłonna). 1. Stwórz abstrakcyjną klasę Osoba.
Przychodnia 0. Stwórz projekt aplikacja konsolowa lub WPF (przemyśl wybór, bo zmiana może być czasochłonna). 1. Stwórz abstrakcyjną klasę Osoba. W tej klasie wykonaj następujące czynności: a) dodaj pole
Bardziej szczegółowoSystemy 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
Bardziej szczegółowoang. 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
Bardziej szczegółowoStrumienie, pliki. Sortowanie. Wyjątki.
Strumienie, pliki. Sortowanie. Wyjątki. Serializacja Zapisuje całą klasę Plik binarny Delimiter nieokreślony Nie da się podglądać Pliki tekstowe Zapisuje wybrane informacje Plik tekstowy Delimiter ustawiamy
Bardziej szczegółowo4. Procesy pojęcia podstawowe
4. Procesy pojęcia podstawowe 4.1 Czym jest proces? Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa
Bardziej szczegółowoJĘZYK SHELL JEST PEŁNYM JĘZYKIEM PROGRAMOWANIA
JĘZYK SHELL JEST PEŁNYM JĘZYKIEM PROGRAMOWANIA, który zawiera: zmienne, konstrukcje warunkowe i iteracyjne (IF-THEN-ELSE, CASE, DO WHILE, DO UNTIL), konfigurowane środowisko użytkownika. METAZNAKI zestaw
Bardziej szczegółowoWstęp do programowania 2
Wstęp do programowania 2 wykład 10 Zadania Agata Półrola Wydział Matematyki UŁ 2005/2006 http://www.math.uni.lodz.pl/~polrola Współbieżność dotychczasowe programy wykonywały akcje sekwencyjnie Ada umożliwia
Bardziej szczegółowoInstytut 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
Bardziej szczegółowodr inż. Jarosław Forenc
Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia stacjonarne I stopnia Rok akademicki 2010/2011 Wykład nr 7 (24.01.2011) dr inż. Jarosław Forenc Rok akademicki
Bardziej szczegółowoW otwartym oknie w zakładce Ogólne znajdujemy opcje Podpis. Po zaznaczeniu pola wyboru, w edytorze możemy zredagować dołączaną treść.
Ukrywanie adresów adresatów UDW Standardowo jeśli wysyłamy wiadomość do kilku adresatów i wpisujemy adresy do pola Do, to po odczytaniu tej wiadomości przez adresata będzie on miał możliwość odczytania
Bardziej szczegółowoLinux: Procesy. Systemy Operacyjne. Mateusz Hołenko. 26 marca 2013
Linux: Procesy Systemy Operacyjne Mateusz Hołenko 26 marca 2013 Plan zajęć Co to jest sygnał? Polecenia systemowe Sygnały Zadania Mateusz Hołenko Linux: Procesy [2/18] Co to jest proces? Co to jest proces?
Bardziej szczegółowoSEGMENT TCP CZ. II. Suma kontrolna (ang. Checksum) liczona dla danych jak i nagłówka, weryfikowana po stronie odbiorczej
SEGMENT TCP CZ. I Numer portu źródłowego (ang. Source port), przeznaczenia (ang. Destination port) identyfikują aplikacje wysyłającą odbierającą dane, te dwie wielkości wraz adresami IP źródła i przeznaczenia
Bardziej szczegółowoZmienne powłoki. Wywołanie wartości następuje poprzez umieszczenie przed nazwą zmiennej znaku dolara ($ZMIENNA), np. ZMIENNA=wartosc.
Zmienne powłoki Zmienne powłoki (shell variables) to tymczasowe zmienne, które mogą przechowywać wartości liczbowe lub ciągi znaków. Związane są z powłoką, Przypisania wartości do zmiennej następuje poprzez
Bardziej szczegółowoPrzedrostkowa i przyrostkowa inkrementacja i dekrementacja
Część VIII C++ Przedrostkowa i przyrostkowa inkrementacja i dekrementacja W poprzednim ćwiczeniu operatory inkrementacji i dekrementacji występowały w wersji przyrostkowej. Istnieje inny sposób zapisu
Bardziej szczegółowoWysyłka do systemu e-deklaracje
Wysyłka do systemu e-deklaracje Wysyłka do systemu e-deklaracje dotyczy wyłącznie deklaracji podatkowych i jest realizowana przez kreatora wysyłki. Na komputerze, na którym dokonywana jest wysyłka powinien
Bardziej szczegółowoBAZY DANYCH. Transakcje. opracowanie: Michał Lech
BAZY DANYCH Transakcje opracowanie: Michał Lech Plan wykładu 1. Transakcje - co to jest? 2. Mechanizmy transakcji 3. Reguły ACID 4. Niekorzystne zjawiska 5. Poziomy izolacji 6. Polecenia PostgreSQL transakcji
Bardziej szczegółowoProgramowanie Równoległe i Rozproszone
Programowanie Równoległe i Rozproszone Lucjan Stapp Wydział Matematyki i Nauk Informacyjnych Politechnika Warszawska (l.stapp@mini.pw.edu.pl) 1/30 PRiR MONITOR klasa z następującymi właściwościami: wszystkie
Bardziej szczegółowoNazwa implementacji: Nauka języka Python pętla for. Autor: Piotr Fiorek
Nazwa implementacji: Nauka języka Python pętla for Autor: Piotr Fiorek Opis implementacji: Poznanie innego rodzaju pętli, jaką jest pętla for w języku Python. Składnia pętli for jest następująca: for
Bardziej szczegółowoAplikacja 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ółowoProgram 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ółowoPawel@Kasprowski.pl Języki skryptowe - PHP. PHP i bazy danych. Paweł Kasprowski. pawel@kasprowski.pl. vl07
PHP i bazy danych Paweł Kasprowski pawel@kasprowski.pl Użycie baz danych Bazy danych używane są w 90% aplikacji PHP Najczęściej jest to MySQL Funkcje dotyczące baz danych używają języka SQL Przydaje się
Bardziej szczegółowoPaweł Rajba
Paweł Rajba pawel@cs.uni.wroc.pl http://www.itcourses.eu/ Wprowadzenie Używanie kursorów Rodzaje kursorów Praca z kursorami Co to jest kursor? Cykl życia kursora utworzenie pobieranie wartości ewentualnie
Bardziej szczegółowoDziałanie systemu operacyjnego
Budowa systemu komputerowego Działanie systemu operacyjnego Jednostka centralna dysku Szyna systemowa (magistrala danych) drukarki pamięci operacyjnej I NIC sieci Pamięć operacyjna Przerwania Przerwania
Bardziej szczegółowoTransport. część 2: protokół TCP. Sieci komputerowe. Wykład 6. Marcin Bieńkowski
Transport część 2: protokół TCP Sieci komputerowe Wykład 6 Marcin Bieńkowski Protokoły w Internecie warstwa aplikacji HTTP SMTP DNS NTP warstwa transportowa TCP UDP warstwa sieciowa IP warstwa łącza danych
Bardziej szczegółowoProgramowanie w Logice
Programowanie w Logice Wejście i wyjście Przemysław Kobylański na podstawie [CM2003] Term czyta się ze standardowego wejścia predykatem read/1. Każdy wczytywany term powinien być zakończony kropką. Predykat
Bardziej szczegółowo1 Podstawy c++ w pigułce.
1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,
Bardziej szczegółowoDział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
Bardziej szczegółowoLaboratorium Komputerowe Systemy Pomiarowe
Jarosław Gliwiński, Łukasz Rogacz Laboratorium Komputerowe Systemy Pomiarowe ćw. Zastosowanie standardu VISA do obsługi interfejsu RS-232C Data wykonania: 03.04.08 Data oddania: 17.04.08 Celem ćwiczenia
Bardziej szczegółowoAdministracja i programowanie pod Microsoft SQL Server 2000
Administracja i programowanie pod Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 5 Kursory w SQL Serverze Wprowadzenie Modele kursorów Używanie kursorów Rodzaje kursorów Praca
Bardziej szczegółowoNiezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.
Część XIX C++ w Każda poznana do tej pory zmienna może przechowywać jedną liczbę. Jeśli zaczniemy pisać bardziej rozbudowane programy, okaże się to niewystarczające. Warto więc poznać zmienne, które mogą
Bardziej szczegółowoAktualizacja map TT Europa. Aktualizacja map TT Europa w programie mapfactor Navigator w urządzeniach SmartGPS - instrukcja
Aktualizacja map TT Europa Aktualizacja map TT Europa w programie mapfactor Navigator w urządzeniach SmartGPS - instrukcja Odczyt klucza produktu (1) Pierwszym krokiem aktualizacji jest odczytanie i zapisanie
Bardziej szczegółowoROZPROSZONE SYSTEMY OPERACYJNE. Niezawodne usługi w rozwiązaniach SSI dokumentacja projektu. Karol Ostrowski 16 czerwca 2005
ROZPROSZONE SYSTEMY OPERACYJNE Niezawodne usługi w rozwiązaniach SSI dokumentacja projektu Karol Ostrowski 16 czerwca 2005 1 SPIS TREŚCI Spis treści 1 Wstęp 3 1.1 Kryteria oceny.............................
Bardziej szczegółowoWykład 8: klasy cz. 4
Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD
Bardziej szczegółowoPodręcznik użytkownika
Podręcznik użytkownika Moduł kliencki Kodak Asset Management Software Stan i ustawienia zasobów... 1 Menu Stan zasobów... 2 Menu Ustawienia zasobów... 3 Obsługa alertów... 7 Komunikaty zarządzania zasobami...
Bardziej szczegółowo