Sistem Zəngi vs Funksiya Zəngi
Tipik prosessor təlimatları bir-bir yerinə yetirir. Ancaq prosessorun cari təlimatı dayandırmalı və başqa bir proqram və ya kod seqmentini (başqa yerdə yaşayan) yerinə yetirməli olduğu hallar ola bilər. Bunu etdikdən sonra prosessor normal işləməyə qayıdır və qaldığı yerdən davam edir. Sistem çağırışı və funksiya çağırışı belə hallardır. Sistem çağırışı sistemə daxil edilmiş alt proqrama edilən zəngdir. Funksiya çağırışı proqramın özündə alt proqrama edilən zəngdir.
Sistem Zəngi nədir?
Sistem zəngləri kompüterdə işləyən proqramları əməliyyat sistemi ilə danışmaq üçün interfeys ilə təmin edir. Bir proqram əməliyyat sisteminin nüvəsindən bir xidmət istəməli olduqda (bunun üçün öz-özünə bunu etməyə icazəsi yoxdur), o, sistem çağırışından istifadə edir. İstifadəçi səviyyəsindəki proseslər əməliyyat sistemi ilə birbaşa əlaqədə olan proseslərlə eyni icazələrə malik deyil. Məsələn, xarici I/O cihazı ilə əlaqə saxlamaq və ya hər hansı digər proseslərlə qarşılıqlı əlaqə yaratmaq üçün proqram sistem zənglərindən istifadə edir.
Funksiya Zəngi nədir?
Funksiya çağırışı həm də alt proqram çağırışı adlanır. Alt proqram (həmçinin prosedur, funksiya, metod və ya rutin kimi də tanınır) konkret tapşırığı yerinə yetirmək üçün cavabdeh olan daha böyük proqramın bir hissəsidir. Daha böyük proqram ağır iş yükünü yerinə yetirə bilər və alt proqram qalan proqram kodlaşdırmasından da asılı olmayan sadə bir tapşırığı yerinə yetirə bilər. Funksiya elə kodlaşdırılıb ki, o, dəfələrlə və müxtəlif yerlərdən (hətta başqa funksiyalar daxilindən də) çağırıla bilər. Funksiya çağırıldıqda prosessor funksiyanın kodunun yerləşdiyi yerə gedə və funksiyanın göstərişlərini bir-bir yerinə yetirə bilər. Funksiyaları yerinə yetirdikdən sonra prosessor tam olaraq qaldığı yerə qayıdacaq və növbəti təlimatdan başlayaraq icraya davam edəcək. Funksiyalar kodun təkrar istifadəsi üçün əla vasitədir. Bir çox müasir proqramlaşdırma dilləri funksiyaları dəstəkləyir. Funksiyalar toplusuna kitabxana deyilir. Kitabxanalar tez-tez proqram mübadiləsi və ticarət vasitəsi kimi istifadə olunur. Bəzi hallarda bütün proqram alt proqramlar ardıcıllığı ola bilər (məsələn, yivli kod tərtibi).
Sistem Zəngi ilə Funksiya Zəngi arasında fərq nədir?
Sistem çağırışı sistemdə quraşdırılmış alt proqrama çağırışdır, funksiya çağırışı isə proqram daxilindəki alt proqrama zəngdir. Funksiya çağırışlarından fərqli olaraq, sistem çağırışları proqramın imtiyazı olmayan bəzi tapşırığı yerinə yetirməsi lazım olduqda istifadə olunur. Sistem zəngləri əməliyyat sisteminin nüvəsinə giriş nöqtələridir və proqramla əlaqələndirilmir (funksiya zəngləri kimi). Sistem zənglərindən fərqli olaraq, funksiya zəngləri portativdir. Sistem çağırışının vaxt yükü funksiya çağırışı üçün əlavə xərcdən çoxdur, çünki istifadəçi rejimi ilə nüvə rejimi arasında keçid baş verməlidir. Sistem zəngləri nüvənin ünvan məkanında, funksiya zəngləri isə istifadəçi ünvan məkanında yerinə yetirilir.