Systemy operacyjne III

Podobne dokumenty
SYSTEMY CZASU RZECZYWISTEGO - VxWorks

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

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

Wprowadzenie do programowania współbieżnego

Synchronizacja procesów i wątków

SYSTEMY OPERACYJNE WYKLAD 6 - procesy

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

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

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

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

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

Systemy operacyjne III

1. Liczby i w zapisie zmiennoprzecinkowym przedstawia się następująco

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

Programowanie Równoległe i Rozproszone

Nazwa Wydziału Nazwa jednostki prowadzącej moduł Nazwa modułu kształcenia Kod modułu Język kształcenia Efekty kształcenia dla modułu kształcenia

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2010/2011

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

Podstawy Informatyki Systemy operacyjne

Działanie systemu operacyjnego

Semafory. // G - globalna dla wszystkich. // Wada - aktywne oczekiwanie Test_and_Set(Li); exit when Li = 0; end loop sekcja_krytyczna(i); G := 0;

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

Modelowanie procesów współbieżnych

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

4. Procesy pojęcia podstawowe

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

Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86

Porządek dostępu do zasobu: procesory obszary pamięci cykle procesora pliki urządzenia we/wy

Równoległość i współbieżność

Równoległość i współbieżność

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

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

4. Procesy pojęcia podstawowe

Programowanie współbieżne Wykład 2. Iwona Kochańska

Systemy operacyjne III

Systemy operacyjne III

Bazy danych w sterowaniu

Działanie systemu operacyjnego

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

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

Zaawansowane programowanie w C++ (PCP)

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Systemy operacyjne. wykład dr Marcin Czarnota laboratorium mgr Radosław Maj

9. Problem wzajemnego wykluczania i sekcji krytycznej

Architektura systemu komputerowego. Działanie systemu komputerowego. Przerwania. Obsługa przerwań (Interrupt Handling)

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

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

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

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Programowanie współbieżne i równoległe. dr inż. Marcin Wilczewski 2013

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

Działanie systemu operacyjnego

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2009/2010

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

Klasyczne problemy synchronizacji

4. Procesy pojęcia podstawowe

SOP2 - semafory. grudzień

Prezentacja systemu RTLinux

Architektura komputerów

Czujniki obiektowe Sterowniki przemysłowe

SYSTEMY OPERACYJNE PROCESORÓW SYGNAŁOWYCH

Architektura komputerów

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

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

Wielowątkowość mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011

Logiczny model komputera i działanie procesora. Część 1.

Obliczenia równoległe i rozproszone w JAVIE. Michał Kozłowski 30 listopada 2003

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

2 Implementacja w systemie Linux 2.4

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

Wstęp do programowania 2

POSIX ang. Portable Operating System Interface for Unix

Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Zadania systemu operacyjnego. Abstrakcyjne składniki systemu. System komputerowy

Programowanie współbieżne i rozproszone

Systemy wbudowane. Systemy operacyjne czasu rzeczywistego

procesów Współbieżność i synchronizacja procesów Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

3URJUDPRZDQLHZVSyáELH*QHZVWS

Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego

Programowanie i struktury danych. Wykład 4 Dr Piotr Cybula

Systemy operacyjne. wykład 11- Zakleszczenia. dr Marcin Ziółkowski. Instytut Matematyki i Informatyki Akademia im. Jana Długosza w Częstochowie

41. System operacyjny. Postrzeganie systemu operacyjnego przez warstwę oprogramowania użytkowego

Podstawy Informatyki Układ przerwań

Programowanie wielowątkowe. Tomasz Borzyszkowski

Klient-Serwer Komunikacja przy pomocy gniazd

LEKCJA TEMAT: Zasada działania komputera.

Problemy współbieżności

Architektura komputerów

Informatyka. informatyka i nauki komputerowe (computer science)

Tworzenie programów równoległych. Krzysztof Banaś Obliczenia równoległe 1

Spis treści. Księgarnia PWN: Maurice Herlihy, Nir Shavit - Sztuka programowania wieloprocesorowego. Podziękowania Przedmowa...

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

SYSTEMY OPERACYJNE WYKLAD 6 - wątki

Mechanizmy komunikacji. spotkania symetryczne (język CSP) spotkania asymetryczne (Ada) przestrzenie krotek (Linda) potoki, komunikaty i kanały (Unix)

Systemy operacyjne. Paweł Pełczyński

Technologie informacyjne (2) Zdzisław Szyjewski

