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

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

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

Видео: Разлика между системно и функционално повикване
Видео: The Choice is Ours (2016) Official Full Version 2024, Април
Anonim

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

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

Какво е системно обаждане?

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

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

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

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

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

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