POTRZEBY A B C D E P P P P P

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

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

Problem zakleszczenia

Przykładowe zadanie z unikania blokad.

Sortowanie topologiczne skierowanych grafów acyklicznych

UNIKANIE IMPASÓW W SYSTEMACH PROCESÓW WSPÓŁBIEŻNYCH

Informatyka I. Wykład 3. Sterowanie wykonaniem programu. Instrukcje warunkowe Instrukcje pętli. Dr inż. Andrzej Czerepicki

Łyżwy - omówienie zadania

Przeciwdziałanie zakleszczeniu. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

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

Algorytm Dijkstry znajdowania najkrótszej ścieżki w grafie

WOJSKOWA AKADEMIA TECHNICZNA WYDZIAŁ CYBERNETYKI

Podstawy techniki cyfrowej. Układy asynchroniczne Opracował: R.Walkowiak Styczeń 2014

Zakleszczenie. Problem i przeciwdziałanie. Systemy operacyjne Wykład 8 1

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

Detekcja zakleszczenia (1)

Podstawy Automatyki. Wykład 15 - Projektowanie układów asynchronicznych o programach liniowych. dr inż. Jakub Możaryn. Instytut Automatyki i Robotyki

Synchronizacja procesów i wątków

Sterowniki Programowalne (SP) Wykład 11

Maciej Piotr Jankowski

Blokady. Model systemu. Charakterystyka blokady

Wstęp do Techniki Cyfrowej... Teoria automatów

Podstawy Automatyki. Człowiek- najlepsza inwestycja. Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

Wykład z Technologii Informacyjnych. Piotr Mika

Instytut Informatyki Uniwersytet Wrocławski. Dane w sieciach. (i inne historie) Marcin Bieńkowski

Lista 4. Kamil Matuszewski 22 marca 2016

TEORETYCZNE PODSTAWY INFORMATYKI

Perspektywiczny Plan Rozwoju: Pracownika. Efektywności Kompetencji i Zaangażowania. --- wskazówki do rozmowy ---

Programowanie współbieżne Wykład 5. Rafał Skinderowicz

1.Wprowadzenie do projektowania układów sekwencyjnych synchronicznych

Data Mining Wykład 9. Analiza skupień (grupowanie) Grupowanie hierarchiczne O-Cluster. Plan wykładu. Sformułowanie problemu

Wyszukiwanie binarne

Listy, krotki, słowniki, funkcje

Przykładowe rozwiązania

Podstawy Automatyki. Wykład 15 - Projektowanie układów asynchronicznych o programach liniowych. dr inż. Jakub Możaryn. Instytut Automatyki i Robotyki

Zadanie: A2 Kapitan Mambeks i gra w skoczki Plik źródłowy: A2.pas dla języka Pascal Dostępna pamięć: 64 MB A2.c dla języka C A2.

8. Neuron z ciągłą funkcją aktywacji.

WOJSKOWA AKADEMIA TECHNICZNA

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

xx + x = 1, to y = Jeśli x = 0, to y = 0 Przykładowy układ Funkcja przykładowego układu Metody poszukiwania testów Porównanie tabel prawdy

Metody uporządkowania

Wzajemne wykluczanie i zakleszczenie

a) 7 b) 19 c) 21 d) 34

1. Cel ćwiczenia. 2. Podłączenia urządzeń zewnętrznych w sterowniku VersaMax Micro

Metody uporządkowania

Wydział Matematyki I Informatyki ul. Słoneczna Olsztyn

Programowanie w języku C++ Grażyna Koba

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec

Wzmianka o zakleszczeniu (ang. deadlock, inne tłumaczenia: blokada, impas, zastój) pojawiła się przy okazji synchronizacji procesów.

2. Graficzna prezentacja algorytmów

Tablice mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011

a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a[10]

Schematy blokowe I. 1. Dostępne bloki: 2. Prosty program drukujący tekst.

Podstawowe algorytmy i ich implementacje w C. Wykład 9

