Jak można zapobiec blokadom eliminując warunek braku wywłaszczeń?
Poprzez zastosowanie odpowiedniego algorytmu wywłaszczeniowego, który np.;
będzie w stanie zwolnić określony zasób procesu będącego w stanie blokady.
Przykład:
Jeśli wywłaszczymy P2 z Z1,
wtedy wykona się P1, jeśli
wywłaszczymy P1 z Z2 wtedy
wykona się P3 itd…
Na czym polega synchronizacja procesów w problemie czytelników i pisarzy?
Polega na takim podzieleniu obiektu danych (pliku, rekordu) między kilka współbieżnych procesów,
aby niektóre procesy mogły tylko czytać(czytelnicy), a inne mogły uaktualniać (czytać i pisać-
pisarze) gwarantując przy tym wyłączność dostępu pisarzy do obiektu w trakcie jego modyfikacji.
Jedno z rozwiązań: żaden czytelnik nie powinien czekać, chyba że pisarz uzyskał dostęp do obiektu.
Co to jest stan bezpieczny systemu przydziału zasobów?
Stan bezpieczny - gdy istnieje ciąg bezpieczny procesów P1..., Pn w danym stanie przydziałów, tzn.
taki, że dla każdego procesu Pi jego potencjalne zapotrzebowanie na zasoby musi być zaspokojone
przez zasoby aktualnie dostępne oraz przez zasoby użytkowane przez procesy Pj, j<i
Stan zagrożenia - gdy żaden taki ciąg nie istnieje.
Co to jest sekcja krytyczna?
Sekcja krytyczna to segment kodu (w procesie), w którym proces może zmienić
wspólne zmienne, aktualizować tablice, pisać do plików itd.
Gdy jeden proces wykonuje sekcję krytyczną, żaden inny proces nie jest
dopuszczony do wykonywania swojej sekcji krytycznej.
Problem sekcji krytycznej polega na skonstruowaniu protokołu, który mógłby
posłużyć do organizowania współpracy procesów.
Co to jest semafor?
Zasób systemowy (zmienna całkowita), wykonuje dwie operacje:
Czekaj i sygnalizuj. Programista musi ten zasób zaprogramować i nadać wartość
początkową. Operacje czekaj i sygnalizuj wykonywane są w taki sposób, że
zmienianie wartości zmiennej jest niepodzielne. (w czasie zmieniania nie może
zostać przełączania do innego procesu).
W jaki sposób zapewnia się spójność pamięci w wieloprocesorach korzystających z pamięci podręcznych?
Dane zapisane pamięci podręcznej powinny być takie same jak dane zapisane w pamięci operacyjnej.
Np.; jeden procesor może zmodyfikować dane w pamięci operacyjnej. Ale w pamięci podręcznej
innego procesora dane te będą niezmienione. Aby to wykluczyć potrzebne są odpowiednie algorytmy
aktualizacji pamięci podręcznej.
Czym różni się wieloprocesor od multikomputera?
Wieloprocesor to układ w którym wiele procesów dzieli jedną pamięć operacyjną
Multikomputer to układ złożony z wielu jednostek, w którym każdy ma własną pamięć operacyjną,
połaczonych za pomocą np. Sieci LAN
Co to jest stan blokady (zakleszczenia) procesów?
Blokada: sytuacja, w której procesy wzajemnie przetrzymują zasoby, do których chciałyby uzyskać
dostęp. W sytuacji takiej procesy są w stanie oczekiwania, z którego nie mogą wyjść. Aby
występował stan blokady, muszą zachodzić warunki konieczne.
Czym różni się połączenie szynowe od połączenia przełączanego?
Połączenie szynowe to takie, gdzie procesory są na trwałe przyłączone do jednej szyny (połączenie
do maszyny na sztywno) i przez nią do pamięci, a połączenia przełączane to układy zbudowane na
podstawie przełączeń (ustawień)
Jakie są warunki konieczne wystąpienia blokady (zakleszczenia) procesów?
Wzajemne wyłączanie: - co najmniej jeden zasób jest niepodzielny, tylko jeden proces może
korzystać z tego zasobu. Przetrzymywanie i oczekiwanie: - musi istnieć proces mający przydzielony
pewien zasób i oczekujący na przydział dodatkowego zasobu, przetrzymywanego przez inny proces.
Brak wywłaszczeń: - tylko proces przetrzymujący pewien zasób, może ten zasób zwolnić.
Czekanie cykliczne: - musi istnieć pewien zbiór oczekujących procesów taki, że każdy proces czeka
na zasób przetrzymywany przez proces występujący za nim (P0 czeka na zasób przetrz. Przez P1
itd.).
Niepodzielność zasobów: - nie może być używany przez kilka procesów
Przetrzymywanie i oczekiwanie: - Musi istnieć zbiór oczekujących procesów (P0, P1, .... Pn-1),
takich że P0 czeka na zasób przetrzymywany prze P1, P1 czeka na zasób przetrzymywany prze P2 ,
itd. .., aż Pn-1 czeka na zasób przetrzymywany przez P0.
Co to jest dostępność systemów?
Systemy rozproszone zapewniają wysoki stopień dostępności w sytuacjach awarii systemu.
Dostępność systemu mierzy się ułamkiem czasu, w którym jest on zdatny do użytku. Jedna awaria w
systemie wielostanowiskowym prawie zawsze powoduje niedostępność systemu dla wszystkich
użytkowników. Awaria jakiejś składowej w systemie rozproszonym dotyczy tylko działań, w których
używano uszkodzonej składowej. W przypadku awarii jednej stacji roboczej użytkownik może
przenieść się na inną.
Jakie są warunki prawidłowego rozwiązania problemu sekcji krytycznej?
- warunek wzajemnego wyłączania:- jeśli jeden proces działa w sekcji krytycznej,
to żaden inny nie może działać w tej sekcji.
- warunek postępu:- jeśli żaden proces nie działa w sekcji krytycznej, i istnieją
pewne procesy, które chcą wejść do sekcji krytycznej, to tylko procesy
niewykonywujące swoich reszt mogą kandydować jako następne do wejścia do
sekcji krytycznej. Wyboru tego nie można odwlekać w nieskończoność.
- warunek ograniczonego czekania:- Po zgłoszeniu gotowości wejścia danego
procesu do sekcji krytycznej, liczba wejść innych procesów do ich sekcji
krytycznych musi być ograniczona.
Co oznacza pojęcie przezroczystości w systemach rozproszonych?
Przezroczystość to ukrywanie przed użytkownikiem i programistą aplikacji
oddzielności składowych w systemie rozproszonym, tak że system jest postrzegany
jako całość.
Formy przezroczystości:
- przezroczystość położenia - użytkownicy nie mogą (muszą) określić lokalizacji
zasobów,
- przezroczystość wędrówki - zasoby mogą być przemieszczane bez zmiany nazw,
- przezroczystość zwielokrotnienia - użytkownicy nie mogą określić liczby
istniejących kopii,
- przezroczystość współbieżności - automatyczne dzielenie zasobów między
użytkowników (współbieżnie, a nie sekwencyjnie),
- przezroczystość działań równoległych - zadania wykonywane równolegle bez
wiedzy użytkowników.
Czym różnią się metody zapobiegania od metod unikania blokady (zakleszczenia) procesów?
Zapobieganie występowaniu blokad - wyeliminowanie co najmniej jednego z warunków
koniecznych.
Wzajemne wyłączanie - warunek ten można wyeliminować tylko w przypadku zasobów
podzielnych.
Przetrzymywanie i oczekiwanie - idea: zastosować protokół zapewniający, że proces zamawiający
określony zasób nie powinien przetrzymywać innych.
Brak wywłaszczeń - idea: zastosować odpowiedni protokół wywłaszczeniowy.
Czekanie cykliczne - idea: wyeliminować czekanie cykliczne przez uporządkowanie zasobów i
zastosowanie odpowiedniego protokołu przydzielania zasobów procesom.
Unikanie BLOKAD - idea: przy każdym zamawianiu zasób przez proces, system operacyjny
decyduje czy ten proces ma czekać, czy nie. Wymagana jest wcześniejsza informacja jak procesy
będą zamawiać i zwalniać zasoby. Różne algorytmy wymagają różnych ilości i typów informacji.
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 dopuścić do
spełnienia warunku czekania cyklicznego.
Unikanie blokad - rozwiązanie dla zasobów reprezentowanych wielokrotnie algorytm „bankiera” -
Proces wchodzący do systemu musi zadeklarować maksymalną liczbę egzemplarzy każdego zasobu.
Kiedy proces w trakcie wykonania zamawia potrzebne zasoby - system operacyjny decyduje czy te
zasoby udostępnić, czy proces musi poczekać - tak aby system pozostał w stanie bezpiecznym.
Można też wejść w blokadę i ją usunąć: - usunąć jeden z procesów w celu przerwania cyklicznego
czekania.
- usunąć wszystkie procesy w blokadzie (znaczny Koszt)
Co to jest kolejka?
Jest to lista procesów czekających w pamięci operacyjnej, gotowych do wykonania.