Süsteemikõne vs funktsioonikõne
Tavaline protsessor täidab juhiseid ükshaaval. Kuid võib juhtuda, et protsessor peab praeguse käsu peatama ja käivitama mõne muu programmi või koodisegmendi (elukoht mõnes teises kohas). Pärast seda naaseb protsessor normaalse täitmise juurde ja jätkab sealt, kus pooleli jäi. Sellised juhtumid on süsteemikõne ja funktsioonikõne. Süsteemikõne on kõne süsteemi sisseehitatud alamprogrammile. Funktsioonikõne on väljakutse programmi enda alamprogrammile.
Mis on süsteemikõne?
Süsteemikõned pakuvad arvutis töötavatele programmidele liidest operatsioonisüsteemiga rääkimiseks. Kui programm peab operatsioonisüsteemi kernelt küsima teenust (mille jaoks tal pole selleks luba), kasutab ta süsteemikõnet. Kasutaja taseme protsessidel pole samu õigusi kui operatsioonisüsteemiga vahetult suhtlevatel protsessidel. Näiteks kasutab programm I / O-seadmetega suhtlemiseks või muude protsesside vastu suhtlemiseks süsteemikõnesid.
Mis on funktsioonikõne?
Funktsioonikõnet nimetatakse ka alamprogrammi kõneks. Alamprogramm (tuntud ka kui protseduur, funktsioon, meetod või rutiin) on osa suuremast programmist, mis vastutab konkreetse ülesande täitmise eest. Suurem programm võib täita suurt töökoormust ja alamprogramm võib täita lihtsalt lihtsat ülesannet, mis on sõltumatu ka ülejäänud programmi kodeerimisest. Funktsioon on kodeeritud nii, et seda võib kutsuda mitu korda ja erinevatest kohtadest (isegi teiste funktsioonide seest). Funktsiooni kutsumisel võib protsessor minna funktsiooni koodi asukohta ja täita funktsiooni juhised ükshaaval. Pärast funktsioonide lõpuleviimist naaseb protsessor täpselt sinna, kus pooleli jäi, ja jätkab käivitamist järgmisest käsust. Funktsioonid on suurepärane vahend koodi korduvkasutamiseks. Paljud kaasaegsed programmeerimiskeeled toetavad funktsioone. Funktsioonide kogu nimetatakse raamatukoguks. Raamatukogusid kasutatakse sageli tarkvara jagamise ja kauplemise vahendina. Mõnel juhul võib kogu programm olla alamprogrammide jada (nt keermestatud koodi kompileerimine).
Mis vahe on süsteemikõnel ja funktsioonikõnel?
Süsteemikõne on kõne süsteemi sisseehitatud alamprogrammile, funktsioonikõne aga kutse programmi raames alamprogrammile. Erinevalt funktsioonikõnedest kasutatakse süsteemikõnesid, kui programm peab täitma mõne ülesande, milleks tal pole õigusi. Süsteemikõned on operatsioonisüsteemi tuuma sisenemispunktid ja pole programmiga seotud (nagu funktsioonikõned). Erinevalt süsteemikõnetest on funktsioonikõned kaasaskantavad. Süsteemikõne ajakulu on rohkem kui funktsioonikõne lisakulu, kuna peab toimuma üleminek kasutajarežiimi ja kernelirežiimi vahel. Süsteemikõned teostatakse kerneli aadressiruumis, funktsioonikõned aga kasutaja aadressiruumis.