Кіріспе
Есептеуде жағдайды үнемі тексеру Компьютерлік ғылым мен бағдарламалық жасақтамада, бос күту, бос циклға түсу немесе айналу – процестің жағдайдың рас екенін қайта-қайта тексеруі, мысалы, пернетақтадан кіріс немесе құлыптың қолжетімділігі. Айналу белгілі бір уақытқа кідіру жасау үшін де қолданылуы мүмкін, бұл әдіс белгілі бір уақыт күту мүмкіндігі жоқ жүйелерде қажет болды. Процессордың жылдамдығы компьютерлер арасында әртүрлі болады, әсіресе кейбір процессорлар ағымдағы жүктемеге байланысты жылдамдықты динамикалық түрде өзгертуге арналған. Осының салдарынан, уақытты кідіру әдісі ретінде айналу әртүрлі жүйелерде болжамсыз немесе тіпті үйлесімсіз нәтижелер беруі мүмкін, егер процессордың "ешқандай операция орындамау" циклын орындауға қажетті уақытын анықтайтын код қосылмаса немесе циклдық код нақты уақыт сағатын тексермесе. Көп жағдайларда айналу – дұрыс емес тәсіл саналады және одан аулақ болу керек, себебі басқа тапсырманы орындауға жұмсалатын процессор уақыты пайдасыз әрекетке ысырап болады. Айналу кейбір жағдайларда, әсіресе SMP жүйелерінде жұмыс істеуге арналған операциялық жүйелердегі спинлоктарды іске асыруда қолданылуы мүмкін.
In computer science and software engineering, busy waiting, busy looping or spinning is a technique in which a process repeatedly checks to see if a condition is true, such as whether keyboard input or a lock is available. Spinning can also be used to generate an arbitrary time delay, a technique that was necessary on systems that lacked a method of waiting a specific length of time. Processor speeds vary greatly from computer to computer, especially as some processors are designed to dynamically adjust speed based on current workload. Consequently, spinning as a time delay technique can produce unpredictable or even inconsistent results on different systems unless code is included to determine the time a processor takes to execute a "do nothing" loop, or the looping code explicitly checks a real time clock. In most cases spinning is considered an anti pattern and should be avoided, as processor time that could be used to execute a different task is instead wasted on useless activity. Spinning can be a valid strategy in certain circumstances, most notably in the implementation of spinlocks within operating systems designed to run on SMP systems.
Тиісті пайдалану
Төмен деңгейдегі бағдарламалауда, бос күтулер (busy waits) тіпті қажет болуы мүмкін. Әсіресе, сирек қолданылатын аппараттық құрылғылар үшін, әрбір құрылғыға үзіліс арқылы өңдеуді іске асыру ыңғайлы немесе мүмкін болмауы мүмкін. Кейде аппаратқа басқару деректерін жазу қажет, содан кейін жазу операциясынан туындаған құрылғының жағдайын алу керек, бұл жағдай жазудан кейін бірнеше машиналық циклдер өткен соң ғана жарамды болуы мүмкін. Бағдарламашы операциялық жүйенің кідіру функциясын шақыруы мүмкін, бірақ мұндай жағдайда құрылғының жағдайын күтіп, бірнеше сағаттық циклдарды орындауға кеткен уақыттан да көп уақыт жұмсалуы мүмкін.