Projekt systemy operacyjne 2 - Systemowe mechanizmy synchr

Podobne dokumenty
synchronizacji procesów

synchronizacji procesów

1. Wprowadzenie do C/C++

1. Wprowadzenie do C/C++

Podstawy Informatyki i Technologii Informacyjnej

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

Rozwi zania klasycznych problemów w Rendezvous

SVN - wprowadzenie. 1 Wprowadzenie do SVN. 2 U»ywanie SVN. Adam Krechowicz. 16 lutego Podstawowe funkcje. 2.1 Windows

Programowanie wspóªbie»ne

Programowanie wspóªbie»ne

Lekcja 12 - POMOCNICY

Klasyczne problemy synchronizacji

Synchronizacja procesów

Lekcja 8 - ANIMACJA. 1 Polecenia. 2 Typy animacji. 3 Pierwsza animacja - Mrugaj ca twarz

SVN - wprowadzenie. 1 Wprowadzenie do SVN. 2 U»ywanie SVN. Adam Krechowicz 24 czerwca Podstawowe funkcje. 2.1 Windows

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Linux.

Lekcja 9 - LICZBY LOSOWE, ZMIENNE

Systemowe mechanizmy synchronizacji procesów

Instrukcja obsługi Norton Commander (NC) wersja 4.0. Autor: mgr inż. Tomasz Staniszewski

Subversion - jak dziaªa

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

MiASI. Modelowanie analityczne. Piotr Fulma«ski. 18 stycznia Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

Lekcja 6 Programowanie - Zaawansowane

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

Listy i operacje pytania

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

Szeregowanie zada« Przedmiot fakultatywny 15h wykªadu + 15h wicze« dr Hanna Furma«czyk. 7 pa¹dziernika 2013

Stworzenie klasy nie jest równoznaczne z wykorzystaniem wielowątkowości. Uzyskuje się ją dopiero poprzez inicjalizację wątku.

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Windows.

Systemy Operacyjne 2: Wątki pthreads. dr inż. Arkadiusz Chrobot

Synchronizacja procesów i wątków

Programowanie wspóªbie»ne

MiASI. Modelowanie systemów informatycznych. Piotr Fulma«ski. 18 stycznia Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

W zadaniach na procenty wyró»niamy trzy typy czynno±ci: obliczanie, jakim procentem jednej liczby jest druga liczba,

Systemy operacyjne. Zajęcia 11. Monitory

Wykład 4. Synchronizacja procesów (i wątków) cześć I. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

Podstawy modelowania w j zyku UML

WYMAGANIA EDUKACYJNE I KRYTERIA OCENIANIA Z PRZEDMIOTU PROGRAMOWANIE APLIKACJI INTERNETOWYCH

Lekcja 9 Liczby losowe, zmienne, staªe

1 Strumienie. 2 Pliki. 2.1 Zapis do pliku tekstowego. Programowanie w j zyku C - Adam Krechowicz, Daniel Kaczmarski

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

Podziaª pracy. Cz ± II. 1 Tablica sortuj ca. Rozwi zanie

Android. Podstawy tworzenia aplikacji. Piotr Fulma«ski. March 4, 2015

Programowanie i struktury danych

Programowanie i struktury danych 1 / 44

Wzorce projektowe kreacyjne

Wykład 4. Synchronizacja procesów (i wątków) cześć I. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

Programowanie Równoległe i Rozproszone

Problemy współbieżności

Kompilowanie programów

Zarządzanie Zasobami by CTI. Instrukcja

Aplikacje internetowe oparte na kluczowych technologiach Java Enterprise(Servlet,JSP,JDBC, )

Instrukcja programu PControl Powiadowmienia.

Temat zajęć: Tworzenie i obsługa wątków.