Adaptacja sterownika PLC do obiektu sterowania. Synteza algorytmu procesu i sterowania metodą GRAFCET i SFC

UKŁADY SEKWENCYJNO CZASOWE I SPECJALNE

Automat skończony FSM Finite State Machine

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

LEKCJA 1. Co to jest programowanie? CEL Zapoznanie uczniów z pojęciami takim jak programowanie, programista, komendy, sekwencje. CZAS TRWANIA 45 minut

Problem zakleszczenia. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

7. Formularze master-detail

Tablice (jedno i wielowymiarowe), łańcuchy znaków

Zad. 1 Zad. 2 Zad. 3 Zad. 4 Zad. 5 SUMA

Plan wykładu. Przykład. Przykład 3/19/2011. Przykład zagadnienia transportowego. Optymalizacja w procesach biznesowych Wykład 2 DECYZJA?

Tab. 1 Tab. 2 t t+1 Q 2 Q 1 Q 0 Q 2 Q 1 Q 0

Materiały pomocnicze 1

Pętla for. Wynik działania programu:

Wstęp do programowania

Modele danych walidacja widoki zorientowane na model

Doświadczenia Grudziądzkiego Centrum Caritas ze współpracy z instytucjami publicznymi w kontekście realizacji projektów partnerskich

Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle

Wykładnicze grafy przypadkowe: teoria i przykłady zastosowań do analizy rzeczywistych sieci złożonych

Bank energii z wyświetlaczem LED, mah

W_4 Adaptacja sterownika PLC do obiektu sterowania. Synteza algorytmu procesu i sterowania metodą GRAFCET i SFC

Fragment wykładu z języka C ( )

Elekcja, wzajemne wykluczanie i zakleszczenie

Spacery losowe generowanie realizacji procesu losowego

Elementy gry. Cel gry. Dla 1 do 4 graczy, w wieku od 6 do 116 lat. Gra autorstwa Antoine a Bauzy, zilustrowana przez Stéphana Escapę.

Polityka prywatności dla

ZARZĄDZANIE PROJEKTAMI I PROCESAMI. Mapowanie procesów AUTOR: ADAM KOLIŃSKI ZARZĄDZANIE PROJEKTAMI I PROCESAMI. Mapowanie procesów

Rozpoczęcie pracy z LIBRUS Synergia

while(wyrażenie) instrukcja

Portal kandydata Korzystając z portalu kandydata możesz silver

MAGICIAN. czyli General Game Playing w praktyce. General Game Playing

Matematyka dyskretna. Andrzej Łachwa, UJ, a/15

Metoda generowania typowych scenariuszy awaryjnych w zakładach dużego i zwiększonego ryzyka - ExSysAWZ

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1

KURS MATEMATYKA DYSKRETNA

POLITECHNIKA OPOLSKA

Bydgoskie Centrum Archiwizacji Cyfrowej sp. z o.o.

Podstawy Programowania C++

Q t = δ(q t-1, X t ),

REKURENCJA W JĘZYKU HASKELL. Autor: Walczak Michał

1. Synteza automatów Moore a i Mealy realizujących zadane przekształcenie 2. Transformacja automatu Moore a w automat Mealy i odwrotnie

Algorytm selekcji Hoare a. Łukasz Miemus

Czy istnieje zamknięta droga spaceru przechodząca przez wszystkie mosty w Królewcu dokładnie jeden raz?

Podejście zachłanne, a programowanie dynamiczne

ZADANIE 1. Ważenie (14 pkt)

Grupowanie Witold Andrzejewski, Politechnika Poznańska, Wydział Informatyki 201/633

Transkrypt:

1. (2p.) Narysuj przykładowy graf przydziału (jednokrotnych) zasobów (bez zakleszczenia) i sprawdź, jakie przykładowe żądania przydzielenia zasobów spowodują powstanie zakleszczenia, a jakie nie. W przypadku równej ilości procesów i pojedynczych zasobów zakleszczenie zawsze nastąpi po żądaniu innego zasobu przez wszystkie procesy jednocześnie. Natomiast żądanie przez jeden z procesów dowolnego z zajętych zasobów nigdy nie doprowadzi do zakleszczenia. W zilustrowanym przypadku jeśli proces 3 zażąda zasobu numer 3 a proces 2 zażąda zasobu 1 nie nastąpi zakleszczenie. Uogólniając, stworzenie powiązań generujących dowolny cykl w grafie przydziału jednokrotnych zasobów automatycznie powoduje zakleszczenie. Jeśli zasobów byłoby więcej niż procesów, ryzyko zakleszczenia byłoby mniejsze (z powodu większego wyboru zasobów i większej szansy na trafienie niezajętego) choć również możliwe, ponieważ niezależnie od ilości wolnych zasobów dany proces może żądać zasobu zajmowanego przez inny proces który z kolei potrzebuje zasobu zajmowanego przez ten pierwszy. Podobnie w przypadku większej liczby procesów niż zasobów proces bez zasobów nie może stworzyć zakleszczenia, ponieważ nie zajmuje żadnego zasobu.

2. (5p.) W systemie są następujące liczby egzemplarzy zasobów: A: 10, B: 3, C: 1, D: 4, E: 5. Aktualnie przydzielone zasoby (i maksymalne zapotrzebowania) są następujące: Maksymalne zapotrzebowanie P4 3 0 0 0 0 P1 5 0 0 2 3 P2 3 2 1 3 0 P3 0 1 1 0 3 P4 6 0 0 2 4 P5 2 3 0 4 2 Czy ten system jest w stanie bezpiecznym? Podaj sekwencję kończenia procesów świadczącą o tym. Korzystając z algorytmu bankiera sprawdzam czy system znajduje się w stanie bezpiecznym. Tablice PRZYDZIAŁ podano w treści zadania (na potrzeby indeksowania przyjmuję A=1, B=2...). Tablice DOSTĘPNE i tworzone są na podstawie danych z treści zadania: DOSTĘPNE = [2,1,0,1,0] P4 3 0 0 2 4 ROBOCZE = DOSTĘPNE = [2,1,0,1,0] Robocze = Robocze + Przydział [3] = [2,1,1,1,3] 3. Wracam do kroku 2: dla j=2 Koniec[j] = true i Potrzeby[j] Robocze Robocze = Robocze + Przydział [2] = [5,3,1,3,3] Koniec[2] = true 4. Wracam do kroku 2: dla j=1 Koniec[j] = true i Potrzeby[j] Robocze Robocze = Robocze + Przydział [1] = [7,3,1,4,3] Koniec[1] = true 5. Wracam do kroku 2: dla j=5 Koniec[j] = true i Potrzeby[j] Robocze Robocze = Robocze + Przydział [5] = [7,3,1,4,5] Koniec[5] = true 6. Wracam do kroku 2: dla j=4 Koniec[j] = true i Potrzeby[j] Robocze Robocze = Robocze + Przydział [4] = [10,3,1,4,5] Koniec[4] = true Dla każdego j= j = 1, 2,..., n Koniec[j]=true. Stan przedstawiony w treści zadania jest bezpieczny, a sekwencja ciągu bezpiecznego to (3,2,1,5,4)