Program jest więc strukturą statyczną zapisaną na jakimś nośniku. Natomiast proces jest wykonującym się programem.

Synchronizacja procesów

Systemy Operacyjne synchronizacja i komunikacja procesów

Podstawy informatyki. System operacyjny. dr inż. Adam Klimowicz

Procesor ma architekturę rejestrową L/S. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset nand Rx, Ry, A add Rx, #1, Rz store Rx, [Rz]

Transkrypt:

Systemy operacyjne III WYKŁAD 3 Jan Kazimirski 1

Współbieżność 2

Współbieżność Wielozadaniowość - zarządzanie wieloma procesami w ramach jednego CPU Wieloprocesorowość - zarządzanie wieloma zadaniami w systemie z wieloma CPU Przetwarzanie rozproszone - zarządzanie wieloma zadaniami przetwarzanymi w architekturze rozproszonej 3

Problemy współbieżności Współdzielenie zasobów globalnych Trudna do określenia kolejność dostępu do zasobów globalnych (np. zmienne). Optymalna alokacja zasobów dla procesów Wydajne wykorzystywanie kanałów we/wy. Unikanie impasu. Problemy z testowaniem programów Niedeterministyczne wykonywanie aplikacji wielowątkowych / wielozadaniowych. 4

Dostęp do zasobów 1 zadanie P ZASÓB 5

Dostęp do zasobów współbieżność P1 P2 P1 ZASÓB P2 P1 P2 6

Współbieżność i zmienne globalne Program: void echo() { chin = getchar(); chout = chin; putchar(chout); }; Zmienna globalna Równoległe wykonanie echo() P1 P2 chin = getchar(); - - chin = getchar(); - chout = chin; chout = chin; - putchar(chout); - - putchar(chout); 7

Zasoby globalne w systemie wielozadaniowym Wymagają ochrony zwykle przydzielane na zasadzie wyłączności Jeden proces korzysta z zasobu pozostałe czekają uśpione na jego zwolnienie. Problem system przerwań Problem (system wieloprocesorowy) jednoczesny dostęp do zasobu. 8

Interakcja procesów Procesy w pełnej izolacji (nieświadome siebie nawzajem) rywalizacja o zasoby Procesy pośrednio świadome siebie nawzajem współpraca przez współdzielenie Procesy bezpośrednio świadome siebie nawzajem możliwa komunikacja. 9

Rywalizacja o zasoby Dwa procesy próbują uzyskać dostęp do zasobu Procesy nie wiedzą o sobie, są od siebie odizolowane Przegrany proces zostanie spowolniony (musi czekać na zasób), być może nigdy go nie otrzyma. 10

Wzajemne wykluczenie Kilka procesów próbuje uzyskać dostęp do zasobu rywalizacja o zasób. Procesy są od siebie odizolowane, nic o sobie nie wiedzą. Tylko jeden z procesów otrzyma zasób, a pozostałe muszą czekać wzajemne wykluczenie. 11

Wzajemne wykluczenie c.d. Niepodzielny zasób wymagający dostępu na wyłączność - zasób krytyczny. Fragment kodu realizujący dostęp do zasobu krytycznego sekcja krytyczna. Mechanizm wzajemnego wykluczania zapewnia że tylko jeden z procesów wykonuje swoją sekcję krytyczną dla danego zasobu. 12

Sekcja krytyczna P1 P2 13

Sekcja krytyczna c.d. Program: void echo() { chin = getchar(); chout = chin; putchar(chout); }; Zmienna globalna Równoległe wykonanie echo() P1 P2 cs.lock() ; - chin = getchar(); - - cs.lock(); chout = chin; - putchar(chout); - cs.unlock(); - - chin = getchar(); - chout = chin; - putchar(chout); - cs.unlock(); 14

Impas P1... R1.lock();...... R2.lock(); P2...... R2.lock();...... R1.lock(); Dwa procesy P1 i P2, oraz dwa zasoby R1 i R2. Każdy proces wymaga dostępu do obu zasobów P1 rezerwuje R1, a P2 rezerwuje R2 Każdy proces czeka na zasób zarezerwowany przez drugi z procesów 15

Zagłodzenie P1... R.lock();... R.unlock();... R.lock();...... R.unlock();... P2... R.lock();...... R.unlock();... R.lock();... P3... R.lock(); Procesy P1,P2,P3 wymagają dostępu do zasobu R P1 posiada zasób, P2 i P3 czekają P1 wychodzi z sekcji krytycznej, zasób otrzymuje P2. P1 ponownie zgłasza zapotrzebowanie na zasób P2 zwalnia zasób, system przydziela go do P1. P3 czeka P3 może nigdy nie otrzymać zasobu, pomimo braku impasu 16

