Zagadnienia zaawansowane. Lech Kru, (SO2) WIELODOSTPNE SYSTEMY OPERACYJNE II INFORMACJA O SPECJALIZACJI SIECI KOMPUTEROWE KOORDYNACJA PROCESÓW

Podobne dokumenty
Zagadnienia zaawansowane. Lech Kruś,

Zagadnienia zaawansowane. Lech Kruś,

Synchronizacja procesów i wątków

WIELODOSTĘPNE SYSTEMY OPERACYJNE 1 (SO1)

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

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

Proces y i y w i ąt ą ki

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

Procesy i wątki. Blok kontrolny procesu. Proces. Proces - elementy. Stan procesu

Procesy i wątki. Blok kontrolny procesu. Proces. Proces - elementy. Stan procesu. Blok kontrolny procesu

Stan procesu. gotowy - czeka na przydział procesora, zakończony - zakończył działanie.

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

Wprowadzenie do programowania współbieżnego

WYKŁAD. Jednostka prowadząca: Wydział Techniczny. Kierunek studiów: Elektronika i telekomunikacja

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

Synchronizacja procesów

Zał nr 4 do ZW. Dla grupy kursów zaznaczyć kurs końcowy. Liczba punktów ECTS charakterze praktycznym (P)

SYSTEMY OPERACYJNE WYKLAD 6 - procesy

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

Programowanie wspóªbie»ne

Klonowanie MAC adresu oraz TTL

3URJUDPRZDQLHZVSyáELH*QHZVWS

... Ireneusz Mrozek. Wydział Informatyki

Sposoby przekazywania parametrów w metodach.

Bazy danych Podstawy teoretyczne

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

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

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

Temat: Programowanie zdarzeniowe. Zdarzenia: delegacje, wykorzystywanie zdarze. Elementy Windows Application (WPF Windows Presentation Foundation).

Bazy danych. Zaliczenie. Literatura. Strony WWW. Wykład 1: Wprowadzenie do baz danych. Semestr 1

Język programowania PASCAL

Klient-Serwer Komunikacja przy pomocy gniazd

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 współbieżności. Problem producenta i konsumenta Problem czytelników i pisarzy Problem pięciu filozofów

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

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

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

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

synchronizacji procesów

Działanie systemu operacyjnego

synchronizacji procesów

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2013/2014

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

Monitory. Jarosław Kuchta

Bazy danych Transakcje

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

Proces tworzenia programu:

Wzorcowy załcznik techniczny, do umowy w sprawie przesyłania faktur elektronicznych pomidzy Firm A oraz Firm B

Programowanie Obiektowe

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

Temat: Liniowe uporzdkowane struktury danych: stos, kolejka. Specyfikacja, przykładowe implementacje i zastosowania. Struktura słownika.

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA realizacja w roku akademickim 2016/2017

4. Procesy pojęcia podstawowe

Opis efektów kształcenia dla modułu zajęć

Systemy operacyjne III

Podstawy Informatyki Systemy operacyjne

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

Synchronizacja procesów

Systemy operacyjne. Program przedmiotu

Systemy operacyjne. Program przedmiotu. Forma zaliczenia przedmiotu. Dariusz Wawrzyniak 1

Podstawy informatyki. Izabela Szczęch. Politechnika Poznańska

Temat: Algorytmy zachłanne

" # # Problemy budowy bezpiecznej i niezawodnej globalnej sieci szerokopasmowej dla słub odpowiadajcych za bezpieczestwo publiczne

1) Grafy eulerowskie własnoci algorytmy. 2) Problem chiskiego listonosza

MODELOWANIE I PROGRAMOWANIE PRACY

Problem zakleszczenia

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

Rozproszona pamiêæ dzielona - 1

Działanie systemu operacyjnego

Synchronizacja procesów

Działanie systemu operacyjnego

Monitory. Wady semafora

PRZEWODNIK PO PRZEDMIOCIE

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

Systemy operacyjne lab. 6 Paweł Gmys strona 1

Semafory. - aktywne oczekiwanie =GRGDWNRZ\PZVSDUFLHPVSU]WRZ\P 6SHFMDOQDLQVWUXNFMDPDV]\QRZDUHDOL]XMFDDWRPRZ\]DSLVL odczyt, np.

PRZEWODNIK PO PRZEDMIOCIE

