Разлика между системно извикване и извикване на функция

Разлика между системно извикване и извикване на функция
Разлика между системно извикване и извикване на функция

Видео: Разлика между системно извикване и извикване на функция

Видео: Разлика между системно извикване и извикване на функция
Видео: DCDiag.exe: Understanding Active Directory Troubleshooting 2024, Юли
Anonim

Системно извикване срещу извикване на функция

Типичният процесор изпълнява инструкции една по една. Но може да има случаи, когато процесорът трябва да спре текущата инструкция и да изпълни друга програма или кодов сегмент (намиращ се на друго място). След като направи това, процесорът се връща към нормалното изпълнение и продължава от мястото, където е спрял. Системно повикване и повикване на функция са такива случаи. Системното извикване е извикване на подпрограма, вградена в системата. Извикването на функция е извикване на подпрограма в самата програма.

Какво е системно повикване?

Системните повиквания предоставят на програмите, работещи на компютъра, интерфейс за комуникация с операционната система. Когато една програма трябва да поиска услуга (за която няма разрешение да направи това сама) от ядрото на операционната система, тя използва системно повикване. Процесите на потребителско ниво нямат същите разрешения като процесите, които директно взаимодействат с операционната система. Например, за да комуникира с външно I/O устройство или да взаимодейства с други процеси, програмата използва системни повиквания.

Какво е извикване на функция?

Извикването на функция също се нарича извикване на подпрограма. Подпрограма (известна също като процедура, функция, метод или рутина) е част от по-голяма програма, която отговаря за изпълнението на конкретна задача. По-голямата програма може да изпълни голямо натоварване и подпрограмата може да изпълнява просто проста задача, която също е независима от оставащото програмно кодиране. Една функция е кодирана по такъв начин, че да може да бъде извикана многократно и от различни места (дори от други функции). Когато се извика функция, процесорът може да отиде до мястото, където се намира кодът на функцията, и да изпълни инструкциите на функцията една по една. След завършване на функциите, процесорът ще се върне точно там, където е спрял и ще продължи изпълнението, започвайки от следващата инструкция. Функциите са чудесен инструмент за повторно използване на код. Много съвременни езици за програмиране поддържат функции. Колекция от функции се нарича библиотека. Библиотеките често се използват като средство за споделяне и търгуване на софтуер. В някои случаи цялата програма може да бъде поредица от подпрограми (напр. компилация на код с нишки).

Каква е разликата между System Call и Function Call?

Системното извикване е извикване на подпрограма, вградена в системата, докато извикването на функция е извикване на подпрограма в рамките на програмата. За разлика от извикванията на функции, системните извиквания се използват, когато програмата трябва да изпълни някаква задача, за която няма привилегия. Системните повиквания са входни точки в ядрото на операционната система и не са свързани с програмата (като извиквания на функции). За разлика от системните повиквания, функционалните повиквания са преносими. Времето за системно повикване е повече от зареждането за извикване на функция, тъй като трябва да се извърши преход между потребителския режим и режима на ядрото. Системните извиквания се изпълняват в адресното пространство на ядрото, докато извикванията на функции се изпълняват в адресното пространство на потребителя.

Препоръчано: