Systemkald og procedurekald er begge mekanismer, der bruges af et program til at anmode om tjenester fra operativsystemet eller et andet program. Der er dog nogle ligheder og forskelle mellem disse to mekanismer.
Ligheder:
- Både systemkald og procedurekald involverer overførsel af kontrol fra et program (den kaldende) til et andet program (den kaldende).
- Både systemkald og procedurekald kan videregive parametre til callee-programmet.
- Både systemkald og procedurekald kan returnere en værdi til opkaldsprogrammet.
Forskelle:
- Systemkald bruges til at anmode om tjenester fra operativsystemet, mens procedurekald bruges til at anmode om tjenester fra et andet program.
- Systemkald er en del af operativsystemet, mens procedurekald er en del af brugerprogrammet.
- Systemkald udføres normalt i en privilegeret tilstand, mens procedurekald normalt udføres i brugertilstand.
- Systemkald kan afbrydes af operativsystemet, mens procedurekald ikke kan afbrydes.
- Systemkald kan få operativsystemet til at skifte fra én proces til en anden, mens procedurekald ikke forårsager nogen sådan switch.
Generelt er systemkald mere kraftfulde end procedurekald, men de er også mere komplekse og farlige at bruge. Procedureopkald er nemmere at bruge og mindre farlige, men de er ikke så effektive som systemopkald.