Жүйелік қоңырау және функциялық қоңырау
Әдеттегі процессор нұсқауларды бір-бірлеп орындайды. Бірақ процессорға ағымдағы нұсқауды тоқтатып, басқа бағдарламаны немесе код сегментін (басқа жерде тұратын) орындауға тура келетін жағдайлар болуы мүмкін. Осыны орындағаннан кейін процессор қалыпты орындауға оралады және тоқтаған жерінен жалғастырады. Жүйелік шақыру және функциялық шақыру - осындай жағдайлар. Жүйелік қоңырау – жүйеге енгізілген ішкі бағдарламаға шақыру. Функцияны шақыру – бұл бағдарламаның ішіндегі ішкі бағдарламаға шақыру.
Жүйелік қоңырау дегеніміз не?
Жүйелік қоңыраулар компьютерде жұмыс істейтін бағдарламаларды амалдық жүйемен сөйлесу интерфейсін қамтамасыз етеді. Бағдарлама операциялық жүйенің ядросынан қызметті (ол үшін оны өздігінен орындауға рұқсаты жоқ) сұрау қажет болғанда, ол жүйелік қоңырауды пайдаланады. Пайдаланушы деңгейіндегі процестер операциялық жүйемен тікелей әрекеттесетін процестермен бірдей рұқсаттарға ие емес. Мысалы, сыртқы енгізу/шығару құрылғысымен немесе басқа процестермен әрекеттесу үшін бағдарлама жүйелік қоңырауларды пайдаланады.
Функция шақыру дегеніміз не?
Функциялық шақыруды ішкі бағдарлама шақыруы деп те атайды. Ішкі бағдарлама (процедура, функция, әдіс немесе режим ретінде де белгілі) белгілі бір тапсырманы орындауға жауап беретін үлкенірек бағдарламаның бөлігі болып табылады. Үлкенірек бағдарлама үлкен жұмыс жүктемесін орындауы мүмкін, ал ішкі бағдарлама қарапайым тапсырманы орындауы мүмкін, ол сонымен қатар қалған бағдарлама кодтауынан тәуелсіз. Функция бірнеше рет және әртүрлі жерлерден (тіпті басқа функциялардың ішінен) шақырылатындай етіп кодталған. Функция шақырылған кезде процессор функцияның коды орналасқан жерге барып, функцияның нұсқауларын бір-бірден орындауы мүмкін. Функцияларды орындағаннан кейін процессор дәл тоқтаған жеріне оралады және келесі нұсқаудан бастап орындауды жалғастырады. Функциялар кодты қайта пайдаланудың тамаша құралы болып табылады. Көптеген заманауи бағдарламалау тілдері функцияларды қолдайды. Функциялар жиынтығы кітапхана деп аталады. Кітапханалар көбінесе бағдарламалық жасақтаманы бөлісу және саудалау құралы ретінде пайдаланылады. Кейбір жағдайларда бүкіл бағдарлама ішкі бағдарламалар тізбегі болуы мүмкін (мысалы, ағынды кодты құрастыру).
Жүйелік қоңырау мен функциялық қоңыраудың айырмашылығы неде?
Жүйелік шақыру – жүйеге енгізілген ішкі бағдарламаға шақыру, ал функционалдық шақыру – бағдарлама ішіндегі ішкі бағдарламаға шақыру. Функционалдық шақырудан айырмашылығы, жүйелік шақырулар бағдарламаның артықшылығы жоқ кейбір тапсырманы орындау қажет болғанда қолданылады. Жүйелік қоңыраулар операциялық жүйенің ядросына кіру нүктелері болып табылады және бағдарламамен байланысы жоқ (функционалдық шақырулар сияқты). Жүйелік қоңыраулардан айырмашылығы, функционалдық қоңыраулар портативті. Жүйелік шақырудың уақыттық шығыны функционалдық шақырудың үстеме шығындарынан көп, себебі пайдаланушы режимі мен ядро режимі арасында ауысу орын алуы керек. Жүйелік қоңыраулар ядроның мекенжай кеңістігінде орындалады, ал функционалдық шақырулар пайдаланушы мекенжай кеңістігінде орындалады.