Algorytmy wzajemnego wykluczania - założenia Musi być wymuszone. Tylko jeden proces może być w swojej sekcji krytycznej (dla danego zasobu) Proces zatrzymany nie może przeszkadzać innym procesom Proces oczekujący w końcu musi otrzymać zasób Pierwszy proces żądający dostępu do swojej sekcji krytycznej otrzymuje go Mechanizm nie może zależeć od liczby i szybkości procesów Proces może przebywać w sekcji krytycznej tylko określony czas 17

Algorytm wzajemnego wykluczania architektura z 1 procesorem W architekturze z jednym procesorem w danym momencie wykonywany jest tylko jeden proces. Wymuszenie wzajemnego wykluczania: Blokada przełączania procesów w czasie wykonywania sekcji krytycznej Wyłączenie przerwań na czas wykonywania sekcji krytycznej procesu 18

Algorytm wzajemnego wykluczania architektura wieloprocesorowa W architekturze wieloprocesorowej procesy na różnych procesorach wykonują się jednocześnie. Zablokowanie przerwań i przełączania procesów w sekcji krytycznej nie rozwiązuje problemu Wykorzystywana jest własność pamięci operacyjnej procesor ma wyłączny dostęp do danej komórki pamięci. Specjalne rozkazy procesora odczyt i zapis lub odczyt i test realizowane jako operacje atomowe (nieprzerywalne) 19

Wzajemne wykluczenie poprzez zmienną współdzieloną Procesy P1,P2...,Pn wymagają dostępu do zasobu kontrola za pomocą zmiennej T T=0, zasób wolny P1 testuje i ustawia T rezerwuje zasób Pozostałe procesy czekają na zwolnienie zasobu (aktywne oczekiwanie) P1 zwalnia zasób, T->0, zasób przejmuje kolejny proces. 20

Specjalne rozkazy procesora zalety i wady Dowolna liczba procesów, systemy jedno- i wieloprocesorowe Prostota Obsługa wielu sekcji krytycznych Wykorzystanie aktywnego oczekiwania Możliwy stan zagłodzenia i impas. 21

Semafor Zmienna całkowita ze zdefiniowanymi operacjami: inicjacja liczbą dodatnią semwait - operacja zmniejszenia wartości, wartość ujemna blokuje operację semsignal - operacja zwiększenia wartości, jeżeli jest mniejsza lub równa 0, czekający proces jest odblokowany 22

Mutex Semafor binarny (mutex) można go inicjalizować tylko na 0 lub 1 semwait testuje semafor, wartość 0 blokuje proces, wartość jeden zmieniana jest na zero semsignal odblokowuje zablokowany proces lub ustawia wartość na 1 23

Mutex c.d. 24

Monitor Programowe rozszerzenie funkcjonalności semaforów Moduł składający się z procedur i danych lokalnych, oraz zapewniający że: dostęp do danych lokalnych mają tylko procedury monitora proces wchodzi do monitora wywołując jedną z jego procedur tylko jeden proces może być wykonywany w monitorze, inne są zablokowane 25

Komunikaty Przetwarzanie rozproszone procesy dysponują osobnymi środowiskami wykonawczymi Komunikacja i synchronizacja procesów poprzez wymianę komunikatów Przekazywanie komunikatów można też implementować w innych modelach przetwarzania. 26

Komunikaty c.d. Typowa implementacja: send/receive Synchronizacja: synchroniczna wymiana komunikatów (blokująca) asynchroniczna wymiana komunikatów (nieblokująca) 27

Impas Stallings, Systemy operacyjne... 28

Warunki wystąpienia impasu Wzajemne wykluczanie Tylko jeden proces ma w danej chwili dostęp do zasobu. Wstrzymanie i oczekiwanie Proces może trzymać rezerwację zasobu czekając na inne. Brak wywłaszczania Nie ma możliwości odebrania procesowi zasobu Cykliczne oczekiwanie Istnieje łańcuch procesów taki, że każdy z nich przetrzymuje zasób potrzebny innemu procesowi 29