Ingerencja w kod systemu operacyjnego (przerwania) Programowanie na niskim poziomie (instrukcje specjalne) Trudności implementacyjne (alg.

Dziedziczenie : Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące.

Automatyzacja procesu publikowania w bibliotece cyfrowej

Przeplot. Synchronizacja procesów. Cel i metody synchronizacji procesów. Wątki współbieżne

Klasyczne problemy współbieżności. Problem producenta i konsumenta Problem czytelników i pisarzy Problem pięciu filozofów

Opis obsługi systemu Ognivo2 w aplikacji Komornik SQL-VAT

Lab. 02: Algorytm Schrage

Wzorce projektowe strukturalne cz. 1

Firma Informatyczna JazzBIT

System Informatyczny CELAB. Przygotowanie programu do pracy - Ewidencja Czasu Pracy

SYSTEMY CZASU RZECZYWISTEGO - VxWorks

EDUKARIS - O±rodek Ksztaªcenia

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

1 Klasy. 1.1 Denicja klasy. 1.2 Skªadniki klasy.

INFORMATOR TECHNICZNY WONDERWARE

4. Procesy pojęcia podstawowe

OPIS PRZEDMIOTU ZAMÓWIENIA:

System kontroli wersji SVN

1. Warunek ka»dy proces w ko«cu wejdzie do sekcji krytycznej jest

Programowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

Laboratorium Sieci Komputerowych - 1

Problemy czytelników i pisarzy oraz 5 ucztujących filozofów

Zaawansowane programowanie w C++ (PCP)

Proces z sekcją krytyczną. Synchronizacja procesów. Synchronizacja procesów, cd. Synchronizacja procesów, cd. Synchronizacja procesów, cd

4. Procesy pojęcia podstawowe

Programowanie równoległe i rozproszone. W1. Wielowątkowość. Krzysztof Banaś Programowanie równoległe i rozproszone 1

Lekcja 3 Banki i nowe przedmioty

Programowanie wspóªbie»ne

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

4. Procesy pojęcia podstawowe

INSTRUKCJA KORZYSTANIA Z ELEKTRONICZNEJ ŚCIEŻKI WYKAZÓW

Ekonometria. wiczenia 13 Metoda ±cie»ki krytycznej. Andrzej Torój. Instytut Ekonometrii Zakªad Ekonometrii Stosowanej

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

Zastosowania matematyki

JAO - J zyki, Automaty i Obliczenia - Wykªad 1. JAO - J zyki, Automaty i Obliczenia - Wykªad 1

Iwona Sójkowska. Dobre praktyki BPŁ w zakresie kreowania wizerunku i budowania dobrych relacji

Metody numeryczne i statystyka dla in»ynierów

Rozwi zywanie Ukªadów Równa«Liniowych Ax=B metod dekompozycji LU, za pomoc JAVA RMI

Platforma do obsługi zdalnej edukacji

Charakterystyka systemów plików

1. Uruchom poniższy program tworzący pojedynczy wątek:

GEO-SYSTEM Sp. z o.o. GEO-RCiWN Rejestr Cen i Wartości Nieruchomości Podręcznik dla uŝytkowników modułu wyszukiwania danych Warszawa 2007

Praca Dyplomowa Magisterska

tylko poprawne odpowiedzi, ale nie wszystkie 2 pkt poprawne i niepoprawne odpowiedzi lub brak zaznaczenia 0 pkt

INSTRUKCJA Panel administracyjny

Transkrypt:

systemy operacyjne 2 - Systemowe mechanizmy synchronizacji procesów 19 lutego 2012

Wielow tkowo± Mechanizmy synchronizacji Wielow tkowo± Mechanizmy synchronizacji Klasyczne przykªady programów

Wielow tkowo± Wprowadzenie Wielow tkowo± Mechanizmy synchronizacji Technicznie rzecz bior c w tek to niezale»ny ci g instrukcji który mo»e by wykonywany równolegle do ci gu instrukcji które go wywoªaªy. W ±rodowisku UNIX ±rodowisko w tku: znajduje si w obr bie procesu i korzysta z jego zasobów, istnieje tak dªugo jak rodzic, mo»e dzieli zasoby z innymi w tkami równolegle "zajmuj c si nimi" Dla wszystkich w tków danego procesu wspólne s : PID, GID, UID, ±rodowisko, katalog bie» cy, dost p do funkcji, rejestry, etc.

W tki POSIX Wprowadzenie Wielow tkowo± Mechanizmy synchronizacji Wielu producentów sprz tu stworzyªo wiele implementacji w tków co doprowadziªo do do± du»ego ÿbaªaganu" w tym segmencie programowania. Dzi ki standardowi IEEE POSIX 1003.1c standard (1995) udaªo si stworzy standardowe API, które doª cza si do dystrybucji. Denicje funkcji zwi zanych z POSIX threads znajduj si w pliku nagªówkowym pthreads.h, a implementacja w jednej z bibliotek systemowych (mo»e by cze±ci libc lub znajdowa si w oddzielnej bibliotece). Warto zwróci uwag na fakt, i» pomi dzy implementacjami Phtreads na ró»nych platformach istniej pewne subtelne ró»nice których nie zawsze mo»emy by ±wiadomi.

Semafory Wprowadzenie Wielow tkowo± Mechanizmy synchronizacji Semafory s strukturami danych wspólnie u»ytkowanymi przez kilka procesów. Najcz strze zastosowanie w synchronzowaniu dziaªania kilku procesów korzystaj cych ze wspólnego zasobu, którego wspóªu»ytkowanie nie zostaªo przewidziane. Typy semaforów: binarne { steruj ce dost pem do jednego zasobu (0 - zasób zaj ty, 1 - zasób wolny); licz ce { steruj ce dostepem do wielu zasobów. Z implementacyjnego punktu widzenia semafor jest unieujemn liczb caªkowit przechowywan w j drze systemu. Dost p do semafora jest udzielany za po±rednictwem kilku wywoªa«systemowych.

Mechanizmy synchronizacji POSIX Wielow tkowo± Mechanizmy synchronizacji Rodzaje zmiennych synchronizuj cych: zamek umo»liwiaj ca implementacj wzajemnego wykluczania, zmienna warunkowa umo»liwia usypianie i budzenie w tków. Zmienne synchronizuj ce musz by wspóªdzielone przez synchronizowane w tki. Zanim zmienna zostanie wykorzystana do synchronizacji musi zosta zainicjalizowana.

Zmienne synchronizuj ce Wielow tkowo± Mechanizmy synchronizacji Zamek (MUTual EXclusion lock - MUTEX) umo»liwia implementacj wzajemnego wykluczania. Operacje: lock - zaj cie (zaryglowanie) zamka (pthread mutex lock), unlock - zwolnienie (odryglowanie) zamka (pthread mutex unlock), trylock - nieblokuj ca próba zaj cia zamka (pthread mutex trylock). Zmienna warunkowa umo»liwia usypianie i budzenie w tków. Operacje: wait u±pienie w tku (pthread cond wait), signal obudzenie jednego z u±pionych w tków (pthread cond signal), broadcast obudzenie wszystkich u±pionych w tków (pthread cond broadcast).

Literatura Wprowadzenie Wielow tkowo± Mechanizmy synchronizacji 1 MAN 2 http://computing.llnl.gov/tutorials/pthreads 3...

"ksi»kowe" Wprowadzenie Klasyczne przykªady programów Problem producenta i konsumenta problem ograniczonego buforowania w komunikacji mi dzyprocesowej. Problem pi ciu lozofów problem jednoczesnego dost pu do dwóch zasobów (ryzyko gªodzenia i zakleszczenia). Problem ±pi cych fryzjerów problem synchronizacji w interakcji klient-serwer przy ograniczonym kolejkowaniu. Problem czytelników i pisarzy problem synchronizacji dost pu do zasobu w trybie wspóªdzielonym i wyª cznym.

Problem pi ciu lozofów Klasyczne przykªady programów Przy okr gªym stole siedzi pi ciu lozofów, którzy na przemian my±l i jedz makaron ze wspólnej miski. eby co± zje±, lozof musi zdoby dwa widelce, z których ka»dy wspóªdzieli ze swoim s siadem. Widelec dost pny jest w trybie wyª cznym mo»e by u»ywany w danej chwili przez jednego lozofa. Nale»y zsynchronizowa lozofów tak, aby ka»dy mógª si w ko«cu naje± przy zachowaniu reguª dost pu do widelców oraz przy mo»liwie du»ej przepustowo±ci w spo»ywaniu posiªków.

Problem ±pi cych fryzjerów Klasyczne przykªady programów W salonie fryzjerskim jest poczekalnia z p miejscami oraz n foteli, obsªugiwanych przez fryzjerów. Do salonu przychodzi klient, budzi fryzjera, po czym fryzjer znajduje wolny fotel i obsªuguje klienta. Je±li nie ma wolnego fotela, klient zajmuje jedno z wolnych miejsc w poczekalni. Je±li nie ma miejsca w poczekalni, klient odchodzi. Problem polega na zsynchronizowaniu fryzjerów oraz klientów w taki sposób, aby jeden fryzjer w danej chwili obsªugiwaª jednego klienta i w tym samym czasie klient byª obsªugiwany przez jednego fryzjera.

Problem czytelników i pisarzy Klasyczne przykªady programów Dwa rodzaje u»ytkowników czytelnicy i pisarze korzystaj ze wspólnego zasobu czytelni. Czytelnicy korzystaj z czytelni w trybie wspóªdzielonym, tzn. w czytelni mo»e przebywa w tym samym czasie wielu czytelników. Pisarze korzystaj z czytelni w trybie wyª cznym, tzn. w czasie, gdy w czytelni przebywa pisarz, nie mo»e z niej korzysta inny u»ytkownik (ani czytelnik, ani inny pisarz). Synchronizacja polega na blokowaniu u»ytkowników przy wej±ciu do czytelni, gdy wymaga tego tryb dost pu.

Problem producenta i konsumenta Klasyczne przykªady programów Producent produkuje jednostki okre±lonego produktu i umieszcza je w buforze o ograniczonym rozmiarze. Konsument pobiera jednostki produktu z bufora i konsumuje je. Z punktu widzenia producenta problem synchronizacji polega na tym,»e nie mo»e on umie±ci kolejnej jednostki, je±li bufor jest peªny. Z punktu widzenia konsumenta problem synchronizacji polega na tym,»e nie powinien on mi dost pu do bufora, je±li nie ma tam»adnego elementu do pobrania.

Warunki zaliczenia projektu Programujemy pod Unixem!!

Warunki zaliczenia projektu Programujemy pod Unixem!! Nie u»ywamy 'fork'.

Warunki zaliczenia projektu Programujemy pod Unixem!! Nie u»ywamy 'fork'. Program musi by tak skonstruowany by wida byªo wielow tkowo± (w tki maj by u»yteczne).

Warunki zaliczenia projektu Programujemy pod Unixem!! Nie u»ywamy 'fork'. Program musi by tak skonstruowany by wida byªo wielow tkowo± (w tki maj by u»yteczne). Nie mog by problemy 'ksi»kowe', mog by : gry, symulatory, aplikacje klient-serwer

Warunki zaliczenia projektu Programujemy pod Unixem!! Nie u»ywamy 'fork'. Program musi by tak skonstruowany by wida byªo wielow tkowo± (w tki maj by u»yteczne). Nie mog by problemy 'ksi»kowe', mog by : gry, symulatory, aplikacje klient-serwer Piszemy w C lub C++

Warunki zaliczenia projektu Programujemy pod Unixem!! Nie u»ywamy 'fork'. Program musi by tak skonstruowany by wida byªo wielow tkowo± (w tki maj by u»yteczne). Nie mog by problemy 'ksi»kowe', mog by : gry, symulatory, aplikacje klient-serwer Piszemy w C lub C++ Praca wªasna!

Warunki zaliczenia projektu Programujemy pod Unixem!! Nie u»ywamy 'fork'. Program musi by tak skonstruowany by wida byªo wielow tkowo± (w tki maj by u»yteczne). Nie mog by problemy 'ksi»kowe', mog by : gry, symulatory, aplikacje klient-serwer Piszemy w C lub C++ Praca wªasna! Tylko 1 program

Warunki zaliczenia projektu Programujemy pod Unixem!! Nie u»ywamy 'fork'. Program musi by tak skonstruowany by wida byªo wielow tkowo± (w tki maj by u»yteczne). Nie mog by problemy 'ksi»kowe', mog by : gry, symulatory, aplikacje klient-serwer Piszemy w C lub C++ Praca wªasna! Tylko 1 program Nie tworzymy skomplikowanej graki

Warunki zaliczenia projektu Programujemy pod Unixem!! Nie u»ywamy 'fork'. Program musi by tak skonstruowany by wida byªo wielow tkowo± (w tki maj by u»yteczne). Nie mog by problemy 'ksi»kowe', mog by : gry, symulatory, aplikacje klient-serwer Piszemy w C lub C++ Praca wªasna! Tylko 1 program Nie tworzymy skomplikowanej graki Nie tworzymy niepotrzebnie skomplikowanego kodu

Warunki zaliczenia projektu Programujemy pod Unixem!! Nie u»ywamy 'fork'. Program musi by tak skonstruowany by wida byªo wielow tkowo± (w tki maj by u»yteczne). Nie mog by problemy 'ksi»kowe', mog by : gry, symulatory, aplikacje klient-serwer Piszemy w C lub C++ Praca wªasna! Tylko 1 program Nie tworzymy skomplikowanej graki Nie tworzymy niepotrzebnie skomplikowanego kodu Nie u»ywamy 'printf'! ncurces

Biblioteka "ncurces" Wprowadzenie ncurses (ang. new curses) to kontynuacja biblioteki curses. Dostarcza ona funkcji do obsªugi terminala tekstowego niezale»nie od jego typu (korzysta z terminfo lub termcap), z optymalizacj (ekran nie jest odrysowywany w caªo±ci). W ncurses ekran skªada si z nakªadaj cych si na siebie wirtualnych okien, których korzeniem jest okno stdscr, którego nie mo»na przesuwa ani zmienia jego rozmiaru (zawsze ma rozmiar terminala). Ta biblioteka jest dost pna na licencji GNU GPL wraz z peªnym kodem ¹ródªowym. http://www.gnu.org/software/ncurses/ncurses.html

Kompilowanie z bibliotek ncurses ncurces #include <ncurses.h> gcc <program file> -lncurses

Sprawozdanie Wprowadzenie wersja wydrukowana JEDNA KARTKA A4 + mail/no±nik z programem opis tre±ci zadania (np. 'gra w formuª 1') opis zaªo»e«(np. 'ka»dy wózek jest oddzielnym w tkiem ') zasady gry/symulacji/itd. tzw. zrzut ekranu z programu - max 2 ilustracje tre± programu (kod) z komentarzami Termin: Ostatnie zaj cia