Кіріспе

Қажетсіз есептеу кестесі сценарийі

Компьютер ғылымында, басымдық инверсиясы – жоспарлау кезінде туындайтын жағдай, онда жоғары басымдылыққа ие тапсырма төмен басымдылыққа ие тапсырмамен тікелей емес, бірақ нәтижесінде ығыстырылады, бұл тапсырмаларға берілген басымдықтарды кері аударады. Бұл жоғары басымдылықтағы тапсырмалардың жұмысын тек одан да жоғары басымдылыққа ие тапсырмалар ғана тоқтатуы мүмкін деген басымдық моделін бұзады. Инверсия төмен басымдылыққа ие тапсырмамен ресурстық қақтығыс болғанда туындайды, содан кейін орта басымдылыққа ие тапсырма оны прерықтатады.

Формуляциясы

Екі тапсырманы қарастырайық: H және L, сәйкесінше жоғары және төмен басымдылыққа ие. Олардың әрқайсысы ортақ ресурс R-ді пайдалануға құқылы. Егер H, L ресурс R-ді алғаннан кейін оны алуға тырысса, H, L ресурстан бас тартқанға дейін тоқтатылады. Жақсы жобаланған жүйеде ерекше пайдалану ресурсын (осы жағдайда R) бөлісу әдетте L-дің R-ден дереу бас тартуын қамтамасыз етеді, сонда H (жоғары басымдылыққа ие тапсырма) тым ұзақ уақытқа тоқтатылмайды. Дегенмен, жақсы жобаланғанына қарамастан, L R-ді пайдаланып жатқанда орташа басымдылыққа ие үшінші M тапсырмасы іске қосылуы мүмкін. Осы кезде M, L-ден жоғары басымдылыққа ие болғандықтан, L-ге үзіліс жасайды (өйткені M R-ге тәуелді емес), бұл L-дің R-ден дереу бас тартуына кедергі келтіреді, нәтижесінде ең жоғары басымдылыққа ие H процесі іске қосыла алмайды (яғни, H M сияқты төмен басымдылыққа ие тапсырмалардың тудырған күтпеген тоқтауынан зардап шегеді).

Салдарлар

Кейбір жағдайларда басымдық инверсиясы тікелей зиян келтірмей орын алуы мүмкін: жоғары басымдылықтағы тапсырманың кешіктірілген орындалуы байқалмайды, ал соңында төмен басымдылықтағы тапсырма ортақ ресурсты босатады. Дегенмен, басымдық инверсиясы көптеген жағдайларда ауыр проблемаларға әкелуі мүмкін. Егер жоғары басымдылықтағы тапсырма ресурстардан ұзақ уақытқа дейін айырылса, ол жүйелік бұзушылыққа немесе алдын ала анықталған түзету шараларын іске қосуға, мысалы, жүйені қайта іске қосатын бақылау таймеріне алып келуі мүмкін. 1997 жылы Марсқа қонған Pathfinder ғарыш кемесінің басынан өткен қиындықтар – нақты уақыт жүйелерінде басымдық инверсиясының салдарынан туындаған мәселелердің классикалық мысалы. Басымдық инверсиясы жүйенің сезілетін өнімділігін де төмендетуі мүмкін. Төмен басымдылықтағы тапсырмалар әдетте төмен басымдыққа ие, себебі оларды дереу аяқтау маңызды емес (мысалы, олар пакеттік жұмыс немесе басқа да интерактивті емес әрекет болуы мүмкін). Сол сияқты, жоғары басымдылықтағы тапсырманың басымдығы жоғары, өйткені ол қатаң уақыт шектеулеріне ұшырауы ықтимал – ол интерактивті пайдаланушыға деректерді ұсынуы немесе нақты уақыт жауап беру кепілдіктеріне сәйкес әрекет етуі мүмкін. Басымдық инверсиясы жоғары басымдылықтағы тапсырманы тоқтатып, төмен басымдылықтағы тапсырманың орындалуына себеп болатындықтан, ол жүйенің жауап беру жылдамдығын төмендетуге немесе тіпті жауап беру уақытының кепілдіктерін бұзуға әкелуі мүмкін. Ұқсас мәселе, соңғы мерзім алмасуы деп аталады, ең ерте мерзімді бірінші кестелеу (EDF) ішінде пайда болуы мүмкін.