1. Klasa typu sealed. Przykład 1. sealed class Standard{ class NowyStandard:Standard{ // błd!!!

Systemy Operacyjne synchronizacja i komunikacja procesów

Program do konwersji obrazu na cig zero-jedynkowy

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

Przerwania. Przerwania. Budowa systemu komputerowego. Zdarzenia powodujące przerwanie: Wektor przerwań

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

Studium przypadku Case Study CCNA2-ROUTING

Wprowadzenie. Dariusz Wawrzyniak 1

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Szukanie najkrótszych dróg z jednym ródłem

Bazy danych. Plan wykładu. Model logiczny i fizyczny. Operacje na pliku. Wykład 10: Fizyczna organizacja danych w bazie danych

VPN Virtual Private Network. Uycie certyfikatów niekwalifikowanych w sieciach VPN. wersja 1.1 UNIZETO TECHNOLOGIES SA

Terminologia baz danych

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

Zarządzanie pamięcią w systemie operacyjnym

Systemy rozproszone. na użytkownikach systemu rozproszonego wrażenie pojedynczego i zintegrowanego systemu.

Rozwi zania klasycznych problemów w Rendezvous

Przerwania. Przerwania. Budowa systemu komputerowego. Zdarzenia powodujące przerwanie: Wektor przerwań

Wstęp do programowania 2

Systemy operacyjne. Zajęcia 11. Monitory

WYKŁAD 10. Wzorce projektowe czynnociowe Command Strategy

Systemy operacyjne. Paweł Pełczyński

System midzybankowej informacji gospodarczej Dokumenty Zastrzeone MIG DZ ver Aplikacja WWW ver. 2.1 Instrukcja Obsługi

Transkrypt:

WYSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZDZANIA WYDZIAŁ INFORMATYKI WIELODOSTPNE SYSTEMY OPERACYJNE II (SO2) Zagadnienia zaawansowane CZ 1 KONSPEKT WYKŁADÓW INFORMACJA O SPECJALIZACJI SIECI KOMPUTEROWE KOORDYNACJA PROCESÓW Semestr 4, Rok: 2011/2012 Lech Kru,

KONSPEKT Cel przedmiotu: Wprowadzenie słuchaczy do zaawansowanych zagadnie systemów operacyjnych. Ułatwienie rozumienia podstawowych zagadnie zwizanych z synchronizacj procesów współbienych, komunikacj midzy procesami, blokowaniem (zakleszczaniem) procesów. Wprowadzenie do systemów rozproszonych i sieci komputerowych. Uzupełnieniem wykładu s zajcia laboratoryjne powicone pracy w systemie MS Windows 2003. Wymagane przygotowanie słuchaczy: podstawy informatyki technicznej (cyfrowej reprezentacji informacji, podstaw arytmetyki komputerów, podstaw teorii układów logicznych: A. Skorupski, Podstawy budowy i działania komputerów, WKŁ 1996), organizacja i architektura komputerów (P. Metzger, Anatomia PC, Helion 1996), wielodostpne systemy operacyjne I (wykłady i laboratorium na Wydz. Informatyki, WSISiZ) Zaliczenie przedmiotu: zaliczenie laboratorium (kolokwia), oraz egzamin z tematyki wykładów

Zakres tematyczny Koordynacja procesów Problem sekcji krytycznej. Rozwizania programowe. Sprztowe rodki synchronizacji. Semafory. Przykłady rozwiza wybranych problemów synchronizacji: problem ograniczonego buforowania, problem czytelników i pisarzy, problem posilajcych si filozofów. Konstrukcje synchronizacji w jzykach wysokiego poziomu. Komunikacja midzy procesami Wprowadzenie - podstawowe schematy komunikacji. Okrelenie nadawców i odbiorców. Komunikacja bezporednia. Komunikacja porednia. Zagadnienia buforowania. Przykłady działa w sytuacjach wyjtkowych.

Blokady (zakleszczenia) procesów Definicja blokady (zakleszczenia). Warunki konieczne wystpienia blokady. Graf przydziału zasobów. Zapobieganie wystpieniu blokady - eliminacja jednego z warunków koniecznych. Unikanie blokad. Pojcie stanu bezpiecznego, stanu zagroenia i blokady. Algorytm bankiera. Wykrywanie blokad. Wychodzenie z blokady.

Wprowadzenie do systemów rozproszonych Co to jest system rozproszony, zalety i wady systemów rozproszonych Zagadnienia sprztowe: wieloprocesory szynowe, wieloprocesory przełczane, multikomputery szynowe, multikomputery przełczane. Klasyfikacja systemów operacyjnych: systemy sieciowe, prawdziwe systemy rozproszone, systemy wieloprocesorowe z podziałem czasu Wybrane pojcia zwizane z projektowaniem: przezroczysto, elastyczno, niezawodno, wydajno, skalowalno. Wprowadzenie do sieci komputerowych Pojcia podstawowe: sieci z wymiana pakietów, sieci LAN i WAN, stos protokołów ISO, kapsułkowanie i demultipleksacja, interakcja klientserwer. Standardy w Internecie. Sieci LAN: topologie sieci LAN, pojecie ramki i adresu sieciowego. Intersie i protokół TCP/IP: schemat adresowania IP, protokół ARP, protokół IP, protokół ICMP, protokół TCP, protokół UDP.

Literatura podstawowa: Abraham Silberschatz, James.L. Peterson, Peter.B. Galvin; Podstawy systemów operacyjnych, WNT, Warszawa 1993. (2000) Berny Goodheart, James Cox; Sekrety magicznego ogrodu. Unix System V, wersja 4 od rodka. WNT, Warszawa 2001. Berny Goodheart, James Cox; Sekrety magicznego ogrodu. Unix System V, wersja 4 od rodka. Klucz do zada. WNT, Warszawa 2001. Maurice. J. Bach; Budowa systemu operacyjnego UNIX, WNT, Warszawa, 1995. Andrew S. Tanenbaum: Rozproszone systemy operacyjne. PWN. Warszawa 1997. Douglas E. Comer: Sieci komputerowe TCP/IP. (Tom 1) Zasady, protokoły i architektura. WNT, Warszawa 1997. W. Richard Stevens: Biblia TCP/IP, tom1 protokoły. Oficyna Wyd. READ ME, 1998. Literatura uzupełniajca: Craig Hunt: TCP/IP Administracja Sieci. O Reilly&Associates Inc., Oficyna Wyd. READ ME, Warszawa, 1996. Andrew. S. Tanenbaum; Modern Operating Systems, Prentice-Hall, Inc. London, 1992. Abraham Silberschatz, Peter.B. Galvin; Operating System Concepts. Addison Wesley, New York, 1994.

KOORDYNACJA PROCESÓW Zagadnienie współbienoci problemy uporzdkowania wykonywania procesów mechanizmy synchronizacji i komunikowania Wprowadzenie Rozpatrywany jest zbiór procesów sekwencyjnych, wykonywanych asynchronicznie, ew. współdzielcych dane. Model: proces producent, proces konsument. Jak zapewni współbiene działanie? załoy pul buforów, producent zapełnia bufory, konsument oprónia bufory. Synchronizacja: konsument musi czeka na wyprodukowanie tego, co chce skonsumowa.

Przykład algorytmu koordynacji z ograniczonym buforem Zmienne dzielone: var n; type jednostka =...; var bufor array[0..n-1] of jednostka; we, wy: 0..n-1; licznik: integer; Wartoci pocztkowe: we,wy: 0, licznik: 0. Dzielona pula buforów realizowana jest jako tablica cykliczna z dwoma wskanikami logicznymi: we - wskazuje nastpny pusty bufor, wy - wskazuje pierwszy zajty bufor. Kod producenta repeat... produkuj jednostk w nastp... while licznik = n do nic; bufor[we] := nastp; we := we + 1 mod n; licznik := licznik + 1; until false; Kod konsumenta repeat while licznik = 0 do nic; nastk:= bufor[wy]; wy := wy + 1 mod n; licznik := licznik - 1;... konsumuj jednostk w nastk... until false;

Oba kody poprawne, gdy rozpatrywane oddzielnie. Czy działaj poprawnie przy wykonywaniu współbienym? Przykład aktualna warto zm. licznik 5, współbiene wykonywanie: producent: licznik := licznik + 1; konsument: licznik := licznik - 1; Wykonywanie instrukcji w kodzie maszynowym: licznik := licznik + 1; licznik := licznik - 1; jako rozkazów: jako rozkazów: rej1 := licznik; rej2 := licznik; rej1:= rej1 + 1; rej2:= rej2-1; licznik := rej1; licznik := rej2; W przypadku współbienego wykonywania instrukcji ze zmienn licznik rozkazy maszynowe mog si przeplata w dowolnym porzdku, np.: T0: producent wykonuje rej1:= licznik ; (rej1=5) T1: producent rej1:= rej1 +1 ; (rej1=6) T2: konsument rej2:= licznik; (rej2=5) T3: konsument rej2:= rej2-1; (rej2=4) T4: producent licznik := rej1; (licznik=6) T5: konsument licznik := rej2: (licznik=4) Ostatnia warto zm. licznik wskazuje na istnienie 4 pełnych buforów, a naprawd jest 5. Gdy zmieni si kolejno T4 i T5 to wynik jest 6. Jak zapewni prawidłowy wynik? Tylko jeden proces moe wykonywa operacje na zmiennej licznik w czasie wykonywania instrukcji. WNIOSEK: Konieczno synchronizacji.

Problem sekcji krytycznej n współbienych procesów {P 0, P 1,..., P n-1 }, sekcja krytyczna - segment kodu (moe wystpi w kadym z tych procesów), w którym proces przetwarza wspólne zmienne, zasada wzajemnego wyłczania w czasie wykonania sekcji krytycznych procesów, Problem: skonstruowa protokół słucy organizacji współpracy procesów. Kod procesu zawiera sekwencj: sekcja wejciowa (proba o zezwolenie na wejcie do sekcji krytycznej) sekcja krytyczna sekcja wyjciowa (sygnalizacja wyjcia z sekcji krytycznej) reszta.

Wymagane warunki rozwizania problemu: Wzajemne wyłczanie Postp Ograniczone czekanie Załoenia dot. konstrukcji algorytmów: niezerowa prdko wykonywania procesów podstawowe rozkazy maszynowe wykonywane niepodzielnie ogólna struktura rozpatrywanego procesu ma posta : repeat sekcja wejciowa sekcja krytyczna sekcja wyjciowa reszta until false;

Rozwizania problemu sekcji krytycznej? Dwa współbiene procesy P 0, P 1 (dla wygody ozn. P i, P j, i=0,1; j=1-i). Algorytm 1 wspólna zmienna całkowita numer o wartociach 0 lub 1 repeat while numer i do nic; sekcja krytyczna numer := j; reszta until false; Algorytm 2 wspólna tablica flaga var flaga: array[0..1] of boolean; repeat flaga[i] := true; while flaga[j] do nic; sekcja krytyczna flaga[i] := false; reszta until false;

Algorytm 3 Wspólne zmienne procesów: var flaga: array[0..1] of boolean; numer: 0..1; wartoci pocztkowe: flaga[0]=flaga[1]=false struktura procesu P i : repeat flaga[i] := true; numer := j; while (flaga[j] and numer = j) do nic; sekcja krytyczna flaga[i] := false; until false; reszta

Sprztowe rodki synchronizacji Rozkazy sprztowe pozwalajce na sprawdzenie i zmian zawartoci słowa (słów), wykonywane jako niepodzielne jednostki. Przykład rozkazu sprztowego: instrukcja Testuj_i_Ustal function Testuj_i_Ustal(var cel: boolean): boolean; begin Testuj_i_Ustal:=cel; cel:=true; end; Realizacja wzajemnego wyłczania: wspólna zmienna var zamek: boolean; warto pocztkowa: zamek:= false; Proces Pi (i=1,2): repeat while Testuj_i_Ustal(zamek) do nic; sekcja krytyczna zamek:=false; reszta until false;

Semafory Semafor S - zmienna całkowita dostpna tylko za pomoc standardowych niepodzielnych operacji: czekaj (ang. wait), sygnalizuj (ang. signal). Definicje operacji: czekaj(s): while S 0 do nic; S := S - 1; sygnalizuj(s): S := S + 1; Niepodzielno: gdy jeden proces zmienia warto S, aden inny nie moe; podczas sprawdzanie i zmieniania wartoci S nie moe nastpi przerwanie.

Przykłady zastosowa 1. Problem sekcji krytycznej przy n procesach: wspólny semafor wzajwy (wzajemne wyłczanie), pocztkowa warto wzajwy=1, kady proces Pi jest zorganizowany: repeat czekaj(wzajwy); sekcja krytyczna sygnalizuj(wzajwy); reszta until false;

2. Synchronizacja wykonywania procesów np. zapewnienie wymaganej kolejnoci wykonania instrukcji w rónych procesach: współbiene procesy P1 z instrukcj S1, oraz P2 z instr. S2 wymagane wykonanie S2 po wykonaniu S1. Rozwizanie: Inicjacja wspólnej zmiennej semafor: synch, warto pocztkowa synch = 0, dołczenie instrukcji w procesie P1:.... S1; sygnalizuj(synch);.... w procesie P2:.... czekaj(synch); S2;

Problem aktywnego czekania, wirujcej blokady Procesy stojce pod semaforem wykonuj ptle instrukcji - aktywne czekanie. Sposób rozwizania: Definicja semafora nie wymagajca koniecznoci aktywnego czekania: (idea - wznowienie zablokowanego pod semaforem procesu przez inny proces) type semafor = record wart: integer; L: list of proces; end; czekaj(s): S.wart := S.wart - 1; if S.wart < 0 then begin dołcz dany proces do S.L; block; end; sygnalizuj(s): S.wart := S.wart + 1; if S.wart 0 then begin usu jaki proces P z S.L; wakeup(p); end;

Problem blokowania Zbiór procesów jest w stanie blokady, gdy kady proces w tym zbiorze czeka na zdarzenie spowodowane przez inny proces z tego zbioru.

WYBRANE PROBLEMY SYNCHRONIZACJI Problem ograniczonego buforowania Proces producent przekazuje informacje za porednictwem n buforów do procesu konsument. Kady bufor mieci jedn jednostk. Semafory: wzajwy, warto pocz. 1, pusty, warto pocz. n, pełny, warto pocz. 0. Struktura kodu producenta: repeat... produkowanie jednostki w nastp... czekaj(pusty); czekaj(wzajwy);... dodanie jednostki nastp do bufora bufor... sygnalizuj( wzajwy); sygnalizuj(pełny); until false; Struktura kodu konsumenta: repeat czekaj(pełny); czekaj(wzajwy);... wyjmowanie jednostki z buforu bufor do nastk... sygnalizuj( wzajwy); sygnalizuj(pusty);... konsumowanie jednostki z nastk until false;

Problem czytelników i pisarzy Dzielenie obiektu danych (pliku, rekordu) midzy kilka współbienych procesów. Niektóre procesy bd tylko czyta (czytelnicy), inne mog uaktualnia (czyta i pisa - pisarze). Problem zagwarantowania wyłcznoci dostpu pisarzy do obiektu. Najprostszy wariant: aden czytelnik nie powinien czeka, chyba, e pisarz uzyskał dostp.

Próba rozwizania: procesy czytelników dziel zmienne: var wzjawy, pis: semafor; liczp: integer; wartoci pocztkowe: wzajwy, pis 1, liczp 0. Struktura procesu pisarza: czekaj(pis);... pisanie... sygnalizuj(pis); Struktura procesu czytelnika: czekaj(wzajwy); liczp:=liczp + 1; if liczp = 1 then czekaj(pis); sygnalizuj(wzajwy);... czytanie... czekaj(wzajwy); liczp:= liczp - 1; if liczp = 0 then sygnalizuj(pis); sygnalizuj(wzajwy);

Problem posilajcych si filozofów i Przykład prostego rozwizania: pałeczka semafor próba podniesienia pałeczki - operacja czekaj odłoenie pałeczki - operacja sygnalizuj Dane dzielone: var pałeczka: array[0..4] of semafor; wartoci pocztkowe = 1. Struktura procesu filozofa nr i: repeat czekaj(pałeczka[i]); czekaj(pałeczka[i+1 mod 5]);... jedzenie... synalizuj(pałeczka[i]); sygnalizuj(pałeczka[i +1 mod 5]);... mylenie... until false;

Implementacja semafora zliczajcego S przy pomocy semaforów binarnych Deklaracje: semafor_binarny S1, S2; int C; Wartoci pocztkowe: S1 = 1, S2 = O, zmiennej całkowita C = warto pocztkowa semafora zliczajcego S Implementacja operacji wait semafora zliczajcego S: wait(s1); C--; if (C < O) { signal(s1); wait(s2); } signal(s1); Operacja signal semafora zliczajcego S: wait(s1); C++; if (C <= O) signal(s2); else signal(s1);

Konstrukcje synchronizacji w jzykach wysokiego poziomu Regiony krytyczne Specjalna deklaracja zmiennej v typu T dzielonej przez wiele procesów: var v: shared T; zmienna v dostpna jest tylko w obrbie specjalnej instrukcji region: region v do S; Przykład: dwa procesy współbiene P 0, P 1, zawierajce instrukcje: P 0 : region v do S 1 ; P 1 : region v do S 2 ; wynik odpowiada sekwencyjnemu wykonaniu S 1, S 2 lub S 2, S 1.

Implementacja Regionu krytycznego 1. Kompilator generuje zmienn dzielon: var v_wzajwy: semafor; warunek pocztkowy: v_wzajwy:=1; 2. Dla kadej instrukcji: region v do S; kompilator generuje kod zestawu instrukcji: czekaj(v_wzajwy); S; sygnalizuj(v_wzajwy);

Warunkowy region krytyczny deklaracja: var v: shared T zmienna v dostpna jest w instrukcji: region v when B do S; gdzie B jest wyraeniem boolowskim. Przykład ograniczonego buforowania Deklaracje: var bufor: shared record pula: array[0..n-1] of jednostka; licznik, we, wy: integer; end; Wartoci pocztkowe: licznik:=we:=wy:=0; Kod producenta region bufor when licznik < n do begin pula[we]:=nastp; we:= we+1 mod n; licznik:= licznik+1; end; Kod konsumenta region bufor when licznik > 0 do begin nastk:= pula[wy]; wy:= wy+1 mod n; licznik:= licznik-1; end;

Monitory Monitor jest scharakteryzowany przez zbiór operacji zdefiniowanych przez programist. Reprezentacja typu monitor zawiera deklaracje zmiennych (ich wartoci okrelaj stan monitora), oraz procedury lub funkcje realizujce działania na monitorze. Konstrukcja monitora gwarantuje, e w jego wntrzu moe by wykonywany tylko jeden proces. Inne czekaj w kolejce. Literatura: A. Silberschatz, J.L. Peterson, P.B. Galvin; Podstawy systemów operacyjnych. WNT, W-wa, 1993. A. Silberschatz, P.B. Galvin, G. Gagne; Podstawy systemów operacyjnych. WNT, W-wa, 2005. Uwaga Monitor jest okrelony jako typ w rozumieniu programowania obiektowego: zarówno struktura danych i zbiór okrelonych na niej działa.

KOMUNIKACJA MIDZY PROCESAMI Wprowadzenie Dwa uzupełniajce si schematy komunikacji: pami dzielona - procesy współuytkuj pewne zmienne system komunikatów - wymiana komunikatów midzy procesami bez uycia zmiennych dzielonych. Podstawowe operacje komunikacji midzy procesami: nadaj(komunikat) odbierz(komunikat) Zagadnienia dotyczce ustanowienia łcza Zagadnienia logicznej implementacji łcza

OKRE LENIE NADAWCÓW I ODBIORCÓW Komunikacja bezporednia proces nadajcy (lub odbierajcy) komunikat jawnie okrela odbiorc (lub nadawc) Cechy łcza: ustanawiane automatycznie midzy dwoma procesami na podstawie ich identyfikatorów dotyczy dokładnie dwóch procesów, jest dla kaej pary procesów tylko jedno, jest dwukierunkowe

(Komunikacja bezporednia - kontynuacja) Definicja podstawowych operacji: nadaj(p, komunikat), gdzie P jest odbiorc odbierz(q, komunikat), gdzie Q jest nadawc Przykład rozwizania problemu producenta i konsumenta Proces producenta: repeat... wytwarzaj jednostk w nastp... nadaj(konsument, nastp); until false; Proces konsumenta: repeat odbierz(producent, nastk);... konsumuj jednostk z nastk... until false;

Komunikacja porednia wykorzystanie skrzynek pocztowych (portów) o jednoznacznej identyfikacji Definicja podstawowych operacji nadaj(a, komunikat), odbierz(a, komunikat), gdzie A jest identyfikatorem skrzynki pocztowej. Cechy łcza: ustanawiane midzy procesami, gdy dziel skrzynk pocztow, moe dotyczy wicej ni dwóch procesów, kada para procesów moe mie kilka rónych łczy, moe by jedno lub dwukierunkowe

Róne rozwizania systemowe dotyczce: własnoci skrzynki (procesu lub systemu operacyjnego), tworzenia skrzynki, nadawania i odbierania komunikatów, usuwania skrzynki. Zagadnienia buforowania Pojemno łcza tylko okrelona liczba komunikatów moe w nim przebywa, kolejka komunikatów przyporzdkowanych do łcza. Sposoby implementacji kolejki pojemno łcza pojemno zerowa pojemno ograniczona pojemno nieograniczona

Przykłady działa w sytuacjach wyjtkowych Zakoczenie procesu biorcego udział w komunikacji Utrata komunikatów Zniekształcenie komunikatów

WYSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZDZANIA WYDZIAŁ INFORMATYKI WIELODOSTPNE SYSTEMY OPERACYJNE II Zagadnienia zaawansowane CZ 2 BLOKADY ZAKLESZCZENIA PROCESÓW Semestr 4, Rok: 2011/2012 Lech Kru,

BLOKADY - ZAKLESZCZENIA (DEADLOCKS) Blokada: sytuacja, w której procesy wzajemnie przetrzymuj zasoby, do których chciałyby uzyska dostp. W sytuacji takiej procesy s w stanie oczekiwania, z którego nie mog wyj. OPIS SYSTEMU Zasoby System zawiera skoczon liczb zasobów rónego typu. Mog wystpowa grupy równowanych zasobów. Zasady korzystania z zasobów przez procesy Zamówienie zasobu Uycie Zwolnienie zasobu

Def. Wzajemnego blokowania, zakleszczenia procesów (deadlock): Zbiór procesów jest w stanie blokady, jeli kady proces z tego zbioru czeka na zdarzenie spowodowane przez inny proces z tego samego zbioru. Przykłady zasobów: zasoby fizyczne: drukarki, napdy tamy, cykle procesora, pami zasoby logiczne: pliki, semafory

WARUNKI KONIECZNE WYSTPIENIA BLOKADY Wzajemne wyłczanie Co najmniej jeden zasób jest niepodzielny. Tylko jeden proces moe korzysta z tego zasobu, inne procesy zamawiajce ten zasób s opóniane. Przetrzymywanie i oczekiwanie Musi istnie proces majcy przydzielony pewien zasób (co najmniej jeden) i oczekujcy na przydział dodatkowego zasobu, przetrzymywanego przez inny proces.

WARUNKI KONIECZNE WYSTPIENIA BLOKADY (c. d.) Brak wywłaszcze Tylko proces przetrzymujcy okrelony zasób, moe ten zasób zwolni. Czekanie cykliczne Musi istnie zbiór oczekujcych procesów {P0, P1,...,Pn-1 }, takich, e P0 czeka na zasób przetrzymywany przez P1, P1 czeka na zasób przetrzymywany przez P2, itd...., a Pn-1 czeka na zasób przetrzymywany przez P0.

GRAF PRZYDZIAŁU ZASOBÓW Graf skierowany opisujcy stan systemu przydziału zasobów, umoliwia analiz sytuacji blokad. Zbiór wierzchołków W składajcy si z podzbiorów: P={ P1, P2,..., Pn} podzbiór procesów, Z={ Z1, Z2,..., Zm} podzbiór typów zasobów. Zbiór krawdzi skierowanych K: Pi -> Zj oznacza, e proces Pi zamówił zasób Zj, Zi -> Pj oznacza, e zasób Zi został przydzielony procesowi Pj. Z1 Z3 P1 P2 P3 Z2 Z4 Przykład grafu (oznaczenia na rys. : proces -, zasób - ).

Warunek konieczny wystpienia blokowania: graf przydziału zasobów zawiera cykl. W przypadku, gdy kady typ zasobów zawiera tylko jeden egzemplarz, to cykl zawarty w grafie przydziału zasobów jest warunkiem koniecznym i dostatecznym. Z1 Z3 Z1 P2 P1 P2 P3 P1 P3 Z2 Przykład grafu z blokad Z4 Z2 P4 Przykład grafu z cyklem, ale bez blokady

SPOSOBY ROZWIZYWANIA PROBLEMU BLOKADY Zapobieganie wystpieniu blokady. Unikanie blokad. Pozwoli na wejcie w stan blokady i spowodowa jej usunicie.

ZAPOBIEGANIE WYSTPIENIU BLOKADY Wyeliminowanie co najmniej jednego z warunków koniecznych. Wzajemne wyłczanie Warunek ten mona wyeliminowa tylko w przypadku zasobów podzielnych. Przetrzymywanie i oczekiwanie idea: zastosowa protokół zapewniajcy, e proces zamawiajcy okrelony zasób nie powinien przetrzymywa innych. Brak wywłaszcze idea: zastosowa odpowiedni protokół wywłaszczeniowy

Czekanie cykliczne idea: wyeliminowa czekanie cykliczne przez uporzdkowanie zasobów i zastosowanie odpowiedniego protokołu przydzielania zasobów procesom. Z={Z1,... Zm} zbiór zasobów F: Z -> N funkcja przyporzdkowujca kademu zasobowi liczb naturaln ze zbioru N. Przykład: Z={nap. tamy, nap. dysku, drukarki}, N={ 1, 5, 7}, F(nap. tamy)=1, F(nap. dysku)=5, F(drukarki)=7, Protokół: kady proces moe zamawia zasoby tylko we wzrastajcym porzdku ich numeracji, tzn. na pocztku proces moe zamówi dowoln dostpn liczb egz. zasobu np. Zl. Nastpnie jednak kady egz. zasobu Zk tylko wtedy, gdy F(Zk) > F(Zl). Wymaga si, aby proces zamawiajcy zasób Zl miał wczeniej zwolnione zasoby Zk takie, e F(Zk) F(Zl).

UNIKANIE BLOKAD idea: przy kadym zamawianiu zasobów przez proces, system operacyjny decyduje czy ten proces ma czeka czy nie. Wymagana jest wczeniejsza informacja jak procesy bd zamawia i zwalnia zasoby. Na podstawie deklaracji procesów o maksymalnej liczbie potrzebnych zasobów konstruuje si algorytmy przydzielania zasobów, tak aby system nie wszedł w stan blokady. Algorytm dynamicznie sprawdza stan przydziału zasobów i decyzja o przydziale podejmowana jest tak aby nie dopuci do spełnienia warunku czekania cyklicznego. Róne algorytmy wymagaj rónych iloci i typów informacji. Stan przydziału zasobów okrelony jest przez liczb zasobów dostpnych, przydzielonych oraz przez maksymalne zapotrzebowania procesów.

Stan bezpieczny: Stan przydziałów dla którego istnieje cig bezpieczny procesów P1,..., Pn, tzn. taki cig, e dla kadego procesu Pi jego potencjalne zapotrzebowanie na zasoby musi by zaspokojone przez zasoby aktualnie dostpne oraz przez zasoby uytkowane przez procesy Pj, j<i. Stan zagro enia - gdy aden taki cig bezpieczny nie istnieje.

Ilustracja stanu bezpiecznego i stanu zagro enia. Przykład 1. Trajektorie realizacji dwóch procesów wykorzystujcych dwa zasoby

Ilustracja stanu bezpiecznego i stanu zagro enia. Przykład 2. Jeden zasób dostpny w 10-u egzemplarzach, 3 procesy: A, B, C. Stan (a) jest stanem bezpiecznym Stan (b) nie jest stanem bezpiecznym

Rozwizanie dla zasobów reprezentowanych wielokrotnie: algorytm bankiera Proces wchodzcy do systemu musi zadeklarowa maksymaln liczb potrzebnych egzemplarzy kadego zasobu. Kiedy proces w trakcie wykonywania zamawia potrzebne zasoby - system operacyjny decyduje czy te zasoby udostpni, czy proces musi poczeka - tak aby system pozostał w stanie bezpiecznym

Struktury danych przechowujce stan systemu przydziałów. dla n procesów, m typów zasobów Dostpne: array[0..m-1] of integer okrela liczb dostpnych egz. kadego zasobu, np. Dostpne[j]=k ozn., e jest dostpnych k egzemplarzy zasobu typu j. Maksymalne: array[0..n-1,0..m-1] of integer okrela maksymalne dania procesów wzgldem zasobów poszczególnych typów. Przydzielone: array[0..n-1,0..m-1] of integer okrela liczb zasobów poszczególnych typów ju przydzielonych do kadego z procesów. Potrzebne: array[0..n-1,0..m-1] of integer okrela pozostałe do spełnienia zamówienia kadego procesów. Uwagi: Potrzebne[i,j]=Maksymalne[i,j] - Przydzielone[i,j] Struktury te s dynamiczne - zmieniaj w czasie wymiary i wartoci. W formułowaniu algorytmów korzystamy dla uproszczenia zapisu z wektorów: Dostpne, Maksymalnei, Przydzielonei, Potrzebnei (wektory wzgldem zasobów dla ustalonego procesu i). Wprowadzamy relacj dominacji midzy wektorami X, Y o wymiarach m: X Y wtedy i tylko wtedy gdy X[j] Y[j] dla kadego j=1,..,m.

Zamówienia procesu i na zasoby oznaczane s przez: Zamówieniai: array[0..m-1] of integer ALGORYTM DZIAŁA podejmowanych, gdy proces i wykonuje zamówienia Krok 1: Sprawd czy Zamówieniai Potrzebnei tak: wykonaj krok 2, nie: warunek błdu. Krok 2: Sprawd czy Zamówieniai Dostpne tak: wykonaj krok 3, nie: proces i musi czeka. Krok 3: Wykonaj prób przydziału zasobów: Dostpne:= Dostpne - Zamówieniai; Przydzielonei := Przydzielonei + Zamówieniai; Potrzebnei := Potrzebnei - Zamówieniai; Sprawd czy stan jest bezpieczny (algorytm bezpieczestwa). tak: przydziel zasoby procesowi i zgodnie z zamówieniem, nie: przywró poprzedni stan zasobów, proces i musi czeka na realizacj zamówienia: Zamówieniai.

ALGORYTM BEZPIECZESTWA Wprowadzamy wektory Praca o wymiarze m, Koniec o wymiarze n. Krok 1: Przypisania pocztkowe: Praca:= Dostpne; Koniec[i]:= false; dla i=0,...,n-1. Krok 2: Znajd takie i, e jednoczenie: Koniec[i]=false and Potrzebnei Praca czy istnieje takie i? tak: wykonaj krok 3 nie: wykonaj krok 4. Krok 3: Praca := Praca + Przydzielonei; Koniec[i]:= true; wykonaj krok 2. Krok 4: Jeli Koniec[i] = true dla wszystkich i to system jest w stanie bezpiecznym.

WYKRYWANIE I WYCHODZENIE Z BLOKADY WYKRYWANIE BLOKAD Algorytmy wykrywania blokad dla zasobów reprezentowanych wielokrotnie i jednokrotnie. Przykład algorytmu dla pierwszej klasy - patrz Silberschatz i inni, Podstawy systemów operacyjnych.wnt, W-wa, 1993. Zasoby reprezentowane pojedynczo idea algorytmu: Budowa grafu przydziałów Budowa grafu oczekiwa (przez usunicie wzłów zasobów) Krawd Pi -> Pj oznacza, e proces Pi czeka na zwolnienie zasobów przez proces Pj.

Wykrywanie blokady polega na wykrywaniu ptli w grafie oczekiwa. Niezbdne jest przechowywanie i aktualizowanie na bieco grafu oczekiwa oraz wykonywanie algorytmu szukajcego ptli w grafie. Problem: kiedy i jak czsto wykrywa blokady?

WYCHODZENIE Z BLOKADY Usunicie jednego (lub kilku) procesów w celu przerwania cyklicznego czekania usun wszystkie procesy w blokadzie znaczny koszt usuwa procesy pojedynczo, a do usunicia blokady Sposób działania: usun proces, wykona algorytm wykrywania blokady. Problem wyboru procesu do usunicia Wywłaszczenie procesów z zasobów Wybór wywłaszczanego procesu Wznawianie wycofywanego procesu Głodzenie procesu

ROZWIZYWANIE PROBLEMU BLOKAD W PRAKTYCE Zastosowanie rónych metod dla rónych klas zasobów. Zasoby wewntrzne systemu (np. bloki kontrolne procesów) Zapobieganie powstawaniu blokad przez uporzdkowanie zasobów (nie trzeba dokonywa wyborów midzy realizowanymi zamówieniami. Pami główna Wywłaszczanie. Zasoby zadania (przydzielane urzdzenia, pliki,..) Unikanie blokad. Obszar wymiany Zastosowanie wstpnego przydziału.

Pytania podstawowe z zakresu blokad - zakleszcze (deadlock) procesów przykłady 1. Co to jest blokada zakleszczenie (deadlock) procesów? 2. Jakie s warunki konieczne wystpienia blokady - zakleszczenia? 3. Co oznacza warunek czekania cyklicznego? 4. Na czym polega warunek przetrzymywania i oczekiwania? 5. Na czym polegaj metody zapobiegania blokadom-zakleszczeniom? 6. W jaki sposób mona wyeliminowa warunek przetrzymywania i oczekiwania? 7. W jaki sposób mona wyeliminowa warunek braku wywłaszcze? 8. W jaki sposób mona wyeliminowa warunek czekania cyklicznego? 9. Na czym polegaj metody unikania blokad? 10. Jakie informacje s niezbdne do opisania stanu systemu przydziału zasobów? 11. Co to jest stan bezpieczny? 12. Co to jest stan zagroenia? 13. Poda ide algorytmu bankiera. 14. Na czym polegaj metody wykrywania i wychodzenia z blokady? 15. W jaki sposób mona zidentyfikowa stan blokady? 16. W jaki sposób mona wyj z istniejcej blokady i jakie wi si z tym koszty?

WYSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZDZANIA WYDZIAŁ INFORMATYKI WIELODOSTPNE SYSTEMY OPERACYJNE II Zagadnienia zaawansowane CZ 3 WPROWADZENIE DO SYSTEMÓW ROZPROSZONYCH Semestr 4, Rok: 2011/2012 Lech Kru,

WPROWADZENIE DO SYSTEMÓW ROZPROSZONYCH Postp technologii: mikroprocesory szybkie sieci komputerowe łatwo budowy sieci - łczenia wielu jednostek centralnych w jeden system - budowa sieci - LAN, WAN Podstawowy problem: wymagane jest oprogramowanie odmienne ni w systemach scentralizowanych Co to jest system rozproszony? Układ niezalenych komputerów, który sprawia wraenie na jego uytkownikach, e jest jednym komputerem

Cele budowy systemów rozproszonych Zalety (w porównaniu z systemami scentralizowanymi). lepszy współczynnik cena/wydajno. uzyskanie wydajnoci nieosigalnych w systemach scentralizowanych. wymagane w przypadku wewntrznego rozproszenia zastosowa.. wiksza niezawodno. moliwo stopniowego rozszerzania systemu Zalety (w porównaniu z niezalenymi komputerami PC). umoliwienie uytkownikom dostpu do wspólnej bazy danych. dostp wielu uytkowników do wspólnych urzdze zewntrznych. komunikacja midzy uytkownikami. powikszenie elastycznoci

KLASYFIKACJA SYSTEMÓW ROZPROSZONYCH SISD - jeden strumie instrukcji i jeden strumie danych SIMD - jeden strumie instrukcji, wiele strumieni danych MIMD - grupa niezalenych komputerów z własnymi licznikami rozkazów, programami i danymi Systemy MIMD podział ze wzgldu na budow: wieloprocesory multikomputery podział ze wzgldu na architektur sieci powiza: szynowe (bus) przełczane (switched) systemy cile powizane.. systemy luno powizane

Wieloprocesory szynowe

Wieloprocesory przełczane Wybierak krzyowy Sie przełczajca omega Rysunki podano za prac: A. S. Tanenbaum; Rozproszone systemy operacyjne. PWN, Warszawa, 1997

Problem opó nienia w sieci Omega z poczwórnymi przełcznikami n procesorów, n modułów pamici liczba potrzebnych stopni przełczajcych: log2n, w kadym stopniu potrzeba n/2 przełczników Przykład n = 1024: potrzeba 10 stopni przełczajcych, zamówienie od procesora do pamici musi przej 10 stopni przełczajcych, a wracajce słowo - równie 10 stopni przełczajcych. Procesory RlSC o szybkoci 100 MIPS => czas wykonania instrukcji 10 ns. Jeli zamówienie ma przej 20 stopni w czasie wykonywania instrukcji, to czas działania przełcznika 0,5 ns = 500 ps.

Zadanie A 2048 procesorów RISC o szybkoci 50 MIPS połczono w sieci Omega z poczwórnymi przełcznikami. Jakie powinny by czasy przełczników, aby zamówienie do pamici wróciło do procesora w czasie wykonywania jednej instrukcji? Odpowied prosz uzasadni. Zadanie B W wieloprocesorze zawierajcym 4096 procesorów RISC połczonych w sieci Omega poczwórnymi przełcznikami zastosowano przełczniki o czasie działania 0,5 ns. Jak szybkie mog by procesory, aby zamówienie skierowane do pamici wróciło do procesora w czasie wykonywania jednej instrukcji? Wynik prosz poda w liczbie MIPS. Odpowied uzasadni.

Multikomputery szynowe Rys. 3. Multikomputer złoony ze stacji roboczych i sieci LAN

Multikomputery przełczane Rys. 4. (a) Krata. (b) Hiperkostka

OPROGRAMOWANIE Sieciowe systemy operacyjne Stacje robocze połczone sieci LAN Kada maszyna ma własny system operacyjny Podstawowe usługi: logowanie na innej maszynie kopiowanie plików midzy maszynami Serwer plików realizuje globalny system plików dzielonych Program uytkowy wykonywany tylko na lokalnej maszynie

Rys.5. Dwaj klienci i serwer w sieciowym systemie operacyjnym

Rys. 6. Moliwy róny obraz zasobów widzianych przez klientów w systemie sieciowym

Prawdziwe systemy rozproszone Wiele komputerów połczonych sieci Wraenie jednolitego systemu (single system image) (wirtualny monoprocesor - virtual uniprocessor) Wymagania: Jednolity, globalny system komunikacji midzy procesami Jednakowe zarzdzanie procesami Jednolity system plików Ten sam interfejs odwoła systemowych Znaczna kontrola sprawowana przez jdro nad własnymi zasobami

Systemy wieloprocesorowe z podziałem czasu Wiele jednostek centralnych z pamici podrczn Wspólna pami dzielona Wspólny dysk (dyski) Połczenie szyn. Jedna kolejka uruchomie procesów Rys. 7. Wieloprocesor z jedn kolejk uruchomie

Porównanie klas systemów operacyjnych z wieloma (N) jednostkami centralnymi

PODSTAWOWE WYMAGANIA (OCZEKIWANIA) WOBEC SYSTEMÓW ROZPROSZONYCH Przezroczysto Przezroczysto dostpu i połoenia: dostp do lokalnych i zdalnych obiektów informacji za pomoc identycznych działa, bez znajomoci ich lokalizacji. Przezroczysto wdrówki (migration transparency): zasoby mog by przemieszczane bez wpływu na działania uytkowników i programów uytkowych. Przezroczysto zwielokrotniania (replication transparency): moliwo uycia wielu kopii obiektów informacji bez wiedzy uytkowników i programów uytkowych o zwielokrotnieniach. Przezroczysto współbienoci (concurrency transparency): automatyczne, niezakłócone dzielenie zasobów midzy uytkowników działajcych współbienie. Przezroczysto działa równoległych (parallelism transparency): zadania wykonywane równolegle bez wiedzy (koniecznoci działa) uytkowników

Elastyczno Dwie struktury systemów: 1. Idea Jdra Monolitycznego. Kada maszyna wykonuje monolityczne jdro dostarczajce wikszoci usług. 2. Idea Mikrojdra zapewniajcego nieliczne usługi, a wikszo usług zapewniana przez specjalizowane serwery poziomu uytkownika. Niezawodno, Dostpno Integralno danych, Bezpieczestwo Tolerowanie awarii Wydajno Skalowalno Idea algorytmów zdecentralizowanych

Pytania podstawowe z zakresu wprowadzenia do systemów rozproszonych (przykłady) 1. Co to jest system rozproszony? 2. Jakie s rónice midzy wieloprocesorami a multikomputerami? 3. Czym róni si architektura powiza szynowych od przełczanych? 4. Co to jest szyna? Jak procesory korzystaj z szyny porozumiewajc si z pamici? 5. Wyjani pojcie spójnoci pamici w wieloprocesorach. 6. Jakie właciwoci musz posiada pamici podrczne w wieloprocesorach, aby zapewni spójno pamici? 7. Czy wieloprocesory szynowe mog by budowane z wikszej liczby procesorów ni przełczane, czy z mniejszej? Wyjani, dlaczego? 8. Wyjani ide przełcznika krzyowego stosowanego w wieloprocesorach. 9. Wyjani ide sieci "Omega" stosowan w wieloprocesorach. 10. Czym róni si prawdziwe systemy rozproszone od stosowanych obecnie powszechnie systemów sieciowych? 11. Jak działa system operacyjny w przypadku wieloprocesora? 12. Wyjani pojcie przezroczystoci w systemach rozproszonych? 13. Co oznacza przezroczysto połoenia (location transparency) w systemach rozproszonych? 14. Co oznacza przezroczysto zwielokrotnienia w systemach rozproszonych? 15. Co oznacza przezroczysto wdrówki - migracji (migration transparency) w systemach rozproszonych? 16. Jakie s dwie podstawowe koncepcje budowy operacyjnych systemów rozproszonych?