Кіріспе

Компьютерлік ғылымдағы ресурстарды бөлу мәселесі. Компьютерлік ғылымда, «күн күркіреген үйіршік» (thundering herd) мәселесі, белгілі бір оқиғаны күтіп тұрған көптеген процестер немесе жіптер (threads) сол оқиға орын алғанда оянады, бірақ оқиғаны өңдеуге тек бір процесс қабілетті. Процестер оянғанда, олардың әрқайсысы оқиғаны өңдеуге тырысады, бірақ тек біреуі ғана сәтті болады. Барлық процестер ресурстар үшін бәсекелесіп, мүмкін компьютерді тоқтатады (freeze), үйіршік қайтадан баяулағанша.

Жеңілдіктер

Linux ядросы бір файл дескрипторына жасалған сұраныстарға жауаптарды тізбектей өңдейді, сондықтан тек бір жіп немесе процесс оянады. Linux ядросының 4.5 нұсқасында epoll үшін EPOLLEXCLUSIVE туы қосылды. Осылайша, бірнеше epoll жиынтығы (әртүрлі жіптер немесе әртүрлі процестер) бір ресурсты күтуге мүмкінкін, және тек бір жиынтық оянады. Белгілі бір жұмыс жүктемелері үшін бұл ту өңдеу уақытын айтарлықтай қысқартуы мүмкін. Microsoft Windows жүйесінде де I/O аяқталу порттары «күн күркіреген топ» мәселесін азайтуға көмектеседі, себебі оларды конфигурациялауға болады, сонда оқиға болғанда аяқталу портында күтіп тұрған жіптердің тек біреуі ғана оянады. Кері есептеу механизміне сүйенетін жүйелерде (мысалы, экспоненциалды кері есептеу) клиенттер сәтсіз шақыруларды қайталау үшін, тізбектеп қайталап шақырулар арасында белгілі бір уақыт күтеді. «Күн күркіреген топ» мәселесін болдырмау үшін, клиенттер арасындағы синхронизацияны бұзу және соқтығыстарды болдырмау үшін джиттерді (кездейсоқ уақытты) әдейі енгізуге болады. Бұл тәсілде қайталап тексерулер арасындағы күту аралықтарына кездейсоқтық қосылады, соның салдарынан клиенттер енді синхронизацияланбайды.