ПредишенСледващото

Анотация: Лекцията се занимава с мъртвите зони, stalemates и "замръзва" на системата

В по-ранна глава разгледахме начини за синхронизиране на процесите, които позволяват на процеси, за да си сътрудничат успешно. Въпреки това, непредвидени трудности могат да възникнат в някои случаи. Да приемем, че множество процеси се състезават за притежаването на определен брой ресурси. Ако исканата процес ресурс не е на разположение, операционната система отнема този процес в състояние на изчакване. В случай, че необходимият ресурс, притежаван от друг процес на изчакване, първият процес няма да бъде в състояние да променят своето състояние. Тази ситуация се нарича безизходица (безизходица). Те казват, че в система multiprogramming, процесът е в застой състояние. ако тя е в очакване на едно събитие, което никога няма да се случи. Система за безизходица. или "система виси" е следствие от факта, че един или повече процеси са в състояние на застой. Понякога тези ситуации се наричат ​​блокировки. Като цяло, проблемът с мъртвите зони ефективно решение не е било.

Помислете за пример. Да предположим, че два процеса на извеждане на лентата принтер. Един от тях успя да монополизира лентата и да се представят за принтер, а в обратната посока. След това, двата процеса са блокирани в очакване на втората ресурс (вж. Фиг. 7.1).


Фиг. 7.1. Пример безизходица

Определение. Комплект процеси е в застой. ако всеки от множеството процес чака за събитие, което може да доведе до друг метод само този набор. Тъй като се очаква всички процеси, нещо, никой от тях не ще бъде в състояние да започне едно събитие, което ще се събуди на другия член на снимачната площадка, а оттам и всички процеси, спят заедно.

Над е пример за безизходица. среща при използването на така наречените специални устройства. Мъртвите зони. обаче, може да се появи и в други ситуации. Haprimer в записите в базата данни могат да бъдат локализирани системи за контрол на процеса, за да се избегне състезания състояние (вж. Лекция 5 "алгоритми за синхронизация"). В този случай, може да се случи, че един от процесите блокиран идентификационни данни, необходими на друг процес, и обратно. По този начин, мъртвите зони могат да се появят, както в хардуер и софтуер в ресурси.

Мъртвите зони могат да бъдат предизвикани и от програмни грешки. Например, този процес може да чака напразно за откриването на семафора, защото неправилно писмена молба за предоставяне на тази операция забравен. Друга причина за безкрайното чакане може да бъде дискриминационна политика по отношение на някои процеси. Въпреки това, по-голямата част на събитието, което е в очакване на процеса, за да безизходица. - освобождаването на ресурса. и за в бъдеще ще бъдат обсъдени методи за справяне с тип мъртвите зони на ресурсите.

Ресурси могат да бъдат или устройство и данни. Hekotorye ресурси позволяват разделение между процеси, т.е. те са споделени ресурси. Например, паметта. процесор. задвижва заедно използвани процеси. Други не позволяват отделянето, т.е. те са избрани. лентово устройство например. А застой вследствие на употребата на двете посветени и споделени ресурси. Така например, при четене от споделения диск може да се извършва едновременно от множество процеси, докато запис изисква изключителен достъп до данните на диска. Може да се предположи, че част от диска, където записването става. разпределена за даден процес. Ето защо, ние ще приемем, че мъртвите зони са свързани с отделни ресурси. т.е. мъртвите зони се появяват, когато един процес изключителен достъп до устройства, файлове и други ресурси.

Традиционният последователността на събитията, когато се работи с този ресурс се състои от заявка, използване и освобождаване на ресурса. вид на заявката зависи от естеството на ресурса и на операционната система. Искането може да бъде изрично, като специално искане предизвикателство, или косвено - отворен за отваряне на файла. Обикновено, ако ресурсът е зает и искането бъде отхвърлено, заявения процес навлиза в състояние на изчакване.

По-късно в тази глава ще се счита за откриване, предотвратяване, заобикаляне на мъртвите зони мъртвите зони и възстановяване. Като правило, борбата срещу премълчано - много скъпо мероприятие. Независимо от това, в продължение на няколко системи, например системи за реално време, няма алтернатива.

Условия за възникване на мъртвите зони

Условия за появата на мъртвите зони са формулирани Koffmanom, Elphick и Shoshani през 1970 г.

  1. Условия мутекс (Взаимно изключване). В същото време използването на ресурса може да бъде само един процес.
  2. готовност ресурси Състояние (Hold и да чакаме). Процесите държат ресурси. вече са отпуснати за тях, и може да поиска и други ресурси.
  3. Състояние nepereraspredelyaemosti (Без preemtion). Ресурсен. подчертано по-рано, той не може да бъде насилствено отнет от процеса. Издаден, те могат да бъдат само един процес, който ги притежава.
  4. Състоянието на кръгови очаквания (Circular изчакване). Налице е кръгъл верига от процеси, при всеки процес чака за достъп до ресурса. притежаван от друг процес верига.

За формирането на безизходицата е необходимо и достатъчно, че всички четири условия.

Обикновено, застой цикъл се моделира в графика, състояща се от два вида възли: правоъгълници - процеси и елипси - ресурси. като този, показан на фиг. 7.1. Стрелките сочат от ресурса на този процес, показват, че този ресурс се разпределя към процеса. Стрелките сочат от процеса на ресурса. означава, че в процеса на искане на ресурса.

Основните насоки за борба с премълчано

Puffins проблем е инициирала много интересен изследвания в областта на компютърните науки. Очевидно е, че състоянието на циклични очаквания различни от останалите. Първите три условия формират правилата, които съществуват в системата, а на четвъртото условие описва ситуация, която може да възникне, когато определена последователност нежелано събитие. Ето защо, методи за предотвратяване на мъртвите зони са съсредоточени главно върху нарушаването на първите три условия, като въведе някои ограничения върху поведението на процесите и методите за разпределение на ресурсите. Методи за откриване и отстраняване на по-малко консервативни и да се намали, за да търсите и се чупят свободните ресурси на цикъла.

По този начин, основните насоки за борба с премълчано:

  • Без да обръща внимание на проблема като цяло
  • Предотвратяване на мъртвите зони
  • откриване на мъртвите зони
  • Възстановяване от безизходица

Без да обръща внимание на проблема с мъртвите зони

Най-простият подход - да пренебрегнем проблема на мъртвите зони. За да се направи такова решение, е необходимо да се направи оценка на вероятността от безизходица и да я сравни с вероятността от увреждане от други повреди на хардуер и софтуер. Дизайнерите обикновено не са склонни да жертват производителност на системата и удобство за потребителя за изпълнението на сложни и скъпи средства за борба с безизходицата.

Всяка операционна система, която е в основата на редица масиви от фиксиран размер, което потенциално страдат от мъртвите зони. дори ако те не са намерени. Отваряне на файл на маса, процес на маса. в действителност, всяка маса са ограничени ресурси. Попълването на всички записи от таблицата на процеса може да доведе до факта, че следващото искане за установяване на процеса може да се отрече. При неблагоприятни обстоятелства няколко процеса могат да издават такова искане в същото време да е в задънена улица. Трябва ли да откаже да се обадя CreateProcess, за да се реши този проблем?

Подход е най-популярните операционни системи (Unix, Windows и др.) Трябва да се игнорира проблема на предположението, че е малко вероятно случаен безизходица, а не смешни правила, които принуждават потребителите да ограничат броя на процесите, да отваряте файлове, и така нататък. Н. Изправени нежелан избор между строгост и удобство, това е трудно да се намери решение, което да удовлетворява всички.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!