Zapobieganie impasom Rezygnacja z wzajemnego wykluczania Generalnie niepraktyczne (problem rywalizacji o zasoby). Możliwość częściowej rezygnacji (np. równoległy odczyt z pliku przez kilka procesów). Zapobieganie przetrzymywaniu zasobów Proces musi rezerwować wszystkie zasoby jednocześnie. Brak jednego zasobu powoduje zwolnienie pozostałych. Problemy wydajnościowe Problemy z implementacją (informacja o potrzebnych zasobach nie zawsze jest dostępna z góry). 30

Zapobieganie impasom Wywłaszczanie SO może odebrać zasób danemu procesowi i przydzielić innemu. Praktyczne tylko jeżeli stan zasobu można łatwo zachować i odtworzyć. Cykliczne oczekiwanie Wymuszenie kolejności rezerwacji zasobów. Problemy z wydajnością 31

Unikanie impasu Zapobieganie impasom to podejście statyczne - Wbudowane w projekt SO i obniżające wydajność. Unikanie impasu działanie dynamiczne. Decyzja o przydziale zasobu na podstawie aktualnej sytuacji. Zasób nie zostanie przydzielony jeżeli może to doprowadzić do impasu. 32

Wykrywanie impasu Zapobieganie i unikanie impasu to podejścia konserwatywne. Mogą prowadzić do problemów z implementacją i wydajnością. Inne podejście brak ograniczeń w przydziale zasobów i wykrywanie ewentualnego impasu. W przypadku zaistnienia impasu realizowana jest procedura usuwania impasu. 33

Algorytmy usuwania impasu Przerwanie wszystkich procesów w impasie. Wycofanie do ostatniego zapisanego stanu (rollback). Przerywanie procesów w impasie kolejno aż do usunięcia impasu. Wywłaszczanie procesów kolejno aż do usuniecia impasu. 34

Klasyczne problemy synchronizacji Problem producent/konsument Dwa typy procesów: producent generuje dane, konsument zużywa dane Dane umieszczane są i pobierane z bufora Problem: synchronizacja zadań w celu uniknięcia przepełnienia bufora lub próby pobrania danych z pustego bufora. 35

Klasyczne problemy synchronizacji c.d. Problem czytelników i pisarzy Dwa typy procesów: czytelnicy (dostęp niemodyfikujący do zasobu) i pisarze (dostęp modyfikujący) Czytelnicy mają nieograniczony dostęp, pisarze wymagają zasobu na wyłączność Różne warianty: uprzywilejowani czytelnicy lub pisarze. Problem: unikanie zagłodzenia czytelnika lub pisarza 36

Klasyczne problemy synchronizacji c.d. Problem ucztujących filozofów Okrągły stół i naprzemiennie leżące talerze i widelce Filozofowie siedzą przy stole i oddają się medytacji. Co jakiś czas filozof posila się korzystając z talerza i dwóch widelców (dobieranych pojedynczo) Występują problemy związane z rywalizacją o zasoby, impasem, zagłodzeniem 37

Mechanizmy synchronizacji w systemie UNIX/Linux Systemy UNIX/Linux oferują różne mechanizmy synchronizacji i komunikacji między procesami: potoki komunikaty pamięć współdzielona semafory sygnały 38

Potok Bufor umożliwiający komunikację dwóch programów w modelu producent/konsument Potok ma bufor o określonym rozmiarze Jeżeli jest miejsce w buforze to zapis jest natychmiastowy, w przeciwnym wypadku proces jest zablokowany Proces czytający odbiera dane z bufora. Gdy bufor jest pusty to proces zostaje zablokowany 39

Komunikaty Bloki bajtów z dodatkowym znacznikiem typu. Wysyłanie i odbieranie komunikatów: msgsnd, msgrcv. Komunikaty przechowywane są w buforze FIFO. Czytanie z pustego bufora lub zapis do pełnego bufora są blokowane 40

Pamięć współdzielona Blok pamięci wirtualnej do której ma dostęp wiele procesów Tworzenie/dostęp: funkcja shmget. Dołączanie i odłączanie bloku pamięci dzielonej: shmat, shmdt. 41

Semafory Semafory nazwane i nienazwane (w pamięci dzielonej) Obsługa semaforów: tworzenie: sem_init lub sem_open usuwanie: sem_destroy lub sem_close operacje: sem_post, sem_wait 42

Sygnały Mechanizm informujący proces o wystąpieniu zdarzenia. Przypomina przerwanie sprzętowe (ale bez priorytetów). Procesy mogą wysyłać i odbierać sygnały. Proces może zareagować na sygnał wywołując domyślną czynność lub czynność zdefiniowaną przez programistę. 43