Системски позив вс функцијски позив
Типични процесор извршава инструкције једну по једну. Али могу се догодити случајеви да процесор мора зауставити тренутну инструкцију и извршити неки други програм или сегмент кода (који борави на неком другом месту). Након тога процесор се враћа у нормално извршавање и наставља се тамо где је стао. Системски позив и позив функције су такве прилике. Системски позив је позив на подпрограм уграђен у систем. Позив функције је позив на подпрограм унутар самог програма.
Шта је системски позив?
Системски позиви пружају програмима који раде на рачунару интерфејс за разговор са оперативним системом. Када програм мора затражити услугу (за коју нема дозволу да то уради сам) из кернела оперативног система, користи системски позив. Процеси на нивоу корисника немају иста допуштења као и процеси који директно комуницирају са оперативним системом. На пример, за комуникацију са и спољним И / О уређајем или за интеракцију са било којим другим процесима, програм користи системске позиве.
Шта је функцијски позив?
Позив функције назива се и позив подпрограма. Потпрограм (познат и као поступак, функција, метода или рутина) део је већег програма који је одговоран за извршавање одређеног задатка. Већи програм може да изврши велико радно оптерећење, а подпрограм може обављати само једноставан задатак, који је такође независно од преосталог програма кодирања. Функција је кодирана на такав начин да се може звати више пута и са различитих места (чак и из осталих функција). Када се функција зове, процесор може отићи до места где је код функције и извршити упутства функције једну по једну. По завршетку функција, процесор ће се вратити тамо где је стао и наставити извршење почевши од следеће инструкције. Функције су одличан алат за поновну употребу кода. Многе савремене програмске језике подржавају функције. Збирка функција назива се библиотека. Библиотеке се често користе као средства за размјену и трговање софтвером. У неким случајевима, читав програм може бити редослед подпрограма (нпр. Навођена компилација кода).
Која је разлика између системског позива и функцијског позива?
Системски позив је позив на подпрограму уграђену у систем, док је функцијски позив позив на подпрограму у оквиру програма. За разлику од функционалних позива, системски позиви се користе када програм треба да обави неки задатак, за који нема привилегију. Системски позиви су улазне тачке у језгру оперативног система и нису повезани са програмом (попут функција позива). За разлику од системских позива, функцијски позиви су преносиви. Време надметања системског позива веће је од надземних трошкова функционалног позива јер мора да се изврши прелазак између корисничког режима и режима кернела. Системски позиви се изводе у адресном простору језгре, док се позиви функција извршавају у корисничком адресном простору.