Қазақстан республикасы ауыл шаруашылығы министрлігі


Негізгі бөлім Кері қоңырау функциялары



жүктеу 49,5 Kb.
бет2/3
Дата19.06.2020
өлшемі49,5 Kb.
#31023
түріРеферат
1   2   3
сп реферат на 10 неделю Жумабай Абат 1807

Негізгі бөлім

Кері қоңырау функциялары

FreeBSD, OS X, VMS және Windows қол жетімді.

Әлеуетті мәселе-стек тереңдігі бақыланбайтын болуы мүмкін, сондықтан өте маңызды нәрсе, алдыңғы аяқталған кезде басқа енгізу/шығаруды жоспарлау қажет. Егер бұл дереу қанағаттандырылуы тиіс болса, бастапқы callback келесі шақырылғанға дейін стекті " айналдыруды "орындамайды. Бұған жол бермеу үшін жүйелер (мысалы, "орташа жоспар" ('mid-ground') келесі жұмысты жоспарлау) күрделілігін арттырады және өнімділікті төмендетеді. Іс жүзінде, алайда, бұл, әдетте, проблема емес, себебі келесі енгізу / шығару өзі, әдетте, келесі енгізу/шығару іске қосылғаннан кейін қайтарылады, стекке мүмкіндік береді, "бұрылады". Мәселе, сондай-ақ, кез келген одан әрі кері шақыруларды болдырмау арқылы, кезек арқылы, бірінші кері шақыру қайтару дейін алдын ала мүмкін емес.

Процедураның асинхронды шақыруы компьютерде жұмыс істеу бірлігі болып табылады. Әдетте бағдарлама бірнеше синхронды қоңыраулар процедураларын орындайды. Бірақ егер кейбір деректер дайын болмаса (мысалы, бағдарлама пайдаланушыны жауап беру үшін күтеді), содан кейін жіп процедураның стек үшін жадының айтарлықтай мөлшерін бөледі және бұл жады пайдаланылмайды. Осылайша, мұндай шақыру рәсімі кіріс деректері үшін аз жады бар объект ретінде қалыптасады және бұл нысан пайдаланушы енгізуін алатын Қызметке беріледі. Пайдаланушы жауап берген кезде қабылданады, қызмет оны объектіге орналастырады және бұл объектіні орындау қызметі ретінде береді. Қызметтерді орындау бір немесе бірнеше мамандандырылған жұмыс ағынынан және міндеттер кезегінен тұрады. Әрбір жұмыс ағыны цикл есептерін кезекте оқиды және тапсырма алынғанда, оны орындайды. Тапсырмалар жоқ кезде, күту жұмыс ағындары және сондықтан олардың жады пайдаланылмайды, бірақ жұмыс ағындарының саны жеткілікті аз (машинада процессорлар бар қарағанда көп ағындарға ие болу мағынасы жоқ).

Сонымен, асинхронды шақырудың өмірлік циклі 2 кезеңнен тұрады: пассивті кезең, ол пассивті күтіп тұрған кезде немесе кіріс мәліметтерінен, сондай-ақ бұл деректер процедураның әдеттегі шақыруы сияқты есептелетін белсенді жай-күй. Процедураның асинхронды шақыру нысаны кейінірек алынған жаңа деректермен кейінгі процедураларды шақыру үшін қайта қолданылуы мүмкін. Бұл объектіде есептелген шығыс деректерін жинақтауға мүмкіндік береді, әдетте объектілерде жасалады, объектілі-бағытталған бағдарламалау парадигма бағдарламаланады. Есептелген деректерді келісілген күйде сақтау үшін бір уақытта бір процедураны орындаудан аулақ болу керек. Мұндай көп рет қолданылатын асинхронды процедураны актер деп атайды . Actors пайдаланып бағдарламалау Актер және Dataflow бағдарламалау моделінде сипатталған . Dataflow бағдарламалау актер көп болуы мүмкін және барлық кірулер деректер немесе рұқсат болса, орындау қызметіне барады, ал айырмашылық актердің моделі дәл екі портқа ие: кіріс деректерін қабылдау үшін бір порт, және басқа (жасырын) порт.

