Systemy operacyjne - wykład 5

Nasza ocena:

3
Wyświetleń: 462
Komentarze: 0
Notatek.pl

Pobierz ten dokument za darmo

Podgląd dokumentu
Systemy operacyjne - wykład 5 - strona 1 Systemy operacyjne - wykład 5 - strona 2 Systemy operacyjne - wykład 5 - strona 3

Fragment notatki:


Systemy operacyjne / Współbie Ŝ no ść : wzajemne wykluczanie i synchronizacja         1     Współbie Ŝ no ść : wzajemne wykluczanie i synchronizacja    IPC - komunikacja między procesami (InterProcess Communication)    Warunki wy ś cigu  (ang. race condition)    W  SO  wykonujące  się  procesy  często  dzielą  obszary  wspólnej  pamięci,  pliki lub inne zasoby. Rozpocznijmy nasze rozwaŜania od przykładu.    Def.   Warunkami  wy ś cigu   nazywamy  sytuację,  w  której  dwa  lub  więcej  procesów wykonuje operację na zasobach dzielonych, a ostateczny wynik  tej  operacji jest zaleŜny od momentu jej realizacji.     Systemy operacyjne / Współbie Ŝ no ść : wzajemne wykluczanie i synchronizacja         2       Przykład    void echo()  {     chin = getchar();    chout = chin;    putchar(chout);   }     Process P1    Process P2  .           .   chin = getchar();   .  .           chin = getchar();  chout = chin;   chout = chin;  putchar(chout);   .  .           putchar(chout);  .           .   Systemy operacyjne / Współbie Ŝ no ść : wzajemne wykluczanie i synchronizacja         3     Sekcje krytyczne    Aby  zapobiec  warunkom  wyścigu  naleŜy  stworzyć  mechanizm  zabraniający  więcej  niŜ  jednemu  procesowi  dostępu  do  zasobów  dzielonych  w  tym  samym  czasie.  Innymi  słowy,  naleŜy  wprowadzić  mechanizm wzajemnego wykluczania ( WW , ang. mutual exclusion).    Def.  Sekcj ą   krytyczn ą    nazywamy  fragment  programu,  w  którym  występują  instrukcje  dostępu  do  zasobów  dzielonych.  Instrukcje  tworzące  sekcje  krytyczne muszą być poprzedzone i zakończone operacjami realizującymi  wzajemne wykluczanie.    •  wybór właściwych operacji realizujących WW stanowi istotę kaŜdego  systemu operacyjnego,    Dla  prawidłowej  implementacji  sekcji  krytycznych  ( SK )  muszą  być  spełnione następujące 3 warunki, przy czym nie czynimy Ŝadnych załoŜeń  dotyczących szybkości działania procesów, czy  teŜ liczby CPU:  Systemy operacyjne / Współbie Ŝ no ść : wzajemne wykluczanie i synchronizacja         4     Mechanizm  realizacji  sekcji  krytycznej  powinien  spełaniać  poniŜsze  załoŜenia:    1. wewnątrz SK moŜe przebywać tylko jeden proces,  2. jakikolwiek  proces  znajdujący  się  poza  SK,  nie  moŜe  zablokować  innego procesu pragnącego wejść do SK,  3. kaŜdy proces oczekujący na wejście do SK powinień otrzymać prawo 

(…)

… inny proces będzie interweniował.
• wada: jeśli proces na wyjściu z SK nie odblokuje przerwań, to nastąpi
upadek systemu; ponadto, w przypadku systemów wieloprocerowych
technika nieskuteczna,
• technika blokowania przerwań moŜe być stosowana w jądrze SO przy
uaktualnianiu niektórych systemowych struktur danych, lecz nie moŜe
być wykorzystywana do realizacji wzajemnego wykluczania w
przestrzeni uŜytkownika…
… (TRUE){
produce_item();
down(empty);
down(mutex);
enter_item();
up(mutex);
up(full);
}
}
Operacje te muszą być niepodzielne.
Monitory
W celu łatwiejszego pisania programów realizujących wzajemne
wykluczanie (WW) Hoare (1974) i Hansen (1975) zaproponowali
mechanizm synchronizacji wysokiego poziomu zwany monitorem.
Def.
Monitor stanowi zbiór procedur, zmiennych i struktur danych, które są
zgrupowane…
… w specjalnym module. W kaŜdej chwili tylko jeden proces
aktywny moŜe przebywać w danym monitorze.
Monitory są konstrukcją języka wysokiego poziomu. UŜytkownik pisząc
program w takim języku umieszcza wszystkie sekcje krytyczne w
monitorze. Za właściwą implementację wzajemnego wykluczania jest
odpowiedzialny kompilator.
W przedstawionej koncepcji brak jest mechanizmu, który powodowałby
zawieszenie procesu…
... zobacz całą notatkę



Komentarze użytkowników (0)

Zaloguj się, aby dodać komentarz