Skillnad mellan systemsamtal och funktionssamtal

Anonim

Systemsamtal vs Funktionssamtal

En typisk processor kör instruktioner en efter en. Men det kan finnas tillfällen där processorn måste stoppa nuvarande instruktion och genomföra något annat program eller kodsegment (som finns på någon annan plats). Efter detta har processorn återgått till normalt utförande och fortsätter från där den slutade. Ett systemsamtal och ett funktionssamtal är sådana tillfällen. Ett systemsamtal är ett samtal till en subrutin inbyggd i systemet. Ett funktionssamtal är ett samtal till en subrutin inom själva programmet.

Vad är ett systemsamtal?

Systemsamtal ger program som körs på datorn ett gränssnitt för att prata med operativsystemet. När ett program behöver begära en tjänst (för vilken det inte har tillstånd att göra det själv) från operativsystemets kärna, använder det ett systemsamtal. Användarnivåprocesser har inte samma behörigheter som processerna som direkt interagerar med operativsystemet. Till exempel, för att kommunicera med och extern I / O-enhet eller att interagera med andra processer, använder ett program systemanrop.

Vad är ett funktionsanrop?

Ett funktionssamtal kallas också ett subrutin samtal. En delrutin (även kallad procedur, funktion, metod eller rutin) ingår i ett större program som ansvarar för att utföra en specifik uppgift. Det större programmet kan utföra en tung arbetsbelastning, och subrutinen kan bara utföra en enkel uppgift, vilket också är oberoende av återstående programkodning. En funktion kodas på ett sådant sätt att det kan kallas flera gånger och från olika ställen (även från andra funktioner). När en funktion kallas kan processorn gå till där koden för funktionen är bosatt och utföra instruktionerna för funktionen en efter en. Efter att ha slutfört funktionerna återgår processorn till exakt var den slutade och fortsätter utförandet från och med nästa instruktion. Funktioner är ett bra verktyg för kodåteranvändning. Många moderna programmeringsspråk stödfunktioner. En samling funktioner kallas ett bibliotek. Bibliotek används ofta som medel för delning och handelsprogram. I vissa fall kan hela programmet vara en sekvens av subrutiner (t.ex. gängad kodsamling).

Vad är skillnaden mellan systemsamtal och funktionskall?

Systemsamtal är ett samtal till en subrutin som är inbyggd i systemet, medan ett funktionssamtal är ett samtal till en subrutin inom programmet. Till skillnad från funktionssamtal används systemsamtal när ett program behöver utföra en viss uppgift, som det inte har något privilegium för. Systemanrop är ingångspunkter till operativsystemkärnan och är inte länkade till programmet (som funktionssamtal).Till skillnad från system samtal är funktionssamtal bärbara. Tidsöverhuvud för ett systemsamtal är mer än överkostnaden för ett funktionsanrop eftersom en övergång mellan användarläge och kärnläge måste ske. Systemanrop exekveras i kärnadressen, medan funktionssamtal exekveras i användaradressutrymme.