Скачать презентацию Дедлок Deadlock гл ас Моника Филипова ФМИ Катедра Скачать презентацию Дедлок Deadlock гл ас Моника Филипова ФМИ Катедра

fd6cdebe3fde0e068848ca6756e05b21.ppt

  • Количество слайдов: 11

Дедлок Deadlock гл. ас. Моника Филипова ФМИ, Катедра Изчислителни системи Операционни системи, М. Филипова Дедлок Deadlock гл. ас. Моника Филипова ФМИ, Катедра Изчислителни системи Операционни системи, М. Филипова 1

Съдържание § § § Понятие за дедлок Необходими условия за дедлок Граф на разпределение Съдържание § § § Понятие за дедлок Необходими условия за дедлок Граф на разпределение на ресурсите Предотвратяване на дедлок Заобикаляне на дедлок Операционни системи, М. Филипова 2

Понятие за дедлок ü Казваме, че множество от два или повече процеса са в Понятие за дедлок ü Казваме, че множество от два или повече процеса са в дедлок, ако всички те са в състояние блокиран и всеки чака настъпването на събитие, което може да бъде предизвикано само от друг процес в множеството. Събитието е предоставяне на ресурс. Типове ресурси – всеки от тях може да има няколко идентични екземпляра. Стъпките при работа на процес с ресурс: 1. 2. 3. заявка за ресурс (request) използване на ресурс (use) освобождаване на ресурса (release) q ü ü Операционни системи, М. Филипова 3

Необходими условия за дедлок 1. Взаимно изключване (Mutual exclusion) В системата има поне един Необходими условия за дедлок 1. Взаимно изключване (Mutual exclusion) В системата има поне един ресурс, който трябва да се използва монополно. 2. Очакване на допълнителен ресурс (Hold and Wait) Процесите могат да получават ресурси на части, като съществува поне един процес, който задържа получени ресурси и чака предоставяне на допълнителен ресурс. 3. Непреразпределение (No preemption) Системата не отнема насилствено ресурс, предоставен на процес. (Процесът го освобождава. ) 4. Кръгово чакане (Circular wait) Съществува множество от процеси {p 1, p 2, . . . , pk}, такива че p 1 чака ресурс държан от p 2, p 2 чака ресурс държан от p 3 и т. н. pk чака ресурс държан от p 1. Операционни системи, М. Филипова 4

Граф на разпределение на ресурсите Двуделен ориентиран граф G = {V, E}: Множеството на Граф на разпределение на ресурсите Двуделен ориентиран граф G = {V, E}: Множеството на върховете V е обединение на две непресичащи се подмножества: { p 1, p 2, . . . , pn } – множество на процесите { r 1, r 2, . . . , rm } – множество на типовете ресурси ü Множеството на ребрата E включва два вида ребра: (pi, rj) – означава, че процес pi иска ресурс rj (request edge) (rj, pi) – означава, че един екземпляр от ресурс rj е даден на процес pi (assignment edge) ü Ако в графа няма цикъл, то в системата няма дедлок. Ако графът съдържа цикъл, то може да има дедлок. ð Наличието на цикъл в графа е необходимо условие за дедлок. Операционни системи, М. Филипова 5

Пример. Граф на разпределение на ресурси Операционни системи, М. Филипова 6 Пример. Граф на разпределение на ресурси Операционни системи, М. Филипова 6

Предотвратяване на дедлок ü 1. – 2. – – Стратегии на Хавендер Ако едно Предотвратяване на дедлок ü 1. – 2. – – Стратегии на Хавендер Ако едно от необходимите условия не е изпълнено дедлок е принципно невъзможен. Взаимно изключване Никой ресурс никога не се предоставя за монополно използване. Очакване на допълнителен ресурс Всеки процес трябва да иска всичките необходими му ресурси наведнаж и преди започване на работа, и те да му бъдат предоставени преди началото на изпълнение. Процес може да иска ресурси и след започване на работа, само когато не задържа никакви други ресурси. Операционни системи, М. Филипова 7

Предотвратяване на дедлок 3. – 4. – – Непреразпределение Ако процес, който е получил Предотвратяване на дедлок 3. – 4. – – Непреразпределение Ако процес, който е получил и държи някакви ресурси, поиска допълнителни и системата не може да му ги предостави веднага, то процесът бива блокиран и всички дадени му до момента ресурси му се отнемат. Процесът ще продължи изпълнението си, когато системата може да му даде всичките ресурси – новите (поисканите) и старите (отнетите му). Кръгово чакане Въвежда се наредба на всички типове ресурси. Определяме функция F: R → N. Ако първоначално процес е получил ресурси от тип ri, то след това може да иска само ресурси от тип rk, където F(rk) > F(ri). Когато процес иска ресурс от тип rk, той трябва да е освободил всички ресурси от тип ri , за които F(ri) >= F(rk). Операционни системи, М. Филипова 8

Заобикаляне на дедлок Алгоритъм на банкера ü ü q q Дедлок по принцип е Заобикаляне на дедлок Алгоритъм на банкера ü ü q q Дедлок по принцип е възможен. Когато опасността от бъдещ дедлок се увеличи, той се заобикаля. Надеждно състояние на разпределение на ресурсите Ако съществува поне една последователна наредба на процесите < p 1, p 2, . . . , pn >, за която е изпълнено: Нуждите на всеки процес pi могат да се удоволетворят от свободните в момента ресурси и ресурсите държани от процесите pj, където j

Пример. Система с един тип ресурс с общ брой 9 след като p 2 Пример. Система с един тип ресурс с общ брой 9 след като p 2 поиска 1 надеждно състояние ненадеждно състояние Процеси Макс. Получен Оставащ 1 5 p 1 6 1 5 p 2 5 1 4 2 3 p 3 2 1 1 p 4 7 4 3 Свободни – 2 Надеждни последователности:

и

Операционни системи, М. Филипова Свободни – 1 няма 10

Алгоритъм на банкера § ü ü ü § Анализира всяка заявка за ресурс и Алгоритъм на банкера § ü ü ü § Анализира всяка заявка за ресурс и ако: има свободни ресурси и новото състояние остава надеждно удоволетворява заявката. В противен случай процесът ще бъде блокиран и събуден по-късно, когато системата е в състояние да удоволетвори заявката му. Операционни системи, М. Филипова 11