------------------------------------------------------------------------------------------------------------

29. Co to jest blokada i kiedy może powstać?
Blokada - sytuacja, w której każdy z procesów współzawodniczących o zasoby, aby móc dalej działać musi skorzystać z tych zasobów, których używa inny proces - żaden z procesów nie może kontynuować swojej pracy.
Blokada powstaje wówczas, gdy zasoby są przydzielane na podstawie ich dostępności, w najprostszy sposób w okolicznościach: proces A używa niepodzielnych zasobów X i zamawia zasoby Y; proces B używa niepodzielnych zasobów Y i zamawia zasoby X, przy czym żaden z procesów oczekujących nie zwalnia zajmowanych zasobów dopóki nie otrzyma nowych

30. Warunki konieczne i wystarczające powstania blokady.
Ogólne warunki konieczne i dostateczne powstania blokady są następujące:
1. Zasoby są niepodzielne.
2. Procesy przetrzymują przydzielone im zasoby podczas oczekiwania na nowe zasoby.
3. Zasobów dopóty nie można zawłaszczać, dopóki są użytkowane.
4. Istnieje łańcuch cykliczny procesów, taki że każdy proces użytkuje zasoby, które bieżąco zamawia następny proces w łańcuchu.

31. W jaki sposób można rozwiązać problem blokad.
Problem blokad można rozwiązać stosując jedną z następujących strategii:
zapobieganie blokadom w ten sposób, że przez cały czas co najmniej jeden z czterech w/w warunków nie może być spełniony
wykrywanie powstałych blokad i ich usuwanie
unikanie blokad dzięki wykonywaniu odpowiednich uprzedzających czynności
1. Zapobieganie blokadom. Aby zapobiec blokadzie trzeba wykluczyć spełnienie co najmniej jednego z czterech w/w warunków koniecznych.
Wykluczenie warunku 1 jest trudne ponieważ pewne zasoby jak drukarka, czy pisanie do pliku są z pewnych względów niepodzielne.
Można wykluczyć warunek 2, przy zastrzeżeniu, że procesy od razu zamawiają wszystkie potrzebne zasoby i dopóty ni mogą rozpocząć pracy, dopóki nie będą spełnione wszystkie ich żądania Wada: zasoby krótko używane są blokowane przez cały czas procesu.
Łatwo wykluczyć warunek 3 przyjmując zasadę, że jeśli proces nie otrzyma zamówionych zasobów, to musi zrezygnować również z tych wszystkich zasobów, z których korzystał do tej pory i następnie musi je zamawiać razem z dodatkowymi procesami (?). Wada: koszt odtwarzania stanu zasobu zawłaszczanego może być (za) wysoki. Można wykluczyć warunek 4 narzucając pewien porządek na typy zasobów w ten sposób, że proces któremu przydzielono zasoby typu k, może zamawiać tylko zasoby typu określonego jako następny po k. To zapewnia, że nigdy nie będzie spełniony warunek cyklicznego czekania. Wada: ograniczenie nałożone na naturalny porządek zamówień zasobów.
2. Wykrywanie i usuwanie blokady. Algorytmy wykrywania blokady pracują na zasadzie wyszukiwania cyklicznych okresów czekania wyrażonego w sformułowaniu warunku 4. Stan systemu w dowolnej chwili można reprezentować za pomocą grafu stanu, w którym węzły odpowiadają zasobom: jeżeli w grafie istnieje łuk prowadzący od węzła A do węzła B, to znaczy, że istnieje proces, który ma zasoby A i zamawia zasoby B. Algorytm wykrywania utrzymuje reprezentację grafu stanu w pewnej postaci i co jakiś czas sprawdza, czy w grafie nie powstała zamknięta pętla. Sprawdzanie może być wykonywane co jakiś czas - przy okazji przydziału zasobu lub w ustalonych odstępach czasu. Wykrywanie blokady ma sens, gdy można w jakiś sposób z niej wyjść:
-można usunąć wszystkie procesy uczestniczące w blokadzie;
-można wznowić wykonywanie zablokowanych procesów od pewnego punktu kontrolnego, jeżeli taki istnieje. Metoda może doprowadzić do tej samej blokady - rzadko, bo system jest niedeterministyczny;
-można usuwać kolejne procesy z blokady dopóki blokada istnieje, zaczynając od "najtańszych" (najmniej zaawansowanych). Po usunięciu trzeba uruchomić algorytm wykrywania blokad;
-można zawłaszczać zasoby procesów dopóki istnieje blokada zaczynając od najtańszych. Po usunięciu trzeba uruchomić algorytm wykrywania blokad. Proces, któremu zawłaszczono zasoby musi zamówić je ponownie
3. Unikanie blokady. Przez unikanie blokady rozumie się zastosowanie algorytmu przewidującego prawdopodobieństwo wystąpienia blokady i nie dopuszczającego do spełnienia zamówienia, które w przeciwnym przypadku byłoby załatwione. Przed przyznaniem zamówionych zasobów należy na próbę zmienić graf stanu na taki byłby w przypadku przydzielenia zasobów, a następnie zastosować algorytm wykrywania blokad. Jeżeli algorytm nie wykryje blokady, można przyznać zasoby, w przeciwnym przypadku zamówienie trzeba odrzucić i odtworzyć stan grafu. Wada: technika oparta na przesłance, że jeśli przydział ma doprowadzić do blokady to nastąpi ona natychmiast (a co w chwili później?)
3.1. Algorytm bankiera (to też unikanie). Algorytm wykorzystuje wiedzę uprzednią. Wiedza uprzednia, której dostarczenia wymaga algorytm, to maksymalna wielkość każdego zasobu zamawianego podczas trwania procesu - roszczenie. Algorytm pozwala przydzielić zasoby tylko wtedy, gdy:
-zamówienie plus bieżąco używane zasoby są razem mniejsze niż roszczenie; oraz
-po spełnieniu zamówienia istnieje ciąg, w którym procesy mogą być wykonane do końca, nawet wówczas, gdy zamówienia wszystkich procesów są równe pełnym ich roszczeniom
Tak więc przed dokonaniem przydziału algorytm sprawdza czy pozostało dość zasobów na to, aby utworzyć taki ciąg. W tym algorytmie bierze się pod uwagę zawsze najgorszy z możliwych przypadków (wszystkie procesy zgłoszą pełne roszczenia). Może on zatem odmówić spełnienia zamówienia, ponieważ mogłaby powstać blokada, podczas gdy w rzeczywistości wcale nie musiałoby do niej dojść w wyniku przyznania zamawianych zasobów. Wada: wysokie koszty stosowania algorytmu, tendencja nadmiernej ostrożności.
Podsumowanie: Jeżeli stosuje się strategię zapobiegania, to wszystkie części systemu, które przydzielają zasoby, działają przy założeniu co najmniej jednego z opisanych ograniczeń. Ograniczenia mogą być wbudowane do mechanizmów przydziału zasobów na odpowiednich poziomach systemu. Jeżeli stosuje się strategię wykrywania blokady, to nie trzeba wprowadzać żadnych zmian do mechanizmów przydziału zasobów. Algorytm wykrywania musi mieć dostęp do wszystkich struktur danych używanych podczas dokonywania przydziału zasobów.
W przypadku strategii unikania blokady wszystkie zamówienia na zasoby muszą być pod kontrolą algorytmu unikania blokady. Naturalnym miejscem zaimplementowania takiego algorytmu jest program planujący.

