Кіріспе

Бағдарламалық жасақтама қатесінің түрі

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

Себептер

Ұстаманың ағып кетуіне бір себеп – бағдарламашы бір нысанға ұстама алуды басқарылмайтын сілтеме алу деп жаңылысып, іс жүзінде санау, көшіру немесе басқа операция жасалып жатқанын түсінбейді. Екінші себеп – бағдарламашылар ерекше жағдай туғанда және процедурадан ертерек шыққанда, процедура соңындағы тазалау коды орындалмауы мүмкін екенін ескермейтін нашар ерекше жағдайларды өңдеу үлгілерінен туындайды. Мысалы, дисплей құрылғысына ұстама алуды қарастырайық. Бағдарламашылар осы ұстаманы кейбір қасиеттерді тексеру үшін (мысалы, қолдау көрсетілетін ажыратымдылықты сұрау) пайдалана алады, содан кейін ұстаманы босата алмай жай ғана жалғастыра береді. Егер ұстама қосымша басқарусыз деректер құрылымына көрсетсе, онда ұстаманың қолданыс аймағынан шығуы мәселе тудырмас еді. Дегенмен, көп жағдайда мұндай ұстамаларды олармен байланысты ресурстардың ағып кетуіне жол бермеу үшін жабу немесе босату қажет; ұстамамен не істеу керектігінің нақты талаптары интерфейске байланысты өзгереді.