Асинхронды процедура шақыру (asynchronous procedure call - АРС) кейінге қалдырылған өңдеу шақыруына ұқсас, бірақ елеулі айырмашылықтар бар. Кейінге қалдырылған өңдеу шақыруы сияқты, АРС әдеттегі кодтың артықшылық деңгейінен асатын артықшылықтар деңгейінде орындалады. Айырмашылығы шақыру өңдеу контекстінде орындалатын болса, онда процесс, асинхронды шақыру рәсімін әрқашан орындалады контексінде белгілі бір процесс. Осылайша, процедураның асинхронды шақыруы кейінге қалдырылған өңдеуді шақырудан гөрі үлкен шығындарды талап етеді, себебі көп параметрлерді сақтау және қалпына келтіру қажет. UNIX операциялық жүйелерімен таныс оқырманға рәсімдердің асинхронды шақырулары UNIX сигналдарын өңдеу процедураларын еске салады.

АРС екі түрі бар: ядро режимінде қоңырау шалу және пайдаланушы режимінде қоңырау. Асинхронды шақыру рәсімін режимінде ядро байланысты драйвері немесе басқа да коды бар режимдегі ядро және әдетте үшін пайдаланылады деректер, мысалы көшіру үшін деректерді йз аралық ядро пайдаланушы буфер. Пайдаланушы буфері буферге ие процесс контекстінде қол жетімді болуы керек екенін есте сақтаңыз. Теңшелетін режим коды да асинхронды процедуралар қоңырауын пайдалана алады. Бұл үшін Queueuserapc бағдарламалау интерфейсі қажет, ол Platform SDK жиынтығына арналған құжаттамада қарастырылады. Асинхронды процедура шақырулары тек ағын ескертуді алған кезде ғана беріледі, мысалы, waitforsingleobject немесе waitformultipleobject функцияларын шақыру нәтижесінде бұғаттау кезінде. Бұл мүмкіндіктер туралы толық ақпарат Platform SDK құжаттамасында қол жетімді. Бұл мүмкіндіктер ағындарды синхрондауды ұйымдастыруға мүмкіндік береді деп айту жеткілікті. Асинхронды процедураны шақыру, мысалы, арнайы енгізу-шығару үшін блоктау болуы мүмкін. Шақырулар ағынға сәйкес кезекке қойылады, яғни асинхронды процедуралардың бірнеше кезегі бар.


жүктеу 49,5 Kb.

Достарыңызбен бөлісу:
1   2   3




©g.engime.org 2024
әкімшілігінің қараңыз

    Басты бет
рсетілетін қызмет
халықаралық қаржы
Астана халықаралық
қызмет регламенті
бекіту туралы
туралы ережені
орталығы туралы
субсидиялау мемлекеттік
кеңес туралы
ніндегі кеңес
орталығын басқару
қаржы орталығын
қаржы орталығы
құрамын бекіту
неркәсіптік кешен
міндетті құпия
болуына ерікті
тексерілу мемлекеттік
медициналық тексерілу
құпия медициналық
ерікті анонимді
Бастауыш тәлім
қатысуға жолдамалар
қызметшілері арасындағы
академиялық демалыс
алушыларға академиялық
білім алушыларға
ұйымдарында білім
туралы хабарландыру
конкурс туралы
мемлекеттік қызметшілері
мемлекеттік әкімшілік
органдардың мемлекеттік
мемлекеттік органдардың
барлық мемлекеттік
арналған барлық
орналасуға арналған
лауазымына орналасуға
әкімшілік лауазымына
инфекцияның болуына
жәрдемдесудің белсенді
шараларына қатысуға
саласындағы дайындаушы
ленген қосылған
шегінде бюджетке
салығы шегінде
есептелген қосылған
ұйымдарға есептелген
дайындаушы ұйымдарға
кешен саласындағы
сомасын субсидиялау