32. Co określamy mianem planowania?
Planowanie (scheduling) - ogólnie ustalenie, kiedy można nowe procesy wprowadzać do systemu i w jakiej kolejności powinny one działać.
Planowanie jest ściśle związane z przydziałem zasobów.

33. Co należy do zadań planisty?
Planista - proces łączący w sobie dwa zadania: planowania i decydowania o przydziale zasobów.
Zadania planisty:
Wprowadzanie nowych procesów. W systemach wsadowych prace czekające na wykonanie gromadzone są w puli prac znajdującej się w pamięci pomocniczej. Planista rozpoczyna wykonywanie jakiejś pracy od zainicjowania odpowiedniego procesu (np. kompilacja). Wybór następnej pracy do wykonania zależy od tego, jakich zasobów potrzebuje każda z prac (zgodnie z opisem prac) oraz od bieżącego rozkładu zasobów w systemie. W celu osiągnięcia dużej przepustowości systemu, planista powinien inicjować nowy proces wkrótce po tym, jak okaże się, że pojemność zasobów jest dostateczna.
Wyznaczanie priorytetów procesów. Kolejność wykonywania procesów jest wyznaczona albo przez uporządkowanie kolejki procesora, albo przez kolejność wybierania procesów z tej kolejki przez dyspozytora. W celu zminimalizowania kosztów koordynowania, dyspozytor powinien wybierać z kolejki pierwszy proces nadający się do wykonania - oznacza to, że uporządkowanie kolejki jest czynnikiem decydującym. Planista przyporządkowuje priorytety procesom w taki sposób, aby, kiedy staną się one wykonywalne, były dowiązane do właściwego miejsca w kolejce.
Implementacja polityki przydziału zasobów. Chodzi o politykę związaną z unikaniem blokady i zapewnianiem zrównoważenia systemu (zarządzanie zasobami tak, aby żaden rodzaj zasobów nie był ani nadmiernie, ani też niedostatecznie użytkowany. Ponieważ zachowanie się systemu w znacznym stopniu zależy od planisty, ważne jest, aby planista miał wyższy priorytet niż inne procesy. Gdy będzie miał najwyższy wówczas dyspozytor zawsze będzie wybierać planistę, kosztem innych procesów (o ile będzie on wykonywalny). Dzięki temu system będzie sprawnie reagował na zmiany okoliczności i zamówień. Planista uaktywnia się gdy:
-nadeszło nowe zamówienie
-zwolniono użytkowane zasoby
-proces zakończył działanie
-nowa praca przybyła do puli prac (zgłosili się nowi użytkownicy)

34. Algorytmy planowania.
Głównym celem algorytmu planowania jest takie zorganizowanie pracy systemu, aby zwiększyć pewną miarę zadowolenia użytkownika. W zależności od systemu miara ta może być różnie określana: W środowisku wsadowym - ogólna przepustowość informacyjna; w systemie wielodostępnym - przeciętny czas reagowania oferowany użytkownikom lub czas różnego rodzaju zadań konwersacyjnych.
Poszczególne algorytmy planowania charakteryzują się uporządkowaniem procesów w kolejce oraz warunkami określającymi, który z procesów należy umieścić z powrotem w kolejce.
1. Najpierw najkrótsza praca. Kolejka jest uporządkowana według czasu potrzebnego na wykonanie każdego procesu. Algorytm dobry tylko dla systemów wsadowych, gdzie na podstawie opisu prac można oszacować czas wykonywania procesów. Celem algorytmu jest zminimalizowanie długości cyklu przetwarzania krótkich prac - nadaje się do środowiska, w którym takowe przeważają. Algorytm pozwala na wykonywanie wszystkich procesów do końca. Można go zmodyfikować: nowy proces może zawłaszczyć procesor, jeżeli ma czas wykonywania mniejszy niż czas wymagany do ukończenia procesu bieżącego - najpierw najkrótsza praca z zawłaszczaniem. Druga modyfikacja, która zapewnia, że procesy długie nie będą w kolejce w nieskończoność, polega na tym, że w miarę czekania zwiększa się procesowi priorytet.
2. Algorytm rotacyjny. Algorytm przeznaczony do sytuacji, w których należy szybko reagować na krótkie zamówienia, a nie wiadomo z góry jakie są czasy wykonywania procesów. Każdy proces w systemie ma ustalony jednakowy przedział czasu na wykonanie zamawianej przez niego usługi. Po tym czasie proces wędruje na koniec kolejki. Kolejka jest zorganizowana cyklicznie i uporządkowana zgodnie z upływem czasu ostatniej usługi. Wada: przy krótkim czasie wydajność maleje, rosną koszty przełączania procesów. Rozwiązanie: wydłużyć czas.
3. Kolejka dwupoziomowa. Odmiana algorytmu rotacyjnego, która próbuje pokonać nagły spadek załadowania systemu. Procesy, które nie zakończyły się w ustalonej liczbie przedziałów czasu, są przenoszone do kolejki drugoplanowej, która jest obsługiwana tylko wtedy, gdy nie ma innych procesów w systemie. Ta drugoplanowa kolejka może być kolejką rotacyjną z większym przedziałem czasu albo może być zarządzana zgodnie z FIFO. Taki system dwupoziomowy stosuje się często w środowiskach mieszanych (wsadowych i wielodostępnych), w których dłuższe procesy wsadowe przesuwa się do pracy drugoplanowej i obsługuje tylko wówczas gdy nie ma żadnego innego procesu zainicjowanego na terminalu. Algorytm można uogólnić na systemy wielopoziomowe.
Kryteria podejmowania decyzji i wyznaczania priorytetów:
1. Procesom, które otrzymały wiele zasobów, można nadać wysoki priorytet, aby przyspieszyć ich zakończenie i odzyskać ich zasoby dla innych procesów. Wada: niebezpieczeństwo, że duże prace mogą zmonopolizować wykorzystanie maszyny albo użytkownicy mogą generować fikcyjne duże zamówienia zasobów, aby osiągnąć korzystniejsze traktowanie swoich procesów. Tego drugiego można uniknąć w systemach wsadowych: prace o małych zamówieniach na zasoby są wybierane najpierw.
2. Procesom, które otrzymały wiele zasobów w miarę możności przyznaje się też zasoby na następne zamówienia. Uzasadnienie: j/w. Wada: j/w.
3. Przydział pamięci w maszynach z pamięcią stronicowaną może być dokonywany zgodnie z zasadami zbioru roboczego.
4. Procesom systemu operacyjnego powinno się przyznawać takie priorytety, aby odzwierciedlały pilność zadań wykonywanych przez te procesy. Skala priorytetów powinna rozciągać się od najwyższego dla planisty do najniższych - nadmiarowe składowanie plików. Większość procesów systemowym ma priorytety większe niż procesy użytkowników.
5. Procesy obsługi urządzeń zewnętrznych powinny mieć wysoki priorytet - im szybsze urządzenie tym wyższy priorytet. Zapewnia maksymalne wykorzystanie urządzeń - zmniejsza powstanie wąskiego gardła I/O. Spoolery również wysoki priorytet.
6. Jeżeli w systemie nie korzysta się z metod zapobiegania blokadom, to do wszystkich zamówień powinno się stosować algorytm unikania blokad.
Dodatkowy koszt decyzji planowania powinien być proporcjonalny do zysków.

35. Kontrola zasobów i ograniczenia.
Nietrudno jest uzyskać kontrolę zasobów w sensie elementarnym- całkowite wykluczanie nieupoważnionych użytkowników, stosując potrzebę okazania jakiegoś dowodu tożsamości (np. numer konta i hasło użytkownika) podczas pracy z systemem. Należy to powiązać z szyfrowaniem przechowywanych haseł użytkowników w sposób, którego wykonanie zabiera wiele czasu- tak, by sposób przełamania ochrony okazał się niepraktyczny. Nie można również wykluczyć ujawnienia hasła użytkownika przez nieuwagę czy nieodpowiedzialność. Można uzyskać elementarną ochronę zasobów przydzielając użytkownikowi odgraniczony obszar pamięci, dostępny tylko dla jego procesów, równocześnie uniemożliwiając działanie w obszarze dla niego niedozwolonym (czyli proces albo nie ma żadnych przywilejów albo ma wszystkie- tryb nadzorcy lub użytkownika). Jakiekolwiek jednak korzystanie ze wspólnych zasobów wiąże się z nakładaniem przestrzeni pamięci różnych procesów a co za tym idzie, pozbawieniem ich wzajemnej ochrony. Można to poprawić stosując segmentację pamięci oraz wprowadzając zmienne przywileje- tylko takie, które w danym momencie proces potrzebuje (ograniczając pozostawianie praw na segmenty procesu w trakcie jego działania).

36. Cele ochrony procesów.
1. Ochrona przed wadami. Nie jest pożądane aby procesy pracujące w jednej maszynie miały jakikolwiek wpływ na przebieg pozostałych procesów. Muszą zatem istnieć mechanizmy ochrony procesów przed innymi procesami (a zwłaszcza ich wadami). Ochrona nie dotyczy tylko procesów użytkowników, ale również procesów systemu operacyjnego. Ochrona jest pożądana nawet w przypadku systemu jedno użytkownikowego. W tym przypadku można skorzystać z ochrony podczas uruchamiania i testowania programów, aby nie dopuścić do propagacji błędów.
Ochrona zmniejsza skutki złego działania programów lub pomyłek operatora.
2. Ochrona przed złymi zamiarami. Skoro komputery są coraz częściej używane do gromadzenia i przetwarzania baz danych, których wiele zawiera poufne informacje, możliwość zagwarantowania ochrony danych nabiera coraz większego znaczenia. I to zarówno z powodów handlowych, jak w przypadku instalacji obsługującej użytkowników o rozbieżnych interesach, lub ze względu na zachowanie prywatności czy prawomocności danych. Zabezpieczenia przed dostępem do informacji obejmują również programy. Czasem może zachodzić potrzeba, by procesy korzystały ze wspólnych zasobów, miały dostęp do wspólnych danych lub wykonywały te same programy. Aby ochrona opłacała się, musi pozwalać na uzasadnione dzielenie zasobów i równocześnie powstrzymywać przed nieupoważnionymi działaniami.

37. Ogólny schemat ochrony - macierz dostępów.
W macierzy dostępów zaznaczone są wszystkie możliwości różnych podmiotów dla wszystkich obiektów systemu, które wymagają ochrony. Podmiot jest parą (proces, dziedzina), tak więc każdy wiersz macierzy reprezentuje wykaz możliwości konkretnego procesu wykonywanego w konkretnej dziedzinie. Kiedy proces zmienia dziedzinę, staje się innym podmiotem, a jego wykaz możliwości jest reprezentowany przez inny wiersz macierzy dostępów. Podmioty są traktowane jako obiekty, by zapewnić im ochronę przed innymi podmiotami. Każdemu obiektowi przyporządkowany jest sterownik (sprzętowy lub programowy), do którego trzeba się odwoływać przy każdym dostępie do obiektu i który zapewnia, by podmiot otrzymał odpowiednie możliwości dla żądanego typu dostępu.

<<< poprzednie

------------------------------------------------------------------------------------------------------------ Konin : Wiadomości : Gadżety reklamowe : regały paletowe : Transport samochodowy : phone cards : Praca dla nauczyciela : Obróbka plastyczna : kredyty hipoteczne : Merchandising : nowy dom poznań : Wizzair : prace licencjackie : Masaż Poznań : przeprowadzki miedzynarodowe : Katalog stron : Auto giełda : Tapety : pilniki do paznokci : konstytucja : white-house.pl : serwis samochodów francuskich : fakturowanie: tworzenie stron : projektowanie stron internetowych : projektowanie stron www : projektowanie stron : tworzenie stron www : tworzenie stron internetowych : stromag : siłowniki hydrauliczne : amatorki : zdjęcia erotyczne : zdjecia erotyczne : strony erotyczne : galeria erotyczna : program partnerski : informator ślubny : stoły do masażu , łóżka do masażu srebrna biźuteria : alveo : wyslij kartke bash1 : DMOZ : szlabany : hochland : praca Tomaszów Mazowiecki : tolerancja : unia : Parking przy lotnisku Katowice w Pyrzowicach : Notatki, materiały, opinie WSZiF : sex : erotyka : porno : filmy porno : Projekty domów : sklep internetowy : Last minute : Turcja last minute : Tunezja last minute : Egipt last minute : Grecja last minute : Nowe mieszkania we Wrocławiu : Apartamenty we Wrocławiu : Reklama w internecie : Tworzenie stron : Ciastka : Czekoladki

          Stronę monitoruje stat24 All rights reserverd. Copyright © by studencik.net