SO4 synchronizacja powtórzenie

background image

1

Koordynowanie

procesów

Wykład 4

SO

powtórzenie

background image

2

Koordynowanie

procesów

Aby procesy mogły być wykonywane

w sposób uporządkowany, w
systemie muszą znajdować się
mechanizmy do synchronizowania
i komunikowania się procesów.

Zatem koordynacja procesów polega

na (A)synchronizacji +
(B)komunikacji.

background image

3

Problem sekcji

krytycznej

Prawidłowość przebiegu procesów wymaga

odpowiedniej formy synchronizacji.

Załóżmy, że każdy z grupy

synchronizowanych procesów ma segment

kodu, zwany sekcją krytyczną (zmiana

wspólnych zmiennych, itp..). Gdy jeden z

procesów wykonuje swoją sekcję krytyczną,

wówczas żaden inny proces nie może

wykonywać swojej sekcji krytycznej.

Wykonanie sekcji krytycznych podlega

wzajemnemu wyłączaniu w czasie.

Synchronizacja

background image

4

Ogólna struktura typowego

procesu

repeat

sekcja wejściowa;
sekcja krytyczna;
sekcja wyjściowa;
reszta

until false;

background image

5

Aby prawidłowo skoordynować

procesy (czyli rozwiązać problem

sekcji krytycznej) muszą być

spełnione 3 warunki:

1. wzajemne wyłączanie

(W danym momencie tylko

jeden proces może działać w sekcji krytycznej.)

2. postęp

(Do wejścia do sekcji krytycznej mogą

kandydować procesy nie wykonujące swoich reszt;

wybór nie może być odwlekany w nieskończoność.)

3. ograniczone czekanie

(Istnieje graniczna wartość

liczby wejść innych procesów do ich sekcji krytycznych

po tym, gdy dany proces zgłosił chęć wejścia do sekcji

krytycznej i zanim uzyskał na to pozwolenie.)

Zakłada się, że każdy proces jest wykonywany z

prędkością niezerową. Natomiast nie czyni się

żadnych założeń o względnej prędkości każdego z

procesów.

background image

6

Praktyczne rozwiązania

problemu sekcji krytycznej

• sprzętowe środki synchronizacji, np.

rozkazy sprzętowe wykonywane jako

niepodzielne jednostki pozwalające

sprawdzać i zmieniać zawartość

słowa,

• semafory,
• regiony krytyczne,
• monitory.

background image

7

Semafory

Semafor jest zmienną całkowitą, dostępną tylko za

pomocą dwu standardowych, niepodzielnych

operacji:

czekaj,

sygnalizuj.
Gdy jeden proces modyfikuje wartość semafora,

wówczas żaden inny proces nie może jednocześnie

tej wartości zmieniać. Dla czekaj(S) nie może

wystąpić przerwanie podczas sprawdzania wartości

zmiennej całkowitej S (S<=0) i ewentualnego

dokonywania jej zmiany.

Operacje na semaforze:
Czekaj (S) : while s<=0 do nic;
s:=s-1;
Sygnalizuj(S): s:=s+1;

background image

8

Wadą konieczność

aktywnego czekania

przez

procesy. Podczas, gdy jeden proces jest w
sekcji krytycznej, pozostałe procesy usiłujące
wejść do sekcji krytycznych muszą
nieustannie wykonywać instrukcje sekcji
wejściowych.

Aktywne czekanie marnuje cykle procesora,

które mogłyby być produktywnie
zużytkowane przez inne procesy. Semafor
tego rodzaju bywa też nazywany

wirującą

blokadą

(oczekujący proces wiruje w

miejscu).

background image

9

Komunikacja

międzyprocesowa

Komunikacja międzyprocesowa stanowi

mechanizm umożliwiający procesom
wzajemne informowanie się i
synchronizowanie działań. Komunikację
międzyprocesową realizuje się za pomocą

systemu komunikatów

lub

pamięci

dzielonej

. Oba te schematy mogą być

używane jednocześnie w obrębie jednego
S.O.

Komunikacja

background image

10

Systemy z pamięcią

dzieloną

W systemach z pamięcią dzieloną

procesy współużytkują pewne
zmienne, za pomocą których odbywa
się wymiana informacji.

Odpowiedzialność za organizowanie
komunikacji spoczywa na
programistach zastosowań. S.O.
dostarcza tylko środków do dzielenia
pamięci.

background image

11

Metoda systemu

komunikatów

Metoda systemu komunikatów pozwala procesom na

wymianę komunikatów.

Odpowiedzialność za

organizowanie komunikacji spada na sam system

operacyjny.

Jeśli procesy P i Q chcą się

komunikować ze sobą, to muszą nadawać i odbierać

komunikaty – musi istnieć między nimi łącze

komunikacyjne.

W przypadku procesów o rozłącznych przestrzeniach

adresów logicznych, w skład narzędzi komunikacji

międzyprocesowej wchodzą dwie podstawowe

operacje:

nadaj

odbierz

background image

12

Komunikacja może być bezpośrednia lub

pośrednia.

W

komunikacji bezpośredniej

każdy proces,

który chce nadać lub odebrać komunikat

musi jawnie nazwać odbiorcę lub nadawcę

uczestniczącego w tej wymianie informacji.

W tym przypadku operacje nadaj i odbierz

są zdefiniowane następująco:

nadaj(P,komunikat) czyli nadaj komunikat

do procesu P.

odbierz(Q,komunikat) czyli odbierz

komunikat od procesu Q.

background image

13

W

komunikacji pośredniej

komunikaty

są nadawane i odbierane poprzez
skrzynki pocztowe. Skrzynka pocztowa
jest obiektem, w którym procesy mogą
umieszczać komunikaty i z którego
komunikaty mogą być pobierane.

Proces może komunikować się z innymi

procesami za pomocą różnych
skrzynek pocztowych.


Document Outline


Wyszukiwarka

Podobne podstrony:
SO4 synchronizacja
SO4 synchronizacja
APD 9 ukł synchroniczne
Wykład 3 powtórzenie 2010 studenci (1)
PA2 8 przerzutniki synchron
Matematyka 2 Lekcje powtórzeniowe w gimnazjum
POWTÓRKA SREDNIOWIECZE
Powtórka komunikacja
Kalendarz powtórek matura 2013
Powtórka strony WWW
Powtórzenie
powtórenie (2)
Powtórzenie wiadomości, STUDIA, Dydaktyka
powtórzenie wiadomości, Pomoce do zajęć, Technika, rysunek techniczny, pismo techniczne
Środki stylistyczne i rodzaje rymów - powtórzenie wiadomości., Sql, Projekty, prace domowe, dodatkow
Procedury check in i check out oraz kompleksowa obsługa, powtórki do egzaminów
Leki stosowane w nadciśnieniu tętniczym-powtórzenie (1), Szkoła

więcej podobnych podstron