Кіріспе

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

Қолданылуы

Ол қазіргі операциялық жүйелерде бастапқы жоспарлау механизмі ретінде сирек қолданылса да, жады шектеулі кіріктірілген жүйелерде және сондай-ақ CICS немесе JES2 кіші жүйесі сияқты арнайы қосымшаларда кеңінен қолданылады. Кооперативтік көп тапсырмалылық - Windows 95 және Windows NT-ден бұрын Microsoft Windows-та және классикалық Mac OS-те қолданылған 16 битті бағдарламалардың негізгі жоспарлау схемасы. Windows 9x 16 биттік мұралық қосымшалар үшін алдын ала емес көп тапсырмалылықты қолданды, ал Mac OS X-тің PowerPC нұсқалары Leopard-тан бұрын оны классикалық қосымшалар үшін қолданды. Кооперативтік көп тапсырмалылық JavaScript немесе Python сияқты тілдегі асинхронды / күтуге ұқсас, олар өздерінің орындалу уақытында бір желілі оқиға циклін көрсетеді. Бұл кооперативтік көп тапсырмалылықпен қарама-қарсы, өйткені күту синхронды емес функциядан шақырылуы мүмкін емес, тек синхронды емес функциядан шақырылуы мүмкін, бұл coroutine түрі. Кооперативті көп тапсырмалылық қолданбаларды әлдеқайда оңай іске асыруға мүмкіндік береді, өйткені олардың орындалуы процестерді жоспарлаушымен күтпеген жерден үзілмейді; мысалы, қолданбаның ішіндегі әртүрлі функциялар қайтадан кіруді қажет етпейді.