3. (3p.) Co się stanie, gdy zgłoszone zostaną następujące żądania przydzielenia zasobów: o P4: 2xD, o P4: 2xA, o P5: 1xD, Jeżeli zasoby zostaną przydzielone, podaj odpowiednią sekwencję kończenia procesów. Jeżeli nie, podaj przyczynę. Zgodnie z zasadą unikania zakleszczeń, przed każdym dodatkowym przydzieleniem zasobów system musi sprawdzić, czy spełnienie żądania doprowadziłoby do zakleszczenia. Jednakże w przypadku istniejącego skonstruowanego ciągu bezpiecznego, nie ma znaczenia, czy dany proces skorzysta ze swojego maksymalnego zapotrzebowania czy też nie, ponieważ bezpieczna sekwencja umożliwia zawsze wyjście z ciągu procesów niezależnie od ich realnego wykorzystania zasobów (względem maksymalnego deklarowanego). Jeśli jednak pytanie dotyczy zwiększenia aktualnych przydziałów przed sprawdzeniem, czy da się wyjść z ciągu, wymaga to przeprowadzenia ponownie algorytmu bankiera dla zmodyfikowanych danych wejściowych (czyli tablicy PRZYDZIAŁ). Jeśli tak: P4 5 0 0 2 0 P5 0 0 0 1 2 DOSTĘPNE = [0,1,0,-2,0] odmówiony zostałby najprawdopodobniej (jeśli kolejność odpowiedzi na zapytania z pytania jest chronologiczna) przydział 1xD dla P5 oraz P4 dostałoby tylko jeden egzemplarz D, ponieważ zabrakłoby dwóch egzemplarzy zasobu D. W tym przypadku rzeczywista tablica przydziału to: DOSTĘPNE = [0,1,0,0,0] P4 5 0 0 1 0 P4 1 0 0 1 4

ROBOCZE = DOSTĘPNE = [0,1,0,0,0] Robocze = Robocze + Przydział [3] = [0,1,1,0,3] Nie można znaleźć innego j, dla którego potrzeby procesu byłyby >= od zasobów roboczych. W związku z tym nie istniałby ciąg bezpieczny, byłaby szansa zakleszczenia jako że stan jest niebezpieczny. Żądanie 1xD mogłoby być na tej podstawie oddalone. Wariant dla przydzielenia 1xD dla P5 zamiast P4: DOSTĘPNE = [0,1,0,0,0] P4 5 0 0 0 0 P5 0 0 0 1 2 P4 1 0 0 2 4 P5 2 3 0 3 0 ROBOCZE = DOSTĘPNE = [0,1,0,0,0] Robocze = Robocze + Przydział [3] = [0,1,1,0,3] Nie można znaleźć innego j, dla którego potrzeby procesu byłyby >= od zasobów roboczych. W związku z tym nie istniałby ciąg bezpieczny, byłaby szansa zakleszczenia jako że stan jest niebezpieczny. Żądanie 1xD mogłoby być na tej podstawie oddalone. Wariant dla odmówienia przydziału zasobu D i przydzielenia tylko 2xA dla P4: P4 5 0 0 0 0

DOSTĘPNE = [0,1,0,1,0] P4 1 0 0 2 4 ROBOCZE = DOSTĘPNE = [0,1,0,1,0] Robocze = Robocze + Przydział [3] = [0,1,1,1,3] 3. Wracam do kroku 2: dla j=2 Koniec[j] = true i Potrzeby[j] Robocze Robocze = Robocze + Przydział [2] = [3,3,1,3,3] Koniec[2] = true 4. Wracam do kroku 2: dla j=1 Koniec[j] = true i Potrzeby[j] Robocze Robocze = Robocze + Przydział [1] = [5,3,1,4,3] Koniec[1] = true 5. Wracam do kroku 2: dla j=5 Koniec[j] = true i Potrzeby[j] Robocze Robocze = Robocze + Przydział [5] = [5,3,1,4,5] Koniec[5] = true 6. Wracam do kroku 2: dla j=4 Koniec[j] = true i Potrzeby[j] Robocze Robocze = Robocze + Przydział [4] = [10,3,1,4,5] Koniec[4] = true Dla każdego j= j = 1, 2,..., n Koniec[j]=true. Stan przedstawiony w treści zadania jest bezpieczny, a sekwencja ciągu bezpiecznego to (3,2,1,5,4). Żądanie 2xA dla P4 zostanie spełnione, sekwencja bezpiecznego wykonania procesów nie zmieni się. Na żadnym pośrednim etapie (po wykonaniu któregoś z procesów) żądanie przez którykolwiek proces zasobu D doprowadziłoby do przejścia w stan niebezpieczny i zakleszczenia. wykonał Sławomir Jabłoński s14736