Проблема
В плануванні, термін перестановка пріоритетів описує ситуацію коли менш пріоритетне завдання блокує спільні ресурси які необхідні пріоритетнішому завданню. Це призводить блокування пріоритетніших завдань доти, поки завдання з нижчим пріоритетом розблокує ресурси, насправді "інвертуючи" відносні пріоритети цих двох завдань. Якщо ж в цей час спробує виконатись інше середньо пріоритетне завдання, що не залежить від спільного ресурсу, воно отримає перевагу над менш та пріоритетнішими завданнями.
В деяких ситуаціях перестановка пріоритетів може і не викликати видимих проблем. Проте існує багато ситуацій коли перестановка пріоритетів може призвести до серйозних проблем. Якщо пріоритетне завдання залишиться знемагати без ресурсів, це може привести до несправностей або виклику коректуючих дій, таких як watch dog timer перевантажить всю систему. Проблема що виникла у Mars lander "Mars Pathfinder" є класичним прикладом перестановки пріоритетів в системах реального часу.
Перестановка пріоритетів також може зменшити видиму продуктивність системи.
Рішення
Про існування цієї проблеми відомо з 1970-х, але досі не існує повноцінного методу передбачення таких ситуацій. Основними методами боротьби з цією проблемою є:
Відключення всіх переривань для захисту критичних секцій
Коли відключення всіх переривань використовується для недопущення перестановки пріоритетів, існує тільки два типи пріоритетів: резервуючий та блокуючий переривання. Без третього пріоритету перестановка неможлива. Оскільки є тільки один шматок заблокованих даних, хаотичне впорядкування неможливе, тому неможливим стає взаємне блокування. Оскільки критичні процеси завжди добігають до завершення, зависання не трапляється. Слід пам'ятати, що це спрацює тільки якщо всі перериваня відключенні. Коли відключенні тільки деякі апаратні переривання, перестановка пріоритетів відтвориться через пріоритизацію апаратних переривань.
Максимізація приоритетів. (A priority ceiling)
Із збільшенням пріоритетів до верхньої межі спільний блокуючий процес (що виконує системний код) сам має специфічний (високий) пріоритет, який також присвоєний завданню що тримає блок. Це працює добре не дозволяючи іншим високо пріоритетним завданням мати пріоритет вищий максимального.
Успадкування пріоритетів
За правилами успадкування пріоритетів, якщо високопріоритетне завдання має чекати на певний ресурс розділений з менш пріоритетним завданням, низькопріоритетному завданню присвоюється найбільший пріоритет з очікуючих завдань на час використання ним спільних ресурсів, таким чином дозволяючи завданням з середніми та високими пріоритетами уникати затримок (первісно) мало пріоритетного завдання.
Посилання
- Description from FOLDOC
- Citations from CiteSeer
- IEEE Priority Inheritance Paper by Sha, Rajkumar, Lehoczky
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Nemaye perevirenih versij ciyeyi storinki jmovirno yiyi she ne pereviryali na vidpovidnist pravilam proektu Zmist 1 Problema 2 Rishennya 2 1 Vidklyuchennya vsih pererivan dlya zahistu kritichnih sekcij 2 2 Maksimizaciya prioritetiv A priority ceiling 2 3 Uspadkuvannya prioritetiv 3 PosilannyaProblemared V planuvanni termin perestanovka prioritetiv opisuye situaciyu koli mensh prioritetne zavdannya blokuye spilni resursi yaki neobhidni prioritetnishomu zavdannyu Ce prizvodit blokuvannya prioritetnishih zavdan doti poki zavdannya z nizhchim prioritetom rozblokuye resursi naspravdi invertuyuchi vidnosni prioriteti cih dvoh zavdan Yaksho zh v cej chas sprobuye vikonatis inshe seredno prioritetne zavdannya sho ne zalezhit vid spilnogo resursu vono otrimaye perevagu nad mensh ta prioritetnishimi zavdannyami V deyakih situaciyah perestanovka prioritetiv mozhe i ne viklikati vidimih problem Prote isnuye bagato situacij koli perestanovka prioritetiv mozhe prizvesti do serjoznih problem Yaksho prioritetne zavdannya zalishitsya znemagati bez resursiv ce mozhe privesti do nespravnostej abo vikliku korektuyuchih dij takih yak watch dog timer pilnuyuchij tajmer perevantazhit vsyu sistemu Problema sho vinikla u Mars lander Mars Pathfinder ye klasichnim prikladom perestanovki prioritetiv v sistemah realnogo chasu Perestanovka prioritetiv takozh mozhe zmenshiti vidimu produktivnist sistemi Rishennyared Pro isnuvannya ciyeyi problemi vidomo z 1970 h ale dosi ne isnuye povnocinnogo metodu peredbachennya takih situacij Osnovnimi metodami borotbi z ciyeyu problemoyu ye Vidklyuchennya vsih pererivan dlya zahistu kritichnih sekcijred Koli vidklyuchennya vsih pererivan vikoristovuyetsya dlya nedopushennya perestanovki prioritetiv isnuye tilki dva tipi prioritetiv rezervuyuchij ta blokuyuchij pererivannya Bez tretogo prioritetu perestanovka nemozhliva Oskilki ye tilki odin shmatok zablokovanih danih haotichne vporyadkuvannya nemozhlive tomu nemozhlivim staye vzayemne blokuvannya Oskilki kritichni procesi zavzhdi dobigayut do zavershennya zavisannya ne traplyayetsya Slid pam yatati sho ce spracyuye tilki yaksho vsi pererivanya vidklyuchenni Koli vidklyuchenni tilki deyaki aparatni pererivannya perestanovka prioritetiv vidtvoritsya cherez prioritizaciyu aparatnih pererivan Maksimizaciya prioritetiv A priority ceiling red Iz zbilshennyam prioritetiv do verhnoyi mezhi spilnij blokuyuchij proces sho vikonuye sistemnij kod sam maye specifichnij visokij prioritet yakij takozh prisvoyenij zavdannyu sho trimaye blok Ce pracyuye dobre ne dozvolyayuchi inshim visoko prioritetnim zavdannyam mati prioritet vishij maksimalnogo Uspadkuvannya prioritetivred Za pravilami uspadkuvannya prioritetiv yaksho visokoprioritetne zavdannya maye chekati na pevnij resurs rozdilenij z mensh prioritetnim zavdannyam nizkoprioritetnomu zavdannyu prisvoyuyetsya najbilshij prioritet z ochikuyuchih zavdan na chas vikoristannya nim spilnih resursiv takim chinom dozvolyayuchi zavdannyam z serednimi ta visokimi prioritetami unikati zatrimok pervisno malo prioritetnogo zavdannya Posilannyared Description from FOLDOC Citations from CiteSeer IEEE Priority Inheritance Paper by Sha Rajkumar Lehoczky Otrimano z https uk wikipedia org wiki Perestanovka prioritetiv