Diferența dintre apelul de sistem și apelul de funcție

Diferența dintre apelul de sistem și apelul de funcție
Diferența dintre apelul de sistem și apelul de funcție

Video: Diferența dintre apelul de sistem și apelul de funcție

Video: Diferența dintre apelul de sistem și apelul de funcție
Video: Linux vs Windows File System Structure Compared! 2024, Noiembrie
Anonim

Apel de sistem vs Apel de funcție

Un procesor tipic execută instrucțiuni unul câte unul. Dar pot exista ocazii în care procesorul trebuie să oprească instrucțiunile curente și să execute un alt program sau un segment de cod (care se află într-un alt loc). După ce face acest lucru, procesorul revine la execuția normală și continuă de unde a rămas. Un apel de sistem și un apel de funcție sunt astfel de ocazii. Un apel de sistem este un apel către o subrutină încorporată în sistem. Un apel de funcție este un apel către o subrutină din cadrul programului însuși.

Ce este un apel de sistem?

Apelurile de sistem oferă programelor care rulează pe computer o interfață pentru a vorbi cu sistemul de operare. Când un program trebuie să solicite un serviciu (pentru care nu are permisiunea de a face acest lucru de la sine) din nucleul sistemului de operare, folosește un apel de sistem. Procesele la nivel de utilizator nu au aceleași permisiuni ca și procesele care interacționează direct cu sistemul de operare. De exemplu, pentru a comunica cu un dispozitiv I/O extern sau pentru a interacționa cu orice alte procese, un program folosește apeluri de sistem.

Ce este un apel de funcție?

Un apel de funcție se mai numește și un apel de subrutină. O subrutină (cunoscută și ca procedură, funcție, metodă sau rutină) face parte dintr-un program mai mare care este responsabil pentru realizarea unei sarcini specifice. Programul mai mare poate executa o sarcină mare de lucru, iar subrutina poate efectua doar o sarcină simplă, care este, de asemenea, independentă de codarea programului rămasă. O funcție este codificată în așa fel încât să poată fi apelată de mai multe ori și din locuri diferite (chiar și din cadrul altor funcții). Când este apelată o funcție, procesorul poate merge acolo unde se află codul funcției și poate executa instrucțiunile funcției unul câte unul. După finalizarea funcțiilor, procesorul va reveni exact acolo unde a rămas și va continua execuția începând de la următoarea instrucțiune. Funcțiile sunt un instrument excelent pentru reutilizarea codului. Multe limbaje de programare moderne acceptă funcții. O colecție de funcții se numește bibliotecă. Bibliotecile sunt adesea folosite ca mijloace de partajare și tranzacționare cu software. În unele cazuri, întregul program poate fi o secvență de subrutine (de exemplu, compilarea codului în fire).

Care este diferența dintre apelul de sistem și apelul de funcție?

Apel de sistem este un apel către o subrutină încorporată în sistem, în timp ce un apel de funcție este un apel către o subrutină din program. Spre deosebire de apelurile de funcții, apelurile de sistem sunt folosite atunci când un program trebuie să îndeplinească o anumită sarcină, pentru care nu are privilegii. Apelurile de sistem sunt puncte de intrare în nucleul sistemului de operare și nu sunt legate de program (cum ar fi apelurile de funcții). Spre deosebire de apelurile de sistem, apelurile de funcții sunt portabile. Timpul general al unui apel de sistem este mai mult decât supraîncărcarea pentru un apel de funcție, deoarece trebuie să aibă loc o tranziție între modul utilizator și modul kernel. Apelurile de sistem sunt executate în spațiul de adrese kernel, în timp ce apelurile de funcție sunt executate în spațiul de adrese ale utilizatorului.

Recomandat: